<?xml version="1.0" encoding="UTF-8" ?>
<class name="VisualShaderNodeGroupBase" inherits="VisualShaderNodeResizableBase" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Base class for a family of nodes with variable number of input and output ports within the visual shader graph.
	</brief_description>
	<description>
		Currently, has no direct usage, use the derived classes instead.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_input_port">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="type" type="int" />
			<param index="2" name="name" type="String" />
			<description>
				Adds an input port with the specified [param type] (see [enum VisualShaderNode.PortType]) and [param name].
			</description>
		</method>
		<method name="add_output_port">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="type" type="int" />
			<param index="2" name="name" type="String" />
			<description>
				Adds an output port with the specified [param type] (see [enum VisualShaderNode.PortType]) and [param name].
			</description>
		</method>
		<method name="clear_input_ports">
			<return type="void" />
			<description>
				Removes all previously specified input ports.
			</description>
		</method>
		<method name="clear_output_ports">
			<return type="void" />
			<description>
				Removes all previously specified output ports.
			</description>
		</method>
		<method name="get_free_input_port_id" qualifiers="const">
			<return type="int" />
			<description>
				Returns a free input port ID which can be used in [method add_input_port].
			</description>
		</method>
		<method name="get_free_output_port_id" qualifiers="const">
			<return type="int" />
			<description>
				Returns a free output port ID which can be used in [method add_output_port].
			</description>
		</method>
		<method name="get_input_port_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of input ports in use. Alternative for [method get_free_input_port_id].
			</description>
		</method>
		<method name="get_inputs" qualifiers="const">
			<return type="String" />
			<description>
				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]).
			</description>
		</method>
		<method name="get_output_port_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of output ports in use. Alternative for [method get_free_output_port_id].
			</description>
		</method>
		<method name="get_outputs" qualifiers="const">
			<return type="String" />
			<description>
				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]).
			</description>
		</method>
		<method name="has_input_port" qualifiers="const">
			<return type="bool" />
			<param index="0" name="id" type="int" />
			<description>
				Returns [code]true[/code] if the specified input port exists.
			</description>
		</method>
		<method name="has_output_port" qualifiers="const">
			<return type="bool" />
			<param index="0" name="id" type="int" />
			<description>
				Returns [code]true[/code] if the specified output port exists.
			</description>
		</method>
		<method name="is_valid_port_name" qualifiers="const">
			<return type="bool" />
			<param index="0" name="name" type="String" />
			<description>
				Returns [code]true[/code] if the specified port name does not override an existed port name and is valid within the shader.
			</description>
		</method>
		<method name="remove_input_port">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<description>
				Removes the specified input port.
			</description>
		</method>
		<method name="remove_output_port">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<description>
				Removes the specified output port.
			</description>
		</method>
		<method name="set_input_port_name">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="name" type="String" />
			<description>
				Renames the specified input port.
			</description>
		</method>
		<method name="set_input_port_type">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="type" type="int" />
			<description>
				Sets the specified input port's type (see [enum VisualShaderNode.PortType]).
			</description>
		</method>
		<method name="set_inputs">
			<return type="void" />
			<param index="0" name="inputs" type="String" />
			<description>
				Defines all input ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_input_port]).
			</description>
		</method>
		<method name="set_output_port_name">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="name" type="String" />
			<description>
				Renames the specified output port.
			</description>
		</method>
		<method name="set_output_port_type">
			<return type="void" />
			<param index="0" name="id" type="int" />
			<param index="1" name="type" type="int" />
			<description>
				Sets the specified output port's type (see [enum VisualShaderNode.PortType]).
			</description>
		</method>
		<method name="set_outputs">
			<return type="void" />
			<param index="0" name="outputs" type="String" />
			<description>
				Defines all output ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_output_port]).
			</description>
		</method>
	</methods>
</class>
