Merge pull request #53254 from Calinou/node-rename-filename
Rename Node's `filename` property to `scene_file_path` for clarity
This commit is contained in:
commit
5b7ec95de7
@ -700,9 +700,6 @@
|
|||||||
<member name="custom_multiplayer" type="MultiplayerAPI" setter="set_custom_multiplayer" getter="get_custom_multiplayer">
|
<member name="custom_multiplayer" type="MultiplayerAPI" setter="set_custom_multiplayer" getter="get_custom_multiplayer">
|
||||||
The override to the default [MultiplayerAPI]. Set to [code]null[/code] to use the default [SceneTree] one.
|
The override to the default [MultiplayerAPI]. Set to [code]null[/code] to use the default [SceneTree] one.
|
||||||
</member>
|
</member>
|
||||||
<member name="filename" type="String" setter="set_filename" getter="get_filename">
|
|
||||||
If a scene is instantiated from a file, its topmost node contains the absolute file path from which it was loaded in [member filename] (e.g. [code]res://levels/1.tscn[/code]). Otherwise, [member filename] is set to an empty string.
|
|
||||||
</member>
|
|
||||||
<member name="multiplayer" type="MultiplayerAPI" setter="" getter="get_multiplayer">
|
<member name="multiplayer" type="MultiplayerAPI" setter="" getter="get_multiplayer">
|
||||||
The [MultiplayerAPI] instance associated with this node. Either the [member custom_multiplayer], or the default SceneTree one (if inside tree).
|
The [MultiplayerAPI] instance associated with this node. Either the [member custom_multiplayer], or the default SceneTree one (if inside tree).
|
||||||
</member>
|
</member>
|
||||||
@ -719,6 +716,9 @@
|
|||||||
<member name="process_priority" type="int" setter="set_process_priority" getter="get_process_priority" default="0">
|
<member name="process_priority" type="int" setter="set_process_priority" getter="get_process_priority" default="0">
|
||||||
The node's priority in the execution order of the enabled processing callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose process priority value is [i]lower[/i] will have their processing callbacks executed first.
|
The node's priority in the execution order of the enabled processing callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose process priority value is [i]lower[/i] will have their processing callbacks executed first.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="scene_file_path" type="String" setter="set_scene_file_path" getter="get_scene_file_path">
|
||||||
|
If a scene is instantiated from a file, its topmost node contains the absolute file path from which it was loaded in [member scene_file_path] (e.g. [code]res://levels/1.tscn[/code]). Otherwise, [member scene_file_path] is set to an empty string.
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
<signals>
|
<signals>
|
||||||
<signal name="ready">
|
<signal name="ready">
|
||||||
|
@ -1238,7 +1238,7 @@ void ScriptEditorDebugger::update_live_edit_root() {
|
|||||||
Array msg;
|
Array msg;
|
||||||
msg.push_back(np);
|
msg.push_back(np);
|
||||||
if (editor->get_edited_scene()) {
|
if (editor->get_edited_scene()) {
|
||||||
msg.push_back(editor->get_edited_scene()->get_filename());
|
msg.push_back(editor->get_edited_scene()->get_scene_file_path());
|
||||||
} else {
|
} else {
|
||||||
msg.push_back("");
|
msg.push_back("");
|
||||||
}
|
}
|
||||||
|
@ -554,7 +554,7 @@ void EditorData::remove_scene(int p_idx) {
|
|||||||
ERR_FAIL_INDEX(p_idx, edited_scene.size());
|
ERR_FAIL_INDEX(p_idx, edited_scene.size());
|
||||||
if (edited_scene[p_idx].root) {
|
if (edited_scene[p_idx].root) {
|
||||||
for (int i = 0; i < editor_plugins.size(); i++) {
|
for (int i = 0; i < editor_plugins.size(); i++) {
|
||||||
editor_plugins[i]->notify_scene_closed(edited_scene[p_idx].root->get_filename());
|
editor_plugins[i]->notify_scene_closed(edited_scene[p_idx].root->get_scene_file_path());
|
||||||
}
|
}
|
||||||
|
|
||||||
memdelete(edited_scene[p_idx].root);
|
memdelete(edited_scene[p_idx].root);
|
||||||
@ -583,7 +583,7 @@ bool EditorData::_find_updated_instances(Node *p_root, Node *p_node, Set<String>
|
|||||||
|
|
||||||
if (p_node == p_root) {
|
if (p_node == p_root) {
|
||||||
ss = p_node->get_scene_inherited_state();
|
ss = p_node->get_scene_inherited_state();
|
||||||
} else if (p_node->get_filename() != String()) {
|
} else if (p_node->get_scene_file_path() != String()) {
|
||||||
ss = p_node->get_scene_instance_state();
|
ss = p_node->get_scene_instance_state();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,12 +643,12 @@ bool EditorData::check_and_update_scene(int p_idx) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
new_scene->set_filename(edited_scene[p_idx].root->get_filename());
|
new_scene->set_scene_file_path(edited_scene[p_idx].root->get_scene_file_path());
|
||||||
|
|
||||||
memdelete(edited_scene[p_idx].root);
|
memdelete(edited_scene[p_idx].root);
|
||||||
edited_scene.write[p_idx].root = new_scene;
|
edited_scene.write[p_idx].root = new_scene;
|
||||||
if (new_scene->get_filename() != "") {
|
if (new_scene->get_scene_file_path() != "") {
|
||||||
edited_scene.write[p_idx].path = new_scene->get_filename();
|
edited_scene.write[p_idx].path = new_scene->get_scene_file_path();
|
||||||
}
|
}
|
||||||
edited_scene.write[p_idx].selection = new_selection;
|
edited_scene.write[p_idx].selection = new_selection;
|
||||||
|
|
||||||
@ -682,10 +682,10 @@ void EditorData::set_edited_scene_root(Node *p_root) {
|
|||||||
ERR_FAIL_INDEX(current_edited_scene, edited_scene.size());
|
ERR_FAIL_INDEX(current_edited_scene, edited_scene.size());
|
||||||
edited_scene.write[current_edited_scene].root = p_root;
|
edited_scene.write[current_edited_scene].root = p_root;
|
||||||
if (p_root) {
|
if (p_root) {
|
||||||
if (p_root->get_filename() != "") {
|
if (p_root->get_scene_file_path() != "") {
|
||||||
edited_scene.write[current_edited_scene].path = p_root->get_filename();
|
edited_scene.write[current_edited_scene].path = p_root->get_scene_file_path();
|
||||||
} else {
|
} else {
|
||||||
p_root->set_filename(edited_scene[current_edited_scene].path);
|
p_root->set_scene_file_path(edited_scene[current_edited_scene].path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -764,7 +764,7 @@ Ref<Script> EditorData::get_scene_root_script(int p_idx) const {
|
|||||||
Ref<Script> s = edited_scene[p_idx].root->get_script();
|
Ref<Script> s = edited_scene[p_idx].root->get_script();
|
||||||
if (!s.is_valid() && edited_scene[p_idx].root->get_child_count()) {
|
if (!s.is_valid() && edited_scene[p_idx].root->get_child_count()) {
|
||||||
Node *n = edited_scene[p_idx].root->get_child(0);
|
Node *n = edited_scene[p_idx].root->get_child(0);
|
||||||
while (!s.is_valid() && n && n->get_filename() == String()) {
|
while (!s.is_valid() && n && n->get_scene_file_path() == String()) {
|
||||||
s = n->get_script();
|
s = n->get_script();
|
||||||
n = n->get_parent();
|
n = n->get_parent();
|
||||||
}
|
}
|
||||||
@ -777,11 +777,11 @@ String EditorData::get_scene_title(int p_idx, bool p_always_strip_extension) con
|
|||||||
if (!edited_scene[p_idx].root) {
|
if (!edited_scene[p_idx].root) {
|
||||||
return TTR("[empty]");
|
return TTR("[empty]");
|
||||||
}
|
}
|
||||||
if (edited_scene[p_idx].root->get_filename() == "") {
|
if (edited_scene[p_idx].root->get_scene_file_path() == "") {
|
||||||
return TTR("[unsaved]");
|
return TTR("[unsaved]");
|
||||||
}
|
}
|
||||||
|
|
||||||
const String filename = edited_scene[p_idx].root->get_filename().get_file();
|
const String filename = edited_scene[p_idx].root->get_scene_file_path().get_file();
|
||||||
const String basename = filename.get_basename();
|
const String basename = filename.get_basename();
|
||||||
|
|
||||||
if (p_always_strip_extension) {
|
if (p_always_strip_extension) {
|
||||||
@ -795,7 +795,7 @@ String EditorData::get_scene_title(int p_idx, bool p_always_strip_extension) con
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (edited_scene[i].root && basename == edited_scene[i].root->get_filename().get_file().get_basename()) {
|
if (edited_scene[i].root && basename == edited_scene[i].root->get_scene_file_path().get_file().get_basename()) {
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -811,17 +811,17 @@ void EditorData::set_scene_path(int p_idx, const String &p_path) {
|
|||||||
if (!edited_scene[p_idx].root) {
|
if (!edited_scene[p_idx].root) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
edited_scene[p_idx].root->set_filename(p_path);
|
edited_scene[p_idx].root->set_scene_file_path(p_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
String EditorData::get_scene_path(int p_idx) const {
|
String EditorData::get_scene_path(int p_idx) const {
|
||||||
ERR_FAIL_INDEX_V(p_idx, edited_scene.size(), String());
|
ERR_FAIL_INDEX_V(p_idx, edited_scene.size(), String());
|
||||||
|
|
||||||
if (edited_scene[p_idx].root) {
|
if (edited_scene[p_idx].root) {
|
||||||
if (edited_scene[p_idx].root->get_filename() == "") {
|
if (edited_scene[p_idx].root->get_scene_file_path() == "") {
|
||||||
edited_scene[p_idx].root->set_filename(edited_scene[p_idx].path);
|
edited_scene[p_idx].root->set_scene_file_path(edited_scene[p_idx].path);
|
||||||
} else {
|
} else {
|
||||||
return edited_scene[p_idx].root->get_filename();
|
return edited_scene[p_idx].root->get_scene_file_path();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ void EditorNode::_version_control_menu_option(int p_idx) {
|
|||||||
void EditorNode::_update_title() {
|
void EditorNode::_update_title() {
|
||||||
const String appname = ProjectSettings::get_singleton()->get("application/config/name");
|
const String appname = ProjectSettings::get_singleton()->get("application/config/name");
|
||||||
String title = (appname.is_empty() ? "Unnamed Project" : appname) + String(" - ") + VERSION_NAME;
|
String title = (appname.is_empty() ? "Unnamed Project" : appname) + String(" - ") + VERSION_NAME;
|
||||||
const String edited = editor_data.get_edited_scene_root() ? editor_data.get_edited_scene_root()->get_filename() : String();
|
const String edited = editor_data.get_edited_scene_root() ? editor_data.get_edited_scene_root()->get_scene_file_path() : String();
|
||||||
if (!edited.is_empty()) {
|
if (!edited.is_empty()) {
|
||||||
// Display the edited scene name before the program name so that it can be seen in the OS task bar.
|
// Display the edited scene name before the program name so that it can be seen in the OS task bar.
|
||||||
title = vformat("%s - %s", edited.get_file(), title);
|
title = vformat("%s - %s", edited.get_file(), title);
|
||||||
@ -1175,7 +1175,7 @@ void EditorNode::save_resource_as(const Ref<Resource> &p_resource, const String
|
|||||||
int srpos = path.find("::");
|
int srpos = path.find("::");
|
||||||
if (srpos != -1) {
|
if (srpos != -1) {
|
||||||
String base = path.substr(0, srpos);
|
String base = path.substr(0, srpos);
|
||||||
if (!get_edited_scene() || get_edited_scene()->get_filename() != base) {
|
if (!get_edited_scene() || get_edited_scene()->get_scene_file_path() != base) {
|
||||||
show_warning(TTR("This resource can't be saved because it does not belong to the edited scene. Make it unique first."));
|
show_warning(TTR("This resource can't be saved because it does not belong to the edited scene. Make it unique first."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1549,7 +1549,7 @@ void EditorNode::_save_scene_with_preview(String p_file, int p_idx) {
|
|||||||
bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_node) {
|
bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_node) {
|
||||||
for (int i = 0; i < p_node->get_child_count(); i++) {
|
for (int i = 0; i < p_node->get_child_count(); i++) {
|
||||||
Node *child = p_node->get_child(i);
|
Node *child = p_node->get_child(i);
|
||||||
if (child->get_filename() == p_filename) {
|
if (child->get_scene_file_path() == p_filename) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1645,7 +1645,7 @@ void EditorNode::_save_scene(String p_file, int idx) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scene->get_filename() != String() && _validate_scene_recursive(scene->get_filename(), scene)) {
|
if (scene->get_scene_file_path() != String() && _validate_scene_recursive(scene->get_scene_file_path(), scene)) {
|
||||||
show_accept(TTR("This scene can't be saved because there is a cyclic instancing inclusion.\nPlease resolve it and then attempt to save again."), TTR("OK"));
|
show_accept(TTR("This scene can't be saved because there is a cyclic instancing inclusion.\nPlease resolve it and then attempt to save again."), TTR("OK"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1699,7 +1699,7 @@ void EditorNode::_save_scene(String p_file, int idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
scene->set_filename(ProjectSettings::get_singleton()->localize_path(p_file));
|
scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(p_file));
|
||||||
if (idx < 0 || idx == editor_data.get_edited_scene()) {
|
if (idx < 0 || idx == editor_data.get_edited_scene()) {
|
||||||
set_current_version(editor_data.get_undo_redo().get_version());
|
set_current_version(editor_data.get_undo_redo().get_version());
|
||||||
} else {
|
} else {
|
||||||
@ -1727,8 +1727,8 @@ void EditorNode::save_scene_list(Vector<String> p_scene_filenames) {
|
|||||||
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
||||||
Node *scene = editor_data.get_edited_scene_root(i);
|
Node *scene = editor_data.get_edited_scene_root(i);
|
||||||
|
|
||||||
if (scene && (p_scene_filenames.find(scene->get_filename()) >= 0)) {
|
if (scene && (p_scene_filenames.find(scene->get_scene_file_path()) >= 0)) {
|
||||||
_save_scene(scene->get_filename(), i);
|
_save_scene(scene->get_scene_file_path(), i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1738,7 +1738,7 @@ void EditorNode::restart_editor() {
|
|||||||
|
|
||||||
String to_reopen;
|
String to_reopen;
|
||||||
if (get_tree()->get_edited_scene_root()) {
|
if (get_tree()->get_edited_scene_root()) {
|
||||||
to_reopen = get_tree()->get_edited_scene_root()->get_filename();
|
to_reopen = get_tree()->get_edited_scene_root()->get_scene_file_path();
|
||||||
}
|
}
|
||||||
|
|
||||||
_exit_editor();
|
_exit_editor();
|
||||||
@ -1757,11 +1757,11 @@ void EditorNode::restart_editor() {
|
|||||||
void EditorNode::_save_all_scenes() {
|
void EditorNode::_save_all_scenes() {
|
||||||
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
||||||
Node *scene = editor_data.get_edited_scene_root(i);
|
Node *scene = editor_data.get_edited_scene_root(i);
|
||||||
if (scene && scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
|
if (scene && scene->get_scene_file_path() != "" && DirAccess::exists(scene->get_scene_file_path().get_base_dir())) {
|
||||||
if (i != editor_data.get_edited_scene()) {
|
if (i != editor_data.get_edited_scene()) {
|
||||||
_save_scene(scene->get_filename(), i);
|
_save_scene(scene->get_scene_file_path(), i);
|
||||||
} else {
|
} else {
|
||||||
_save_scene_with_preview(scene->get_filename());
|
_save_scene_with_preview(scene->get_scene_file_path());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
|
show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
|
||||||
@ -1778,7 +1778,7 @@ void EditorNode::_mark_unsaved_scenes() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String path = node->get_filename();
|
String path = node->get_scene_file_path();
|
||||||
if (!(path == String() || FileAccess::exists(path))) {
|
if (!(path == String() || FileAccess::exists(path))) {
|
||||||
if (i == editor_data.get_edited_scene()) {
|
if (i == editor_data.get_edited_scene()) {
|
||||||
set_current_version(-1);
|
set_current_version(-1);
|
||||||
@ -2130,7 +2130,7 @@ void EditorNode::_edit_current() {
|
|||||||
if (FileAccess::exists(base_path + ".import")) {
|
if (FileAccess::exists(base_path + ".import")) {
|
||||||
editable_warning = TTR("This resource belongs to a scene that was imported, so it's not editable.\nPlease read the documentation relevant to importing scenes to better understand this workflow.");
|
editable_warning = TTR("This resource belongs to a scene that was imported, so it's not editable.\nPlease read the documentation relevant to importing scenes to better understand this workflow.");
|
||||||
} else {
|
} else {
|
||||||
if ((!get_edited_scene() || get_edited_scene()->get_filename() != base_path) && ResourceLoader::get_resource_type(base_path) == "PackedScene") {
|
if ((!get_edited_scene() || get_edited_scene()->get_scene_file_path() != base_path) && ResourceLoader::get_resource_type(base_path) == "PackedScene") {
|
||||||
editable_warning = TTR("This resource belongs to a scene that was instantiated or inherited.\nChanges to it won't be kept when saving the current scene.");
|
editable_warning = TTR("This resource belongs to a scene that was instantiated or inherited.\nChanges to it won't be kept when saving the current scene.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2154,8 +2154,8 @@ void EditorNode::_edit_current() {
|
|||||||
inspector_dock->update(nullptr);
|
inspector_dock->update(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_edited_scene() && get_edited_scene()->get_filename() != String()) {
|
if (get_edited_scene() && get_edited_scene()->get_scene_file_path() != String()) {
|
||||||
String source_scene = get_edited_scene()->get_filename();
|
String source_scene = get_edited_scene()->get_scene_file_path();
|
||||||
if (FileAccess::exists(source_scene + ".import")) {
|
if (FileAccess::exists(source_scene + ".import")) {
|
||||||
editable_warning = TTR("This scene was imported, so changes to it won't be kept.\nInstancing it or inheriting will allow making changes to it.\nPlease read the documentation relevant to importing scenes to better understand this workflow.");
|
editable_warning = TTR("This scene was imported, so changes to it won't be kept.\nInstancing it or inheriting will allow making changes to it.\nPlease read the documentation relevant to importing scenes to better understand this workflow.");
|
||||||
}
|
}
|
||||||
@ -2278,7 +2278,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||||||
String args;
|
String args;
|
||||||
bool skip_breakpoints;
|
bool skip_breakpoints;
|
||||||
|
|
||||||
if (p_current || (editor_data.get_edited_scene_root() && p_custom != String() && p_custom == editor_data.get_edited_scene_root()->get_filename())) {
|
if (p_current || (editor_data.get_edited_scene_root() && p_custom != String() && p_custom == editor_data.get_edited_scene_root()->get_scene_file_path())) {
|
||||||
Node *scene = editor_data.get_edited_scene_root();
|
Node *scene = editor_data.get_edited_scene_root();
|
||||||
|
|
||||||
if (!scene) {
|
if (!scene) {
|
||||||
@ -2286,7 +2286,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scene->get_filename() == "") {
|
if (scene->get_scene_file_path() == "") {
|
||||||
current_option = -1;
|
current_option = -1;
|
||||||
_menu_option(FILE_SAVE_AS_SCENE);
|
_menu_option(FILE_SAVE_AS_SCENE);
|
||||||
// Set the option to save and run so when the dialog is accepted, the scene runs.
|
// Set the option to save and run so when the dialog is accepted, the scene runs.
|
||||||
@ -2295,7 +2295,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
run_filename = scene->get_filename();
|
run_filename = scene->get_scene_file_path();
|
||||||
} else if (p_custom != "") {
|
} else if (p_custom != "") {
|
||||||
run_filename = p_custom;
|
run_filename = p_custom;
|
||||||
}
|
}
|
||||||
@ -2311,8 +2311,8 @@ void EditorNode::_run(bool p_current, const String &p_custom) {
|
|||||||
if (unsaved_cache) {
|
if (unsaved_cache) {
|
||||||
Node *scene = editor_data.get_edited_scene_root();
|
Node *scene = editor_data.get_edited_scene_root();
|
||||||
|
|
||||||
if (scene && scene->get_filename() != "") { // Only autosave if there is a scene and if it has a path.
|
if (scene && scene->get_scene_file_path() != "") { // Only autosave if there is a scene and if it has a path.
|
||||||
_save_scene_with_preview(scene->get_filename());
|
_save_scene_with_preview(scene->get_scene_file_path());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_menu_option(FILE_SAVE_ALL_SCENES);
|
_menu_option(FILE_SAVE_ALL_SCENES);
|
||||||
@ -2405,7 +2405,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
|
|
||||||
Node *scene = editor_data.get_edited_scene_root();
|
Node *scene = editor_data.get_edited_scene_root();
|
||||||
if (scene) {
|
if (scene) {
|
||||||
file->set_current_path(scene->get_filename());
|
file->set_current_path(scene->get_scene_file_path());
|
||||||
};
|
};
|
||||||
file->set_title(p_option == FILE_OPEN_SCENE ? TTR("Open Scene") : TTR("Open Base Scene"));
|
file->set_title(p_option == FILE_OPEN_SCENE ? TTR("Open Scene") : TTR("Open Base Scene"));
|
||||||
file->popup_file_dialog();
|
file->popup_file_dialog();
|
||||||
@ -2467,7 +2467,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
if (unsaved_cache || p_option == FILE_CLOSE_ALL_AND_QUIT || p_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) {
|
if (unsaved_cache || p_option == FILE_CLOSE_ALL_AND_QUIT || p_option == FILE_CLOSE_ALL_AND_RUN_PROJECT_MANAGER) {
|
||||||
Node *scene_root = editor_data.get_edited_scene_root(tab_closing);
|
Node *scene_root = editor_data.get_edited_scene_root(tab_closing);
|
||||||
if (scene_root) {
|
if (scene_root) {
|
||||||
String scene_filename = scene_root->get_filename();
|
String scene_filename = scene_root->get_scene_file_path();
|
||||||
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
||||||
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene_filename != "" ? scene_filename : "unsaved scene"));
|
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene_filename != "" ? scene_filename : "unsaved scene"));
|
||||||
save_confirmation->popup_centered();
|
save_confirmation->popup_centered();
|
||||||
@ -2487,12 +2487,12 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
case FILE_SAVE_SCENE: {
|
case FILE_SAVE_SCENE: {
|
||||||
int scene_idx = (p_option == FILE_SAVE_SCENE) ? -1 : tab_closing;
|
int scene_idx = (p_option == FILE_SAVE_SCENE) ? -1 : tab_closing;
|
||||||
Node *scene = editor_data.get_edited_scene_root(scene_idx);
|
Node *scene = editor_data.get_edited_scene_root(scene_idx);
|
||||||
if (scene && scene->get_filename() != "") {
|
if (scene && scene->get_scene_file_path() != "") {
|
||||||
if (DirAccess::exists(scene->get_filename().get_base_dir())) {
|
if (DirAccess::exists(scene->get_scene_file_path().get_base_dir())) {
|
||||||
if (scene_idx != editor_data.get_edited_scene()) {
|
if (scene_idx != editor_data.get_edited_scene()) {
|
||||||
_save_scene_with_preview(scene->get_filename(), scene_idx);
|
_save_scene_with_preview(scene->get_scene_file_path(), scene_idx);
|
||||||
} else {
|
} else {
|
||||||
_save_scene_with_preview(scene->get_filename());
|
_save_scene_with_preview(scene->get_scene_file_path());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scene_idx != -1) {
|
if (scene_idx != -1) {
|
||||||
@ -2500,7 +2500,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
}
|
}
|
||||||
save_layout();
|
save_layout();
|
||||||
} else {
|
} else {
|
||||||
show_save_accept(vformat(TTR("%s no longer exists! Please specify a new save location."), scene->get_filename().get_base_dir()), TTR("OK"));
|
show_save_accept(vformat(TTR("%s no longer exists! Please specify a new save location."), scene->get_scene_file_path().get_base_dir()), TTR("OK"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2543,8 +2543,8 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper());
|
file->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scene->get_filename() != "") {
|
if (scene->get_scene_file_path() != "") {
|
||||||
String path = scene->get_filename();
|
String path = scene->get_scene_file_path();
|
||||||
file->set_current_path(path);
|
file->set_current_path(path);
|
||||||
if (extensions.size()) {
|
if (extensions.size()) {
|
||||||
String ext = path.get_extension().to_lower();
|
String ext = path.get_extension().to_lower();
|
||||||
@ -2642,7 +2642,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
String filename = scene->get_filename();
|
String filename = scene->get_scene_file_path();
|
||||||
|
|
||||||
if (filename == String()) {
|
if (filename == String()) {
|
||||||
show_warning(TTR("Can't reload a scene that was never saved."));
|
show_warning(TTR("Can't reload a scene that was never saved."));
|
||||||
@ -2764,7 +2764,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
String unsaved_scenes;
|
String unsaved_scenes;
|
||||||
int i = _next_unsaved_scene(true, 0);
|
int i = _next_unsaved_scene(true, 0);
|
||||||
while (i != -1) {
|
while (i != -1) {
|
||||||
unsaved_scenes += "\n " + editor_data.get_edited_scene_root(i)->get_filename();
|
unsaved_scenes += "\n " + editor_data.get_edited_scene_root(i)->get_scene_file_path();
|
||||||
i = _next_unsaved_scene(true, ++i);
|
i = _next_unsaved_scene(true, ++i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2839,7 +2839,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
|||||||
|
|
||||||
Node *scene = editor_data.get_edited_scene_root();
|
Node *scene = editor_data.get_edited_scene_root();
|
||||||
if (scene) {
|
if (scene) {
|
||||||
file->set_current_path(scene->get_filename());
|
file->set_current_path(scene->get_scene_file_path());
|
||||||
};
|
};
|
||||||
file->set_title(TTR("Pick a Main Scene"));
|
file->set_title(TTR("Pick a Main Scene"));
|
||||||
file->popup_file_dialog();
|
file->popup_file_dialog();
|
||||||
@ -2941,7 +2941,7 @@ int EditorNode::_next_unsaved_scene(bool p_valid_filename, int p_start) {
|
|||||||
int current = editor_data.get_edited_scene();
|
int current = editor_data.get_edited_scene();
|
||||||
bool unsaved = (i == current) ? saved_version != editor_data.get_undo_redo().get_version() : editor_data.get_scene_version(i) != 0;
|
bool unsaved = (i == current) ? saved_version != editor_data.get_undo_redo().get_version() : editor_data.get_scene_version(i) != 0;
|
||||||
if (unsaved) {
|
if (unsaved) {
|
||||||
String scene_filename = editor_data.get_edited_scene_root(i)->get_filename();
|
String scene_filename = editor_data.get_edited_scene_root(i)->get_scene_file_path();
|
||||||
if (p_valid_filename && scene_filename.length() == 0) {
|
if (p_valid_filename && scene_filename.length() == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -2973,7 +2973,7 @@ void EditorNode::_discard_changes(const String &p_str) {
|
|||||||
case SCENE_TAB_CLOSE: {
|
case SCENE_TAB_CLOSE: {
|
||||||
Node *scene = editor_data.get_edited_scene_root(tab_closing);
|
Node *scene = editor_data.get_edited_scene_root(tab_closing);
|
||||||
if (scene != nullptr) {
|
if (scene != nullptr) {
|
||||||
String scene_filename = scene->get_filename();
|
String scene_filename = scene->get_scene_file_path();
|
||||||
if (scene_filename != "") {
|
if (scene_filename != "") {
|
||||||
previous_scenes.push_back(scene_filename);
|
previous_scenes.push_back(scene_filename);
|
||||||
}
|
}
|
||||||
@ -3602,7 +3602,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
|
|||||||
Ref<SceneState> state = sdata->get_state();
|
Ref<SceneState> state = sdata->get_state();
|
||||||
state->set_path(lpath);
|
state->set_path(lpath);
|
||||||
new_scene->set_scene_inherited_state(state);
|
new_scene->set_scene_inherited_state(state);
|
||||||
new_scene->set_filename(String());
|
new_scene->set_scene_file_path(String());
|
||||||
}
|
}
|
||||||
|
|
||||||
new_scene->set_scene_instance_state(Ref<SceneState>());
|
new_scene->set_scene_instance_state(Ref<SceneState>());
|
||||||
@ -3775,7 +3775,7 @@ void EditorNode::_load_error_notify(void *p_ud, const String &p_text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool EditorNode::_find_scene_in_use(Node *p_node, const String &p_path) const {
|
bool EditorNode::_find_scene_in_use(Node *p_node, const String &p_path) const {
|
||||||
if (p_node->get_filename() == p_path) {
|
if (p_node->get_scene_file_path() == p_path) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3953,7 +3953,7 @@ void EditorNode::_pick_main_scene_custom_action(const String &p_custom_action_na
|
|||||||
|
|
||||||
pick_main_scene->hide();
|
pick_main_scene->hide();
|
||||||
current_option = SETTINGS_PICK_MAIN_SCENE;
|
current_option = SETTINGS_PICK_MAIN_SCENE;
|
||||||
_dialog_action(scene->get_filename());
|
_dialog_action(scene->get_scene_file_path());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4943,7 +4943,7 @@ void EditorNode::_scene_tab_closed(int p_tab, int option) {
|
|||||||
editor_data.get_scene_version(p_tab) != 0;
|
editor_data.get_scene_version(p_tab) != 0;
|
||||||
if (unsaved) {
|
if (unsaved) {
|
||||||
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
save_confirmation->get_ok_button()->set_text(TTR("Save & Close"));
|
||||||
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene->get_filename() != "" ? scene->get_filename() : "unsaved scene"));
|
save_confirmation->set_text(vformat(TTR("Save changes to '%s' before closing?"), scene->get_scene_file_path() != "" ? scene->get_scene_file_path() : "unsaved scene"));
|
||||||
save_confirmation->popup_centered();
|
save_confirmation->popup_centered();
|
||||||
} else {
|
} else {
|
||||||
_discard_changes();
|
_discard_changes();
|
||||||
|
@ -219,7 +219,7 @@ Array EditorInterface::get_open_scenes() const {
|
|||||||
if (scenes[idx_scn].root == nullptr) {
|
if (scenes[idx_scn].root == nullptr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ret.push_back(scenes[idx_scn].root->get_filename());
|
ret.push_back(scenes[idx_scn].root->get_scene_file_path());
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -291,11 +291,11 @@ Error EditorInterface::save_scene() {
|
|||||||
if (!get_edited_scene_root()) {
|
if (!get_edited_scene_root()) {
|
||||||
return ERR_CANT_CREATE;
|
return ERR_CANT_CREATE;
|
||||||
}
|
}
|
||||||
if (get_edited_scene_root()->get_filename() == String()) {
|
if (get_edited_scene_root()->get_scene_file_path() == String()) {
|
||||||
return ERR_CANT_CREATE;
|
return ERR_CANT_CREATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
save_scene_as(get_edited_scene_root()->get_filename());
|
save_scene_as(get_edited_scene_root()->get_scene_file_path());
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1175,7 +1175,7 @@ void FileSystemDock::_try_move_item(const FileOrFolder &p_item, const String &p_
|
|||||||
EditorData *ed = &editor->get_editor_data();
|
EditorData *ed = &editor->get_editor_data();
|
||||||
for (int j = 0; j < ed->get_edited_scene_count(); j++) {
|
for (int j = 0; j < ed->get_edited_scene_count(); j++) {
|
||||||
if (ed->get_scene_path(j) == file_changed_paths[i]) {
|
if (ed->get_scene_path(j) == file_changed_paths[i]) {
|
||||||
ed->get_edited_scene_root(j)->set_filename(new_item_path);
|
ed->get_edited_scene_root(j)->set_scene_file_path(new_item_path);
|
||||||
editor->save_layout();
|
editor->save_layout();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1260,7 +1260,7 @@ void FileSystemDock::_update_resource_paths_after_move(const Map<String, String>
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
path = get_tree()->get_edited_scene_root()->get_filename();
|
path = get_tree()->get_edited_scene_root()->get_scene_file_path();
|
||||||
} else {
|
} else {
|
||||||
path = EditorNode::get_editor_data().get_scene_path(i);
|
path = EditorNode::get_editor_data().get_scene_path(i);
|
||||||
}
|
}
|
||||||
@ -1270,7 +1270,7 @@ void FileSystemDock::_update_resource_paths_after_move(const Map<String, String>
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i == EditorNode::get_editor_data().get_edited_scene()) {
|
if (i == EditorNode::get_editor_data().get_edited_scene()) {
|
||||||
get_tree()->get_edited_scene_root()->set_filename(path);
|
get_tree()->get_edited_scene_root()->set_scene_file_path(path);
|
||||||
} else {
|
} else {
|
||||||
EditorNode::get_editor_data().set_scene_path(i, path);
|
EditorNode::get_editor_data().set_scene_path(i, path);
|
||||||
}
|
}
|
||||||
|
@ -1460,8 +1460,8 @@ bool CanvasItemEditor::_gui_input_open_scene_on_double_click(const Ref<InputEven
|
|||||||
List<CanvasItem *> selection = _get_edited_canvas_items();
|
List<CanvasItem *> selection = _get_edited_canvas_items();
|
||||||
if (selection.size() == 1) {
|
if (selection.size() == 1) {
|
||||||
CanvasItem *canvas_item = selection[0];
|
CanvasItem *canvas_item = selection[0];
|
||||||
if (canvas_item->get_filename() != "" && canvas_item != editor->get_edited_scene()) {
|
if (canvas_item->get_scene_file_path() != "" && canvas_item != editor->get_edited_scene()) {
|
||||||
editor->open_request(canvas_item->get_filename());
|
editor->open_request(canvas_item->get_scene_file_path());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5800,7 +5800,7 @@ void CanvasItemEditorViewport::_remove_preview() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node) {
|
bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node) {
|
||||||
if (p_desired_node->get_filename() == p_target_scene_path) {
|
if (p_desired_node->get_scene_file_path() == p_target_scene_path) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5897,14 +5897,14 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editor->get_edited_scene()->get_filename() != "") { // cyclical instancing
|
if (editor->get_edited_scene()->get_scene_file_path() != "") { // cyclical instancing
|
||||||
if (_cyclical_dependency_exists(editor->get_edited_scene()->get_filename(), instantiated_scene)) {
|
if (_cyclical_dependency_exists(editor->get_edited_scene()->get_scene_file_path(), instantiated_scene)) {
|
||||||
memdelete(instantiated_scene);
|
memdelete(instantiated_scene);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
instantiated_scene->set_filename(ProjectSettings::get_singleton()->localize_path(path));
|
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
|
||||||
|
|
||||||
editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
|
editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
|
||||||
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
|
editor_data->get_undo_redo().add_do_method(instantiated_scene, "set_owner", editor->get_edited_scene());
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
void GPUParticlesCollisionSDFEditorPlugin::_bake() {
|
void GPUParticlesCollisionSDFEditorPlugin::_bake() {
|
||||||
if (col_sdf) {
|
if (col_sdf) {
|
||||||
if (col_sdf->get_texture().is_null() || !col_sdf->get_texture()->get_path().is_resource_file()) {
|
if (col_sdf->get_texture().is_null() || !col_sdf->get_texture()->get_path().is_resource_file()) {
|
||||||
String path = get_tree()->get_edited_scene_root()->get_filename();
|
String path = get_tree()->get_edited_scene_root()->get_scene_file_path();
|
||||||
if (path == String()) {
|
if (path == String()) {
|
||||||
path = "res://" + col_sdf->get_name() + "_data.exr";
|
path = "res://" + col_sdf->get_name() + "_data.exr";
|
||||||
} else {
|
} else {
|
||||||
|
@ -43,9 +43,9 @@ void LightmapGIEditorPlugin::_bake_select_file(const String &p_file) {
|
|||||||
|
|
||||||
switch (err) {
|
switch (err) {
|
||||||
case LightmapGI::BAKE_ERROR_NO_SAVE_PATH: {
|
case LightmapGI::BAKE_ERROR_NO_SAVE_PATH: {
|
||||||
String scene_path = lightmap->get_filename();
|
String scene_path = lightmap->get_scene_file_path();
|
||||||
if (scene_path == String()) {
|
if (scene_path == String()) {
|
||||||
scene_path = lightmap->get_owner()->get_filename();
|
scene_path = lightmap->get_owner()->get_scene_file_path();
|
||||||
}
|
}
|
||||||
if (scene_path == String()) {
|
if (scene_path == String()) {
|
||||||
EditorNode::get_singleton()->show_warning(TTR("Can't determine a save path for lightmap images.\nSave your scene and try again."));
|
EditorNode::get_singleton()->show_warning(TTR("Can't determine a save path for lightmap images.\nSave your scene and try again."));
|
||||||
|
@ -3917,7 +3917,7 @@ void Node3DEditorViewport::_remove_preview() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Node3DEditorViewport::_cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node) {
|
bool Node3DEditorViewport::_cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node) {
|
||||||
if (p_desired_node->get_filename() == p_target_scene_path) {
|
if (p_desired_node->get_scene_file_path() == p_target_scene_path) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3959,15 +3959,15 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editor->get_edited_scene()->get_filename() != "") { // cyclical instancing
|
if (editor->get_edited_scene()->get_scene_file_path() != "") { // cyclical instancing
|
||||||
if (_cyclical_dependency_exists(editor->get_edited_scene()->get_filename(), instantiated_scene)) {
|
if (_cyclical_dependency_exists(editor->get_edited_scene()->get_scene_file_path(), instantiated_scene)) {
|
||||||
memdelete(instantiated_scene);
|
memdelete(instantiated_scene);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scene != nullptr) {
|
if (scene != nullptr) {
|
||||||
instantiated_scene->set_filename(ProjectSettings::get_singleton()->localize_path(path));
|
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
|
editor_data->get_undo_redo().add_do_method(parent, "add_child", instantiated_scene);
|
||||||
|
@ -41,9 +41,9 @@ void OccluderInstance3DEditorPlugin::_bake_select_file(const String &p_file) {
|
|||||||
|
|
||||||
switch (err) {
|
switch (err) {
|
||||||
case OccluderInstance3D::BAKE_ERROR_NO_SAVE_PATH: {
|
case OccluderInstance3D::BAKE_ERROR_NO_SAVE_PATH: {
|
||||||
String scene_path = occluder_instance->get_filename();
|
String scene_path = occluder_instance->get_scene_file_path();
|
||||||
if (scene_path == String()) {
|
if (scene_path == String()) {
|
||||||
scene_path = occluder_instance->get_owner()->get_filename();
|
scene_path = occluder_instance->get_owner()->get_scene_file_path();
|
||||||
}
|
}
|
||||||
if (scene_path == String()) {
|
if (scene_path == String()) {
|
||||||
EditorNode::get_singleton()->show_warning(TTR("Can't determine a save path for the occluder.\nSave your scene and try again."));
|
EditorNode::get_singleton()->show_warning(TTR("Can't determine a save path for the occluder.\nSave your scene and try again."));
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
void VoxelGIEditorPlugin::_bake() {
|
void VoxelGIEditorPlugin::_bake() {
|
||||||
if (voxel_gi) {
|
if (voxel_gi) {
|
||||||
if (voxel_gi->get_probe_data().is_null()) {
|
if (voxel_gi->get_probe_data().is_null()) {
|
||||||
String path = get_tree()->get_edited_scene_root()->get_filename();
|
String path = get_tree()->get_edited_scene_root()->get_scene_file_path();
|
||||||
if (path == String()) {
|
if (path == String()) {
|
||||||
path = "res://" + voxel_gi->get_name() + "_data.res";
|
path = "res://" + voxel_gi->get_name() + "_data.res";
|
||||||
} else {
|
} else {
|
||||||
|
@ -187,8 +187,8 @@ void SceneTreeDock::_perform_instantiate_scenes(const Vector<String> &p_files, N
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (edited_scene->get_filename() != "") {
|
if (edited_scene->get_scene_file_path() != "") {
|
||||||
if (_cyclical_dependency_exists(edited_scene->get_filename(), instantiated_scene)) {
|
if (_cyclical_dependency_exists(edited_scene->get_scene_file_path(), instantiated_scene)) {
|
||||||
accept->set_text(vformat(TTR("Cannot instance the scene '%s' because the current scene exists within one of its nodes."), p_files[i]));
|
accept->set_text(vformat(TTR("Cannot instance the scene '%s' because the current scene exists within one of its nodes."), p_files[i]));
|
||||||
accept->popup_centered();
|
accept->popup_centered();
|
||||||
error = true;
|
error = true;
|
||||||
@ -196,7 +196,7 @@ void SceneTreeDock::_perform_instantiate_scenes(const Vector<String> &p_files, N
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
instantiated_scene->set_filename(ProjectSettings::get_singleton()->localize_path(p_files[i]));
|
instantiated_scene->set_scene_file_path(ProjectSettings::get_singleton()->localize_path(p_files[i]));
|
||||||
|
|
||||||
instances.push_back(instantiated_scene);
|
instances.push_back(instantiated_scene);
|
||||||
}
|
}
|
||||||
@ -307,7 +307,7 @@ bool SceneTreeDock::_track_inherit(const String &p_target_scene_path, Node *p_de
|
|||||||
bool result = false;
|
bool result = false;
|
||||||
Vector<Node *> instances;
|
Vector<Node *> instances;
|
||||||
while (true) {
|
while (true) {
|
||||||
if (p->get_filename() == p_target_scene_path) {
|
if (p->get_scene_file_path() == p_target_scene_path) {
|
||||||
result = true;
|
result = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -442,7 +442,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
if (!node_clipboard.is_empty()) {
|
if (!node_clipboard.is_empty()) {
|
||||||
_clear_clipboard();
|
_clear_clipboard();
|
||||||
}
|
}
|
||||||
clipboard_source_scene = editor->get_edited_scene()->get_filename();
|
clipboard_source_scene = editor->get_edited_scene()->get_scene_file_path();
|
||||||
|
|
||||||
selection.sort_custom<Node::Comparator>();
|
selection.sort_custom<Node::Comparator>();
|
||||||
|
|
||||||
@ -465,9 +465,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool has_cycle = false;
|
bool has_cycle = false;
|
||||||
if (edited_scene->get_filename() != String()) {
|
if (edited_scene->get_scene_file_path() != String()) {
|
||||||
for (Node *E : node_clipboard) {
|
for (Node *E : node_clipboard) {
|
||||||
if (edited_scene->get_filename() == E->get_filename()) {
|
if (edited_scene->get_scene_file_path() == E->get_scene_file_path()) {
|
||||||
has_cycle = true;
|
has_cycle = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -496,7 +496,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
editor_data->get_undo_redo().add_do_method(editor_selection, "clear");
|
editor_data->get_undo_redo().add_do_method(editor_selection, "clear");
|
||||||
|
|
||||||
Map<RES, RES> resource_remap;
|
Map<RES, RES> resource_remap;
|
||||||
String target_scene = editor->get_edited_scene()->get_filename();
|
String target_scene = editor->get_edited_scene()->get_scene_file_path();
|
||||||
if (target_scene != clipboard_source_scene) {
|
if (target_scene != clipboard_source_scene) {
|
||||||
if (!clipboard_resource_remap.has(target_scene)) {
|
if (!clipboard_resource_remap.has(target_scene)) {
|
||||||
Map<RES, RES> remap;
|
Map<RES, RES> remap;
|
||||||
@ -808,7 +808,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node->get_filename() != String()) {
|
if (node->get_scene_file_path() != String()) {
|
||||||
accept->set_text(TTR("Instantiated scenes can't become root"));
|
accept->set_text(TTR("Instantiated scenes can't become root"));
|
||||||
accept->popup_centered();
|
accept->popup_centered();
|
||||||
return;
|
return;
|
||||||
@ -818,14 +818,14 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
editor_data->get_undo_redo().add_do_method(node->get_parent(), "remove_child", node);
|
editor_data->get_undo_redo().add_do_method(node->get_parent(), "remove_child", node);
|
||||||
editor_data->get_undo_redo().add_do_method(editor, "set_edited_scene", node);
|
editor_data->get_undo_redo().add_do_method(editor, "set_edited_scene", node);
|
||||||
editor_data->get_undo_redo().add_do_method(node, "add_child", root);
|
editor_data->get_undo_redo().add_do_method(node, "add_child", root);
|
||||||
editor_data->get_undo_redo().add_do_method(node, "set_filename", root->get_filename());
|
editor_data->get_undo_redo().add_do_method(node, "set_scene_file_path", root->get_scene_file_path());
|
||||||
editor_data->get_undo_redo().add_do_method(root, "set_filename", String());
|
editor_data->get_undo_redo().add_do_method(root, "set_scene_file_path", String());
|
||||||
editor_data->get_undo_redo().add_do_method(node, "set_owner", (Object *)nullptr);
|
editor_data->get_undo_redo().add_do_method(node, "set_owner", (Object *)nullptr);
|
||||||
editor_data->get_undo_redo().add_do_method(root, "set_owner", node);
|
editor_data->get_undo_redo().add_do_method(root, "set_owner", node);
|
||||||
_node_replace_owner(root, root, node, MODE_DO);
|
_node_replace_owner(root, root, node, MODE_DO);
|
||||||
|
|
||||||
editor_data->get_undo_redo().add_undo_method(root, "set_filename", root->get_filename());
|
editor_data->get_undo_redo().add_undo_method(root, "set_scene_file_path", root->get_scene_file_path());
|
||||||
editor_data->get_undo_redo().add_undo_method(node, "set_filename", String());
|
editor_data->get_undo_redo().add_undo_method(node, "set_scene_file_path", String());
|
||||||
editor_data->get_undo_redo().add_undo_method(node, "remove_child", root);
|
editor_data->get_undo_redo().add_undo_method(node, "remove_child", root);
|
||||||
editor_data->get_undo_redo().add_undo_method(editor, "set_edited_scene", root);
|
editor_data->get_undo_redo().add_undo_method(editor, "set_edited_scene", root);
|
||||||
editor_data->get_undo_redo().add_undo_method(node->get_parent(), "add_child", node);
|
editor_data->get_undo_redo().add_undo_method(node->get_parent(), "add_child", node);
|
||||||
@ -887,7 +887,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
Node *node = remove_list[0];
|
Node *node = remove_list[0];
|
||||||
if (node == editor_data->get_edited_scene_root()) {
|
if (node == editor_data->get_edited_scene_root()) {
|
||||||
msg = vformat(TTR("Delete the root node \"%s\"?"), node->get_name());
|
msg = vformat(TTR("Delete the root node \"%s\"?"), node->get_name());
|
||||||
} else if (node->get_filename() == "" && node->get_child_count() > 0) {
|
} else if (node->get_scene_file_path() == "" && node->get_child_count() > 0) {
|
||||||
// Display this message only for non-instantiated scenes
|
// Display this message only for non-instantiated scenes
|
||||||
msg = vformat(TTR("Delete node \"%s\" and its children?"), node->get_name());
|
msg = vformat(TTR("Delete node \"%s\" and its children?"), node->get_name());
|
||||||
} else {
|
} else {
|
||||||
@ -934,7 +934,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tocopy != editor_data->get_edited_scene_root() && tocopy->get_filename() != "") {
|
if (tocopy != editor_data->get_edited_scene_root() && tocopy->get_scene_file_path() != "") {
|
||||||
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->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();
|
accept->popup_centered();
|
||||||
break;
|
break;
|
||||||
@ -1047,10 +1047,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ERR_FAIL_COND(node->get_filename() == String());
|
ERR_FAIL_COND(node->get_scene_file_path() == String());
|
||||||
undo_redo->create_action(TTR("Make Local"));
|
undo_redo->create_action(TTR("Make Local"));
|
||||||
undo_redo->add_do_method(node, "set_filename", "");
|
undo_redo->add_do_method(node, "set_scene_file_path", "");
|
||||||
undo_redo->add_undo_method(node, "set_filename", node->get_filename());
|
undo_redo->add_undo_method(node, "set_scene_file_path", node->get_scene_file_path());
|
||||||
_node_replace_owner(node, node, root);
|
_node_replace_owner(node, node, root);
|
||||||
undo_redo->add_do_method(scene_tree, "update_tree");
|
undo_redo->add_do_method(scene_tree, "update_tree");
|
||||||
undo_redo->add_undo_method(scene_tree, "update_tree");
|
undo_redo->add_undo_method(scene_tree, "update_tree");
|
||||||
@ -1064,7 +1064,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
|
|||||||
if (e) {
|
if (e) {
|
||||||
Node *node = e->get();
|
Node *node = e->get();
|
||||||
if (node) {
|
if (node) {
|
||||||
scene_tree->emit_signal(SNAME("open"), node->get_filename());
|
scene_tree->emit_signal(SNAME("open"), node->get_scene_file_path());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
@ -1694,7 +1694,7 @@ bool SceneTreeDock::_validate_no_instance() {
|
|||||||
List<Node *> selection = editor_selection->get_selected_node_list();
|
List<Node *> selection = editor_selection->get_selected_node_list();
|
||||||
|
|
||||||
for (Node *E : selection) {
|
for (Node *E : selection) {
|
||||||
if (E != edited_scene && E->get_filename() != "") {
|
if (E != edited_scene && E->get_scene_file_path() != "") {
|
||||||
accept->set_text(TTR("This operation can't be done on instantiated scenes."));
|
accept->set_text(TTR("This operation can't be done on instantiated scenes."));
|
||||||
accept->popup_centered();
|
accept->popup_centered();
|
||||||
return false;
|
return false;
|
||||||
@ -2753,7 +2753,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) {
|
|||||||
|
|
||||||
bool can_replace = true;
|
bool can_replace = true;
|
||||||
for (Node *E : selection) {
|
for (Node *E : selection) {
|
||||||
if (E != edited_scene && (E->get_owner() != edited_scene || E->get_filename() != "")) {
|
if (E != edited_scene && (E->get_owner() != edited_scene || E->get_scene_file_path() != "")) {
|
||||||
can_replace = false;
|
can_replace = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2785,7 +2785,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) {
|
|||||||
menu->add_icon_shortcut(get_theme_icon(SNAME("CopyNodePath"), SNAME("EditorIcons")), ED_GET_SHORTCUT("scene_tree/copy_node_path"), TOOL_COPY_NODE_PATH);
|
menu->add_icon_shortcut(get_theme_icon(SNAME("CopyNodePath"), SNAME("EditorIcons")), ED_GET_SHORTCUT("scene_tree/copy_node_path"), TOOL_COPY_NODE_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_external = (selection[0]->get_filename() != "");
|
bool is_external = (selection[0]->get_scene_file_path() != "");
|
||||||
if (is_external) {
|
if (is_external) {
|
||||||
bool is_inherited = selection[0]->get_scene_inherited_state() != nullptr;
|
bool is_inherited = selection[0]->get_scene_inherited_state() != nullptr;
|
||||||
bool is_top_level = selection[0]->get_owner() == nullptr;
|
bool is_top_level = selection[0]->get_owner() == nullptr;
|
||||||
@ -2885,9 +2885,9 @@ void SceneTreeDock::attach_script_to_selected(bool p_extend) {
|
|||||||
|
|
||||||
Ref<Script> existing = selected->get_script();
|
Ref<Script> existing = selected->get_script();
|
||||||
|
|
||||||
String path = selected->get_filename();
|
String path = selected->get_scene_file_path();
|
||||||
if (path == "") {
|
if (path == "") {
|
||||||
String root_path = editor_data->get_edited_scene_root()->get_filename();
|
String root_path = editor_data->get_edited_scene_root()->get_scene_file_path();
|
||||||
if (root_path == "") {
|
if (root_path == "") {
|
||||||
path = String("res://").plus_file(selected->get_name());
|
path = String("res://").plus_file(selected->get_name());
|
||||||
} else {
|
} else {
|
||||||
@ -2939,7 +2939,7 @@ void SceneTreeDock::attach_shader_to_selected() {
|
|||||||
if (path == "") {
|
if (path == "") {
|
||||||
String root_path;
|
String root_path;
|
||||||
if (editor_data->get_edited_scene_root()) {
|
if (editor_data->get_edited_scene_root()) {
|
||||||
root_path = editor_data->get_edited_scene_root()->get_filename();
|
root_path = editor_data->get_edited_scene_root()->get_scene_file_path();
|
||||||
}
|
}
|
||||||
String shader_name;
|
String shader_name;
|
||||||
if (selected_shader_material->get_name().is_empty()) {
|
if (selected_shader_material->get_name().is_empty()) {
|
||||||
|
@ -66,7 +66,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i
|
|||||||
emit_signal(SNAME("open"), n->get_scene_inherited_state()->get_path());
|
emit_signal(SNAME("open"), n->get_scene_inherited_state()->get_path());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
emit_signal(SNAME("open"), n->get_filename());
|
emit_signal(SNAME("open"), n->get_scene_file_path());
|
||||||
}
|
}
|
||||||
} else if (p_id == BUTTON_SCRIPT) {
|
} else if (p_id == BUTTON_SCRIPT) {
|
||||||
Ref<Script> script_typed = n->get_script();
|
Ref<Script> script_typed = n->get_script();
|
||||||
@ -302,10 +302,10 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent, bool p_scroll
|
|||||||
}
|
}
|
||||||
|
|
||||||
item->set_tooltip(0, tooltip);
|
item->set_tooltip(0, tooltip);
|
||||||
} else if (p_node != get_scene_node() && p_node->get_filename() != "" && can_open_instance) {
|
} else if (p_node != get_scene_node() && p_node->get_scene_file_path() != "" && can_open_instance) {
|
||||||
item->add_button(0, get_theme_icon(SNAME("InstanceOptions"), SNAME("EditorIcons")), BUTTON_SUBSCENE, false, TTR("Open in Editor"));
|
item->add_button(0, get_theme_icon(SNAME("InstanceOptions"), SNAME("EditorIcons")), BUTTON_SUBSCENE, false, TTR("Open in Editor"));
|
||||||
|
|
||||||
String tooltip = String(p_node->get_name()) + "\n" + TTR("Instance:") + " " + p_node->get_filename() + "\n" + TTR("Type:") + " " + p_node->get_class();
|
String tooltip = String(p_node->get_name()) + "\n" + TTR("Instance:") + " " + p_node->get_scene_file_path() + "\n" + TTR("Type:") + " " + p_node->get_class();
|
||||||
if (p_node->get_editor_description() != String()) {
|
if (p_node->get_editor_description() != String()) {
|
||||||
tooltip += "\n\n" + p_node->get_editor_description();
|
tooltip += "\n\n" + p_node->get_editor_description();
|
||||||
}
|
}
|
||||||
@ -954,7 +954,7 @@ Variant SceneTreeEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from
|
|||||||
Node *n = get_node(np);
|
Node *n = get_node(np);
|
||||||
if (n) {
|
if (n) {
|
||||||
// Only allow selection if not part of an instantiated scene.
|
// Only allow selection if not part of an instantiated scene.
|
||||||
if (!n->get_owner() || n->get_owner() == get_scene_node() || n->get_owner()->get_filename() == String()) {
|
if (!n->get_owner() || n->get_owner() == get_scene_node() || n->get_owner()->get_scene_file_path() == String()) {
|
||||||
selected.push_back(n);
|
selected.push_back(n);
|
||||||
icons.push_back(next->get_icon(0));
|
icons.push_back(next->get_icon(0));
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ void SceneExporterGLTFPlugin::convert_scene_to_gltf2() {
|
|||||||
editor->show_accept(TTR("This operation can't be done without a scene."), TTR("OK"));
|
editor->show_accept(TTR("This operation can't be done without a scene."), TTR("OK"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String filename = String(root->get_filename().get_file().get_basename());
|
String filename = String(root->get_scene_file_path().get_file().get_basename());
|
||||||
if (filename.is_empty()) {
|
if (filename.is_empty()) {
|
||||||
filename = root->get_name();
|
filename = root->get_name();
|
||||||
}
|
}
|
||||||
|
@ -114,8 +114,8 @@ void Node::_notification(int p_notification) {
|
|||||||
memdelete(data.path_cache);
|
memdelete(data.path_cache);
|
||||||
data.path_cache = nullptr;
|
data.path_cache = nullptr;
|
||||||
}
|
}
|
||||||
if (data.filename.length()) {
|
if (data.scene_file_path.length()) {
|
||||||
get_multiplayer()->scene_enter_exit_notify(data.filename, this, false);
|
get_multiplayer()->scene_enter_exit_notify(data.scene_file_path, this, false);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_PATH_CHANGED: {
|
case NOTIFICATION_PATH_CHANGED: {
|
||||||
@ -146,9 +146,9 @@ void Node::_notification(int p_notification) {
|
|||||||
|
|
||||||
GDVIRTUAL_CALL(_ready);
|
GDVIRTUAL_CALL(_ready);
|
||||||
|
|
||||||
if (data.filename.length()) {
|
if (data.scene_file_path.length()) {
|
||||||
ERR_FAIL_COND(!is_inside_tree());
|
ERR_FAIL_COND(!is_inside_tree());
|
||||||
get_multiplayer()->scene_enter_exit_notify(data.filename, this, true);
|
get_multiplayer()->scene_enter_exit_notify(data.scene_file_path, this, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
@ -235,7 +235,7 @@ void Node::_propagate_enter_tree() {
|
|||||||
data.blocked--;
|
data.blocked--;
|
||||||
|
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
SceneDebugger::add_to_cache(data.filename, this);
|
SceneDebugger::add_to_cache(data.scene_file_path, this);
|
||||||
#endif
|
#endif
|
||||||
// enter groups
|
// enter groups
|
||||||
}
|
}
|
||||||
@ -253,7 +253,7 @@ void Node::_propagate_exit_tree() {
|
|||||||
//block while removing children
|
//block while removing children
|
||||||
|
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
SceneDebugger::remove_from_cache(data.filename, this);
|
SceneDebugger::remove_from_cache(data.scene_file_path, this);
|
||||||
#endif
|
#endif
|
||||||
data.blocked++;
|
data.blocked++;
|
||||||
|
|
||||||
@ -1846,12 +1846,12 @@ void Node::remove_and_skip() {
|
|||||||
data.parent->remove_child(this);
|
data.parent->remove_child(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::set_filename(const String &p_filename) {
|
void Node::set_scene_file_path(const String &p_scene_file_path) {
|
||||||
data.filename = p_filename;
|
data.scene_file_path = p_scene_file_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
String Node::get_filename() const {
|
String Node::get_scene_file_path() const {
|
||||||
return data.filename;
|
return data.scene_file_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::set_editor_description(const String &p_editor_description) {
|
void Node::set_editor_description(const String &p_editor_description) {
|
||||||
@ -1948,8 +1948,8 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
|
|||||||
nip->set_instance_path(ip->get_instance_path());
|
nip->set_instance_path(ip->get_instance_path());
|
||||||
node = nip;
|
node = nip;
|
||||||
|
|
||||||
} else if ((p_flags & DUPLICATE_USE_INSTANCING) && get_filename() != String()) {
|
} else if ((p_flags & DUPLICATE_USE_INSTANCING) && get_scene_file_path() != String()) {
|
||||||
Ref<PackedScene> res = ResourceLoader::load(get_filename());
|
Ref<PackedScene> res = ResourceLoader::load(get_scene_file_path());
|
||||||
ERR_FAIL_COND_V(res.is_null(), nullptr);
|
ERR_FAIL_COND_V(res.is_null(), nullptr);
|
||||||
PackedScene::GenEditState ges = PackedScene::GEN_EDIT_STATE_DISABLED;
|
PackedScene::GenEditState ges = PackedScene::GEN_EDIT_STATE_DISABLED;
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
@ -1972,8 +1972,8 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
|
|||||||
ERR_FAIL_COND_V(!node, nullptr);
|
ERR_FAIL_COND_V(!node, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_filename() != "") { //an instance
|
if (get_scene_file_path() != "") { //an instance
|
||||||
node->set_filename(get_filename());
|
node->set_scene_file_path(get_scene_file_path());
|
||||||
node->data.editable_instance = data.editable_instance;
|
node->data.editable_instance = data.editable_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2004,7 +2004,7 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
|
|||||||
|
|
||||||
node_tree.push_back(descendant);
|
node_tree.push_back(descendant);
|
||||||
|
|
||||||
if (descendant->get_filename() != "" && instance_roots.has(descendant->get_owner())) {
|
if (descendant->get_scene_file_path() != "" && instance_roots.has(descendant->get_owner())) {
|
||||||
instance_roots.push_back(descendant);
|
instance_roots.push_back(descendant);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2313,7 +2313,7 @@ void Node::replace_by(Node *p_node, bool p_keep_groups) {
|
|||||||
owned_by_owner[i]->set_owner(owner);
|
owned_by_owner[i]->set_owner(owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
p_node->set_filename(get_filename());
|
p_node->set_scene_file_path(get_scene_file_path());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::_replace_connections_target(Node *p_new_target) {
|
void Node::_replace_connections_target(Node *p_new_target) {
|
||||||
@ -2693,8 +2693,8 @@ void Node::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("get_index", "include_internal"), &Node::get_index, DEFVAL(false));
|
ClassDB::bind_method(D_METHOD("get_index", "include_internal"), &Node::get_index, DEFVAL(false));
|
||||||
ClassDB::bind_method(D_METHOD("print_tree"), &Node::print_tree);
|
ClassDB::bind_method(D_METHOD("print_tree"), &Node::print_tree);
|
||||||
ClassDB::bind_method(D_METHOD("print_tree_pretty"), &Node::print_tree_pretty);
|
ClassDB::bind_method(D_METHOD("print_tree_pretty"), &Node::print_tree_pretty);
|
||||||
ClassDB::bind_method(D_METHOD("set_filename", "filename"), &Node::set_filename);
|
ClassDB::bind_method(D_METHOD("set_scene_file_path", "scene_file_path"), &Node::set_scene_file_path);
|
||||||
ClassDB::bind_method(D_METHOD("get_filename"), &Node::get_filename);
|
ClassDB::bind_method(D_METHOD("get_scene_file_path"), &Node::get_scene_file_path);
|
||||||
ClassDB::bind_method(D_METHOD("propagate_notification", "what"), &Node::propagate_notification);
|
ClassDB::bind_method(D_METHOD("propagate_notification", "what"), &Node::propagate_notification);
|
||||||
ClassDB::bind_method(D_METHOD("propagate_call", "method", "args", "parent_first"), &Node::propagate_call, DEFVAL(Array()), DEFVAL(false));
|
ClassDB::bind_method(D_METHOD("propagate_call", "method", "args", "parent_first"), &Node::propagate_call, DEFVAL(Array()), DEFVAL(false));
|
||||||
ClassDB::bind_method(D_METHOD("set_physics_process", "enable"), &Node::set_physics_process);
|
ClassDB::bind_method(D_METHOD("set_physics_process", "enable"), &Node::set_physics_process);
|
||||||
@ -2839,7 +2839,7 @@ void Node::_bind_methods() {
|
|||||||
ADD_SIGNAL(MethodInfo("tree_exited"));
|
ADD_SIGNAL(MethodInfo("tree_exited"));
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_name", "get_name");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_name", "get_name");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "filename", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_filename", "get_filename");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "scene_file_path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_scene_file_path", "get_scene_file_path");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "owner", PROPERTY_HINT_RESOURCE_TYPE, "Node", PROPERTY_USAGE_NONE), "set_owner", "get_owner");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "owner", PROPERTY_HINT_RESOURCE_TYPE, "Node", PROPERTY_USAGE_NONE), "set_owner", "get_owner");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multiplayer", PROPERTY_HINT_RESOURCE_TYPE, "MultiplayerAPI", PROPERTY_USAGE_NONE), "", "get_multiplayer");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multiplayer", PROPERTY_HINT_RESOURCE_TYPE, "MultiplayerAPI", PROPERTY_USAGE_NONE), "", "get_multiplayer");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "custom_multiplayer", PROPERTY_HINT_RESOURCE_TYPE, "MultiplayerAPI", PROPERTY_USAGE_NONE), "set_custom_multiplayer", "get_custom_multiplayer");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "custom_multiplayer", PROPERTY_HINT_RESOURCE_TYPE, "MultiplayerAPI", PROPERTY_USAGE_NONE), "set_custom_multiplayer", "get_custom_multiplayer");
|
||||||
|
@ -96,7 +96,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct Data {
|
struct Data {
|
||||||
String filename;
|
String scene_file_path;
|
||||||
Ref<SceneState> instance_state;
|
Ref<SceneState> instance_state;
|
||||||
Ref<SceneState> inherited_state;
|
Ref<SceneState> inherited_state;
|
||||||
|
|
||||||
@ -353,8 +353,8 @@ public:
|
|||||||
void print_tree();
|
void print_tree();
|
||||||
void print_tree_pretty();
|
void print_tree_pretty();
|
||||||
|
|
||||||
void set_filename(const String &p_filename);
|
void set_scene_file_path(const String &p_scene_file_path);
|
||||||
String get_filename() const;
|
String get_scene_file_path() const;
|
||||||
|
|
||||||
void set_editor_description(const String &p_editor_description);
|
void set_editor_description(const String &p_editor_description);
|
||||||
String get_editor_description() const;
|
String get_editor_description() const;
|
||||||
|
@ -1105,7 +1105,7 @@ Error SceneTree::change_scene_to(const Ref<PackedScene> &p_scene) {
|
|||||||
|
|
||||||
Error SceneTree::reload_current_scene() {
|
Error SceneTree::reload_current_scene() {
|
||||||
ERR_FAIL_COND_V(!current_scene, ERR_UNCONFIGURED);
|
ERR_FAIL_COND_V(!current_scene, ERR_UNCONFIGURED);
|
||||||
String fname = current_scene->get_filename();
|
String fname = current_scene->get_scene_file_path();
|
||||||
return change_scene(fname);
|
return change_scene(fname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
|
|||||||
|
|
||||||
// save the child instantiated scenes that are chosen as editable, so they can be restored
|
// save the child instantiated scenes that are chosen as editable, so they can be restored
|
||||||
// upon load back
|
// upon load back
|
||||||
if (p_node != p_owner && p_node->get_filename() != String() && p_owner->is_editable_instance(p_node)) {
|
if (p_node != p_owner && p_node->get_scene_file_path() != String() && p_owner->is_editable_instance(p_node)) {
|
||||||
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;
|
||||||
@ -437,14 +437,14 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_node->get_filename() != String() && p_node->get_owner() == p_owner && instantiated_by_owner) {
|
if (p_node->get_scene_file_path() != String() && p_node->get_owner() == p_owner && instantiated_by_owner) {
|
||||||
if (p_node->get_scene_instance_load_placeholder()) {
|
if (p_node->get_scene_instance_load_placeholder()) {
|
||||||
//it's a placeholder, use the placeholder path
|
//it's a placeholder, use the placeholder path
|
||||||
nd.instance = _vm_get_variant(p_node->get_filename(), variant_map);
|
nd.instance = _vm_get_variant(p_node->get_scene_file_path(), variant_map);
|
||||||
nd.instance |= FLAG_INSTANCE_IS_PLACEHOLDER;
|
nd.instance |= FLAG_INSTANCE_IS_PLACEHOLDER;
|
||||||
} else {
|
} else {
|
||||||
//must instance ourselves
|
//must instance ourselves
|
||||||
Ref<PackedScene> instance = ResourceLoader::load(p_node->get_filename());
|
Ref<PackedScene> instance = ResourceLoader::load(p_node->get_scene_file_path());
|
||||||
if (!instance.is_valid()) {
|
if (!instance.is_valid()) {
|
||||||
return ERR_CANT_OPEN;
|
return ERR_CANT_OPEN;
|
||||||
}
|
}
|
||||||
@ -454,7 +454,7 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
|
|||||||
}
|
}
|
||||||
n = nullptr;
|
n = nullptr;
|
||||||
} else {
|
} else {
|
||||||
if (n->get_filename() != String()) {
|
if (n->get_scene_file_path() != String()) {
|
||||||
//is an instance
|
//is an instance
|
||||||
Ref<SceneState> state = n->get_scene_instance_state();
|
Ref<SceneState> state = n->get_scene_instance_state();
|
||||||
if (state.is_valid()) {
|
if (state.is_valid()) {
|
||||||
@ -714,7 +714,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
|
|||||||
|
|
||||||
ERR_CONTINUE(!common_parent);
|
ERR_CONTINUE(!common_parent);
|
||||||
|
|
||||||
if (common_parent != p_owner && common_parent->get_filename() == String()) {
|
if (common_parent != p_owner && common_parent->get_scene_file_path() == String()) {
|
||||||
common_parent = common_parent->get_owner();
|
common_parent = common_parent->get_owner();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -774,7 +774,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName
|
|||||||
|
|
||||||
nl = nullptr;
|
nl = nullptr;
|
||||||
} else {
|
} else {
|
||||||
if (nl->get_filename() != String()) {
|
if (nl->get_scene_file_path() != String()) {
|
||||||
//is an instance
|
//is an instance
|
||||||
Ref<SceneState> state = nl->get_scene_instance_state();
|
Ref<SceneState> state = nl->get_scene_instance_state();
|
||||||
if (state.is_valid()) {
|
if (state.is_valid()) {
|
||||||
@ -1652,7 +1652,7 @@ Node *PackedScene::instantiate(GenEditState p_edit_state) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (get_path() != "" && get_path().find("::") == -1) {
|
if (get_path() != "" && get_path().find("::") == -1) {
|
||||||
s->set_filename(get_path());
|
s->set_scene_file_path(get_path());
|
||||||
}
|
}
|
||||||
|
|
||||||
s->notification(Node::NOTIFICATION_INSTANCED);
|
s->notification(Node::NOTIFICATION_INSTANCED);
|
||||||
|
Loading…
Reference in New Issue
Block a user