diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp index e4b6f850553..8d1166c07a2 100644 --- a/scene/resources/visual_shader_nodes.cpp +++ b/scene/resources/visual_shader_nodes.cpp @@ -4627,6 +4627,30 @@ String VisualShaderNodeVectorRefract::get_input_port_name(int p_port) const { return String(); } +VisualShaderNodeVectorRefract::PortType VisualShaderNodeVectorRefract::get_input_port_type(int p_port) const { + switch (op_type) { + case OP_TYPE_VECTOR_2D: + if (p_port == 2) { + break; + } + return PORT_TYPE_VECTOR_2D; + case OP_TYPE_VECTOR_3D: + if (p_port == 2) { + break; + } + return PORT_TYPE_VECTOR_3D; + case OP_TYPE_VECTOR_4D: + if (p_port == 2) { + break; + } + return PORT_TYPE_VECTOR_4D; + default: + break; + } + + return PORT_TYPE_SCALAR; +} + int VisualShaderNodeVectorRefract::get_output_port_count() const { return 1; } diff --git a/scene/resources/visual_shader_nodes.h b/scene/resources/visual_shader_nodes.h index 7999c58115b..5096503f03d 100644 --- a/scene/resources/visual_shader_nodes.h +++ b/scene/resources/visual_shader_nodes.h @@ -1896,6 +1896,7 @@ public: virtual int get_input_port_count() const override; virtual String get_input_port_name(int p_port) const override; + virtual PortType get_input_port_type(int p_port) const override; virtual int get_output_port_count() const override; virtual String get_output_port_name(int p_port) const override;