Browse Source

Fix editable children errors when packing scene tree at runtime

When packing a scene node which is not the root, errors where caused
by internal checks in is_editable_instance method.

This check can be safely made outside instead.

(cherry picked from commit 2f6cf3b8a8e81fe2cde0df026a66f46d4b498c51)
PouleyKetchoupp 3 years ago
parent
commit
00d4a30b05
1 changed files with 1 additions and 1 deletions
  1. 1 1
      scene/resources/packed_scene.cpp

+ 1 - 1
scene/resources/packed_scene.cpp

@@ -386,7 +386,7 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
 		editable_instances.push_back(p_owner->get_path_to(p_node));
 		editable_instances.push_back(p_owner->get_path_to(p_node));
 		// Node is the root of an editable instance.
 		// Node is the root of an editable instance.
 		is_editable_instance = true;
 		is_editable_instance = true;
-	} else if (p_node->get_owner() && p_node->get_owner() != p_owner && p_owner->is_editable_instance(p_node->get_owner())) {
+	} else if (p_node->get_owner() && p_owner->is_a_parent_of(p_node->get_owner()) && p_owner->is_editable_instance(p_node->get_owner())) {
 		// Node is part of an editable instance.
 		// Node is part of an editable instance.
 		is_editable_instance = true;
 		is_editable_instance = true;
 	}
 	}