Base class for a family of nodes with variable amount of input and output ports within the visual shader graph. Currently, has no direct usage, use the derived classes instead. Adds an input port with the specified [code]type[/code] (see [enum VisualShaderNode.PortType]) and [code]name[/code]. Adds an output port with the specified [code]type[/code] (see [enum VisualShaderNode.PortType]) and [code]name[/code]. Removes all previously specified input ports. Removes all previously specified output ports. Returns a free input port ID which can be used in [method add_input_port]. Returns a free output port ID which can be used in [method add_output_port]. Returns the number of input ports in use. Alternative for [method get_free_input_port_id]. Returns a [String] description of the input ports as a colon-separated list using the format [code]id,type,name;[/code] (see [method add_input_port]). Returns the number of output ports in use. Alternative for [method get_free_output_port_id]. Returns a [String] description of the output ports as a colon-separated list using the format [code]id,type,name;[/code] (see [method add_output_port]). Returns [code]true[/code] if the specified input port exists. Returns [code]true[/code] if the specified output port exists. Returns [code]true[/code] if the specified port name does not override an existed port name and is valid within the shader. Removes the specified input port. Removes the specified output port. Renames the specified input port. Sets the specified input port's type (see [enum VisualShaderNode.PortType]). Defines all input ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_input_port]). Renames the specified output port. Sets the specified output port's type (see [enum VisualShaderNode.PortType]). Defines all output ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_output_port]).