diff options
author | kleonc <9283098+kleonc@users.noreply.github.com> | 2021-08-22 17:17:30 +0200 |
---|---|---|
committer | kleonc <9283098+kleonc@users.noreply.github.com> | 2021-08-22 17:17:30 +0200 |
commit | 5260fd8f3eac1c0ac2e50b13ff1fa10f44823e3e (patch) | |
tree | 6b3b7bd2166414b49e445e66facb83909ad67eb4 | |
parent | f303c2dfb527c84421e0226cc24ab9babf9cac8a (diff) |
MultiNodeEdit Fix setting NodePath
-rw-r--r-- | editor/multi_node_edit.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/editor/multi_node_edit.cpp b/editor/multi_node_edit.cpp index fd4a4334fc..1e707c1a60 100644 --- a/editor/multi_node_edit.cpp +++ b/editor/multi_node_edit.cpp @@ -49,6 +49,11 @@ bool MultiNodeEdit::_set_impl(const StringName &p_name, const Variant &p_value, name = "script"; } + Node *node_path_target = nullptr; + if (p_value.get_type() == Variant::NODE_PATH && p_value != NodePath()) { + node_path_target = es->get_node(p_value); + } + UndoRedo *ur = EditorNode::get_undo_redo(); ur->create_action(TTR("MultiNode Set") + " " + String(name), UndoRedo::MERGE_ENDS); @@ -63,9 +68,11 @@ bool MultiNodeEdit::_set_impl(const StringName &p_name, const Variant &p_value, } if (p_value.get_type() == Variant::NODE_PATH) { - Node *tonode = n->get_node(p_value); - NodePath p_path = n->get_path_to(tonode); - ur->add_do_property(n, name, p_path); + NodePath path; + if (node_path_target) { + path = n->get_path_to(node_path_target); + } + ur->add_do_property(n, name, path); } else { Variant new_value; if (p_field == "") { |