mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 14:01:37 +00:00
Deletion, wrangling parents a little bit
This commit is contained in:
parent
8729de1312
commit
e4f35b29bd
4 changed files with 60 additions and 10 deletions
|
|
@ -20,18 +20,24 @@ fn file_to_instances(
|
|||
let mut properties = HashMap::new();
|
||||
properties.insert("Value".to_string(), contents.clone());
|
||||
|
||||
let (primary_id, parent) = match instances_by_route.get(&file_item.get_route()) {
|
||||
Some(&id) => {
|
||||
(id, output.get(&id).unwrap().parent)
|
||||
},
|
||||
let primary_id = match instances_by_route.get(&file_item.get_route()) {
|
||||
Some(&id) => id,
|
||||
None => {
|
||||
let id = get_id();
|
||||
instances_by_route.insert(route.clone(), id);
|
||||
|
||||
(id, None)
|
||||
id
|
||||
},
|
||||
};
|
||||
|
||||
let parent = match file_item.get_route().parent() {
|
||||
Some(parent_route) => match instances_by_route.get(&parent_route) {
|
||||
Some(parent_id) => Some(*parent_id),
|
||||
None => None,
|
||||
},
|
||||
None => None,
|
||||
};
|
||||
|
||||
output.insert(primary_id, RbxInstance {
|
||||
name: route.name(partition).to_string(),
|
||||
class_name: "StringValue".to_string(),
|
||||
|
|
@ -42,18 +48,24 @@ fn file_to_instances(
|
|||
(primary_id, vec![primary_id])
|
||||
},
|
||||
FileItem::Directory { children, route } => {
|
||||
let (primary_id, parent) = match instances_by_route.get(&file_item.get_route()) {
|
||||
Some(&id) => {
|
||||
(id, output.get(&id).unwrap().parent)
|
||||
},
|
||||
let primary_id = match instances_by_route.get(&file_item.get_route()) {
|
||||
Some(&id) => id,
|
||||
None => {
|
||||
let id = get_id();
|
||||
instances_by_route.insert(route.clone(), id);
|
||||
|
||||
(id, None)
|
||||
id
|
||||
},
|
||||
};
|
||||
|
||||
let parent = match file_item.get_route().parent() {
|
||||
Some(parent_route) => match instances_by_route.get(&parent_route) {
|
||||
Some(parent_id) => Some(*parent_id),
|
||||
None => None,
|
||||
},
|
||||
None => None,
|
||||
};
|
||||
|
||||
output.insert(primary_id, RbxInstance {
|
||||
name: route.name(partition).to_string(),
|
||||
class_name: "Folder".to_string(),
|
||||
|
|
@ -141,6 +153,13 @@ impl RbxSession {
|
|||
self.message_session.push_messages(&messages);
|
||||
},
|
||||
FileChange::Deleted(route) => {
|
||||
match self.instances_by_route.get(route) {
|
||||
Some(id) => {
|
||||
self.instances.remove(id);
|
||||
self.message_session.push_messages(&[Message::InstanceChanged { id: *id }]);
|
||||
},
|
||||
None => (),
|
||||
}
|
||||
},
|
||||
FileChange::Moved(from_route, to_route) => {
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue