Compare commits

...

5 Commits

Author SHA1 Message Date
Lucien Greathouse
ab644c3dfa Update model.json example 2018-02-04 07:31:33 -08:00
Lucien Greathouse
c6cdd8a815 Change test project to test another edge case 2018-02-04 07:26:30 -08:00
Lucien Greathouse
d99df59d9b 'Wildcard' type in DefaultPlugin, change to PascalCase in API 2018-02-04 07:10:59 -08:00
Lucien Greathouse
c5f8247543 Add support for Bool and Number primitive types. 2018-02-03 23:16:29 -08:00
Lucien Greathouse
72557c9d23 Hip logo, totally not riffing on Babel 2018-01-29 15:57:10 -08:00
6 changed files with 36 additions and 23 deletions

View File

@@ -1,17 +1,22 @@
<h1 align="center">Rojo</h1> <div align="center">
<img src="assets/rojo-logo.png" alt="Rojo" height="150" />
</div>
<div>&nbsp;</div>
<div align="center"> <div align="center">
<a href="https://travis-ci.org/LPGhatguy/rojo"> <a href="https://travis-ci.org/LPGhatguy/rojo">
<img src="https://api.travis-ci.org/LPGhatguy/rojo.svg?branch=master" alt="Travis-CI Build Status" /> <img src="https://api.travis-ci.org/LPGhatguy/rojo.svg?branch=master" alt="Travis-CI Build Status" />
</a> </a>
</div> </div>
<div>&nbsp;</div> <hr />
Rojo is a flexible multi-tool designed for creating robust Roblox projects. It's in early development, but is still useful for many projects. **Rojo** is a flexible multi-tool designed for creating robust Roblox projects. It's in early development, but is still useful for many projects.
It's designed for power users who want to use the **best tools available** for building games, libraries, and plugins. It's designed for power users who want to use the **best tools available** for building games, libraries, and plugins.
This is the main Rojo repository, containing the binary server component. For the source for the Roblox plugin, [see the rojo-plugin repository](https://github.com/LPGhatguy/rojo-plugin). This is the main Rojo repository, containing the binary and project server component. For the source for the Roblox plugin, [see the rojo-plugin repository](https://github.com/LPGhatguy/rojo-plugin).
The master branches of both respositories should always pass all tests and be functional, but are not suitable for production use! The master branches of both respositories should always pass all tests and be functional, but are not suitable for production use!

BIN
assets/rojo-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -48,7 +48,7 @@ impl Plugin for DefaultPlugin {
TransformFileResult::Value(Some(RbxInstance { TransformFileResult::Value(Some(RbxInstance {
name: vfs_item.name().clone(), name: vfs_item.name().clone(),
class_name: "Folder".to_string(), class_name: "*".to_string(),
children: rbx_children, children: rbx_children,
properties: HashMap::new(), properties: HashMap::new(),
route: Some(vfs_item.route().to_vec()), route: Some(vfs_item.route().to_vec()),

View File

@@ -2,7 +2,7 @@ use std::collections::HashMap;
/// Represents data about a Roblox instance /// Represents data about a Roblox instance
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "PascalCase")]
pub struct RbxInstance { pub struct RbxInstance {
pub name: String, pub name: String,
pub class_name: String, pub class_name: String,
@@ -15,12 +15,20 @@ pub struct RbxInstance {
/// Any kind value that can be used by Roblox /// Any kind value that can be used by Roblox
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", tag = "type")] #[serde(rename_all = "PascalCase", tag = "Type")]
pub enum RbxValue { pub enum RbxValue {
#[serde(rename_all = "PascalCase")]
String { String {
value: String, value: String,
}, },
#[serde(rename_all = "PascalCase")]
Bool {
value: bool,
},
#[serde(rename_all = "PascalCase")]
Number {
value: f64,
},
// TODO: Other primitives
// TODO: Compound types like Vector3 // TODO: Compound types like Vector3
} }

View File

@@ -4,7 +4,7 @@
"partitions": { "partitions": {
"src": { "src": {
"path": "src", "path": "src",
"target": "ReplicatedStorage.TestProject" "target": "ReplicatedFirst"
} }
} }
} }

View File

@@ -1,24 +1,24 @@
{ {
"name": "hello", "Name": "hello",
"className": "Model", "ClassName": "Model",
"children": [ "Children": [
{ {
"name": "Some Part", "Name": "Some Part",
"className": "Part", "ClassName": "Part",
"children": [], "Children": [],
"properties": {} "Properties": {}
}, },
{ {
"name": "Some StringValue", "Name": "Some StringValue",
"className": "StringValue", "ClassName": "StringValue",
"children": [], "Children": [],
"properties": { "Properties": {
"Value": { "Value": {
"type": "string", "Type": "String",
"value": "Hello, world!" "Value": "Hello, world!"
} }
} }
} }
], ],
"properties": {} "Properties": {}
} }