diff --git a/src/editor/graph/graph_edit.cpp b/src/editor/graph/graph_edit.cpp index f961549b..28f81d0a 100644 --- a/src/editor/graph/graph_edit.cpp +++ b/src/editor/graph/graph_edit.cpp @@ -622,6 +622,10 @@ void OrchestratorGraphEdit::_attempt_autowire(const Ref& p_new_node if (!pin.is_valid() || pin->get_flags().has_flag(OScriptNodePin::Flags::HIDDEN)) continue; + // Skip pins that are specifically flagged as non-autowirable + if (pin->get_flags().has_flag(OScriptNodePin::Flags::NO_AUTOWIRE)) + continue; + // If pin direction matches drag, skip if (_drag_context.get_direction() == pin->get_direction()) continue; diff --git a/src/script/node_pin.h b/src/script/node_pin.h index b2f973a5..6e921c8d 100644 --- a/src/script/node_pin.h +++ b/src/script/node_pin.h @@ -71,6 +71,7 @@ class OScriptNodePin : public Resource SHOW_LABEL = 1 << 9, //! Label should be shown, always HIDE_LABEL = 1 << 10, //! Label should be hidden, always NO_CAPITALIZE = 1 << 11, //! Label is not capitalized + NO_AUTOWIRE = 1 << 12, //! Prevents being autowired CONST = 1 << 20, //! Represents a "const" data port REFERENCE = 1 << 21, //! Represents a "reference" data port OBJECT = 1 << 22, //! Refers to an object type diff --git a/src/script/nodes/functions/call_function.cpp b/src/script/nodes/functions/call_function.cpp index 680d9803..329a4e72 100644 --- a/src/script/nodes/functions/call_function.cpp +++ b/src/script/nodes/functions/call_function.cpp @@ -253,7 +253,7 @@ void OScriptNodeCallFunction::_create_pins_for_method(const MethodInfo& p_method { Variant::Type target_type = _reference.target_type != Variant::NIL ? _reference.target_type : Variant::OBJECT; Ref target = create_pin(PD_Input, "target", target_type); - target->set_flags(OScriptNodePin::Flags::DATA); + target->set_flags(OScriptNodePin::Flags::DATA | OScriptNodePin::Flags::NO_AUTOWIRE); if (_reference.target_type == Variant::NIL) { if (_function_flags.has_flag(FF_IS_SELF))