Merge pull request #115862 from nhold/nhold/unique-resource-from-inherited

Fix Unique Resources from Inherited Scenes
This commit is contained in:
Thaddeus Crews
2026-02-06 08:17:43 -06:00

View File

@@ -1399,17 +1399,17 @@ bool EditorResourcePicker::_is_uniqueness_enabled(bool p_check_recursive) {
}
Ref<Resource> parent_resource = _has_parent_resource();
EditorNode *en = EditorNode::get_singleton();
bool internal_to_scene = edited_resource->is_built_in();
bool internal_to_scene = en->is_resource_internal_to_scene(edited_resource);
List<Node *> node_list = en->get_editor_selection()->get_full_selected_node_list();
// Todo: Implement a more elegant solution for multiple selected Nodes. This should suffice for the time being.
if (node_list.size() > 1 && !p_check_recursive) {
return node_list.size() != EditorNode::get_singleton()->get_resource_count(edited_resource) || !internal_to_scene;
return node_list.size() != en->get_resource_count(edited_resource) || !internal_to_scene;
}
if (!internal_to_scene) {
if (parent_resource.is_valid() && parent_resource->is_built_in() && (!EditorNode::get_singleton()->is_resource_internal_to_scene(parent_resource) || en->get_resource_count(parent_resource) > 1)) {
return false;
if (parent_resource.is_valid() && (!en->is_resource_internal_to_scene(parent_resource) || en->get_resource_count(parent_resource) > 1)) {
return !parent_resource->is_built_in();
} else if (!p_check_recursive) {
return true;
}