aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgnacio Etcheverry2016-04-12 18:21:37 +0200
committerRémi Verschelde2016-04-27 08:48:34 +0200
commitdbcf969fbf9d10910904a190c315db89cf40a2e2 (patch)
tree17c2091f53933a97155774296aaebea8f53562ff
parent52bf4a76b2138899f5b47f830847c53b8612882a (diff)
downloadgodot-dbcf969fbf9d10910904a190c315db89cf40a2e2.tar.gz
godot-dbcf969fbf9d10910904a190c315db89cf40a2e2.tar.zst
godot-dbcf969fbf9d10910904a190c315db89cf40a2e2.zip
Keep editable instances data when replacing tree root node
(cherry picked from commit 3029f5ee02483021aadd5d5bc48becb2490791f1)
-rw-r--r--scene/main/node.cpp10
-rw-r--r--scene/main/node.h2
-rw-r--r--tools/editor/scene_tree_dock.cpp1
3 files changed, 13 insertions, 0 deletions
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index b90edb38b..f4c41256d 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -1374,6 +1374,16 @@ bool Node::is_editable_instance(Node *p_node) const {
return data.editable_instances.has(p);
}
+void Node::set_editable_instances(const HashMap<NodePath,int>& p_editable_instances) {
+
+ data.editable_instances=p_editable_instances;
+}
+
+HashMap<NodePath,int> Node::get_editable_instances() const {
+
+ return data.editable_instances;
+}
+
#if 0
diff --git a/scene/main/node.h b/scene/main/node.h
index 5c6147d64..560a2e588 100644
--- a/scene/main/node.h
+++ b/scene/main/node.h
@@ -239,6 +239,8 @@ public:
void set_editable_instance(Node* p_node,bool p_editable);
bool is_editable_instance(Node* p_node) const;
+ void set_editable_instances(const HashMap<NodePath,int>& p_editable_instances);
+ HashMap<NodePath,int> get_editable_instances() const;
/* NOTIFICATIONS */
diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp
index 5877ce1a4..37a316ae9 100644
--- a/tools/editor/scene_tree_dock.cpp
+++ b/tools/editor/scene_tree_dock.cpp
@@ -1318,6 +1318,7 @@ void SceneTreeDock::_create() {
if (n==edited_scene) {
edited_scene=newnode;
editor->set_edited_scene(newnode);
+ newnode->set_editable_instances(n->get_editable_instances());
}
//small hack to make collisionshapes and other kind of nodes to work