Browse Source

Document some of the VisualScript classes.

Bojidar Marinov 8 years ago
parent
commit
10469c1962

+ 2 - 0
doc/classes/@VisualScript.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="@VisualScript" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		Built-in visual script functions.
 	</brief_description>
 	<description>
+		A list of built-in visual script functions, see [VisualScriptBuiltinFunc] and [VisualScript].
 	</description>
 	<tutorials>
 	</tutorials>

+ 48 - 0
doc/classes/VisualScript.xml

@@ -1,8 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScript" inherits="Script" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A script implemented in the Visual Script programming environment.
 	</brief_description>
 	<description>
+		A script implemented in the  Visual Script programming environment. The script exends the functionality of all objects that instance it.
+		[method Object.set_script] extends an existing object, if that object's class matches one of the script's base classes.
+		You are most likely to use this class via the Visual Script editor or when writing plugins for it.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -15,6 +19,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Add a custom signal with the specified name to the VisualScript.
 			</description>
 		</method>
 		<method name="add_function">
@@ -23,6 +28,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Add a function with the specified name to the VisualScript.
 			</description>
 		</method>
 		<method name="add_node">
@@ -37,6 +43,7 @@
 			<argument index="3" name="pos" type="Vector2" default="Vector2( 0, 0 )">
 			</argument>
 			<description>
+				Add a node to a function of the VisualScript.
 			</description>
 		</method>
 		<method name="add_variable">
@@ -49,6 +56,7 @@
 			<argument index="2" name="export" type="bool" default="false">
 			</argument>
 			<description>
+				Add a variable to the VisualScript, optionally giving it a default value or marking it as exported.
 			</description>
 		</method>
 		<method name="custom_signal_add_argument">
@@ -63,6 +71,7 @@
 			<argument index="3" name="index" type="int" default="-1">
 			</argument>
 			<description>
+				Add an argument to a custom signal added with [method add_custom_signal].
 			</description>
 		</method>
 		<method name="custom_signal_get_argument_count" qualifiers="const">
@@ -71,6 +80,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Get the count of a custom signal's arguments.
 			</description>
 		</method>
 		<method name="custom_signal_get_argument_name" qualifiers="const">
@@ -81,6 +91,7 @@
 			<argument index="1" name="argidx" type="int">
 			</argument>
 			<description>
+				Get the name of a custom signal's argument.
 			</description>
 		</method>
 		<method name="custom_signal_get_argument_type" qualifiers="const">
@@ -91,6 +102,7 @@
 			<argument index="1" name="argidx" type="int">
 			</argument>
 			<description>
+				Get the type of a custom signal's argument.
 			</description>
 		</method>
 		<method name="custom_signal_remove_argument">
@@ -101,6 +113,7 @@
 			<argument index="1" name="argidx" type="int">
 			</argument>
 			<description>
+				Remove a specific custom signal's argument.
 			</description>
 		</method>
 		<method name="custom_signal_set_argument_name">
@@ -113,6 +126,7 @@
 			<argument index="2" name="argname" type="String">
 			</argument>
 			<description>
+				Rename a custom signal's argument.
 			</description>
 		</method>
 		<method name="custom_signal_set_argument_type">
@@ -125,6 +139,7 @@
 			<argument index="2" name="type" type="int" enum="Variant.Type">
 			</argument>
 			<description>
+				Change the type of a custom signal's argument.
 			</description>
 		</method>
 		<method name="custom_signal_swap_argument">
@@ -137,6 +152,7 @@
 			<argument index="2" name="withidx" type="int">
 			</argument>
 			<description>
+				Swap two of the arguments of a custom signal.
 			</description>
 		</method>
 		<method name="data_connect">
@@ -153,6 +169,7 @@
 			<argument index="4" name="to_port" type="int">
 			</argument>
 			<description>
+				Connect two data ports. The value of [code]from_node[/code]'s [code]from_port[/code] would be fed into [code]to_node[/code]'s [code]to_port[/code].
 			</description>
 		</method>
 		<method name="data_disconnect">
@@ -169,6 +186,7 @@
 			<argument index="4" name="to_port" type="int">
 			</argument>
 			<description>
+				Disconnect two data ports previously connected with [method data_connect].
 			</description>
 		</method>
 		<method name="get_function_node_id" qualifiers="const">
@@ -177,6 +195,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns the id of a function's entry point node.
 			</description>
 		</method>
 		<method name="get_function_scroll" qualifiers="const">
@@ -185,6 +204,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns the position of the center of the screen for a given function.
 			</description>
 		</method>
 		<method name="get_node" qualifiers="const">
@@ -195,6 +215,7 @@
 			<argument index="1" name="id" type="int">
 			</argument>
 			<description>
+				Returns a node given its id and its function.
 			</description>
 		</method>
 		<method name="get_node_pos" qualifiers="const">
@@ -205,6 +226,7 @@
 			<argument index="1" name="id" type="int">
 			</argument>
 			<description>
+				Returns a node's position in pixels.
 			</description>
 		</method>
 		<method name="get_variable_default_value" qualifiers="const">
@@ -213,6 +235,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns the default (initial) value of a variable.
 			</description>
 		</method>
 		<method name="get_variable_export" qualifiers="const">
@@ -221,6 +244,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns whether a variable is exported.
 			</description>
 		</method>
 		<method name="get_variable_info" qualifiers="const">
@@ -229,6 +253,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns the info for a given variable as a dictionary. The information includes its name, type, hint and usage.
 			</description>
 		</method>
 		<method name="has_custom_signal" qualifiers="const">
@@ -237,6 +262,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns whether a signal exists with the specified name.
 			</description>
 		</method>
 		<method name="has_data_connection" qualifiers="const">
@@ -253,6 +279,7 @@
 			<argument index="4" name="to_port" type="int">
 			</argument>
 			<description>
+				Returns whether the specified data ports are connected.
 			</description>
 		</method>
 		<method name="has_function" qualifiers="const">
@@ -261,6 +288,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns whether a function exists with the specified name.
 			</description>
 		</method>
 		<method name="has_node" qualifiers="const">
@@ -271,6 +299,7 @@
 			<argument index="1" name="id" type="int">
 			</argument>
 			<description>
+				Returns whether a node exists with the given id.
 			</description>
 		</method>
 		<method name="has_sequence_connection" qualifiers="const">
@@ -285,6 +314,7 @@
 			<argument index="3" name="to_node" type="int">
 			</argument>
 			<description>
+				Returns whether the specified sequence ports are connected.
 			</description>
 		</method>
 		<method name="has_variable" qualifiers="const">
@@ -293,6 +323,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Returns whether a variable exists with the specified name.
 			</description>
 		</method>
 		<method name="remove_custom_signal">
@@ -301,6 +332,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Remove a custom signal with the given name.
 			</description>
 		</method>
 		<method name="remove_function">
@@ -309,6 +341,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Remove a specific function and its nodes from the script.
 			</description>
 		</method>
 		<method name="remove_node">
@@ -319,6 +352,7 @@
 			<argument index="1" name="id" type="int">
 			</argument>
 			<description>
+				Remove a specific node.
 			</description>
 		</method>
 		<method name="remove_variable">
@@ -327,6 +361,7 @@
 			<argument index="0" name="name" type="String">
 			</argument>
 			<description>
+				Remove a variable with the given name.
 			</description>
 		</method>
 		<method name="rename_custom_signal">
@@ -337,6 +372,7 @@
 			<argument index="1" name="new_name" type="String">
 			</argument>
 			<description>
+				Change the name of a custom signal.
 			</description>
 		</method>
 		<method name="rename_function">
@@ -347,6 +383,7 @@
 			<argument index="1" name="new_name" type="String">
 			</argument>
 			<description>
+				Change the name of a function.
 			</description>
 		</method>
 		<method name="rename_variable">
@@ -357,6 +394,7 @@
 			<argument index="1" name="new_name" type="String">
 			</argument>
 			<description>
+				Change the name of a variable.
 			</description>
 		</method>
 		<method name="sequence_connect">
@@ -371,6 +409,8 @@
 			<argument index="3" name="to_node" type="int">
 			</argument>
 			<description>
+				Connect two sequence ports. The execution will flow from of [code]from_node[/code]'s [code]from_output[/code] into [code]to_node[/code].
+				Unlike [method data_connect], there isn't a [code]to_port[/code], since the target node can have only one sequence port.
 			</description>
 		</method>
 		<method name="sequence_disconnect">
@@ -385,6 +425,7 @@
 			<argument index="3" name="to_node" type="int">
 			</argument>
 			<description>
+				Disconnect two sequence ports previously connected with [method sequence_connect].
 			</description>
 		</method>
 		<method name="set_function_scroll">
@@ -395,6 +436,7 @@
 			<argument index="1" name="ofs" type="Vector2">
 			</argument>
 			<description>
+				Position the center of the screen for a function.
 			</description>
 		</method>
 		<method name="set_instance_base_type">
@@ -403,6 +445,7 @@
 			<argument index="0" name="type" type="String">
 			</argument>
 			<description>
+				Set the base type of the script.
 			</description>
 		</method>
 		<method name="set_node_pos">
@@ -415,6 +458,7 @@
 			<argument index="2" name="pos" type="Vector2">
 			</argument>
 			<description>
+				Position a node on the screen.
 			</description>
 		</method>
 		<method name="set_variable_default_value">
@@ -425,6 +469,7 @@
 			<argument index="1" name="value" type="Variant">
 			</argument>
 			<description>
+				Change the default (initial) value of a variable.
 			</description>
 		</method>
 		<method name="set_variable_export">
@@ -435,6 +480,7 @@
 			<argument index="1" name="enable" type="bool">
 			</argument>
 			<description>
+				Change whether a variable is exported.
 			</description>
 		</method>
 		<method name="set_variable_info">
@@ -445,6 +491,7 @@
 			<argument index="1" name="value" type="Dictionary">
 			</argument>
 			<description>
+				Set a variable's info, using the same format as [method get_variable_info].
 			</description>
 		</method>
 	</methods>
@@ -459,6 +506,7 @@
 			<argument index="1" name="id" type="int">
 			</argument>
 			<description>
+				Emitted when the ports of a node are changed.
 			</description>
 		</signal>
 	</signals>

+ 4 - 0
doc/classes/VisualScriptBasicTypeConstant.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptBasicTypeConstant" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node representing a constant from the base types.
 	</brief_description>
 	<description>
+		A Visual Script node representing a constant from base types, such as [Vector3.AXIS_X].
 	</description>
 	<tutorials>
 	</tutorials>
@@ -40,8 +42,10 @@
 	</methods>
 	<members>
 		<member name="basic_type" type="int" setter="set_basic_type" getter="get_basic_type" enum="Variant.Type">
+			The type to get the constant from.
 		</member>
 		<member name="constant" type="String" setter="set_basic_type_constant" getter="get_basic_type_constant">
+			The name of the constant to return.
 		</member>
 	</members>
 	<constants>

+ 62 - 0
doc/classes/VisualScriptBuiltinFunc.xml

@@ -1,8 +1,11 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptBuiltinFunc" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node used to call built-in functions.
 	</brief_description>
 	<description>
+		A built-in function used inside a [VisualScript]. It is usually a math function or an utility function.
+		See also [@GDScript], for the same functions in the GDScript language.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -26,124 +29,183 @@
 	</methods>
 	<members>
 		<member name="function" type="int" setter="set_func" getter="get_func" enum="VisualScriptBuiltinFunc.BuiltinFunc">
+			The function to be executed.
 		</member>
 	</members>
 	<constants>
 		<constant name="MATH_SIN" value="0">
+			Return the sine of the input.
 		</constant>
 		<constant name="MATH_COS" value="1">
+			Return the cosine of the input.
 		</constant>
 		<constant name="MATH_TAN" value="2">
+			Return the tangent of the input.
 		</constant>
 		<constant name="MATH_SINH" value="3">
+			Return the hyperbolic sine of the input.
 		</constant>
 		<constant name="MATH_COSH" value="4">
+			Return the hyperbolic cosine of the input.
 		</constant>
 		<constant name="MATH_TANH" value="5">
+			Return the hyperbolic tangent of the input.
 		</constant>
 		<constant name="MATH_ASIN" value="6">
+			Return the arc sine of the input.
 		</constant>
 		<constant name="MATH_ACOS" value="7">
+			Return the arc cosine of the input.
 		</constant>
 		<constant name="MATH_ATAN" value="8">
+			Return the arc tangent of the input.
 		</constant>
 		<constant name="MATH_ATAN2" value="9">
+			Return the arc tangent of the input, using the signs of both parameters to determine the exact angle.
 		</constant>
 		<constant name="MATH_SQRT" value="10">
+			Return the square root of the input.
 		</constant>
 		<constant name="MATH_FMOD" value="11">
+			Return the remainder of one input divided by the other, using floating-point numbers.
 		</constant>
 		<constant name="MATH_FPOSMOD" value="12">
+			Return the positive remainder of one input divided by the other, using floating-point numbers.
 		</constant>
 		<constant name="MATH_FLOOR" value="13">
+			Return the input rounded down.
 		</constant>
 		<constant name="MATH_CEIL" value="14">
+			Return the input rounded up.
 		</constant>
 		<constant name="MATH_ROUND" value="15">
+			Return the input rounded to the nearest integer.
 		</constant>
 		<constant name="MATH_ABS" value="16">
+			Return the absolute value of the input.
 		</constant>
 		<constant name="MATH_SIGN" value="17">
+			Return the sign of the input, turning it into 1, -1, or 0. Useful to determine if the input is positive or negative.
 		</constant>
 		<constant name="MATH_POW" value="18">
+			Return the input raised to a given power.
 		</constant>
 		<constant name="MATH_LOG" value="19">
+			Return the natural logarithm of the input. Note that this is not the typical base-10 logarithm function calculators use.
 		</constant>
 		<constant name="MATH_EXP" value="20">
+			Return [b]e[/b] raised to the power of the input. [b]e[/b] sometimes called "Euler's number" is a mathematical constant whose value is approximately 2.71828.
 		</constant>
 		<constant name="MATH_ISNAN" value="21">
+			Return whether the input is NaN (Not a Number) or not. NaN is usually produced by dividing 0 by 0, though other ways exist.
 		</constant>
 		<constant name="MATH_ISINF" value="22">
+			Return whether the input is an infinite floating-point number or not. Infinity is usually produced by dividing a number by 0, though other ways exist.
 		</constant>
 		<constant name="MATH_EASE" value="23">
+			Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.
 		</constant>
 		<constant name="MATH_DECIMALS" value="24">
+			Return the number of digit places after the decimal that the first non-zero digit occurs.
 		</constant>
 		<constant name="MATH_STEPIFY" value="25">
+			Return the input snapped to a given step.
 		</constant>
 		<constant name="MATH_LERP" value="26">
+			Return a number linearly interpolated between the first two inputs, based on the third input. Uses the formula [code]a + (a - b) * t[/code].
 		</constant>
 		<constant name="MATH_DECTIME" value="27">
+			Return the result of 'value' decreased by 'step' * 'amount'.
 		</constant>
 		<constant name="MATH_RANDOMIZE" value="28">
+			Randomize the seed (or the internal state) of the random number generator. Current implementation reseeds using a number based on time.
 		</constant>
 		<constant name="MATH_RAND" value="29">
+			Return a random 32 bits integer value. To obtain a random value between 0 to N (where N is smaller than 2^32 - 1), you can use it with the remainder function.
 		</constant>
 		<constant name="MATH_RANDF" value="30">
+			Return a random floating-point value between 0 and 1. To obtain a random value between 0 to N, you can use it with multiplication.
 		</constant>
 		<constant name="MATH_RANDOM" value="31">
+			Return a random floating-point value between the two inputs.
 		</constant>
 		<constant name="MATH_SEED" value="32">
+			Set the seed for the random number generator.
 		</constant>
 		<constant name="MATH_RANDSEED" value="33">
+			Return a random value from the given seed, along with the new seed.
 		</constant>
 		<constant name="MATH_DEG2RAD" value="34">
+			Convert the input from degrees to radians.
 		</constant>
 		<constant name="MATH_RAD2DEG" value="35">
+			Convert the input from radians to degrees.
 		</constant>
 		<constant name="MATH_LINEAR2DB" value="36">
+			Convert the input from linear volume to decibel volume.
 		</constant>
 		<constant name="MATH_DB2LINEAR" value="37">
+			Convert the input from decibel volume to linear volume.
 		</constant>
 		<constant name="LOGIC_MAX" value="38">
+			Return the greater of the two numbers, also known as their maximum.
 		</constant>
 		<constant name="LOGIC_MIN" value="39">
+			Return the lesser of the two numbers, also known as their minimum.
 		</constant>
 		<constant name="LOGIC_CLAMP" value="40">
+			Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to `min(max(input, range_low), range_high)`
 		</constant>
 		<constant name="LOGIC_NEAREST_PO2" value="41">
+			Return the nearest power of 2 to the input.
 		</constant>
 		<constant name="OBJ_WEAKREF" value="42">
+			Create a [WeakRef] from the input.
 		</constant>
 		<constant name="FUNC_FUNCREF" value="43">
+			Create a [FuncRef] from the input.
 		</constant>
 		<constant name="TYPE_CONVERT" value="44">
+			Convert between types.
 		</constant>
 		<constant name="TYPE_OF" value="45">
+			Return the type of the input as an integer. Check [enum Variant.Type] for the integers that might be returned.
 		</constant>
 		<constant name="TYPE_EXISTS" value="46">
+			Checks if a type is registered in the [ClassDB].
 		</constant>
 		<constant name="TEXT_CHAR" value="47">
+			Return a character with the given ascii value.
 		</constant>
 		<constant name="TEXT_STR" value="48">
+			Convert the input to a string.
 		</constant>
 		<constant name="TEXT_PRINT" value="49">
+			Print the given string to the output window.
 		</constant>
 		<constant name="TEXT_PRINTERR" value="50">
+			Print the given string to the standard error output.
 		</constant>
 		<constant name="TEXT_PRINTRAW" value="51">
+			Print the given string to the standard output, without adding a newline.
 		</constant>
 		<constant name="VAR_TO_STR" value="52">
+			Serialize a [Variant] to a string.
 		</constant>
 		<constant name="STR_TO_VAR" value="53">
+			Deserialize a [Variant] from a string serialized using [VAR_TO_STR].
 		</constant>
 		<constant name="VAR_TO_BYTES" value="54">
+			Serialize a [Variant] to a [PoolByteArray].
 		</constant>
 		<constant name="BYTES_TO_VAR" value="55">
+			Deserialize a [Variant] from a [PoolByteArray] serialized using [VAR_TO_BYTES].
 		</constant>
 		<constant name="COLORN" value="56">
+			Return the [Color] with the given name and alpha ranging from 0 to 1. Note: names are defined in color_names.inc.
 		</constant>
 		<constant name="FUNC_MAX" value="57">
+			The maximum value the [member function] property can have.
 		</constant>
 	</constants>
 </class>

+ 4 - 0
doc/classes/VisualScriptClassConstant.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptClassConstant" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node representing a constant from a class.
 	</brief_description>
 	<description>
+		A Visual Script node representing a constant from the classes, such as [@GlobalScope.TYPE_INT].
 	</description>
 	<tutorials>
 	</tutorials>
@@ -40,8 +42,10 @@
 	</methods>
 	<members>
 		<member name="base_type" type="String" setter="set_base_type" getter="get_base_type">
+			The type to get the constant from.
 		</member>
 		<member name="constant" type="String" setter="set_class_constant" getter="get_class_constant">
+			The name of the constant to return.
 		</member>
 	</members>
 	<constants>

+ 6 - 0
doc/classes/VisualScriptComment.xml

@@ -1,8 +1,11 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptComment" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node used to store information for the developer.
 	</brief_description>
 	<description>
+		A Visual Script node used to display text, so that code is more readable and better documented.
+		Comment nodes can be resized so they encompass a group of nodes.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -54,10 +57,13 @@
 	</methods>
 	<members>
 		<member name="description" type="String" setter="set_description" getter="get_description">
+			The text inside the comment node.
 		</member>
 		<member name="size" type="Vector2" setter="set_size" getter="get_size">
+			The size (in pixels) of the comment node.
 		</member>
 		<member name="title" type="String" setter="set_title" getter="get_title">
+			The title of the comment node.
 		</member>
 	</members>
 	<constants>

+ 2 - 0
doc/classes/VisualScriptCondition.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptCondition" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node which branches the flow.
 	</brief_description>
 	<description>
+		A Visual Script node which switches the flow based on a boolean. It acts similar to if/else in typical programming languages.
 	</description>
 	<tutorials>
 	</tutorials>

+ 4 - 0
doc/classes/VisualScriptConstant.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptConstant" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node which returns a constant value.
 	</brief_description>
 	<description>
+		A Visual Script node which returns the specified constant value.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -40,8 +42,10 @@
 	</methods>
 	<members>
 		<member name="type" type="int" setter="set_constant_type" getter="get_constant_type" enum="Variant.Type">
+			The constant's type.
 		</member>
 		<member name="value" type="Variant" setter="set_constant_value" getter="get_constant_value">
+			The constant's value.
 		</member>
 	</members>
 	<constants>

+ 20 - 0
doc/classes/VisualScriptConstructor.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptConstructor" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node which calls a base type constructor.
 	</brief_description>
 	<description>
+		A Visual Script node which calls a base type constructor. It can be used for type conversion as well.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -40,8 +42,26 @@
 	</methods>
 	<members>
 		<member name="constructor" type="Dictionary" setter="set_constructor" getter="get_constructor">
+			The constructor function's method info. Has roughly the following structure:
+			[codeblock]
+			{
+				name = "string",
+				args = [{
+					name = "string"
+					class_name = "string"
+					type = TYPE_*
+					hint = PROPERTY_HINT_*
+					hint_string = "string"
+				}]
+				default_args = [] # Array of variants
+				flags = METHOD_FLAG_*
+				id = 0
+				return = {type = TYPE_*}
+			}
+			[/codeblock]
 		</member>
 		<member name="type" type="int" setter="set_constructor_type" getter="get_constructor_type" enum="Variant.Type">
+			The type to be constructed.
 		</member>
 	</members>
 	<constants>

+ 32 - 0
doc/classes/VisualScriptCustomNode.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptCustomNode" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A scripted Visual Script node.
 	</brief_description>
 	<description>
+		A custom Visual Script node which can be scripted in powerful ways.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -13,18 +15,21 @@
 			<return type="String">
 			</return>
 			<description>
+				Return the node's title.
 			</description>
 		</method>
 		<method name="_get_category" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Return the node's category.
 			</description>
 		</method>
 		<method name="_get_input_value_port_count" qualifiers="virtual">
 			<return type="int">
 			</return>
 			<description>
+				Return the count of input value ports.
 			</description>
 		</method>
 		<method name="_get_input_value_port_name" qualifiers="virtual">
@@ -33,6 +38,7 @@
 			<argument index="0" name="idx" type="int">
 			</argument>
 			<description>
+				Return the specified input port's name.
 			</description>
 		</method>
 		<method name="_get_input_value_port_type" qualifiers="virtual">
@@ -41,12 +47,14 @@
 			<argument index="0" name="idx" type="int">
 			</argument>
 			<description>
+				Return the specified input port's type. See the TYPE_* enum in [@GlobalScope].
 			</description>
 		</method>
 		<method name="_get_output_sequence_port_count" qualifiers="virtual">
 			<return type="int">
 			</return>
 			<description>
+				Return the amount of output [b]sequence[/b] ports.
 			</description>
 		</method>
 		<method name="_get_output_sequence_port_text" qualifiers="virtual">
@@ -55,12 +63,14 @@
 			<argument index="0" name="idx" type="int">
 			</argument>
 			<description>
+				Return the specified [b]sequence[/b] output's name.
 			</description>
 		</method>
 		<method name="_get_output_value_port_count" qualifiers="virtual">
 			<return type="int">
 			</return>
 			<description>
+				Return the amount of output value ports.
 			</description>
 		</method>
 		<method name="_get_output_value_port_name" qualifiers="virtual">
@@ -69,6 +79,7 @@
 			<argument index="0" name="idx" type="int">
 			</argument>
 			<description>
+				Return the specified output's name.
 			</description>
 		</method>
 		<method name="_get_output_value_port_type" qualifiers="virtual">
@@ -77,24 +88,28 @@
 			<argument index="0" name="idx" type="int">
 			</argument>
 			<description>
+				Return the specified output's type. See the TYPE_* enum in [@GlobalScope].
 			</description>
 		</method>
 		<method name="_get_text" qualifiers="virtual">
 			<return type="String">
 			</return>
 			<description>
+				Return the custom node's text, which is shown right next to the input [b]sequence[/b] port (if there is none, on the place that is usually taken by it).
 			</description>
 		</method>
 		<method name="_get_working_memory_size" qualifiers="virtual">
 			<return type="int">
 			</return>
 			<description>
+				Return the size of the custom node's working memory. See [method _step] for more details.
 			</description>
 		</method>
 		<method name="_has_input_sequence_port" qualifiers="virtual">
 			<return type="bool">
 			</return>
 			<description>
+				Return whether the custom node has an input [b]sequence[/b] port.
 			</description>
 		</method>
 		<method name="_step" qualifiers="virtual">
@@ -109,25 +124,42 @@
 			<argument index="3" name="working_mem" type="Array">
 			</argument>
 			<description>
+				Execute the custom node's logic, returning the index of the output sequence port to use or a [String] when there is an error.
+				
+				The [code]inputs[/code] array contains the values of the input ports.
+				[code]outputs[/code] is an array whose indices should be set to the respective outputs.
+				The [code]start_mode[/code] is usually [code]START_MODE_BEGIN_SEQUENCE[/code], unless you have used the STEP_* constants.
+				[code]working_mem[/code] is an array which can be used to persist information between runs of the custom node.
+				
+				When returning, you can mask the returned value with one of the STEP_* constants.
 			</description>
 		</method>
 	</methods>
 	<constants>
 		<constant name="START_MODE_BEGIN_SEQUENCE" value="0">
+			The start mode used the first time when [method _step] is called.
 		</constant>
 		<constant name="START_MODE_CONTINUE_SEQUENCE" value="1">
+			The start mode used when [method _step] is called after coming back from a STEP_PUSH_STACK_BIT.
 		</constant>
 		<constant name="START_MODE_RESUME_YIELD" value="2">
+			The start mode used when [method _step] is called after resuming from STEP_YIELD_BIT.
 		</constant>
 		<constant name="STEP_PUSH_STACK_BIT" value="16777216" enum="">
+			Hint used by [method _step] to tell that control should return to it when there is no other node left to execute.
+			This is used by [VisualScriptCondition] to redirect the sequence to the "Done" port after the true/false branch has finished execution.
 		</constant>
 		<constant name="STEP_GO_BACK_BIT" value="33554432" enum="">
+			Hint used by [method _step] to tell that control should return back, either hitting a previous STEP_PUSH_STACK_BIT or exiting the function.
 		</constant>
 		<constant name="STEP_NO_ADVANCE_BIT" value="67108864" enum="">
 		</constant>
 		<constant name="STEP_EXIT_FUNCTION_BIT" value="134217728" enum="">
+			Hint used by [method _step] to tell that control should stop and exit the function.
 		</constant>
 		<constant name="STEP_YIELD_BIT" value="268435456" enum="">
+			Hint used by [method _step] to tell that the function should be yielded.
+			Using this requires you to have at least one working memory slot, which is used for the [VisualScriptFunctionState].
 		</constant>
 	</constants>
 </class>

+ 3 - 0
doc/classes/VisualScriptDeconstruct.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptDeconstruct" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node which deconstructs a base type instance into its parts.
 	</brief_description>
 	<description>
+		A Visual Script node which deconstructs a base type instance into its parts.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -28,6 +30,7 @@
 		<member name="elem_cache" type="Array" setter="_set_elem_cache" getter="_get_elem_cache">
 		</member>
 		<member name="type" type="int" setter="set_deconstruct_type" getter="get_deconstruct_type" enum="Variant.Type">
+			The type to deconstruct.
 		</member>
 	</members>
 	<constants>

+ 3 - 0
doc/classes/VisualScriptEmitSignal.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptEmitSignal" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node which emits a specified signal.
 	</brief_description>
 	<description>
+		A Visual Script node which emits a specified signal when it is executed.
 	</description>
 	<tutorials>
 	</tutorials>
@@ -26,6 +28,7 @@
 	</methods>
 	<members>
 		<member name="signal" type="String" setter="set_signal" getter="get_signal">
+			The signal to emit.
 		</member>
 	</members>
 	<constants>

+ 3 - 0
doc/classes/VisualScriptEngineSingleton.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptEngineSingleton" inherits="VisualScriptNode" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A Visual Script node returning a singleton from [@GlobalScope]
 	</brief_description>
 	<description>
+		A Visual Script node returning a singleton from [@GlobalScope]
 	</description>
 	<tutorials>
 	</tutorials>
@@ -26,6 +28,7 @@
 	</methods>
 	<members>
 		<member name="constant" type="String" setter="set_singleton" getter="get_singleton">
+			The singleton's name.
 		</member>
 	</members>
 	<constants>

+ 13 - 0
doc/classes/VisualScriptNode.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <class name="VisualScriptNode" inherits="Resource" category="Core" version="3.0.alpha.custom_build">
 	<brief_description>
+		A node which is part of a [VisualScript].
 	</brief_description>
 	<description>
+		A node which is part of a [VisualScript]. Not to be confused with [Node], which is a part of a [SceneTree].
 	</description>
 	<tutorials>
 	</tutorials>
@@ -15,12 +17,21 @@
 			<argument index="0" name="port_idx" type="int">
 			</argument>
 			<description>
+				Returns the default value of a given port. The default value is used when nothing is connected to the port.
 			</description>
 		</method>
 		<method name="get_visual_script" qualifiers="const">
 			<return type="VisualScript">
 			</return>
 			<description>
+				Returns the [VisualScript] instance the node is bound to.
+			</description>
+		</method>
+		<method name="ports_changed_notify">
+			<return type="void">
+			</return>
+			<description>
+				Notify that the node's ports have changed. Usually used in conjunction with [VisualScriptCustomNode] .
 			</description>
 		</method>
 		<method name="set_default_input_value">
@@ -31,6 +42,7 @@
 			<argument index="1" name="value" type="Variant">
 			</argument>
 			<description>
+				Change the default value of a given port.
 			</description>
 		</method>
 	</methods>
@@ -41,6 +53,7 @@
 	<signals>
 		<signal name="ports_changed">
 			<description>
+				Emitted when the available input/output ports are changed.
 			</description>
 		</signal>
 	</signals>

+ 1 - 0
modules/visual_script/visual_script.cpp

@@ -125,6 +125,7 @@ void VisualScriptNode::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("get_visual_script"), &VisualScriptNode::get_visual_script);
 	ClassDB::bind_method(D_METHOD("set_default_input_value", "port_idx", "value"), &VisualScriptNode::set_default_input_value);
 	ClassDB::bind_method(D_METHOD("get_default_input_value", "port_idx"), &VisualScriptNode::get_default_input_value);
+	ClassDB::bind_method(D_METHOD("ports_changed_notify"), &VisualScriptNode::ports_changed_notify);
 	ClassDB::bind_method(D_METHOD("_set_default_input_values", "values"), &VisualScriptNode::_set_default_input_values);
 	ClassDB::bind_method(D_METHOD("_get_default_input_values"), &VisualScriptNode::_get_default_input_values);
 

+ 3 - 3
modules/visual_script/visual_script_nodes.cpp

@@ -1598,7 +1598,7 @@ VisualScriptNodeInstance *VisualScriptClassConstant::instance(VisualScriptInstan
 
 void VisualScriptClassConstant::_validate_property(PropertyInfo &property) const {
 
-	if (property.name == "constant/constant") {
+	if (property.name == "constant") {
 
 		List<String> constants;
 		ClassDB::get_integer_constant_list(base_type, &constants, true);
@@ -1727,7 +1727,7 @@ VisualScriptNodeInstance *VisualScriptBasicTypeConstant::instance(VisualScriptIn
 
 void VisualScriptBasicTypeConstant::_validate_property(PropertyInfo &property) const {
 
-	if (property.name == "constant/constant") {
+	if (property.name == "constant") {
 
 		List<StringName> constants;
 		Variant::get_numeric_constants_for_type(type, &constants);
@@ -2689,7 +2689,7 @@ VisualScriptNodeInstance *VisualScriptCustomNode::instance(VisualScriptInstance
 }
 
 void VisualScriptCustomNode::_script_changed() {
-	ports_changed_notify();
+	call_deferred("ports_changed_notify");
 }
 
 void VisualScriptCustomNode::_bind_methods() {