Browse Source

Use % when dropping unique scene nodes into script

This expands uppon #60708, using `get_node("%NodeName")` for nodes that
have a unique scene name to avoid having to change the onready
statements when the paths of the nodes change.

(cherry picked from commit 1101f6c660feec732af14257f6f9fa26a17364e1)
Jummit 3 years ago
parent
commit
63f35d24c6
1 changed files with 12 additions and 2 deletions
  1. 12 2
      editor/plugins/script_text_editor.cpp

+ 12 - 2
editor/plugins/script_text_editor.cpp

@@ -1563,7 +1563,12 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
 					continue;
 				}
 
-				String path = sn->get_path_to(node);
+				String path;
+				if (node->is_unique_name_in_owner()) {
+					path = "%" + node->get_name();
+				} else {
+					path = sn->get_path_to(node);
+				}
 				Vector<String> segments = path.split("/");
 				for (int j = 0; j < segments.size(); j++) {
 					if (!segments[j].is_valid_identifier()) {
@@ -1591,7 +1596,12 @@ void ScriptTextEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data
 					continue;
 				}
 
-				String path = sn->get_path_to(node);
+				String path;
+				if (node->is_unique_name_in_owner()) {
+					path = "%" + node->get_name();
+				} else {
+					path = sn->get_path_to(node);
+				}
 				Vector<String> segments = path.split("/");
 				for (int j = 0; j < segments.size(); j++) {
 					if (!segments[j].is_valid_identifier()) {