diff --git a/server/src/project.rs b/server/src/project.rs index 54ffa601..25b9e560 100644 --- a/server/src/project.rs +++ b/server/src/project.rs @@ -7,6 +7,7 @@ use std::{ }; use serde_json; +use rbx_tree::RbxValue; pub static PROJECT_FILENAME: &'static str = "roblox-project.json"; @@ -17,6 +18,9 @@ enum SourceProjectNode { #[serde(rename = "$className")] class_name: String, + #[serde(rename = "$properties", default="HashMap::new")] + properties: HashMap, + // #[serde(rename = "$ignoreUnknown", default = "false")] // ignore_unknown: bool, @@ -32,7 +36,7 @@ enum SourceProjectNode { impl SourceProjectNode { pub fn into_project_node(self, project_file_location: &Path) -> ProjectNode { match self { - SourceProjectNode::Instance { class_name, mut children } => { + SourceProjectNode::Instance { class_name, mut children, properties } => { let mut new_children = HashMap::new(); for (node_name, node) in children.drain() { @@ -42,6 +46,7 @@ impl SourceProjectNode { ProjectNode::Instance(InstanceProjectNode { class_name, children: new_children, + properties, }) }, SourceProjectNode::SyncPoint { path: source_path } => { @@ -150,7 +155,7 @@ pub enum ProjectNode { pub struct InstanceProjectNode { pub class_name: String, pub children: HashMap, - // properties: HashMap, + pub properties: HashMap, // ignore_unknown: bool, }