Browse Source

Merge pull request #4299 from neikeq/pr-issue-4297

Keep editable instances data when replacing tree root node
Rémi Verschelde 9 years ago
parent
commit
f124b5e0ac
3 changed files with 13 additions and 0 deletions
  1. 10 0
      scene/main/node.cpp
  2. 2 0
      scene/main/node.h
  3. 1 0
      tools/editor/scene_tree_dock.cpp

+ 10 - 0
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
 

+ 2 - 0
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 */

+ 1 - 0
tools/editor/scene_tree_dock.cpp

@@ -1317,6 +1317,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