diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp index 888e3e534d0..f20f647d642 100644 --- a/editor/docks/scene_tree_dock.cpp +++ b/editor/docks/scene_tree_dock.cpp @@ -1027,7 +1027,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { return; } - if (!node->get_scene_file_path().is_empty()) { + if (node->is_instance()) { accept->set_text(TTR("Instantiated scenes can't become root")); accept->popup_centered(); return; @@ -1111,8 +1111,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { Node *node = remove_list.front()->get(); if (node == editor_data->get_edited_scene_root()) { msg = vformat(TTR("Delete the root node \"%s\"?"), node->get_name()); - } else if (node->get_scene_file_path().is_empty() && node->get_child_count() > 0) { - // Display this message only for non-instantiated scenes + } else if (!node->is_instance() && node->get_child_count() > 0) { + // Display this message only for non-instantiated scenes. msg = vformat(TTR("Delete node \"%s\" and its children?"), node->get_name()); } else { msg = vformat(TTR("Delete node \"%s\"?"), node->get_name()); @@ -1169,7 +1169,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - if (tocopy != editor_data->get_edited_scene_root() && !tocopy->get_scene_file_path().is_empty()) { + if (tocopy != editor_data->get_edited_scene_root() && tocopy->is_instance()) { accept->set_text(TTR("Can't save the branch of an already instantiated scene.\nTo create a variation of a scene, you can make an inherited scene based on the instantiated scene using Scene > New Inherited Scene... instead.")); accept->popup_centered(); break; @@ -1281,7 +1281,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (e) { Node *node = e->get(); if (node) { - bool is_external = (!node->get_scene_file_path().is_empty()); + bool is_external = node->is_instance(); bool is_top_level = node->get_owner() == nullptr; if (!is_external || is_top_level) { break; @@ -1353,7 +1353,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { break; } - ERR_FAIL_COND(node->get_scene_file_path().is_empty()); + ERR_FAIL_COND(!node->is_instance()); undo_redo->create_action(TTR("Make Local")); undo_redo->add_do_method(node, "set_scene_file_path", ""); undo_redo->add_undo_method(node, "set_scene_file_path", node->get_scene_file_path()); @@ -2327,7 +2327,7 @@ bool SceneTreeDock::_validate_no_instance() { const List &selection = editor_selection->get_top_selected_node_list(); for (Node *E : selection) { - if (E != edited_scene && !E->get_scene_file_path().is_empty()) { + if (E != edited_scene && E->is_instance()) { accept->set_text(TTR("This operation can't be done on instantiated scenes.")); accept->popup_centered(); return false; @@ -3894,7 +3894,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { bool can_replace = true; for (Node *E : selection) { - if (E != edited_scene && (E->get_owner() != edited_scene || !E->get_scene_file_path().is_empty())) { + if (E != edited_scene && (E->get_owner() != edited_scene || E->is_instance())) { can_replace = false; break; } @@ -3957,7 +3957,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { } if (selection.size() == 1) { - bool is_external = (!selection.front()->get()->get_scene_file_path().is_empty()); + bool is_external = selection.front()->get()->is_instance(); if (is_external) { bool is_inherited = selection.front()->get()->get_scene_inherited_state().is_valid(); bool is_top_level = selection.front()->get()->get_owner() == nullptr; @@ -3994,7 +3994,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { } menu->add_separator(); - if (full_selection.size() == 1 && !selection.front()->get()->get_scene_file_path().is_empty()) { + if (full_selection.size() == 1 && selection.front()->get()->is_instance()) { menu->add_icon_shortcut(get_editor_theme_icon(SNAME("ShowInFileSystem")), ED_GET_SHORTCUT("scene_tree/show_in_file_system"), TOOL_SHOW_IN_FILE_SYSTEM); } diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index 399a5410d7d..3366a935769 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -668,7 +668,7 @@ bool EditorData::_find_updated_instances(Node *p_root, Node *p_node, HashSetget_scene_inherited_state(); - } else if (!p_node->get_scene_file_path().is_empty()) { + } else if (p_node->is_instance()) { ss = p_node->get_scene_instance_state(); } @@ -773,7 +773,7 @@ void EditorData::set_edited_scene_root(Node *p_root) { ERR_FAIL_INDEX(current_edited_scene, edited_scene.size()); edited_scene.write[current_edited_scene].root = p_root; if (p_root) { - if (!p_root->get_scene_file_path().is_empty()) { + if (p_root->is_instance()) { edited_scene.write[current_edited_scene].path = p_root->get_scene_file_path(); } else { p_root->set_scene_file_path(edited_scene[current_edited_scene].path); @@ -839,7 +839,7 @@ Ref