diff options
Diffstat (limited to 'doc')
253 files changed, 4125 insertions, 2270 deletions
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index e210fa8808..552fc41318 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -1261,6 +1261,9 @@ <member name="TextServerManager" type="TextServerManager" setter="" getter=""> The [TextServerManager] singleton. </member> + <member name="Time" type="Time" setter="" getter=""> + The [Time] singleton. + </member> <member name="TranslationServer" type="TranslationServer" setter="" getter=""> The [TranslationServer] singleton. </member> @@ -2596,8 +2599,8 @@ <constant name="TYPE_PLANE" value="12" enum="Variant.Type"> Variable is of type [Plane]. </constant> - <constant name="TYPE_QUAT" value="13" enum="Variant.Type"> - Variable is of type [Quat]. + <constant name="TYPE_QUATERNION" value="13" enum="Variant.Type"> + Variable is of type [Quaternion]. </constant> <constant name="TYPE_AABB" value="14" enum="Variant.Type"> Variable is of type [AABB]. @@ -2605,8 +2608,8 @@ <constant name="TYPE_BASIS" value="15" enum="Variant.Type"> Variable is of type [Basis]. </constant> - <constant name="TYPE_TRANSFORM" value="16" enum="Variant.Type"> - Variable is of type [Transform]. + <constant name="TYPE_TRANSFORM3D" value="16" enum="Variant.Type"> + Variable is of type [Transform3D]. </constant> <constant name="TYPE_COLOR" value="17" enum="Variant.Type"> Variable is of type [Color]. diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml index a28bde9946..af34a948f5 100644 --- a/doc/classes/AABB.xml +++ b/doc/classes/AABB.xml @@ -242,7 +242,7 @@ <method name="operator *" qualifiers="operator"> <return type="AABB"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> diff --git a/doc/classes/AESContext.xml b/doc/classes/AESContext.xml index f577bab992..9dde25028e 100644 --- a/doc/classes/AESContext.xml +++ b/doc/classes/AESContext.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AESContext" inherits="Reference" version="4.0"> +<class name="AESContext" inherits="RefCounted" version="4.0"> <brief_description> Interface to low level AES encryption features. </brief_description> diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml index fce2b90197..cc7f7072b9 100644 --- a/doc/classes/AStar.xml +++ b/doc/classes/AStar.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AStar" inherits="Reference" version="4.0"> +<class name="AStar" inherits="RefCounted" version="4.0"> <brief_description> An implementation of A* to find the shortest paths among connected points in space. </brief_description> diff --git a/doc/classes/AStar2D.xml b/doc/classes/AStar2D.xml index 3efd2f604c..9edc300169 100644 --- a/doc/classes/AStar2D.xml +++ b/doc/classes/AStar2D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AStar2D" inherits="Reference" version="4.0"> +<class name="AStar2D" inherits="RefCounted" version="4.0"> <brief_description> AStar class representation that uses 2D vectors as edges. </brief_description> diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml index f4cf246713..f644606040 100644 --- a/doc/classes/AcceptDialog.xml +++ b/doc/classes/AcceptDialog.xml @@ -49,7 +49,7 @@ <method name="register_text_enter"> <return type="void"> </return> - <argument index="0" name="line_edit" type="Node"> + <argument index="0" name="line_edit" type="Control"> </argument> <description> Registers a [LineEdit] in the dialog. When the enter key is pressed, the dialog will be accepted. diff --git a/doc/classes/AnimatedSprite2D.xml b/doc/classes/AnimatedSprite2D.xml index 969e9cc85b..d18419f163 100644 --- a/doc/classes/AnimatedSprite2D.xml +++ b/doc/classes/AnimatedSprite2D.xml @@ -22,7 +22,7 @@ <method name="play"> <return type="void"> </return> - <argument index="0" name="anim" type="StringName" default="@"""> + <argument index="0" name="anim" type="StringName" default="&"""> </argument> <argument index="1" name="backwards" type="bool" default="false"> </argument> @@ -39,7 +39,7 @@ </method> </methods> <members> - <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="@"default""> + <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="&"default""> The current animation from the [code]frames[/code] resource. If this value changes, the [code]frame[/code] counter is reset. </member> <member name="centered" type="bool" setter="set_centered" getter="is_centered" default="true"> diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml index 02ccab4e05..39ab317b79 100644 --- a/doc/classes/AnimatedSprite3D.xml +++ b/doc/classes/AnimatedSprite3D.xml @@ -20,7 +20,7 @@ <method name="play"> <return type="void"> </return> - <argument index="0" name="anim" type="StringName" default="@"""> + <argument index="0" name="anim" type="StringName" default="&"""> </argument> <description> Plays the animation named [code]anim[/code]. If no [code]anim[/code] is provided, the current animation is played. @@ -35,7 +35,7 @@ </method> </methods> <members> - <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="@"default""> + <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="&"default""> The current animation from the [code]frames[/code] resource. If this value changes, the [code]frame[/code] counter is reset. </member> <member name="frame" type="int" setter="set_frame" getter="get_frame" default="0"> diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml index 7ceb21d22e..02203a3725 100644 --- a/doc/classes/Animation.xml +++ b/doc/classes/Animation.xml @@ -640,7 +640,7 @@ </argument> <argument index="2" name="location" type="Vector3"> </argument> - <argument index="3" name="rotation" type="Quat"> + <argument index="3" name="rotation" type="Quaternion"> </argument> <argument index="4" name="scale" type="Vector3"> </argument> @@ -656,7 +656,7 @@ <argument index="1" name="time_sec" type="float"> </argument> <description> - Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quat]) and scale ([Vector3]). + Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quaternion]) and scale ([Vector3]). </description> </method> <method name="value_track_get_key_indices" qualifiers="const"> @@ -727,8 +727,8 @@ <constant name="TYPE_VALUE" value="0" enum="TrackType"> Value tracks set values in node properties, but only those which can be Interpolated. </constant> - <constant name="TYPE_TRANSFORM" value="1" enum="TrackType"> - Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are interpolated. + <constant name="TYPE_TRANSFORM3D" value="1" enum="TrackType"> + Transform3D tracks are used to change node local transforms or skeleton pose bones of 3D nodes. Transitions are interpolated. </constant> <constant name="TYPE_METHOD" value="2" enum="TrackType"> Method tracks call functions with given arguments per key. diff --git a/doc/classes/AnimationNode.xml b/doc/classes/AnimationNode.xml index 8204b456d9..fddd8989ab 100644 --- a/doc/classes/AnimationNode.xml +++ b/doc/classes/AnimationNode.xml @@ -11,6 +11,65 @@ <link title="AnimationTree">https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link> </tutorials> <methods> + <method name="_get_caption" qualifiers="virtual"> + <return type="String"> + </return> + <description> + Gets the text caption for this node (used by some editors). + </description> + </method> + <method name="_get_child_by_name" qualifiers="virtual"> + <return type="Object"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <description> + Gets a child node by index (used by editors inheriting from [AnimationRootNode]). + </description> + </method> + <method name="_get_child_nodes" qualifiers="virtual"> + <return type="Dictionary"> + </return> + <description> + Gets all children nodes in order as a [code]name: node[/code] dictionary. Only useful when inheriting [AnimationRootNode]. + </description> + </method> + <method name="_get_parameter_default_value" qualifiers="virtual"> + <return type="Variant"> + </return> + <argument index="0" name="name" type="StringName"> + </argument> + <description> + Gets the default value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. + </description> + </method> + <method name="_get_parameter_list" qualifiers="virtual"> + <return type="Array"> + </return> + <description> + Gets the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list]. + </description> + </method> + <method name="_has_filter" qualifiers="virtual"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] whether you want the blend tree editor to display filter editing on this node. + </description> + </method> + <method name="_process" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="time" type="float"> + </argument> + <argument index="1" name="seek" type="bool"> + </argument> + <description> + User-defined callback called when a custom node is processed. The [code]time[/code] parameter is a relative delta, unless [code]seek[/code] is [code]true[/code], in which case it is absolute. + Here, call the [method blend_input], [method blend_node] or [method blend_animation] functions. You can also use [method get_parameter] and [method set_parameter] to modify local memory. + This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called). + </description> + </method> <method name="add_input"> <return type="void"> </return> @@ -77,29 +136,6 @@ Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from [AnimationRootNode] instead, else editors will not display your node for addition. </description> </method> - <method name="get_caption" qualifiers="virtual"> - <return type="String"> - </return> - <description> - Gets the text caption for this node (used by some editors). - </description> - </method> - <method name="get_child_by_name" qualifiers="virtual"> - <return type="Object"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <description> - Gets a child node by index (used by editors inheriting from [AnimationRootNode]). - </description> - </method> - <method name="get_child_nodes" qualifiers="virtual"> - <return type="Dictionary"> - </return> - <description> - Gets all children nodes in order as a [code]name: node[/code] dictionary. Only useful when inheriting [AnimationRootNode]. - </description> - </method> <method name="get_input_count" qualifiers="const"> <return type="int"> </return> @@ -125,29 +161,6 @@ Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. </description> </method> - <method name="get_parameter_default_value" qualifiers="virtual"> - <return type="Variant"> - </return> - <argument index="0" name="name" type="StringName"> - </argument> - <description> - Gets the default value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. - </description> - </method> - <method name="get_parameter_list" qualifiers="virtual"> - <return type="Array"> - </return> - <description> - Gets the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list]. - </description> - </method> - <method name="has_filter" qualifiers="virtual"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] whether you want the blend tree editor to display filter editing on this node. - </description> - </method> <method name="is_path_filtered" qualifiers="const"> <return type="bool"> </return> @@ -157,19 +170,6 @@ Returns [code]true[/code] whether a given path is filtered. </description> </method> - <method name="process" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="time" type="float"> - </argument> - <argument index="1" name="seek" type="bool"> - </argument> - <description> - User-defined callback called when a custom node is processed. The [code]time[/code] parameter is a relative delta, unless [code]seek[/code] is [code]true[/code], in which case it is absolute. - Here, call the [method blend_input], [method blend_node] or [method blend_animation] functions. You can also use [method get_parameter] and [method set_parameter] to modify local memory. - This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called). - </description> - </method> <method name="remove_input"> <return type="void"> </return> diff --git a/doc/classes/AnimationNodeAnimation.xml b/doc/classes/AnimationNodeAnimation.xml index 3f0843c112..75dae6a48e 100644 --- a/doc/classes/AnimationNodeAnimation.xml +++ b/doc/classes/AnimationNodeAnimation.xml @@ -14,7 +14,7 @@ <methods> </methods> <members> - <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="@"""> + <member name="animation" type="StringName" setter="set_animation" getter="get_animation" default="&"""> Animation to use as an output. It is one of the animations provided by [member AnimationTree.anim_player]. </member> </members> diff --git a/doc/classes/AnimationNodeStateMachineTransition.xml b/doc/classes/AnimationNodeStateMachineTransition.xml index 2f0ebd7de6..7f07afecee 100644 --- a/doc/classes/AnimationNodeStateMachineTransition.xml +++ b/doc/classes/AnimationNodeStateMachineTransition.xml @@ -10,7 +10,7 @@ <methods> </methods> <members> - <member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="@"""> + <member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="&"""> Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]: [codeblocks] [gdscript] diff --git a/doc/classes/AnimationTrackEditPlugin.xml b/doc/classes/AnimationTrackEditPlugin.xml index 8490d48718..7b96808581 100644 --- a/doc/classes/AnimationTrackEditPlugin.xml +++ b/doc/classes/AnimationTrackEditPlugin.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AnimationTrackEditPlugin" inherits="Reference" version="4.0"> +<class name="AnimationTrackEditPlugin" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/AnimationTree.xml b/doc/classes/AnimationTree.xml index 2517941133..af7d8d73e8 100644 --- a/doc/classes/AnimationTree.xml +++ b/doc/classes/AnimationTree.xml @@ -21,10 +21,10 @@ </description> </method> <method name="get_root_motion_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> - Retrieve the motion of the [member root_motion_track] as a [Transform] that can be used elsewhere. If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_TRANSFORM], returns an identity transformation. + Retrieve the motion of the [member root_motion_track] as a [Transform3D] that can be used elsewhere. If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_TRANSFORM3D], returns an identity transformation. </description> </method> <method name="rename_parameter"> @@ -50,7 +50,7 @@ </member> <member name="root_motion_track" type="NodePath" setter="set_root_motion_track" getter="get_root_motion_track" default="NodePath("")"> The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by [code]":"[/code]. For example, [code]"character/skeleton:ankle"[/code] or [code]"character/mesh:transform/local"[/code]. - If the track has type [constant Animation.TYPE_TRANSFORM], the transformation will be cancelled visually, and the animation will appear to stay in place. + If the track has type [constant Animation.TYPE_TRANSFORM3D], the transformation will be cancelled visually, and the animation will appear to stay in place. </member> <member name="tree_root" type="AnimationNode" setter="set_tree_root" getter="get_tree_root"> The root animation node of this [AnimationTree]. See [AnimationNode]. diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml index f7a116b934..96333988f8 100644 --- a/doc/classes/Area2D.xml +++ b/doc/classes/Area2D.xml @@ -54,7 +54,7 @@ The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. See [member ProjectSettings.physics/2d/default_angular_damp] for more details about damping. </member> - <member name="audio_bus_name" type="StringName" setter="set_audio_bus_name" getter="get_audio_bus_name" default="@"Master""> + <member name="audio_bus_name" type="StringName" setter="set_audio_bus_name" getter="get_audio_bus_name" default="&"Master""> The name of the area's audio bus. </member> <member name="audio_bus_override" type="bool" setter="set_audio_bus_override" getter="is_overriding_audio_bus" default="false"> diff --git a/doc/classes/Area3D.xml b/doc/classes/Area3D.xml index 108387823b..a2724f3f23 100644 --- a/doc/classes/Area3D.xml +++ b/doc/classes/Area3D.xml @@ -52,7 +52,7 @@ The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. See [member ProjectSettings.physics/3d/default_angular_damp] for more details about damping. </member> - <member name="audio_bus_name" type="StringName" setter="set_audio_bus_name" getter="get_audio_bus_name" default="@"Master""> + <member name="audio_bus_name" type="StringName" setter="set_audio_bus_name" getter="get_audio_bus_name" default="&"Master""> The name of the area's audio bus. </member> <member name="audio_bus_override" type="bool" setter="set_audio_bus_override" getter="is_overriding_audio_bus" default="false"> @@ -89,7 +89,7 @@ <member name="reverb_bus_enable" type="bool" setter="set_use_reverb_bus" getter="is_using_reverb_bus" default="false"> If [code]true[/code], the area applies reverb to its associated audio. </member> - <member name="reverb_bus_name" type="StringName" setter="set_reverb_bus" getter="get_reverb_bus" default="@"Master""> + <member name="reverb_bus_name" type="StringName" setter="set_reverb_bus" getter="get_reverb_bus" default="&"Master""> The reverb bus name to use for this area's associated audio. </member> <member name="reverb_bus_uniformity" type="float" setter="set_reverb_uniformity" getter="get_reverb_uniformity" default="0.0"> diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index 879b61a880..543ec096c7 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -33,8 +33,8 @@ [/gdscript] [csharp] // Array concatenation is not possible with C# arrays, but is with Godot.Collections.Array. - var array1 = new Godot.Collections.Array("One", 2); - var array2 = new Godot.Collections.Array(3, "Four"); + var array1 = new Godot.Collections.Array{"One", 2}; + var array2 = new Godot.Collections.Array{3, "Four"}; GD.Print(array1 + array2); // Prints [One, 2, 3, Four] [/csharp] [/codeblocks] @@ -615,7 +615,7 @@ <argument index="0" name="func" type="Callable"> </argument> <description> - Sorts the array using a custom method. The custom method receives two arguments (a pair of elements from the array) and must return either [code]true[/code] or [code]false[/code]. + Sorts the array using a custom method. The custom method receives two arguments (a pair of elements from the array) and must return either [code]true[/code] or [code]false[/code]. For two elements [code]a[/code] and [code]b[/code], if the given method returns [code]true[/code], element [code]b[/code] will be after element [code]a[/code] in the array. [b]Note:[/b] you cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior. [codeblocks] [gdscript] diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml index 7c1c4656f8..f8cbc942e6 100644 --- a/doc/classes/ArrayMesh.xml +++ b/doc/classes/ArrayMesh.xml @@ -77,7 +77,6 @@ Creates a new surface. Surfaces are created to be rendered using a [code]primitive[/code], which may be any of the types defined in [enum Mesh.PrimitiveType]. (As a note, when using indices, it is recommended to only use points, lines or triangles.) [method Mesh.get_surface_count] will become the [code]surf_idx[/code] for this new surface. The [code]arrays[/code] argument is an array of arrays. See [enum Mesh.ArrayType] for the values used in this array. For example, [code]arrays[0][/code] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for [constant Mesh.ARRAY_INDEX] if it is used. - Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices. </description> </method> <method name="clear_blend_shapes"> @@ -113,7 +112,7 @@ <method name="lightmap_unwrap"> <return type="int" enum="Error"> </return> - <argument index="0" name="transform" type="Transform"> + <argument index="0" name="transform" type="Transform3D"> </argument> <argument index="1" name="texel_size" type="float"> </argument> diff --git a/doc/classes/AudioEffectCompressor.xml b/doc/classes/AudioEffectCompressor.xml index 3117978d8a..4e924bcb65 100644 --- a/doc/classes/AudioEffectCompressor.xml +++ b/doc/classes/AudioEffectCompressor.xml @@ -32,7 +32,7 @@ <member name="release_ms" type="float" setter="set_release_ms" getter="get_release_ms" default="250.0"> Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000. </member> - <member name="sidechain" type="StringName" setter="set_sidechain" getter="get_sidechain" default="@"""> + <member name="sidechain" type="StringName" setter="set_sidechain" getter="get_sidechain" default="&"""> Reduce the sound level using another audio bus for threshold detection. </member> <member name="threshold" type="float" setter="set_threshold" getter="get_threshold" default="0.0"> diff --git a/doc/classes/AudioEffectInstance.xml b/doc/classes/AudioEffectInstance.xml index dc76880a36..9ab6028901 100644 --- a/doc/classes/AudioEffectInstance.xml +++ b/doc/classes/AudioEffectInstance.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AudioEffectInstance" inherits="Reference" version="4.0"> +<class name="AudioEffectInstance" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/AudioStreamPlayback.xml b/doc/classes/AudioStreamPlayback.xml index da75ff206c..cb01aa75e8 100644 --- a/doc/classes/AudioStreamPlayback.xml +++ b/doc/classes/AudioStreamPlayback.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="AudioStreamPlayback" inherits="Reference" version="4.0"> +<class name="AudioStreamPlayback" inherits="RefCounted" version="4.0"> <brief_description> Meta class for playing back audio. </brief_description> diff --git a/doc/classes/AudioStreamPlayer.xml b/doc/classes/AudioStreamPlayer.xml index 113cc64b9d..7c7f7e0cea 100644 --- a/doc/classes/AudioStreamPlayer.xml +++ b/doc/classes/AudioStreamPlayer.xml @@ -60,7 +60,7 @@ <member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false"> If [code]true[/code], audio plays when added to scene tree. </member> - <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="@"Master""> + <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="&"Master""> Bus on which this audio is playing. </member> <member name="mix_target" type="int" setter="set_mix_target" getter="get_mix_target" enum="AudioStreamPlayer.MixTarget" default="0"> diff --git a/doc/classes/AudioStreamPlayer2D.xml b/doc/classes/AudioStreamPlayer2D.xml index e7c276f463..b1e18ab550 100644 --- a/doc/classes/AudioStreamPlayer2D.xml +++ b/doc/classes/AudioStreamPlayer2D.xml @@ -62,7 +62,7 @@ <member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false"> If [code]true[/code], audio plays when added to scene tree. </member> - <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="@"Master""> + <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="&"Master""> Bus on which this audio is playing. </member> <member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="2000.0"> diff --git a/doc/classes/AudioStreamPlayer3D.xml b/doc/classes/AudioStreamPlayer3D.xml index db46ed2778..3bd20b4b9b 100644 --- a/doc/classes/AudioStreamPlayer3D.xml +++ b/doc/classes/AudioStreamPlayer3D.xml @@ -69,7 +69,7 @@ <member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled" default="false"> If [code]true[/code], audio plays when the AudioStreamPlayer3D node is added to scene tree. </member> - <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="@"Master""> + <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="&"Master""> The bus on which this audio is playing. </member> <member name="doppler_tracking" type="int" setter="set_doppler_tracking" getter="get_doppler_tracking" enum="AudioStreamPlayer3D.DopplerTracking" default="0"> @@ -108,7 +108,7 @@ <member name="unit_db" type="float" setter="set_unit_db" getter="get_unit_db" default="0.0"> The base sound level unaffected by dampening, in decibels. </member> - <member name="unit_size" type="float" setter="set_unit_size" getter="get_unit_size" default="1.0"> + <member name="unit_size" type="float" setter="set_unit_size" getter="get_unit_size" default="10.0"> The factor for the attenuation effect. Higher values make the sound audible over a larger distance. </member> </members> diff --git a/doc/classes/BaseMaterial3D.xml b/doc/classes/BaseMaterial3D.xml index 0a7b4c5dab..49edb4c691 100644 --- a/doc/classes/BaseMaterial3D.xml +++ b/doc/classes/BaseMaterial3D.xml @@ -199,7 +199,7 @@ The emitted light's color. See [member emission_enabled]. </member> <member name="emission_enabled" type="bool" setter="set_feature" getter="get_feature" default="false"> - If [code]true[/code], the body emits light. Emitting light makes the object appear brighter. The object can also cast light on other objects if a [GIProbe] is used and this object is used in baked lighting. + If [code]true[/code], the body emits light. Emitting light makes the object appear brighter. The object can also cast light on other objects if a [VoxelGI] is used and this object is used in baked lighting. </member> <member name="emission_energy" type="float" setter="set_emission_energy" getter="get_emission_energy" default="1.0"> The emitted light's strength. See [member emission_enabled]. @@ -671,10 +671,7 @@ <constant name="DIFFUSE_LAMBERT_WRAP" value="2" enum="DiffuseMode"> Extends Lambert to cover more than 90 degrees when roughness increases. </constant> - <constant name="DIFFUSE_OREN_NAYAR" value="3" enum="DiffuseMode"> - Attempts to use roughness to emulate microsurfacing. - </constant> - <constant name="DIFFUSE_TOON" value="4" enum="DiffuseMode"> + <constant name="DIFFUSE_TOON" value="3" enum="DiffuseMode"> Uses a hard cut for lighting, with smoothing affected by roughness. </constant> <constant name="SPECULAR_SCHLICK_GGX" value="0" enum="SpecularMode"> diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml index 55ae58ee3a..14fca04672 100644 --- a/doc/classes/Basis.xml +++ b/doc/classes/Basis.xml @@ -4,7 +4,7 @@ 3×3 matrix datatype. </brief_description> <description> - 3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a Transform. + 3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a [Transform3D]. Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S). Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling). For more information, read the "Matrices and transforms" documentation article. @@ -53,13 +53,13 @@ </argument> <description> Constructs a pure rotation basis matrix from the given Euler angles (in the YXZ convention: when *composing*, first Y, then X, and Z last), given in the vector format as (X angle, Y angle, Z angle). - Consider using the [Quat] constructor instead, which uses a quaternion instead of Euler angles. + Consider using the [Quaternion] constructor instead, which uses a quaternion instead of Euler angles. </description> </method> <method name="Basis" qualifiers="constructor"> <return type="Basis"> </return> - <argument index="0" name="from" type="Quat"> + <argument index="0" name="from" type="Quaternion"> </argument> <description> Constructs a pure rotation basis matrix from the given quaternion. @@ -91,7 +91,7 @@ </return> <description> Returns the basis's rotation in the form of Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last). The returned vector contains the rotation angles in the format (X angle, Y angle, Z angle). - Consider using the [method get_rotation_quat] method instead, which returns a [Quat] quaternion instead of Euler angles. + Consider using the [method get_rotation_quaternion] method instead, which returns a [Quaternion] quaternion instead of Euler angles. </description> </method> <method name="get_orthogonal_index" qualifiers="const"> @@ -101,8 +101,8 @@ This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index of the point best representing the orientation of the object. It is mainly used by the [GridMap] editor. For further details, refer to the Godot source code. </description> </method> - <method name="get_rotation_quat" qualifiers="const"> - <return type="Quat"> + <method name="get_rotation_quaternion" qualifiers="const"> + <return type="Quaternion"> </return> <description> Returns the basis's rotation in the form of a quaternion. See [method get_euler] if you need Euler angles, but keep in mind quaternions should generally be preferred to Euler angles. diff --git a/doc/classes/BitMap.xml b/doc/classes/BitMap.xml index 27ead07e6f..83e598d2ba 100644 --- a/doc/classes/BitMap.xml +++ b/doc/classes/BitMap.xml @@ -71,6 +71,12 @@ <argument index="1" name="epsilon" type="float" default="2.0"> </argument> <description> + Creates an [Array] of polygons covering a rectangular portion of the bitmap. It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker (RDP) reduction of the number of vertices. Each polygon is described as a [PackedVector2Array] of its vertices. + To get polygons covering the whole bitmap, pass: + [codeblock] + Rect2(Vector2(), get_size()) + [/codeblock] + [code]epsilon[/code] is passed to RDP to control how accurately the polygons cover the bitmap: a lower [code]epsilon[/code] corresponds to more points in the polygons. </description> </method> <method name="set_bit"> diff --git a/doc/classes/Bone2D.xml b/doc/classes/Bone2D.xml index 910d488dfd..93744ddad7 100644 --- a/doc/classes/Bone2D.xml +++ b/doc/classes/Bone2D.xml @@ -19,6 +19,28 @@ Stores the node's current transforms in [member rest]. </description> </method> + <method name="get_autocalculate_length_and_angle" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns whether this [code]Bone2D[/code] node is going to autocalculate its length and bone angle using its first [code]Bone2D[/code] child node, if one exists. If there are no [code]Bone2D[/code] children, then it cannot autocalculate these values and will print a warning. + </description> + </method> + <method name="get_bone_angle" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the angle of the bone in the [code]Bone2D[/code] node. + [b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node. + </description> + </method> + <method name="get_default_length" qualifiers="const"> + <return type="float"> + </return> + <description> + Deprecated. Please use [code]get_length[/code] instead. + </description> + </method> <method name="get_index_in_skeleton" qualifiers="const"> <return type="int"> </return> @@ -26,6 +48,13 @@ Returns the node's index as part of the entire skeleton. See [Skeleton2D]. </description> </method> + <method name="get_length" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the length of the bone in the [code]Bone2D[/code] node. + </description> + </method> <method name="get_skeleton_rest" qualifiers="const"> <return type="Transform2D"> </return> @@ -33,11 +62,45 @@ Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have a parent, or its rest pose relative to its parent. </description> </method> + <method name="set_autocalculate_length_and_angle"> + <return type="void"> + </return> + <argument index="0" name="auto_calculate" type="bool"> + </argument> + <description> + When set to [code]true[/code], the [code]Bone2D[/code] node will attempt to automatically calculate the bone angle and length using the first child [code]Bone2D[/code] node, if one exists. If none exist, the [code]Bone2D[/code] cannot automatically calculate these values and will print a warning. + </description> + </method> + <method name="set_bone_angle"> + <return type="void"> + </return> + <argument index="0" name="angle" type="float"> + </argument> + <description> + Sets the bone angle for the [code]Bone2D[/code] node. This is typically set to the rotation from the [code]Bone2D[/code] node to a child [code]Bone2D[/code] node. + [b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node. + </description> + </method> + <method name="set_default_length"> + <return type="void"> + </return> + <argument index="0" name="default_length" type="float"> + </argument> + <description> + Deprecated. Please use [code]set_length[/code] instead. + </description> + </method> + <method name="set_length"> + <return type="void"> + </return> + <argument index="0" name="length" type="float"> + </argument> + <description> + Sets the length of the bone in the [code]Bone2D[/code] node. + </description> + </method> </methods> <members> - <member name="default_length" type="float" setter="set_default_length" getter="get_default_length" default="16.0"> - Length of the bone's representation drawn in the editor's viewport in pixels. - </member> <member name="rest" type="Transform2D" setter="set_rest" getter="get_rest" default="Transform2D( 0, 0, 0, 0, 0, 0 )"> Rest transform of the bone. You can reset the node's transforms to this value using [method apply_rest]. </member> diff --git a/doc/classes/Camera3D.xml b/doc/classes/Camera3D.xml index 9f1d6d8e31..30f6c2b951 100644 --- a/doc/classes/Camera3D.xml +++ b/doc/classes/Camera3D.xml @@ -27,7 +27,7 @@ </description> </method> <method name="get_camera_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Gets the camera transform. Subclassed cameras such as [ClippedCamera3D] may provide different transforms than the [Node] transform. diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml index 4fc124592f..fc7dcd3772 100644 --- a/doc/classes/CameraFeed.xml +++ b/doc/classes/CameraFeed.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="CameraFeed" inherits="Reference" version="4.0"> +<class name="CameraFeed" inherits="RefCounted" version="4.0"> <brief_description> A camera feed gives you access to a single physical camera attached to your device. </brief_description> diff --git a/doc/classes/CharFXTransform.xml b/doc/classes/CharFXTransform.xml index 7b57dc05f8..7a6a18f532 100644 --- a/doc/classes/CharFXTransform.xml +++ b/doc/classes/CharFXTransform.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="CharFXTransform" inherits="Reference" version="4.0"> +<class name="CharFXTransform" inherits="RefCounted" version="4.0"> <brief_description> Controls how an individual character will be displayed in a [RichTextEffect]. </brief_description> diff --git a/doc/classes/CharacterBody2D.xml b/doc/classes/CharacterBody2D.xml new file mode 100644 index 0000000000..0e6ca073a7 --- /dev/null +++ b/doc/classes/CharacterBody2D.xml @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="CharacterBody2D" inherits="PhysicsBody2D" version="4.0"> + <brief_description> + Character body 2D node. + </brief_description> + <description> + Character bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a rigid body, these are the same as a static body. However, they have two main uses: + [b]Kinematic characters:[/b] Character bodies have an API for moving objects with walls and slopes detection ([method move_and_slide] method), in addition to collision detection (also done with [method PhysicsBody3D.move_and_collide]). This makes them really useful to implement characters that move in specific ways and collide with the world, but don't require advanced physics. + [b]Kinematic motion:[/b] Character bodies can also be used for kinematic motion (same functionality as [member StaticBody3D.kinematic_motion] when enabled), which allows them to be moved by code and push other bodies on their path. + </description> + <tutorials> + <link title="Kinematic character (2D)">https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link> + <link title="Using KinematicBody2D">https://docs.godotengine.org/en/latest/tutorials/physics/using_kinematic_body_2d.html</link> + <link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link> + <link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link> + </tutorials> + <methods> + <method name="get_floor_normal" qualifiers="const"> + <return type="Vector2"> + </return> + <description> + Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code]. + </description> + </method> + <method name="get_floor_velocity" qualifiers="const"> + <return type="Vector2"> + </return> + <description> + Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code]. + </description> + </method> + <method name="get_slide_collision"> + <return type="KinematicCollision2D"> + </return> + <argument index="0" name="slide_idx" type="int"> + </argument> + <description> + Returns a [KinematicCollision2D], which contains information about a collision that occurred during the last call to [method move_and_slide]. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1). + [b]Example usage:[/b] + [codeblocks] + [gdscript] + for i in get_slide_count(): + var collision = get_slide_collision(i) + print("Collided with: ", collision.collider.name) + [/gdscript] + [csharp] + for (int i = 0; i < GetSlideCount(); i++) + { + KinematicCollision2D collision = GetSlideCollision(i); + GD.Print("Collided with: ", (collision.Collider as Node).Name); + } + [/csharp] + [/codeblocks] + </description> + </method> + <method name="get_slide_count" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the number of times the body collided and changed direction during the last call to [method move_and_slide]. + </description> + </method> + <method name="is_on_ceiling" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="is_on_floor" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="is_on_wall" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="move_and_slide"> + <return type="void"> + </return> + <description> + Moves the body based on [member linear_velocity]. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [CharacterBody2D] or [RigidBody2D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed. + Modifies [member linear_velocity] if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision]. + </description> + </method> + </methods> + <members> + <member name="collision/safe_margin" type="float" setter="set_safe_margin" getter="get_safe_margin" default="0.08"> + Extra margin used for collision recovery when calling [method move_and_slide]. + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + </member> + <member name="floor_max_angle" type="float" setter="set_floor_max_angle" getter="get_floor_max_angle" default="0.785398"> + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. The default value equals 45 degrees. + </member> + <member name="floor_max_angle_degrees" type="float" setter="set_floor_max_angle_degrees" getter="get_floor_max_angle_degrees" default="45.0"> + Maximum angle (in degrees) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. + </member> + <member name="infinite_inertia" type="bool" setter="set_infinite_inertia_enabled" getter="is_infinite_inertia_enabled" default="true"> + If [code]true[/code], the body will be able to push [RigidBody2D] nodes when calling [method move_and_slide], but it also won't detect any collisions with them. If [code]false[/code], it will interact with [RigidBody2D] nodes like with [StaticBody2D]. + </member> + <member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2( 0, 0 )"> + Current velocity vector in pixels per second, used and modified during calls to [method move_and_slide]. + </member> + <member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="4"> + Maximum number of times the body can change direction before it stops when calling [method move_and_slide]. + </member> + <member name="motion/sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="false"> + If [code]true[/code], the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms. Do [b]not[/b] use together with [method move_and_slide] or [method PhysicsBody2D.move_and_collide] functions. + </member> + <member name="snap" type="Vector2" setter="set_snap" getter="get_snap" default="Vector2( 0, 0 )"> + When set to a value different from [code]Vector2(0, 0)[/code], the body is kept attached to slopes when calling [method move_and_slide]. + As long as the [code]snap[/code] vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting [code]snap[/code] to [code]Vector2(0, 0)[/code]. + </member> + <member name="stop_on_slope" type="bool" setter="set_stop_on_slope_enabled" getter="is_stop_on_slope_enabled" default="false"> + If [code]true[/code], the body will not slide on slopes when you include gravity in [code]linear_velocity[/code] when calling [method move_and_slide] and the body is standing still. + </member> + <member name="up_direction" type="Vector2" setter="set_up_direction" getter="get_up_direction" default="Vector2( 0, -1 )"> + Direction vector used to determine what is a wall and what is a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. Defaults to [code]Vector2.UP[/code]. If set to [code]Vector2(0, 0)[/code], everything is considered a wall. This is useful for topdown games. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/CharacterBody3D.xml b/doc/classes/CharacterBody3D.xml new file mode 100644 index 0000000000..790edfcad1 --- /dev/null +++ b/doc/classes/CharacterBody3D.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="CharacterBody3D" inherits="PhysicsBody3D" version="4.0"> + <brief_description> + Character body 3D node. + </brief_description> + <description> + Character bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a rigid body, these are the same as a static body. However, they have two main uses: + [b]Kinematic characters:[/b] Character bodies have an API for moving objects with walls and slopes detection ([method move_and_slide] method), in addition to collision detection (also done with [method PhysicsBody3D.move_and_collide]). This makes them really useful to implement characters that move in specific ways and collide with the world, but don't require advanced physics. + [b]Kinematic motion:[/b] Character bodies can also be used for kinematic motion (same functionality as [member StaticBody3D.kinematic_motion] when enabled), which allows them to be moved by code and push other bodies on their path. + </description> + <tutorials> + <link title="Kinematic character (2D)">https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link> + <link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link> + <link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link> + <link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link> + <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> + </tutorials> + <methods> + <method name="get_floor_normal" qualifiers="const"> + <return type="Vector3"> + </return> + <description> + Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code]. + </description> + </method> + <method name="get_floor_velocity" qualifiers="const"> + <return type="Vector3"> + </return> + <description> + Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] and when [method is_on_floor] returns [code]true[/code]. + </description> + </method> + <method name="get_slide_collision"> + <return type="KinematicCollision3D"> + </return> + <argument index="0" name="slide_idx" type="int"> + </argument> + <description> + Returns a [KinematicCollision3D], which contains information about a collision that occurred during the last call to [method move_and_slide]. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1). + </description> + </method> + <method name="get_slide_count" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the number of times the body collided and changed direction during the last call to [method move_and_slide]. + </description> + </method> + <method name="is_on_ceiling" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="is_on_floor" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="is_on_wall" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide]. Otherwise, returns [code]false[/code]. + </description> + </method> + <method name="move_and_slide"> + <return type="void"> + </return> + <description> + Moves the body based on [member linear_velocity]. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [CharacterBody3D] or [RigidBody3D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed. + Modifies [member linear_velocity] if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision]. + </description> + </method> + </methods> + <members> + <member name="collision/safe_margin" type="float" setter="set_safe_margin" getter="get_safe_margin" default="0.001"> + Extra margin used for collision recovery when calling [method move_and_slide]. + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + </member> + <member name="floor_max_angle" type="float" setter="set_floor_max_angle" getter="get_floor_max_angle" default="0.785398"> + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. The default value equals 45 degrees. + </member> + <member name="floor_max_angle_degrees" type="float" setter="set_floor_max_angle_degrees" getter="get_floor_max_angle_degrees" default="45.0"> + Maximum angle (in degrees) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. + </member> + <member name="infinite_inertia" type="bool" setter="set_infinite_inertia_enabled" getter="is_infinite_inertia_enabled" default="true"> + If [code]true[/code], the body will be able to push [RigidBody3D] nodes when calling [method move_and_slide], but it also won't detect any collisions with them. If [code]false[/code], it will interact with [RigidBody3D] nodes like with [StaticBody3D]. + </member> + <member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3( 0, 0, 0 )"> + Current velocity vector (typically meters per second), used and modified during calls to [method move_and_slide]. + </member> + <member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="4"> + Maximum number of times the body can change direction before it stops when calling [method move_and_slide]. + </member> + <member name="snap" type="Vector3" setter="set_snap" getter="get_snap" default="Vector3( 0, 0, 0 )"> + When set to a value different from [code]Vector3(0, 0, 0)[/code], the body is kept attached to slopes when calling [method move_and_slide]. + As long as the [code]snap[/code] vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting [code]snap[/code] to [code]Vector3(0, 0, 0)[/code]. + </member> + <member name="stop_on_slope" type="bool" setter="set_stop_on_slope_enabled" getter="is_stop_on_slope_enabled" default="false"> + If [code]true[/code], the body will not slide on slopes when you include gravity in [code]linear_velocity[/code] when calling [method move_and_slide] and the body is standing still. + </member> + <member name="up_direction" type="Vector3" setter="set_up_direction" getter="get_up_direction" default="Vector3( 0, 1, 0 )"> + Direction vector used to determine what is a wall and what is a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. Defaults to [code]Vector3.UP[/code]. If set to [code]Vector3(0, 0, 0)[/code], everything is considered a wall. This is useful for topdown games. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/CodeEdit.xml b/doc/classes/CodeEdit.xml index 42a6df866f..4076198df6 100644 --- a/doc/classes/CodeEdit.xml +++ b/doc/classes/CodeEdit.xml @@ -8,6 +8,91 @@ <tutorials> </tutorials> <methods> + <method name="_confirm_code_completion" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="replace" type="bool"> + </argument> + <description> + Override this method to define how the selected entry should be inserted. If [code]replace[/code] is true, any existing text should be replaced. + </description> + </method> + <method name="_filter_code_completion_candidates" qualifiers="virtual"> + <return type="Array"> + </return> + <argument index="0" name="candidates" type="Array"> + </argument> + <description> + Override this method to define what items in [code]candidates[/code] should be displayed. + Both [code]candidates[/code] and the return is a [Array] of [Dictionary], see [method get_code_completion_option] for [Dictionary] content. + </description> + </method> + <method name="_request_code_completion" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="force" type="bool"> + </argument> + <description> + Override this method to define what happens when the user requests code completion. If [code]force[/code] is true, any checks should be bypassed. + </description> + </method> + <method name="add_code_completion_option"> + <return type="void"> + </return> + <argument index="0" name="type" type="int" enum="CodeEdit.CodeCompletionKind"> + </argument> + <argument index="1" name="display_text" type="String"> + </argument> + <argument index="2" name="insert_text" type="String"> + </argument> + <argument index="3" name="text_color" type="Color" default="Color( 1, 1, 1, 1 )"> + </argument> + <argument index="4" name="icon" type="Resource" default="null"> + </argument> + <argument index="5" name="value" type="Variant" default="0"> + </argument> + <description> + Submits an item to the queue of potential candidates for the autocomplete menu. Call [method update_code_completion_options] to update the list. + [b]Note[/b]: This list will replace all current candidates. + </description> + </method> + <method name="add_comment_delimiter"> + <return type="void"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <argument index="1" name="end_key" type="String"> + </argument> + <argument index="2" name="line_only" type="bool" default="false"> + </argument> + <description> + Adds a comment delimiter. + Both the start and end keys must be symbols. Only the start key has to be unique. + Line only denotes if the region should continue until the end of the line or carry over on to the next line. If the end key is blank this is automatically set to [code]true[/code]. + </description> + </method> + <method name="add_string_delimiter"> + <return type="void"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <argument index="1" name="end_key" type="String"> + </argument> + <argument index="2" name="line_only" type="bool" default="false"> + </argument> + <description> + Adds a string delimiter. + Both the start and end keys must be symbols. Only the start key has to be unique. + Line only denotes if the region should continue until the end of the line or carry over on to the next line. If the end key is blank this is automatically set to [code]true[/code]. + </description> + </method> + <method name="cancel_code_completion"> + <return type="void"> + </return> + <description> + Cancels the autocomplete menu. + </description> + </method> <method name="clear_bookmarked_lines"> <return type="void"> </return> @@ -20,12 +105,35 @@ <description> </description> </method> + <method name="clear_comment_delimiters"> + <return type="void"> + </return> + <description> + Removes all comment delimiters. + </description> + </method> <method name="clear_executing_lines"> <return type="void"> </return> <description> </description> </method> + <method name="clear_string_delimiters"> + <return type="void"> + </return> + <description> + Removes all string delimiters. + </description> + </method> + <method name="confirm_code_completion"> + <return type="void"> + </return> + <argument index="0" name="replace" type="bool" default="false"> + </argument> + <description> + Inserts the selected entry into the text. If [code]replace[/code] is true, any existing text is replaced rather then merged. + </description> + </method> <method name="get_bookmarked_lines" qualifiers="const"> <return type="Array"> </return> @@ -38,12 +146,128 @@ <description> </description> </method> + <method name="get_code_completion_option" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Gets the completion option at [code]index[/code]. The return [Dictionary] has the following key-values: + [code]kind[/code]: [enum CodeCompletionKind] + [code]display_text[/code]: Text that is shown on the autocomplete menu. + [code]insert_text[/code]: Text that is to be inserted when this item is selected. + [code]font_color[/code]: Color of the text on the autocomplete menu. + [code]icon[/code]: Icon to draw on the autocomplete menu. + [code]default_value[/code]: Value of the symbol. + </description> + </method> + <method name="get_code_completion_options" qualifiers="const"> + <return type="Dictionary[]"> + </return> + <description> + Gets all completion options, see [method get_code_completion_option] for return content. + </description> + </method> + <method name="get_code_completion_selected_index" qualifiers="const"> + <return type="int"> + </return> + <description> + Gets the index of the current selected completion option. + </description> + </method> + <method name="get_delimiter_end_key" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="delimiter_index" type="int"> + </argument> + <description> + Gets the end key for a string or comment region index. + </description> + </method> + <method name="get_delimiter_end_postion" qualifiers="const"> + <return type="Vector2"> + </return> + <argument index="0" name="line" type="int"> + </argument> + <argument index="1" name="column" type="int"> + </argument> + <description> + If [code]line[/code] [code]column[/code] is in a string or comment, returns the end position of the region. If not or no end could be found, both [Vector2] values will be [code]-1[/code]. + </description> + </method> + <method name="get_delimiter_start_key" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="delimiter_index" type="int"> + </argument> + <description> + Gets the start key for a string or comment region index. + </description> + </method> + <method name="get_delimiter_start_postion" qualifiers="const"> + <return type="Vector2"> + </return> + <argument index="0" name="line" type="int"> + </argument> + <argument index="1" name="column" type="int"> + </argument> + <description> + If [code]line[/code] [code]column[/code] is in a string or comment, returns the start position of the region. If not or no start could be found, both [Vector2] values will be [code]-1[/code]. + </description> + </method> <method name="get_executing_lines" qualifiers="const"> <return type="Array"> </return> <description> </description> </method> + <method name="get_text_for_code_completion" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns the full text with char [code]0xFFFF[/code] at the caret location. + </description> + </method> + <method name="has_comment_delimiter" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <description> + Returns [code]true[/code] if comment [code]start_key[/code] exists. + </description> + </method> + <method name="has_string_delimiter" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <description> + Returns [code]true[/code] if string [code]start_key[/code] exists. + </description> + </method> + <method name="is_in_comment" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="line" type="int"> + </argument> + <argument index="1" name="column" type="int" default="-1"> + </argument> + <description> + Return delimiter index if [code]line[/code] [code]column[/code] is in a comment. If [code]column[/code] is not provided, will return delimiter index if the entire [code]line[/code] is a comment. Otherwise [code]-1[/code]. + </description> + </method> + <method name="is_in_string" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="line" type="int"> + </argument> + <argument index="1" name="column" type="int" default="-1"> + </argument> + <description> + Return the delimiter index if [code]line[/code] [code]column[/code] is in a string. If [code]column[/code] is not provided, will return the delimiter index if the entire [code]line[/code] is a string. Otherwise [code]-1[/code]. + </description> + </method> <method name="is_line_bookmarked" qualifiers="const"> <return type="bool"> </return> @@ -68,6 +292,60 @@ <description> </description> </method> + <method name="remove_comment_delimiter"> + <return type="void"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <description> + Removes the comment delimiter with [code]start_key[/code]. + </description> + </method> + <method name="remove_string_delimiter"> + <return type="void"> + </return> + <argument index="0" name="start_key" type="String"> + </argument> + <description> + Removes the string delimiter with [code]start_key[/code]. + </description> + </method> + <method name="request_code_completion"> + <return type="void"> + </return> + <argument index="0" name="force" type="bool" default="false"> + </argument> + <description> + Emits [signal request_code_completion], if [code]force[/code] is true will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path or signal. + </description> + </method> + <method name="set_code_completion_selected_index"> + <return type="void"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Sets the current selected completion option. + </description> + </method> + <method name="set_code_hint"> + <return type="void"> + </return> + <argument index="0" name="code_hint" type="String"> + </argument> + <description> + Sets the code hint text. Pass an empty string to clear. + </description> + </method> + <method name="set_code_hint_draw_below"> + <return type="void"> + </return> + <argument index="0" name="draw_below" type="bool"> + </argument> + <description> + Sets if the code hint should draw below the text. + </description> + </method> <method name="set_line_as_bookmarked"> <return type="void"> </return> @@ -98,8 +376,30 @@ <description> </description> </method> + <method name="update_code_completion_options"> + <return type="void"> + </return> + <argument index="0" name="force" type="bool"> + </argument> + <description> + Submits all completion options added with [method add_code_completion_option]. Will try to force the autoccomplete menu to popup, if [code]force[/code] is [code]true[/code]. + [b]Note[/b]: This will replace all current candidates. + </description> + </method> </methods> <members> + <member name="code_completion_enabled" type="bool" setter="set_code_completion_enabled" getter="is_code_completion_enabled" default="false"> + Sets whether code completion is allowed. + </member> + <member name="code_completion_prefixes" type="String[]" setter="set_code_completion_prefixes" getter="get_code_comletion_prefixes" default="[ ]"> + Sets prefixes that will trigger code completion. + </member> + <member name="delimiter_comments" type="String[]" setter="set_comment_delimiters" getter="get_comment_delimiters" default="[ ]"> + Sets the comment delimiters. All existing comment delimiters will be removed. + </member> + <member name="delimiter_strings" type="String[]" setter="set_string_delimiters" getter="get_string_delimiters" default="[ ]"> + Sets the string delimiters. All existing string delimiters will be removed. + </member> <member name="draw_bookmarks" type="bool" setter="set_draw_bookmarks_gutter" getter="is_drawing_bookmarks_gutter" default="false"> </member> <member name="draw_breakpoints_gutter" type="bool" setter="set_draw_breakpoints_gutter" getter="is_drawing_breakpoints_gutter" default="false"> @@ -123,8 +423,33 @@ <description> </description> </signal> + <signal name="request_code_completion"> + <description> + Emitted when the user requests code completion. + </description> + </signal> </signals> <constants> + <constant name="KIND_CLASS" value="0" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_FUNCTION" value="1" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_SIGNAL" value="2" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_VARIABLE" value="3" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_MEMBER" value="4" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_ENUM" value="5" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_CONSTANT" value="6" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_NODE_PATH" value="7" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_FILE_PATH" value="8" enum="CodeCompletionKind"> + </constant> + <constant name="KIND_PLAIN_TEXT" value="9" enum="CodeCompletionKind"> + </constant> </constants> <theme_items> <theme_item name="background_color" type="Color" default="Color( 0, 0, 0, 0 )"> diff --git a/doc/classes/CollisionObject3D.xml b/doc/classes/CollisionObject3D.xml index 522eec5cbe..4ab37f5c7b 100644 --- a/doc/classes/CollisionObject3D.xml +++ b/doc/classes/CollisionObject3D.xml @@ -16,14 +16,14 @@ </argument> <argument index="1" name="event" type="InputEvent"> </argument> - <argument index="2" name="click_position" type="Vector3"> + <argument index="2" name="position" type="Vector3"> </argument> - <argument index="3" name="click_normal" type="Vector3"> + <argument index="3" name="normal" type="Vector3"> </argument> <argument index="4" name="shape_idx" type="int"> </argument> <description> - Accepts unhandled [InputEvent]s. [code]click_position[/code] is the clicked location in world space and [code]click_normal[/code] is the normal vector extending from the clicked surface of the [Shape3D] at [code]shape_idx[/code]. Connect to the [code]input_event[/code] signal to easily pick up these events. + Receives unhandled [InputEvent]s. [code]position[/code] is the location in world space of the mouse pointer on the surface of the shape with index [code]shape_idx[/code] and [code]normal[/code] is the normal vector of the surface at that point. Connect to the [signal input_event] signal to easily pick up these events. </description> </method> <method name="create_shape_owner"> @@ -179,12 +179,12 @@ </description> </method> <method name="shape_owner_get_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="owner_id" type="int"> </argument> <description> - Returns the shape owner's [Transform]. + Returns the shape owner's [Transform3D]. </description> </method> <method name="shape_owner_remove_shape"> @@ -214,10 +214,10 @@ </return> <argument index="0" name="owner_id" type="int"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> - Sets the [Transform] of the given shape owner. + Sets the [Transform3D] of the given shape owner. </description> </method> </methods> @@ -243,14 +243,14 @@ </argument> <argument index="1" name="event" type="InputEvent"> </argument> - <argument index="2" name="click_position" type="Vector3"> + <argument index="2" name="position" type="Vector3"> </argument> - <argument index="3" name="click_normal" type="Vector3"> + <argument index="3" name="normal" type="Vector3"> </argument> <argument index="4" name="shape_idx" type="int"> </argument> <description> - Emitted when [method _input_event] receives an event. See its description for details. + Emitted when the object receives an unhandled [InputEvent]. [code]position[/code] is the location in world space of the mouse pointer on the surface of the shape with index [code]shape_idx[/code] and [code]normal[/code] is the normal vector of the surface at that point. </description> </signal> <signal name="mouse_entered"> diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index 6133bb8d8c..ddff92e6fc 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -136,6 +136,17 @@ [/codeblocks] </description> </method> + <method name="clamp" qualifiers="const"> + <return type="Color"> + </return> + <argument index="0" name="min" type="Color" default="Color( 0, 0, 0, 0 )"> + </argument> + <argument index="1" name="max" type="Color" default="Color( 1, 1, 1, 1 )"> + </argument> + <description> + Returns a new color with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component. + </description> + </method> <method name="darkened" qualifiers="const"> <return type="Color"> </return> diff --git a/doc/classes/ConcavePolygonShape3D.xml b/doc/classes/ConcavePolygonShape3D.xml index a9687abedc..b510905d1f 100644 --- a/doc/classes/ConcavePolygonShape3D.xml +++ b/doc/classes/ConcavePolygonShape3D.xml @@ -5,7 +5,7 @@ </brief_description> <description> Concave polygon shape resource, which can be set into a [PhysicsBody3D] or area. This shape is created by feeding a list of triangles. - Note: when used for collision, [ConcavePolygonShape3D] is intended to work with static [PhysicsBody3D] nodes like [StaticBody3D] and will not work with [KinematicBody3D] or [RigidBody3D] with a mode other than Static. + Note: when used for collision, [ConcavePolygonShape3D] is intended to work with static [PhysicsBody3D] nodes like [StaticBody3D] and will not work with [CharacterBody3D] or [RigidBody3D] with a mode other than Static. </description> <tutorials> <link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link> diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml index 38948a2d6e..8b903d8dbc 100644 --- a/doc/classes/ConfigFile.xml +++ b/doc/classes/ConfigFile.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="ConfigFile" inherits="Reference" version="4.0"> +<class name="ConfigFile" inherits="RefCounted" version="4.0"> <brief_description> Helper class to handle INI-style files. </brief_description> diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index a9a230b78f..33969cf4c3 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -22,6 +22,34 @@ <link title="All GUI Demos">https://github.com/godotengine/godot-demo-projects/tree/master/gui</link> </tutorials> <methods> + <method name="_can_drop_data" qualifiers="virtual"> + <return type="bool"> + </return> + <argument index="0" name="position" type="Vector2"> + </argument> + <argument index="1" name="data" type="Variant"> + </argument> + <description> + Godot calls this method to test if [code]data[/code] from a control's [method _get_drag_data] can be dropped at [code]position[/code]. [code]position[/code] is local to this control. + This method should only be used to test the data. Process the data in [method _drop_data]. + [codeblocks] + [gdscript] + func _can_drop_data(position, data): + # Check position if it is relevant to you + # Otherwise, just check data + return typeof(data) == TYPE_DICTIONARY and data.has("expected") + [/gdscript] + [csharp] + public override bool CanDropData(Vector2 position, object data) + { + // Check position if it is relevant to you + // Otherwise, just check data + return data is Godot.Collections.Dictionary && (data as Godot.Collections.Dictionary).Contains("expected"); + } + [/csharp] + [/codeblocks] + </description> + </method> <method name="_clips_input" qualifiers="virtual"> <return type="bool"> </return> @@ -30,6 +58,61 @@ If not overridden, defaults to [code]false[/code]. </description> </method> + <method name="_drop_data" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="position" type="Vector2"> + </argument> + <argument index="1" name="data" type="Variant"> + </argument> + <description> + Godot calls this method to pass you the [code]data[/code] from a control's [method _get_drag_data] result. Godot first calls [method _can_drop_data] to test if [code]data[/code] is allowed to drop at [code]position[/code] where [code]position[/code] is local to this control. + [codeblocks] + [gdscript] + func _can_drop_data(position, data): + return typeof(data) == TYPE_DICTIONARY and data.has("color") + func _drop_data(position, data): + var color = data["color"] + [/gdscript] + [csharp] + public override bool CanDropData(Vector2 position, object data) + { + return data is Godot.Collections.Dictionary && (data as Godot.Collections.Dictionary).Contains("color"); + } + public override void DropData(Vector2 position, object data) + { + Color color = (Color)(data as Godot.Collections.Dictionary)["color"]; + } + [/csharp] + [/codeblocks] + </description> + </method> + <method name="_get_drag_data" qualifiers="virtual"> + <return type="Variant"> + </return> + <argument index="0" name="position" type="Vector2"> + </argument> + <description> + Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns [code]null[/code] if there is no data to drag. Controls that want to receive drop data should implement [method _can_drop_data] and [method _drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag]. + A preview that will follow the mouse that should represent the data can be set with [method set_drag_preview]. A good time to set the preview is in this method. + [codeblocks] + [gdscript] + func _get_drag_data(position): + var mydata = make_data() # This is your custom method generating the drag data. + set_drag_preview(make_preview(mydata)) # This is your custom method generating the preview of the drag data. + return mydata + [/gdscript] + [csharp] + public override object GetDragData(Vector2 position) + { + object mydata = MakeData(); // This is your custom method generating the drag data. + SetDragPreview(MakePreview(mydata)); // This is your custom method generating the preview of the drag data. + return mydata; + } + [/csharp] + [/codeblocks] + </description> + </method> <method name="_get_minimum_size" qualifiers="virtual"> <return type="Vector2"> </return> @@ -68,13 +151,24 @@ [/csharp] [/codeblocks] The event won't trigger if: - * clicking outside the control (see [method has_point]); + * clicking outside the control (see [method _has_point]); * control has [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE]; * control is obstructed by another [Control] on top of it, which doesn't have [member mouse_filter] set to [constant MOUSE_FILTER_IGNORE]; * control's parent has [member mouse_filter] set to [constant MOUSE_FILTER_STOP] or has accepted the event; * it happens outside parent's rectangle and the parent has either [member rect_clip_content] or [method _clips_input] enabled. </description> </method> + <method name="_has_point" qualifiers="virtual"> + <return type="bool"> + </return> + <argument index="0" name="point" type="Vector2"> + </argument> + <description> + Virtual method to be implemented by the user. Returns whether the given [code]point[/code] is inside this control. + If not overridden, default behavior is checking if the point is within control's Rect. + [b]Note:[/b] If you want to check if a point is inside the control, you can use [code]get_rect().has_point(point)[/code]. + </description> + </method> <method name="_make_custom_tooltip" qualifiers="virtual"> <return type="Control"> </return> @@ -249,63 +343,6 @@ [/codeblocks] </description> </method> - <method name="can_drop_data" qualifiers="virtual"> - <return type="bool"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <description> - Godot calls this method to test if [code]data[/code] from a control's [method get_drag_data] can be dropped at [code]position[/code]. [code]position[/code] is local to this control. - This method should only be used to test the data. Process the data in [method drop_data]. - [codeblocks] - [gdscript] - func can_drop_data(position, data): - # Check position if it is relevant to you - # Otherwise, just check data - return typeof(data) == TYPE_DICTIONARY and data.has("expected") - [/gdscript] - [csharp] - public override bool CanDropData(Vector2 position, object data) - { - // Check position if it is relevant to you - // Otherwise, just check data - return data is Godot.Collections.Dictionary && (data as Godot.Collections.Dictionary).Contains("expected"); - } - [/csharp] - [/codeblocks] - </description> - </method> - <method name="drop_data" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <description> - Godot calls this method to pass you the [code]data[/code] from a control's [method get_drag_data] result. Godot first calls [method can_drop_data] to test if [code]data[/code] is allowed to drop at [code]position[/code] where [code]position[/code] is local to this control. - [codeblocks] - [gdscript] - func can_drop_data(position, data): - return typeof(data) == TYPE_DICTIONARY and data.has("color") - func drop_data(position, data): - var color = data["color"] - [/gdscript] - [csharp] - public override bool CanDropData(Vector2 position, object data) - { - return data is Godot.Collections.Dictionary && (data as Godot.Collections.Dictionary).Contains("color"); - } - public override void DropData(Vector2 position, object data) - { - Color color = (Color)(data as Godot.Collections.Dictionary)["color"]; - } - [/csharp] - [/codeblocks] - </description> - </method> <method name="find_next_valid_focus" qualifiers="const"> <return type="Control"> </return> @@ -328,8 +365,8 @@ <argument index="1" name="preview" type="Control"> </argument> <description> - Forces drag and bypasses [method get_drag_data] and [method set_drag_preview] by passing [code]data[/code] and [code]preview[/code]. Drag will start even if the mouse is neither over nor pressed on this control. - The methods [method can_drop_data] and [method drop_data] must be implemented on controls that want to receive drop data. + Forces drag and bypasses [method _get_drag_data] and [method set_drag_preview] by passing [code]data[/code] and [code]preview[/code]. Drag will start even if the mouse is neither over nor pressed on this control. + The methods [method _can_drop_data] and [method _drop_data] must be implemented on controls that want to receive drop data. </description> </method> <method name="get_anchor" qualifiers="const"> @@ -364,32 +401,6 @@ Returns the mouse cursor shape the control displays on mouse hover. See [enum CursorShape]. </description> </method> - <method name="get_drag_data" qualifiers="virtual"> - <return type="Variant"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <description> - Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns [code]null[/code] if there is no data to drag. Controls that want to receive drop data should implement [method can_drop_data] and [method drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag]. - A preview that will follow the mouse that should represent the data can be set with [method set_drag_preview]. A good time to set the preview is in this method. - [codeblocks] - [gdscript] - func get_drag_data(position): - var mydata = make_data() # This is your custom method generating the drag data. - set_drag_preview(make_preview(mydata)) # This is your custom method generating the preview of the drag data. - return mydata - [/gdscript] - [csharp] - public override object GetDragData(Vector2 position) - { - object mydata = MakeData(); // This is your custom method generating the drag data. - SetDragPreview(MakePreview(mydata)); // This is your custom method generating the preview of the drag data. - return mydata; - } - [/csharp] - [/codeblocks] - </description> - </method> <method name="get_end" qualifiers="const"> <return type="Vector2"> </return> @@ -577,17 +588,6 @@ Returns [code]true[/code] if this is the current focused control. See [member focus_mode]. </description> </method> - <method name="has_point" qualifiers="virtual"> - <return type="bool"> - </return> - <argument index="0" name="point" type="Vector2"> - </argument> - <description> - Virtual method to be implemented by the user. Returns whether the given [code]point[/code] is inside this control. - If not overridden, default behavior is checking if the point is within control's Rect. - [b]Note:[/b] If you want to check if a point is inside the control, you can use [code]get_rect().has_point(point)[/code]. - </description> - </method> <method name="has_theme_color" qualifiers="const"> <return type="bool"> </return> @@ -856,7 +856,7 @@ </argument> <description> Forwards the handling of this control's drag and drop to [code]target[/code] control. - Forwarding can be implemented in the target control similar to the methods [method get_drag_data], [method can_drop_data], and [method drop_data] but with two differences: + Forwarding can be implemented in the target control similar to the methods [method _get_drag_data], [method _can_drop_data], and [method _drop_data] but with two differences: 1. The function name must be suffixed with [b]_fw[/b] 2. The function must take an extra argument that is the control doing the forwarding [codeblocks] @@ -871,13 +871,13 @@ # TargetControl.gd extends Control - func can_drop_data_fw(position, data, from_control): + func _can_drop_data_fw(position, data, from_control): return true - func drop_data_fw(position, data, from_control): + func _drop_data_fw(position, data, from_control): my_handle_data(data) # Your handler method. - func get_drag_data_fw(position, from_control): + func _get_drag_data_fw(position, from_control): set_drag_preview(my_preview) return my_data() [/gdscript] @@ -922,12 +922,12 @@ <argument index="0" name="control" type="Control"> </argument> <description> - Shows the given control at the mouse pointer. A good time to call this method is in [method get_drag_data]. The control must not be in the scene tree. You should not free the control, and you should not keep a reference to the control beyond the duration of the drag. It will be deleted automatically after the drag has ended. + Shows the given control at the mouse pointer. A good time to call this method is in [method _get_drag_data]. The control must not be in the scene tree. You should not free the control, and you should not keep a reference to the control beyond the duration of the drag. It will be deleted automatically after the drag has ended. [codeblocks] [gdscript] export (Color, RGBA) var color = Color(1, 0, 0, 1) - func get_drag_data(position): + func _get_drag_data(position): # Use a control that is not in the tree var cpb = ColorPickerButton.new() cpb.color = color @@ -1055,7 +1055,7 @@ Anchors the right edge of the node to the origin, the center or the end of its parent control. It changes how the right offset updates when the node moves or changes size. You can use one of the [enum Anchor] constants for convenience. </member> <member name="anchor_top" type="float" setter="_set_anchor" getter="get_anchor" default="0.0"> - Anchors the top edge of the node to the origin, the center or the end of its parent control. It changes how the top offset updates when the node moves or changes size. You can use one of the [enum Anchor] constants for convenience. + Anchors the top edge of the node to the origin, the center or the end of its parent control. It changes how the top offset updates when the node moves or changes size. You can use one of the [enum Anchor] constants for convenience. </member> <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" enum="Control.FocusMode" default="0"> The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals. @@ -1067,7 +1067,7 @@ Tells Godot which node it should give keyboard focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the [code]ui_left[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the left of this one. </member> <member name="focus_neighbor_right" type="NodePath" setter="set_focus_neighbor" getter="get_focus_neighbor" default="NodePath("")"> - Tells Godot which node it should give keyboard focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the [code]ui_right[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one. + Tells Godot which node it should give keyboard focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the [code]ui_right[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one. </member> <member name="focus_neighbor_top" type="NodePath" setter="set_focus_neighbor" getter="get_focus_neighbor" default="NodePath("")"> Tells Godot which node it should give keyboard focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the [code]ui_top[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one. @@ -1175,7 +1175,7 @@ <member name="theme" type="Theme" setter="set_theme" getter="get_theme"> The [Theme] resource this node and all its [Control] children use. If a child node has its own [Theme] resource set, theme items are merged with child's definitions having higher priority. </member> - <member name="theme_custom_type" type="StringName" setter="set_theme_custom_type" getter="get_theme_custom_type" default="@"""> + <member name="theme_custom_type" type="StringName" setter="set_theme_custom_type" getter="get_theme_custom_type" default="&"""> The type name used by this [Control] to look up its own theme items. By default, the class name of the node is used (e.g. [code]Button[/code] for the [Button] control), as well as the class names of all parent classes (in order of inheritance). Setting this property gives the highest priority to the type of the specified name, then falls back on the class names. [b]Note:[/b] To look up [Control]'s own items use various [code]get_theme_*[/code] methods without specifying [code]theme_type[/code]. [b]Note:[/b] Theme items are looked for in the tree order, from branch to root, where each [Control] node is checked for its [member theme] property. The earliest match against any type/class name is returned. The project-level Theme and the default Theme are checked last. diff --git a/doc/classes/Crypto.xml b/doc/classes/Crypto.xml index 1f6cb40cde..deda6116f4 100644 --- a/doc/classes/Crypto.xml +++ b/doc/classes/Crypto.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Crypto" inherits="Reference" version="4.0"> +<class name="Crypto" inherits="RefCounted" version="4.0"> <brief_description> Access to advanced cryptographic functionalities. </brief_description> diff --git a/doc/classes/DTLSServer.xml b/doc/classes/DTLSServer.xml index 91a04b1f28..28d68d309f 100644 --- a/doc/classes/DTLSServer.xml +++ b/doc/classes/DTLSServer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="DTLSServer" inherits="Reference" version="4.0"> +<class name="DTLSServer" inherits="RefCounted" version="4.0"> <brief_description> Helper class to implement a DTLS server. </brief_description> diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml index 2c61d723cd..dae8d83f0c 100644 --- a/doc/classes/Directory.xml +++ b/doc/classes/Directory.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Directory" inherits="Reference" version="4.0"> +<class name="Directory" inherits="RefCounted" version="4.0"> <brief_description> Type used to handle the filesystem. </brief_description> diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml index 0c9df071a7..6c1cd37beb 100644 --- a/doc/classes/DisplayServer.xml +++ b/doc/classes/DisplayServer.xml @@ -1044,12 +1044,20 @@ <constant name="FEATURE_SWAP_BUFFERS" value="17" enum="Feature"> </constant> <constant name="MOUSE_MODE_VISIBLE" value="0" enum="MouseMode"> + Makes the mouse cursor visible if it is hidden. </constant> <constant name="MOUSE_MODE_HIDDEN" value="1" enum="MouseMode"> + Makes the mouse cursor hidden if it is visible. </constant> <constant name="MOUSE_MODE_CAPTURED" value="2" enum="MouseMode"> + Captures the mouse. The mouse will be hidden and its position locked at the center of the screen. + [b]Note:[/b] If you want to process the mouse's movement in this mode, you need to use [member InputEventMouseMotion.relative]. </constant> <constant name="MOUSE_MODE_CONFINED" value="3" enum="MouseMode"> + Confines the mouse cursor to the game window, and make it visible. + </constant> + <constant name="MOUSE_MODE_CONFINED_HIDDEN" value="4" enum="MouseMode"> + Confines the mouse cursor to the game window, and make it hidden. </constant> <constant name="SCREEN_OF_MAIN_WINDOW" value="-1"> </constant> diff --git a/doc/classes/EditorDebuggerPlugin.xml b/doc/classes/EditorDebuggerPlugin.xml index b97933e582..9484d33252 100644 --- a/doc/classes/EditorDebuggerPlugin.xml +++ b/doc/classes/EditorDebuggerPlugin.xml @@ -38,7 +38,7 @@ <return type="bool"> </return> <description> - Returns [code]true[/code] if there is an instance of the game running with the attached debugger otherwise [code]false[/code]. + Returns [code]true[/code] if there is an instance of the game running with the attached debugger otherwise [code]false[/code]. </description> </method> <method name="register_message_capture"> diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml index b29734de1c..d9e3003fbb 100644 --- a/doc/classes/EditorExportPlugin.xml +++ b/doc/classes/EditorExportPlugin.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorExportPlugin" inherits="Reference" version="4.0"> +<class name="EditorExportPlugin" inherits="RefCounted" version="4.0"> <brief_description> A script that is executed when exporting the project. </brief_description> diff --git a/doc/classes/EditorFeatureProfile.xml b/doc/classes/EditorFeatureProfile.xml index e05a685dd7..0cd839f370 100644 --- a/doc/classes/EditorFeatureProfile.xml +++ b/doc/classes/EditorFeatureProfile.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorFeatureProfile" inherits="Reference" version="4.0"> +<class name="EditorFeatureProfile" inherits="RefCounted" version="4.0"> <brief_description> An editor feature profile which can be used to disable specific features. </brief_description> diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml index aa64ab4043..a532e9bc2b 100644 --- a/doc/classes/EditorImportPlugin.xml +++ b/doc/classes/EditorImportPlugin.xml @@ -5,45 +5,45 @@ </brief_description> <description> EditorImportPlugins provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. Register your [EditorPlugin] with [method EditorPlugin.add_import_plugin]. - EditorImportPlugins work by associating with specific file extensions and a resource type. See [method get_recognized_extensions] and [method get_resource_type]. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].godot/imported[/code] directory. + EditorImportPlugins work by associating with specific file extensions and a resource type. See [method _get_recognized_extensions] and [method _get_resource_type]. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].godot/imported[/code] directory. Below is an example EditorImportPlugin that imports a [Mesh] from a file with the extension ".special" or ".spec": [codeblocks] [gdscript] tool extends EditorImportPlugin - func get_importer_name(): + func _get_importer_name(): return "my.special.plugin" - func get_visible_name(): + func _get_visible_name(): return "Special Mesh" - func get_recognized_extensions(): + func _get_recognized_extensions(): return ["special", "spec"] - func get_save_extension(): + func _get_save_extension(): return "mesh" - func get_resource_type(): + func _get_resource_type(): return "Mesh" - func get_preset_count(): + func _get_preset_count(): return 1 - func get_preset_name(i): + func _get_preset_name(i): return "Default" - func get_import_options(i): + func _get_import_options(i): return [{"name": "my_option", "default_value": false}] - func import(source_file, save_path, options, platform_variants, gen_files): + func _import(source_file, save_path, options, platform_variants, gen_files): var file = File.new() if file.open(source_file, File.READ) != OK: return FAILED var mesh = ArrayMesh.new() # Fill the Mesh with data read in "file", left as an exercise to the reader. - var filename = save_path + "." + get_save_extension() + var filename = save_path + "." + _get_save_extension() return ResourceSaver.save(filename, mesh) [/gdscript] [csharp] @@ -92,7 +92,7 @@ return new Godot.Collections.Array{new Godot.Collections.Dictionary{{"name", "myOption"}, {"defaultValue", false}}}; } - public override int Import(String sourceFile, String savePath, Godot.Collections.Dictionary options, Godot.Collections.Array platformVariants, Godot.Collections.Array genFiles) + public override int Import(String sourceFile, String savePath, Godot.Collections.Dictionary options, Godot.Collections.Array platformVariants, Godot.Collections.Array genFiles) { var file = new File(); if (file.Open(sourceFile, File.ModeFlags.Read) != Error.Ok) @@ -113,7 +113,7 @@ <link title="Import plugins">https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html</link> </tutorials> <methods> - <method name="get_import_options" qualifiers="virtual"> + <method name="_get_import_options" qualifiers="virtual"> <return type="Array"> </return> <argument index="0" name="preset" type="int"> @@ -122,21 +122,21 @@ Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: [code]name[/code], [code]default_value[/code], [code]property_hint[/code] (optional), [code]hint_string[/code] (optional), [code]usage[/code] (optional). </description> </method> - <method name="get_import_order" qualifiers="virtual"> + <method name="_get_import_order" qualifiers="virtual"> <return type="int"> </return> <description> Gets the order of this importer to be run when importing resources. Higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported. </description> </method> - <method name="get_importer_name" qualifiers="virtual"> + <method name="_get_importer_name" qualifiers="virtual"> <return type="String"> </return> <description> Gets the unique name of the importer. </description> </method> - <method name="get_option_visibility" qualifiers="virtual"> + <method name="_get_option_visibility" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="option" type="String"> @@ -147,7 +147,7 @@ This method can be overridden to hide specific import options if conditions are met. This is mainly useful for hiding options that depend on others if one of them is disabled. For example: [codeblocks] [gdscript] - func get_option_visibility(option, options): + func _get_option_visibility(option, options): # Only show the lossy quality setting if the compression mode is set to "Lossy". if option == "compress/lossy_quality" and options.has("compress/mode"): return int(options["compress/mode"]) == COMPRESS_LOSSY # This is a constant that you set @@ -170,14 +170,14 @@ Return [code]true[/code] to make all options always visible. </description> </method> - <method name="get_preset_count" qualifiers="virtual"> + <method name="_get_preset_count" qualifiers="virtual"> <return type="int"> </return> <description> - Gets the number of initial presets defined by the plugin. Use [method get_import_options] to get the default options for the preset and [method get_preset_name] to get the name of the preset. + Gets the number of initial presets defined by the plugin. Use [method _get_import_options] to get the default options for the preset and [method _get_preset_name] to get the name of the preset. </description> </method> - <method name="get_preset_name" qualifiers="virtual"> + <method name="_get_preset_name" qualifiers="virtual"> <return type="String"> </return> <argument index="0" name="preset" type="int"> @@ -186,42 +186,42 @@ Gets the name of the options preset at this index. </description> </method> - <method name="get_priority" qualifiers="virtual"> + <method name="_get_priority" qualifiers="virtual"> <return type="float"> </return> <description> Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is [code]1.0[/code]. </description> </method> - <method name="get_recognized_extensions" qualifiers="virtual"> + <method name="_get_recognized_extensions" qualifiers="virtual"> <return type="Array"> </return> <description> Gets the list of file extensions to associate with this loader (case-insensitive). e.g. [code]["obj"][/code]. </description> </method> - <method name="get_resource_type" qualifiers="virtual"> + <method name="_get_resource_type" qualifiers="virtual"> <return type="String"> </return> <description> Gets the Godot resource type associated with this loader. e.g. [code]"Mesh"[/code] or [code]"Animation"[/code]. </description> </method> - <method name="get_save_extension" qualifiers="virtual"> + <method name="_get_save_extension" qualifiers="virtual"> <return type="String"> </return> <description> Gets the extension used to save this resource in the [code].godot/imported[/code] directory. </description> </method> - <method name="get_visible_name" qualifiers="virtual"> + <method name="_get_visible_name" qualifiers="virtual"> <return type="String"> </return> <description> Gets the name to display in the import window. You should choose this name as a continuation to "Import as", e.g. "Import as Special Mesh". </description> </method> - <method name="import" qualifiers="virtual"> + <method name="_import" qualifiers="virtual"> <return type="int"> </return> <argument index="0" name="source_file" type="String"> diff --git a/doc/classes/EditorInspectorPlugin.xml b/doc/classes/EditorInspectorPlugin.xml index 8204dc931e..c992d0fbb4 100644 --- a/doc/classes/EditorInspectorPlugin.xml +++ b/doc/classes/EditorInspectorPlugin.xml @@ -1,106 +1,100 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorInspectorPlugin" inherits="Reference" version="4.0"> +<class name="EditorInspectorPlugin" inherits="RefCounted" version="4.0"> <brief_description> Plugin for adding custom property editors on inspector. </brief_description> <description> These plugins allow adding custom property editors to [EditorInspector]. Plugins are registered via [method EditorPlugin.add_inspector_plugin]. - When an object is edited, the [method can_handle] function is called and must return [code]true[/code] if the object type is supported. - If supported, the function [method parse_begin] will be called, allowing to place custom controls at the beginning of the class. - Subsequently, the [method parse_category] and [method parse_property] are called for every category and property. They offer the ability to add custom controls to the inspector too. - Finally, [method parse_end] will be called. + When an object is edited, the [method _can_handle] function is called and must return [code]true[/code] if the object type is supported. + If supported, the function [method _parse_begin] will be called, allowing to place custom controls at the beginning of the class. + Subsequently, the [method _parse_category] and [method _parse_property] are called for every category and property. They offer the ability to add custom controls to the inspector too. + Finally, [method _parse_end] will be called. On each of these calls, the "add" functions can be called. </description> <tutorials> </tutorials> <methods> - <method name="add_custom_control"> - <return type="void"> + <method name="_can_handle" qualifiers="virtual"> + <return type="bool"> </return> - <argument index="0" name="control" type="Control"> + <argument index="0" name="object" type="Object"> </argument> <description> - Adds a custom control, not necessarily a property editor. + Returns [code]true[/code] if this object can be handled by this plugin. </description> </method> - <method name="add_property_editor"> + <method name="_parse_begin" qualifiers="virtual"> <return type="void"> </return> - <argument index="0" name="property" type="String"> - </argument> - <argument index="1" name="editor" type="Control"> - </argument> <description> - Adds a property editor, this must inherit [EditorProperty]. + Called to allow adding controls at the beginning of the list. </description> </method> - <method name="add_property_editor_for_multiple_properties"> + <method name="_parse_category" qualifiers="virtual"> <return type="void"> </return> - <argument index="0" name="label" type="String"> - </argument> - <argument index="1" name="properties" type="PackedStringArray"> - </argument> - <argument index="2" name="editor" type="Control"> + <argument index="0" name="category" type="String"> </argument> <description> - Adds an editor that allows modifying multiple properties, this must inherit [EditorProperty]. + Called to allow adding controls at the beginning of the category. </description> </method> - <method name="can_handle" qualifiers="virtual"> - <return type="bool"> + <method name="_parse_end" qualifiers="virtual"> + <return type="void"> </return> - <argument index="0" name="object" type="Object"> - </argument> <description> - Returns [code]true[/code] if this object can be handled by this plugin. + Called to allow adding controls at the end of the list. </description> </method> - <method name="parse_begin" qualifiers="virtual"> - <return type="void"> + <method name="_parse_property" qualifiers="virtual"> + <return type="bool"> </return> - <argument index="0" name="object" type="Object"> + <argument index="0" name="type" type="int"> + </argument> + <argument index="1" name="path" type="String"> + </argument> + <argument index="2" name="hint" type="int"> + </argument> + <argument index="3" name="hint_text" type="String"> + </argument> + <argument index="4" name="usage" type="int"> </argument> <description> - Called to allow adding controls at the beginning of the list. + Called to allow adding property specific editors to the inspector. Usually these inherit [EditorProperty]. Returning [code]true[/code] removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one. </description> </method> - <method name="parse_category" qualifiers="virtual"> + <method name="add_custom_control"> <return type="void"> </return> - <argument index="0" name="object" type="Object"> - </argument> - <argument index="1" name="category" type="String"> + <argument index="0" name="control" type="Control"> </argument> <description> - Called to allow adding controls at the beginning of the category. + Adds a custom control, not necessarily a property editor. </description> </method> - <method name="parse_end" qualifiers="virtual"> + <method name="add_property_editor"> <return type="void"> </return> + <argument index="0" name="property" type="String"> + </argument> + <argument index="1" name="editor" type="Control"> + </argument> <description> - Called to allow adding controls at the end of the list. + Adds a property editor, this must inherit [EditorProperty]. </description> </method> - <method name="parse_property" qualifiers="virtual"> - <return type="bool"> + <method name="add_property_editor_for_multiple_properties"> + <return type="void"> </return> - <argument index="0" name="object" type="Object"> - </argument> - <argument index="1" name="type" type="int"> - </argument> - <argument index="2" name="path" type="String"> - </argument> - <argument index="3" name="hint" type="int"> + <argument index="0" name="label" type="String"> </argument> - <argument index="4" name="hint_text" type="String"> + <argument index="1" name="properties" type="PackedStringArray"> </argument> - <argument index="5" name="usage" type="int"> + <argument index="2" name="editor" type="Control"> </argument> <description> - Called to allow adding property specific editors to the inspector. Usually these inherit [EditorProperty]. Returning [code]true[/code] removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one. + Adds an editor that allows modifying multiple properties, this must inherit [EditorProperty]. </description> </method> </methods> diff --git a/doc/classes/EditorNode3DGizmo.xml b/doc/classes/EditorNode3DGizmo.xml index 45541b9263..dcc6d6ef12 100644 --- a/doc/classes/EditorNode3DGizmo.xml +++ b/doc/classes/EditorNode3DGizmo.xml @@ -9,13 +9,76 @@ <tutorials> </tutorials> <methods> + <method name="_commit_handle" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <argument index="1" name="restore" type="Variant"> + </argument> + <argument index="2" name="cancel" type="bool" default="false"> + </argument> + <description> + Commit a handle being edited (handles must have been previously added by [method add_handles]). + If the [code]cancel[/code] parameter is [code]true[/code], an option to restore the edited value to the original is provided. + </description> + </method> + <method name="_get_handle_name" qualifiers="virtual"> + <return type="String"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Gets the name of an edited handle (handles must have been previously added by [method add_handles]). + Handles can be named for reference to the user when editing. + </description> + </method> + <method name="_get_handle_value" qualifiers="virtual"> + <return type="Variant"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Gets actual value of a handle. This value can be anything and used for eventually undoing the motion when calling [method _commit_handle]. + </description> + </method> + <method name="_is_handle_highlighted" qualifiers="virtual"> + <return type="bool"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Returns [code]true[/code] if the handle at index [code]index[/code] is highlighted by being hovered with the mouse. + </description> + </method> + <method name="_redraw" qualifiers="virtual"> + <return type="void"> + </return> + <description> + This function is called when the [Node3D] this gizmo refers to changes (the [method Node3D.update_gizmo] is called). + </description> + </method> + <method name="_set_handle" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <argument index="1" name="camera" type="Camera3D"> + </argument> + <argument index="2" name="point" type="Vector2"> + </argument> + <description> + This function is used when the user drags a gizmo handle (previously added with [method add_handles]) in screen coordinates. + The [Camera3D] is also provided so screen coordinates can be converted to raycasts. + </description> + </method> <method name="add_collision_segments"> <return type="void"> </return> <argument index="0" name="segments" type="PackedVector3Array"> </argument> <description> - Adds the specified [code]segments[/code] to the gizmo's collision shape for picking. Call this function during [method redraw]. + Adds the specified [code]segments[/code] to the gizmo's collision shape for picking. Call this function during [method _redraw]. </description> </method> <method name="add_collision_triangles"> @@ -24,7 +87,7 @@ <argument index="0" name="triangles" type="TriangleMesh"> </argument> <description> - Adds collision triangles to the gizmo for picking. A [TriangleMesh] can be generated from a regular [Mesh] too. Call this function during [method redraw]. + Adds collision triangles to the gizmo for picking. A [TriangleMesh] can be generated from a regular [Mesh] too. Call this function during [method _redraw]. </description> </method> <method name="add_handles"> @@ -40,7 +103,7 @@ </argument> <description> Adds a list of handles (points) which can be used to deform the object being edited. - There are virtual functions which will be called upon editing of these handles. Call this function during [method redraw]. + There are virtual functions which will be called upon editing of these handles. Call this function during [method _redraw]. </description> </method> <method name="add_lines"> @@ -55,7 +118,7 @@ <argument index="3" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )"> </argument> <description> - Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this function during [method redraw]. + Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this function during [method _redraw]. </description> </method> <method name="add_mesh"> @@ -70,7 +133,7 @@ <argument index="3" name="material" type="Material" default="null"> </argument> <description> - Adds a mesh to the gizmo with the specified [code]billboard[/code] state, [code]skeleton[/code] and [code]material[/code]. If [code]billboard[/code] is [code]true[/code], the mesh will rotate to always face the camera. Call this function during [method redraw]. + Adds a mesh to the gizmo with the specified [code]billboard[/code] state, [code]skeleton[/code] and [code]material[/code]. If [code]billboard[/code] is [code]true[/code], the mesh will rotate to always face the camera. Call this function during [method _redraw]. </description> </method> <method name="add_unscaled_billboard"> @@ -83,7 +146,7 @@ <argument index="2" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )"> </argument> <description> - Adds an unscaled billboard for visualization. Call this function during [method redraw]. + Adds an unscaled billboard for visualization. Call this function during [method _redraw]. </description> </method> <method name="clear"> @@ -93,39 +156,6 @@ Removes everything in the gizmo including meshes, collisions and handles. </description> </method> - <method name="commit_handle" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="index" type="int"> - </argument> - <argument index="1" name="restore" type="Variant"> - </argument> - <argument index="2" name="cancel" type="bool" default="false"> - </argument> - <description> - Commit a handle being edited (handles must have been previously added by [method add_handles]). - If the [code]cancel[/code] parameter is [code]true[/code], an option to restore the edited value to the original is provided. - </description> - </method> - <method name="get_handle_name" qualifiers="virtual"> - <return type="String"> - </return> - <argument index="0" name="index" type="int"> - </argument> - <description> - Gets the name of an edited handle (handles must have been previously added by [method add_handles]). - Handles can be named for reference to the user when editing. - </description> - </method> - <method name="get_handle_value" qualifiers="virtual"> - <return type="Variant"> - </return> - <argument index="0" name="index" type="int"> - </argument> - <description> - Gets actual value of a handle. This value can be anything and used for eventually undoing the motion when calling [method commit_handle]. - </description> - </method> <method name="get_plugin" qualifiers="const"> <return type="EditorNode3DGizmoPlugin"> </return> @@ -140,36 +170,6 @@ Returns the Node3D node associated with this gizmo. </description> </method> - <method name="is_handle_highlighted" qualifiers="virtual"> - <return type="bool"> - </return> - <argument index="0" name="index" type="int"> - </argument> - <description> - Returns [code]true[/code] if the handle at index [code]index[/code] is highlighted by being hovered with the mouse. - </description> - </method> - <method name="redraw" qualifiers="virtual"> - <return type="void"> - </return> - <description> - This function is called when the [Node3D] this gizmo refers to changes (the [method Node3D.update_gizmo] is called). - </description> - </method> - <method name="set_handle" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="index" type="int"> - </argument> - <argument index="1" name="camera" type="Camera3D"> - </argument> - <argument index="2" name="point" type="Vector2"> - </argument> - <description> - This function is used when the user drags a gizmo handle (previously added with [method add_handles]) in screen coordinates. - The [Camera3D] is also provided so screen coordinates can be converted to raycasts. - </description> - </method> <method name="set_hidden"> <return type="void"> </return> diff --git a/doc/classes/EditorNode3DGizmoPlugin.xml b/doc/classes/EditorNode3DGizmoPlugin.xml index 34657a1c08..5551326533 100644 --- a/doc/classes/EditorNode3DGizmoPlugin.xml +++ b/doc/classes/EditorNode3DGizmoPlugin.xml @@ -10,25 +10,14 @@ <link title="Spatial gizmo plugins">https://docs.godotengine.org/en/latest/tutorials/plugins/editor/spatial_gizmos.html</link> </tutorials> <methods> - <method name="add_material"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="material" type="StandardMaterial3D"> - </argument> - <description> - Adds a new material to the internal material list for the plugin. It can then be accessed with [method get_material]. Should not be overridden. - </description> - </method> - <method name="can_be_hidden" qualifiers="virtual"> + <method name="_can_be_hidden" qualifiers="virtual"> <return type="bool"> </return> <description> Override this method to define whether the gizmo can be hidden or not. Returns [code]true[/code] if not overridden. </description> </method> - <method name="commit_handle" qualifiers="virtual"> + <method name="_commit_handle" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -43,69 +32,23 @@ Override this method to commit gizmo handles. Called for this plugin's active gizmos. </description> </method> - <method name="create_gizmo" qualifiers="virtual"> + <method name="_create_gizmo" qualifiers="virtual"> <return type="EditorNode3DGizmo"> </return> <argument index="0" name="spatial" type="Node3D"> </argument> <description> - Override this method to return a custom [EditorNode3DGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method has_gizmo]. - </description> - </method> - <method name="create_handle_material"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="billboard" type="bool" default="false"> - </argument> - <argument index="2" name="texture" type="Texture2D" default="null"> - </argument> - <description> - Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_handles]. Should not be overridden. - You can optionally provide a texture to use instead of the default icon. - </description> - </method> - <method name="create_icon_material"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="texture" type="Texture2D"> - </argument> - <argument index="2" name="on_top" type="bool" default="false"> - </argument> - <argument index="3" name="color" type="Color" default="Color( 1, 1, 1, 1 )"> - </argument> - <description> - Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_unscaled_billboard]. Should not be overridden. - </description> - </method> - <method name="create_material"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="color" type="Color"> - </argument> - <argument index="2" name="billboard" type="bool" default="false"> - </argument> - <argument index="3" name="on_top" type="bool" default="false"> - </argument> - <argument index="4" name="use_vertex_color" type="bool" default="false"> - </argument> - <description> - Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_mesh] and [method EditorNode3DGizmo.add_lines]. Should not be overridden. + Override this method to return a custom [EditorNode3DGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. See also [method _has_gizmo]. </description> </method> - <method name="get_gizmo_name" qualifiers="virtual"> + <method name="_get_gizmo_name" qualifiers="virtual"> <return type="String"> </return> <description> Override this method to provide the name that will appear in the gizmo visibility menu. </description> </method> - <method name="get_handle_name" qualifiers="virtual"> + <method name="_get_handle_name" qualifiers="virtual"> <return type="String"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -116,7 +59,7 @@ Override this method to provide gizmo's handle names. Called for this plugin's active gizmos. </description> </method> - <method name="get_handle_value" qualifiers="virtual"> + <method name="_get_handle_value" qualifiers="virtual"> <return type="Variant"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -127,18 +70,7 @@ Gets actual value of a handle from gizmo. Called for this plugin's active gizmos. </description> </method> - <method name="get_material"> - <return type="StandardMaterial3D"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="gizmo" type="EditorNode3DGizmo" default="null"> - </argument> - <description> - Gets material from the internal list of materials. If an [EditorNode3DGizmo] is provided, it will try to get the corresponding variant (selected and/or editable). - </description> - </method> - <method name="get_priority" qualifiers="virtual"> + <method name="_get_priority" qualifiers="virtual"> <return type="int"> </return> <description> @@ -146,7 +78,7 @@ All built-in editor gizmos return a priority of [code]-1[/code]. If not overridden, this method will return [code]0[/code], which means custom gizmos will automatically override built-in gizmos. </description> </method> - <method name="has_gizmo" qualifiers="virtual"> + <method name="_has_gizmo" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="spatial" type="Node3D"> @@ -155,7 +87,7 @@ Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a [Node3D] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorNode3DGizmo] assigned and is added to this plugin's list of active gizmos. </description> </method> - <method name="is_handle_highlighted" qualifiers="virtual"> + <method name="_is_handle_highlighted" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -166,14 +98,14 @@ Gets whether a handle is highlighted or not. Called for this plugin's active gizmos. </description> </method> - <method name="is_selectable_when_hidden" qualifiers="virtual"> + <method name="_is_selectable_when_hidden" qualifiers="virtual"> <return type="bool"> </return> <description> Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden. </description> </method> - <method name="redraw" qualifiers="virtual"> + <method name="_redraw" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -182,7 +114,7 @@ Callback to redraw the provided gizmo. Called for this plugin's active gizmos. </description> </method> - <method name="set_handle" qualifiers="virtual"> + <method name="_set_handle" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="gizmo" type="EditorNode3DGizmo"> @@ -197,6 +129,74 @@ Update the value of a handle after it has been updated. Called for this plugin's active gizmos. </description> </method> + <method name="add_material"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="material" type="StandardMaterial3D"> + </argument> + <description> + Adds a new material to the internal material list for the plugin. It can then be accessed with [method get_material]. Should not be overridden. + </description> + </method> + <method name="create_handle_material"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="billboard" type="bool" default="false"> + </argument> + <argument index="2" name="texture" type="Texture2D" default="null"> + </argument> + <description> + Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_handles]. Should not be overridden. + You can optionally provide a texture to use instead of the default icon. + </description> + </method> + <method name="create_icon_material"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="texture" type="Texture2D"> + </argument> + <argument index="2" name="on_top" type="bool" default="false"> + </argument> + <argument index="3" name="color" type="Color" default="Color( 1, 1, 1, 1 )"> + </argument> + <description> + Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_unscaled_billboard]. Should not be overridden. + </description> + </method> + <method name="create_material"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="color" type="Color"> + </argument> + <argument index="2" name="billboard" type="bool" default="false"> + </argument> + <argument index="3" name="on_top" type="bool" default="false"> + </argument> + <argument index="4" name="use_vertex_color" type="bool" default="false"> + </argument> + <description> + Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorNode3DGizmo.add_mesh] and [method EditorNode3DGizmo.add_lines]. Should not be overridden. + </description> + </method> + <method name="get_material"> + <return type="StandardMaterial3D"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="gizmo" type="EditorNode3DGizmo" default="null"> + </argument> + <description> + Gets material from the internal list of materials. If an [EditorNode3DGizmo] is provided, it will try to get the corresponding variant (selected and/or editable). + </description> + </method> </methods> <constants> </constants> diff --git a/doc/classes/EditorPaths.xml b/doc/classes/EditorPaths.xml index b92927fd53..d0d785dbb8 100644 --- a/doc/classes/EditorPaths.xml +++ b/doc/classes/EditorPaths.xml @@ -31,12 +31,6 @@ <description> </description> </method> - <method name="get_settings_dir" qualifiers="const"> - <return type="String"> - </return> - <description> - </description> - </method> <method name="is_self_contained" qualifiers="const"> <return type="bool"> </return> diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml index f6f51df7c0..0c0439e9d3 100644 --- a/doc/classes/EditorPlugin.xml +++ b/doc/classes/EditorPlugin.xml @@ -10,164 +10,7 @@ <link title="Editor plugins tutorial index">https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html</link> </tutorials> <methods> - <method name="add_autoload_singleton"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="path" type="String"> - </argument> - <description> - Adds a script at [code]path[/code] to the Autoload list as [code]name[/code]. - </description> - </method> - <method name="add_control_to_bottom_panel"> - <return type="Button"> - </return> - <argument index="0" name="control" type="Control"> - </argument> - <argument index="1" name="title" type="String"> - </argument> - <description> - Adds a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_bottom_panel] and free it with [method Node.queue_free]. - </description> - </method> - <method name="add_control_to_container"> - <return type="void"> - </return> - <argument index="0" name="container" type="int" enum="EditorPlugin.CustomControlContainer"> - </argument> - <argument index="1" name="control" type="Control"> - </argument> - <description> - Adds a custom control to a container (see [enum CustomControlContainer]). There are many locations where custom controls can be added in the editor UI. - Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it). - When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_container] and free it with [method Node.queue_free]. - </description> - </method> - <method name="add_control_to_dock"> - <return type="void"> - </return> - <argument index="0" name="slot" type="int" enum="EditorPlugin.DockSlot"> - </argument> - <argument index="1" name="control" type="Control"> - </argument> - <description> - Adds the control to a specific dock slot (see [enum DockSlot] for options). - If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. - When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_docks] and free it with [method Node.queue_free]. - </description> - </method> - <method name="add_custom_type"> - <return type="void"> - </return> - <argument index="0" name="type" type="String"> - </argument> - <argument index="1" name="base" type="String"> - </argument> - <argument index="2" name="script" type="Script"> - </argument> - <argument index="3" name="icon" type="Texture2D"> - </argument> - <description> - Adds a custom type, which will appear in the list of nodes or resources. An icon can be optionally passed. - When given node or resource is selected, the base type will be instanced (e.g. "Node3D", "Control", "Resource"), then the script will be loaded and set to this object. - You can use the virtual method [method handles] to check if your custom object is being edited by checking the script or using the [code]is[/code] keyword. - During run-time, this will be a simple object with a script so this function does not need to be called then. - </description> - </method> - <method name="add_debugger_plugin"> - <return type="void"> - </return> - <argument index="0" name="script" type="Script"> - </argument> - <description> - Adds a [Script] as debugger plugin to the Debugger. The script must extend [EditorDebuggerPlugin]. - </description> - </method> - <method name="add_export_plugin"> - <return type="void"> - </return> - <argument index="0" name="plugin" type="EditorExportPlugin"> - </argument> - <description> - Registers a new export plugin. Export plugins are used when the project is being exported. See [EditorExportPlugin] for more information. - </description> - </method> - <method name="add_import_plugin"> - <return type="void"> - </return> - <argument index="0" name="importer" type="EditorImportPlugin"> - </argument> - <description> - </description> - </method> - <method name="add_inspector_plugin"> - <return type="void"> - </return> - <argument index="0" name="plugin" type="EditorInspectorPlugin"> - </argument> - <description> - </description> - </method> - <method name="add_scene_import_plugin"> - <return type="void"> - </return> - <argument index="0" name="scene_importer" type="EditorSceneImporter"> - </argument> - <description> - </description> - </method> - <method name="add_spatial_gizmo_plugin"> - <return type="void"> - </return> - <argument index="0" name="plugin" type="EditorNode3DGizmoPlugin"> - </argument> - <description> - </description> - </method> - <method name="add_tool_menu_item"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="callable" type="Callable"> - </argument> - <description> - Adds a custom menu item to [b]Project > Tools[/b] named [code]name[/code]. When clicked, the provided [code]callable[/code] will be called. - </description> - </method> - <method name="add_tool_submenu_item"> - <return type="void"> - </return> - <argument index="0" name="name" type="String"> - </argument> - <argument index="1" name="submenu" type="Object"> - </argument> - <description> - Adds a custom submenu under [b]Project > Tools >[/b] [code]name[/code]. [code]submenu[/code] should be an object of class [PopupMenu]. Use [code]remove_tool_menu_item(name)[/code] on plugin clean up to remove the menu. - </description> - </method> - <method name="add_translation_parser_plugin"> - <return type="void"> - </return> - <argument index="0" name="parser" type="EditorTranslationParserPlugin"> - </argument> - <description> - Registers a custom translation parser plugin for extracting translatable strings from custom files. - </description> - </method> - <method name="add_undo_redo_inspector_hook_callback"> - <return type="void"> - </return> - <argument index="0" name="callable" type="Callable"> - </argument> - <description> - Hooks a callback into the undo/redo action creation when a property is modified in the inspector. This allows, for example, to save other properties that may be lost when a given property is modified. - The callback should have 4 arguments: [Object] [code]undo_redo[/code], [Object] [code]modified_object[/code], [String] [code]property[/code] and [Variant] [code]new_value[/code]. They are, respectively, the [UndoRedo] object used by the inspector, the currently modified object, the name of the modified property and the new value the property is about to take. - </description> - </method> - <method name="apply_changes" qualifiers="virtual"> + <method name="_apply_changes" qualifiers="virtual"> <return type="void"> </return> <description> @@ -175,29 +18,29 @@ This is used, for example, in shader editors to let the plugin know that it must apply the shader code being written by the user to the object. </description> </method> - <method name="build" qualifiers="virtual"> + <method name="_build" qualifiers="virtual"> <return type="bool"> </return> <description> This method is called when the editor is about to run the project. The plugin can then perform required operations before the project runs. - This method must return a boolean. If this method returns [code]false[/code], the project will not run. The run is aborted immediately, so this also prevents all other plugins' [method build] methods from running. + This method must return a boolean. If this method returns [code]false[/code], the project will not run. The run is aborted immediately, so this also prevents all other plugins' [method _build] methods from running. </description> </method> - <method name="clear" qualifiers="virtual"> + <method name="_clear" qualifiers="virtual"> <return type="void"> </return> <description> Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene. </description> </method> - <method name="disable_plugin" qualifiers="virtual"> + <method name="_disable_plugin" qualifiers="virtual"> <return type="void"> </return> <description> Called by the engine when the user disables the [EditorPlugin] in the Plugin tab of the project settings window. </description> </method> - <method name="edit" qualifiers="virtual"> + <method name="_edit" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="object" type="Object"> @@ -206,14 +49,14 @@ This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object. </description> </method> - <method name="enable_plugin" qualifiers="virtual"> + <method name="_enable_plugin" qualifiers="virtual"> <return type="void"> </return> <description> Called by the engine when the user enables the [EditorPlugin] in the Plugin tab of the project settings window. </description> </method> - <method name="forward_canvas_draw_over_viewport" qualifiers="virtual"> + <method name="_forward_canvas_draw_over_viewport" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="overlay" type="Control"> @@ -222,11 +65,11 @@ Called by the engine when the 2D editor's viewport is updated. Use the [code]overlay[/code] [Control] for drawing. You can update the viewport manually by calling [method update_overlays]. [codeblocks] [gdscript] - func forward_canvas_draw_over_viewport(overlay): + func _forward_canvas_draw_over_viewport(overlay): # Draw a circle at cursor position. overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.white) - func forward_canvas_gui_input(event): + func _forward_canvas_gui_input(event): if event is InputEventMouseMotion: # Redraw viewport when cursor is moved. update_overlays() @@ -253,27 +96,27 @@ [/codeblocks] </description> </method> - <method name="forward_canvas_force_draw_over_viewport" qualifiers="virtual"> + <method name="_forward_canvas_force_draw_over_viewport" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="overlay" type="Control"> </argument> <description> - This method is the same as [method forward_canvas_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else. + This method is the same as [method _forward_canvas_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else. You need to enable calling of this method by using [method set_force_draw_over_forwarding_enabled]. </description> </method> - <method name="forward_canvas_gui_input" qualifiers="virtual"> + <method name="_forward_canvas_gui_input" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="event" type="InputEvent"> </argument> <description> - Called when there is a root node in the current edited scene, [method handles] is implemented and an [InputEvent] happens in the 2D viewport. Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] consumes the [code]event[/code], otherwise forwards [code]event[/code] to other Editor classes. Example: + Called when there is a root node in the current edited scene, [method _handles] is implemented and an [InputEvent] happens in the 2D viewport. Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] consumes the [code]event[/code], otherwise forwards [code]event[/code] to other Editor classes. Example: [codeblocks] [gdscript] # Prevents the InputEvent to reach other Editor classes - func forward_canvas_gui_input(event): + func _forward_canvas_gui_input(event): return true [/gdscript] [csharp] @@ -288,7 +131,7 @@ [codeblocks] [gdscript] # Consumes InputEventMouseMotion and forwards other InputEvent types. - func forward_canvas_gui_input(event): + func _forward_canvas_gui_input(event): return event is InputEventMouseMotion [/gdscript] [csharp] @@ -301,7 +144,7 @@ [/codeblocks] </description> </method> - <method name="forward_spatial_draw_over_viewport" qualifiers="virtual"> + <method name="_forward_spatial_draw_over_viewport" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="overlay" type="Control"> @@ -310,11 +153,11 @@ Called by the engine when the 3D editor's viewport is updated. Use the [code]overlay[/code] [Control] for drawing. You can update the viewport manually by calling [method update_overlays]. [codeblocks] [gdscript] - func forward_spatial_draw_over_viewport(overlay): + func _forward_spatial_draw_over_viewport(overlay): # Draw a circle at cursor position. overlay.draw_circle(overlay.get_local_mouse_position(), 64) - func forward_spatial_gui_input(camera, event): + func _forward_spatial_gui_input(camera, event): if event is InputEventMouseMotion: # Redraw viewport when cursor is moved. update_overlays() @@ -341,17 +184,17 @@ [/codeblocks] </description> </method> - <method name="forward_spatial_force_draw_over_viewport" qualifiers="virtual"> + <method name="_forward_spatial_force_draw_over_viewport" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="overlay" type="Control"> </argument> <description> - This method is the same as [method forward_spatial_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else. + This method is the same as [method _forward_spatial_draw_over_viewport], except it draws on top of everything. Useful when you need an extra layer that shows over anything else. You need to enable calling of this method by using [method set_force_draw_over_forwarding_enabled]. </description> </method> - <method name="forward_spatial_gui_input" qualifiers="virtual"> + <method name="_forward_spatial_gui_input" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="camera" type="Camera3D"> @@ -359,11 +202,11 @@ <argument index="1" name="event" type="InputEvent"> </argument> <description> - Called when there is a root node in the current edited scene, [method handles] is implemented and an [InputEvent] happens in the 3D viewport. Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] consumes the [code]event[/code], otherwise forwards [code]event[/code] to other Editor classes. Example: + Called when there is a root node in the current edited scene, [method _handles] is implemented and an [InputEvent] happens in the 3D viewport. Intercepts the [InputEvent], if [code]return true[/code] [EditorPlugin] consumes the [code]event[/code], otherwise forwards [code]event[/code] to other Editor classes. Example: [codeblocks] [gdscript] # Prevents the InputEvent to reach other Editor classes. - func forward_spatial_gui_input(camera, event): + func _forward_spatial_gui_input(camera, event): return true [/gdscript] [csharp] @@ -378,7 +221,7 @@ [codeblocks] [gdscript] # Consumes InputEventMouseMotion and forwards other InputEvent types. - func forward_spatial_gui_input(camera, event): + func _forward_spatial_gui_input(camera, event): return event is InputEventMouseMotion [/gdscript] [csharp] @@ -391,21 +234,14 @@ [/codeblocks] </description> </method> - <method name="get_breakpoints" qualifiers="virtual"> + <method name="_get_breakpoints" qualifiers="virtual"> <return type="PackedStringArray"> </return> <description> This is for editors that edit script-based objects. You can return a list of breakpoints in the format ([code]script:line[/code]), for example: [code]res://path_to_script.gd:25[/code]. </description> </method> - <method name="get_editor_interface"> - <return type="EditorInterface"> - </return> - <description> - Returns the [EditorInterface] object that gives you control over Godot editor's window and its functionalities. - </description> - </method> - <method name="get_plugin_icon" qualifiers="virtual"> + <method name="_get_plugin_icon" qualifiers="virtual"> <return type="Texture2D"> </return> <description> @@ -414,7 +250,7 @@ Ideally, the plugin icon should be white with a transparent background and 16x16 pixels in size. [codeblocks] [gdscript] - func get_plugin_icon(): + func _get_plugin_icon(): # You can use a custom icon: return preload("res://addons/my_plugin/my_plugin_icon.svg") # Or use a built-in icon: @@ -432,7 +268,7 @@ [/codeblocks] </description> </method> - <method name="get_plugin_name" qualifiers="virtual"> + <method name="_get_plugin_name" qualifiers="virtual"> <return type="String"> </return> <description> @@ -440,75 +276,285 @@ For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", and "AssetLib" buttons. </description> </method> - <method name="get_script_create_dialog"> - <return type="ScriptCreateDialog"> + <method name="_get_state" qualifiers="virtual"> + <return type="Dictionary"> </return> <description> - Gets the Editor's dialogue used for making scripts. - [b]Note:[/b] Users can configure it before use. + Gets the state of your plugin editor. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns). </description> </method> - <method name="get_state" qualifiers="virtual"> - <return type="Dictionary"> + <method name="_get_window_layout" qualifiers="virtual"> + <return type="void"> </return> + <argument index="0" name="layout" type="ConfigFile"> + </argument> <description> - Gets the state of your plugin editor. This is used when saving the scene (so state is kept when opening it again) and for switching tabs (so state can be restored when the tab returns). + Gets the GUI layout of the plugin. This is used to save the project's editor layout when [method queue_save_layout] is called or the editor layout was changed(For example changing the position of a dock). </description> </method> - <method name="get_undo_redo"> - <return type="UndoRedo"> + <method name="_handles" qualifiers="virtual"> + <return type="bool"> </return> + <argument index="0" name="object" type="Object"> + </argument> <description> - Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it. + Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method _edit] and [method _make_visible] called when the editor requests them. If you have declared the methods [method _forward_canvas_gui_input] and [method _forward_spatial_gui_input] these will be called too. + </description> + </method> + <method name="_has_main_screen" qualifiers="virtual"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if this is a main screen editor plugin (it goes in the workspace selector together with [b]2D[/b], [b]3D[/b], [b]Script[/b] and [b]AssetLib[/b]). + </description> + </method> + <method name="_make_visible" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="visible" type="bool"> + </argument> + <description> + This function will be called when the editor is requested to become visible. It is used for plugins that edit a specific object type. + Remember that you have to manage the visibility of all your editor controls manually. + </description> + </method> + <method name="_save_external_data" qualifiers="virtual"> + <return type="void"> + </return> + <description> + This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources. + </description> + </method> + <method name="_set_state" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="state" type="Dictionary"> + </argument> + <description> + Restore the state saved by [method _get_state]. </description> </method> - <method name="get_window_layout" qualifiers="virtual"> + <method name="_set_window_layout" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="layout" type="ConfigFile"> </argument> <description> - Gets the GUI layout of the plugin. This is used to save the project's editor layout when [method queue_save_layout] is called or the editor layout was changed(For example changing the position of a dock). + Restore the plugin GUI layout saved by [method _get_window_layout]. </description> </method> - <method name="handles" qualifiers="virtual"> - <return type="bool"> + <method name="add_autoload_singleton"> + <return type="void"> </return> - <argument index="0" name="object" type="Object"> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="path" type="String"> </argument> <description> - Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method edit] and [method make_visible] called when the editor requests them. If you have declared the methods [method forward_canvas_gui_input] and [method forward_spatial_gui_input] these will be called too. + Adds a script at [code]path[/code] to the Autoload list as [code]name[/code]. </description> </method> - <method name="has_main_screen" qualifiers="virtual"> - <return type="bool"> + <method name="add_control_to_bottom_panel"> + <return type="Button"> </return> + <argument index="0" name="control" type="Control"> + </argument> + <argument index="1" name="title" type="String"> + </argument> <description> - Returns [code]true[/code] if this is a main screen editor plugin (it goes in the workspace selector together with [b]2D[/b], [b]3D[/b], [b]Script[/b] and [b]AssetLib[/b]). + Adds a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_bottom_panel] and free it with [method Node.queue_free]. </description> </method> - <method name="hide_bottom_panel"> + <method name="add_control_to_container"> <return type="void"> </return> + <argument index="0" name="container" type="int" enum="EditorPlugin.CustomControlContainer"> + </argument> + <argument index="1" name="control" type="Control"> + </argument> <description> + Adds a custom control to a container (see [enum CustomControlContainer]). There are many locations where custom controls can be added in the editor UI. + Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it). + When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_container] and free it with [method Node.queue_free]. </description> </method> - <method name="make_bottom_panel_item_visible"> + <method name="add_control_to_dock"> <return type="void"> </return> - <argument index="0" name="item" type="Control"> + <argument index="0" name="slot" type="int" enum="EditorPlugin.DockSlot"> + </argument> + <argument index="1" name="control" type="Control"> </argument> <description> + Adds the control to a specific dock slot (see [enum DockSlot] for options). + If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. + When your plugin is deactivated, make sure to remove your custom control with [method remove_control_from_docks] and free it with [method Node.queue_free]. </description> </method> - <method name="make_visible" qualifiers="virtual"> + <method name="add_custom_type"> <return type="void"> </return> - <argument index="0" name="visible" type="bool"> + <argument index="0" name="type" type="String"> + </argument> + <argument index="1" name="base" type="String"> + </argument> + <argument index="2" name="script" type="Script"> + </argument> + <argument index="3" name="icon" type="Texture2D"> + </argument> + <description> + Adds a custom type, which will appear in the list of nodes or resources. An icon can be optionally passed. + When given node or resource is selected, the base type will be instanced (e.g. "Node3D", "Control", "Resource"), then the script will be loaded and set to this object. + You can use the virtual method [method _handles] to check if your custom object is being edited by checking the script or using the [code]is[/code] keyword. + During run-time, this will be a simple object with a script so this function does not need to be called then. + </description> + </method> + <method name="add_debugger_plugin"> + <return type="void"> + </return> + <argument index="0" name="script" type="Script"> + </argument> + <description> + Adds a [Script] as debugger plugin to the Debugger. The script must extend [EditorDebuggerPlugin]. + </description> + </method> + <method name="add_export_plugin"> + <return type="void"> + </return> + <argument index="0" name="plugin" type="EditorExportPlugin"> + </argument> + <description> + Registers a new [EditorExportPlugin]. Export plugins are used to perform tasks when the project is being exported. + See [method add_inspector_plugin] for an example of how to register a plugin. + </description> + </method> + <method name="add_import_plugin"> + <return type="void"> + </return> + <argument index="0" name="importer" type="EditorImportPlugin"> + </argument> + <description> + Registers a new [EditorImportPlugin]. Import plugins are used to import custom and unsupported assets as a custom [Resource] type. + [b]Note:[/b] If you want to import custom 3D asset formats use [method add_scene_import_plugin] instead. + See [method add_inspector_plugin] for an example of how to register a plugin. + </description> + </method> + <method name="add_inspector_plugin"> + <return type="void"> + </return> + <argument index="0" name="plugin" type="EditorInspectorPlugin"> + </argument> + <description> + Registers a new [EditorInspectorPlugin]. Inspector plugins are used to extend [EditorInspector] and provide custom configuration tools for your object's properties. + [b]Note:[/b] Always use [method remove_inspector_plugin] to remove the registered [EditorInspectorPlugin] when your [EditorPlugin] is disabled to prevent leaks and an unexpected behavior. + [codeblocks] + [gdscript] + const MyInspectorPlugin = preload("res://addons/your_addon/path/to/your/script.gd") + var inspector_plugin = MyInspectorPlugin.new() + + func _enter_tree(): + add_inspector_plugin(inspector_plugin) + + func _exit_tree(): + remove_inspector_plugin(inspector_plugin) + [/gdscript] + [/codeblocks] + </description> + </method> + <method name="add_scene_import_plugin"> + <return type="void"> + </return> + <argument index="0" name="scene_importer" type="EditorSceneImporter"> + </argument> + <description> + Registers a new [EditorSceneImporter]. Scene importers are used to import custom 3D asset formats as scenes. + </description> + </method> + <method name="add_spatial_gizmo_plugin"> + <return type="void"> + </return> + <argument index="0" name="plugin" type="EditorNode3DGizmoPlugin"> + </argument> + <description> + Registers a new [EditorNode3DGizmoPlugin]. Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a [Node3D]. + See [method add_inspector_plugin] for an example of how to register a plugin. + </description> + </method> + <method name="add_tool_menu_item"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="callable" type="Callable"> + </argument> + <description> + Adds a custom menu item to [b]Project > Tools[/b] named [code]name[/code]. When clicked, the provided [code]callable[/code] will be called. + </description> + </method> + <method name="add_tool_submenu_item"> + <return type="void"> + </return> + <argument index="0" name="name" type="String"> + </argument> + <argument index="1" name="submenu" type="Object"> + </argument> + <description> + Adds a custom submenu under [b]Project > Tools >[/b] [code]name[/code]. [code]submenu[/code] should be an object of class [PopupMenu]. Use [code]remove_tool_menu_item(name)[/code] on plugin clean up to remove the menu. + </description> + </method> + <method name="add_translation_parser_plugin"> + <return type="void"> + </return> + <argument index="0" name="parser" type="EditorTranslationParserPlugin"> + </argument> + <description> + Registers a custom translation parser plugin for extracting translatable strings from custom files. + </description> + </method> + <method name="add_undo_redo_inspector_hook_callback"> + <return type="void"> + </return> + <argument index="0" name="callable" type="Callable"> + </argument> + <description> + Hooks a callback into the undo/redo action creation when a property is modified in the inspector. This allows, for example, to save other properties that may be lost when a given property is modified. + The callback should have 4 arguments: [Object] [code]undo_redo[/code], [Object] [code]modified_object[/code], [String] [code]property[/code] and [Variant] [code]new_value[/code]. They are, respectively, the [UndoRedo] object used by the inspector, the currently modified object, the name of the modified property and the new value the property is about to take. + </description> + </method> + <method name="get_editor_interface"> + <return type="EditorInterface"> + </return> + <description> + Returns the [EditorInterface] object that gives you control over Godot editor's window and its functionalities. + </description> + </method> + <method name="get_script_create_dialog"> + <return type="ScriptCreateDialog"> + </return> + <description> + Gets the Editor's dialogue used for making scripts. + [b]Note:[/b] Users can configure it before use. + </description> + </method> + <method name="get_undo_redo"> + <return type="UndoRedo"> + </return> + <description> + Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it. + </description> + </method> + <method name="hide_bottom_panel"> + <return type="void"> + </return> + <description> + </description> + </method> + <method name="make_bottom_panel_item_visible"> + <return type="void"> + </return> + <argument index="0" name="item" type="Control"> </argument> <description> - This function will be called when the editor is requested to become visible. It is used for plugins that edit a specific object type. - Remember that you have to manage the visibility of all your editor controls manually. </description> </method> <method name="queue_save_layout"> @@ -580,6 +626,7 @@ <argument index="0" name="plugin" type="EditorExportPlugin"> </argument> <description> + Removes an export plugin registered by [method add_export_plugin]. </description> </method> <method name="remove_import_plugin"> @@ -588,6 +635,7 @@ <argument index="0" name="importer" type="EditorImportPlugin"> </argument> <description> + Removes an import plugin registered by [method add_import_plugin]. </description> </method> <method name="remove_inspector_plugin"> @@ -596,6 +644,7 @@ <argument index="0" name="plugin" type="EditorInspectorPlugin"> </argument> <description> + Removes an inspector plugin registered by [method add_import_plugin] </description> </method> <method name="remove_scene_import_plugin"> @@ -604,6 +653,7 @@ <argument index="0" name="scene_importer" type="EditorSceneImporter"> </argument> <description> + Removes a scene importer registered by [method add_scene_import_plugin]. </description> </method> <method name="remove_spatial_gizmo_plugin"> @@ -612,6 +662,7 @@ <argument index="0" name="plugin" type="EditorNode3DGizmoPlugin"> </argument> <description> + Removes a gizmo plugin registered by [method add_spatial_gizmo_plugin]. </description> </method> <method name="remove_tool_menu_item"> @@ -629,7 +680,7 @@ <argument index="0" name="parser" type="EditorTranslationParserPlugin"> </argument> <description> - Removes a registered custom translation parser plugin. + Removes a custom translation parser plugin registered by [method add_translation_parser_plugin]. </description> </method> <method name="remove_undo_redo_inspector_hook_callback"> @@ -641,50 +692,25 @@ Removes a callback previsously added by [method add_undo_redo_inspector_hook_callback]. </description> </method> - <method name="save_external_data" qualifiers="virtual"> - <return type="void"> - </return> - <description> - This method is called after the editor saves the project or when it's closed. It asks the plugin to save edited external scenes/resources. - </description> - </method> <method name="set_force_draw_over_forwarding_enabled"> <return type="void"> </return> <description> - Enables calling of [method forward_canvas_force_draw_over_viewport] for the 2D editor and [method forward_spatial_force_draw_over_viewport] for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin. + Enables calling of [method _forward_canvas_force_draw_over_viewport] for the 2D editor and [method _forward_spatial_force_draw_over_viewport] for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin. </description> </method> <method name="set_input_event_forwarding_always_enabled"> <return type="void"> </return> <description> - Use this method if you always want to receive inputs from 3D view screen inside [method forward_spatial_gui_input]. It might be especially usable if your plugin will want to use raycast in the scene. - </description> - </method> - <method name="set_state" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="state" type="Dictionary"> - </argument> - <description> - Restore the state saved by [method get_state]. - </description> - </method> - <method name="set_window_layout" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="layout" type="ConfigFile"> - </argument> - <description> - Restore the plugin GUI layout saved by [method get_window_layout]. + Use this method if you always want to receive inputs from 3D view screen inside [method _forward_spatial_gui_input]. It might be especially usable if your plugin will want to use raycast in the scene. </description> </method> <method name="update_overlays" qualifiers="const"> <return type="int"> </return> <description> - Updates the overlays of the 2D and 3D editor viewport. Causes methods [method forward_canvas_draw_over_viewport], [method forward_canvas_force_draw_over_viewport], [method forward_spatial_draw_over_viewport] and [method forward_spatial_force_draw_over_viewport] to be called. + Updates the overlays of the 2D and 3D editor viewport. Causes methods [method _forward_canvas_draw_over_viewport], [method _forward_canvas_force_draw_over_viewport], [method _forward_spatial_draw_over_viewport] and [method _forward_spatial_force_draw_over_viewport] to be called. </description> </method> </methods> diff --git a/doc/classes/EditorProperty.xml b/doc/classes/EditorProperty.xml index f568263ff8..549d2c1628 100644 --- a/doc/classes/EditorProperty.xml +++ b/doc/classes/EditorProperty.xml @@ -9,6 +9,13 @@ <tutorials> </tutorials> <methods> + <method name="_update_property" qualifiers="virtual"> + <return type="void"> + </return> + <description> + When this virtual function is called, you must update your editor. + </description> + </method> <method name="add_focusable"> <return type="void"> </return> @@ -25,7 +32,7 @@ </argument> <argument index="1" name="value" type="Variant"> </argument> - <argument index="2" name="field" type="StringName" default="@"""> + <argument index="2" name="field" type="StringName" default="&"""> </argument> <argument index="3" name="changing" type="bool" default="false"> </argument> @@ -44,7 +51,7 @@ <return type="StringName"> </return> <description> - Gets the edited property. If your editor is for a single property (added via [method EditorInspectorPlugin.parse_property]), then this will return the property. + Gets the edited property. If your editor is for a single property (added via [method EditorInspectorPlugin._parse_property]), then this will return the property. </description> </method> <method name="get_tooltip_text" qualifiers="const"> @@ -63,13 +70,6 @@ Adds controls with this function if you want them on the bottom (below the label). </description> </method> - <method name="update_property" qualifiers="virtual"> - <return type="void"> - </return> - <description> - When this virtual function is called, you must update your editor. - </description> - </method> </methods> <members> <member name="checkable" type="bool" setter="set_checkable" getter="is_checkable" default="false"> @@ -101,7 +101,7 @@ <argument index="1" name="value" type="Array"> </argument> <description> - Emit it if you want multiple properties modified at the same time. Do not use if added via [method EditorInspectorPlugin.parse_property]. + Emit it if you want multiple properties modified at the same time. Do not use if added via [method EditorInspectorPlugin._parse_property]. </description> </signal> <signal name="object_id_selected"> diff --git a/doc/classes/EditorResourceConversionPlugin.xml b/doc/classes/EditorResourceConversionPlugin.xml index 1976eb802c..1d7e98c99d 100644 --- a/doc/classes/EditorResourceConversionPlugin.xml +++ b/doc/classes/EditorResourceConversionPlugin.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorResourceConversionPlugin" inherits="Reference" version="4.0"> +<class name="EditorResourceConversionPlugin" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/EditorResourcePicker.xml b/doc/classes/EditorResourcePicker.xml index 30c73daa77..0029955819 100644 --- a/doc/classes/EditorResourcePicker.xml +++ b/doc/classes/EditorResourcePicker.xml @@ -10,28 +10,23 @@ <tutorials> </tutorials> <methods> - <method name="can_drop_data_fw" qualifiers="const"> - <return type="bool"> + <method name="_handle_menu_selected" qualifiers="virtual"> + <return type="void"> </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> + <argument index="0" name="id" type="int"> </argument> <description> + This virtual method can be implemented to handle context menu items not handled by default. See [method _set_create_options]. </description> </method> - <method name="drop_data_fw"> + <method name="_set_create_options" qualifiers="virtual"> <return type="void"> </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> + <argument index="0" name="menu_node" type="Object"> </argument> <description> + This virtual method is called when updating the context menu of [EditorResourcePicker]. Implement this method to override the "New ..." items with your own options. [code]menu_node[/code] is a reference to the [PopupMenu] node. + [b]Note:[/b] Implement [method _handle_menu_selected] to handle these custom items. </description> </method> <method name="get_allowed_types" qualifiers="const"> @@ -41,35 +36,6 @@ Returns a list of all allowed types and subtypes corresponding to the [member base_type]. If the [member base_type] is empty, an empty list is returned. </description> </method> - <method name="get_drag_data_fw"> - <return type="Variant"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="from" type="Control"> - </argument> - <description> - </description> - </method> - <method name="handle_menu_selected" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="id" type="int"> - </argument> - <description> - This virtual method can be implemented to handle context menu items not handled by default. See [method set_create_options]. - </description> - </method> - <method name="set_create_options" qualifiers="virtual"> - <return type="void"> - </return> - <argument index="0" name="menu_node" type="Object"> - </argument> - <description> - This virtual method is called when updating the context menu of [EditorResourcePicker]. Implement this method to override the "New ..." items with your own options. [code]menu_node[/code] is a reference to the [PopupMenu] node. - [b]Note:[/b] Implement [method handle_menu_selected] to handle these custom items. - </description> - </method> <method name="set_toggle_pressed"> <return type="void"> </return> diff --git a/doc/classes/EditorResourcePreviewGenerator.xml b/doc/classes/EditorResourcePreviewGenerator.xml index e935bf19fc..3594474e36 100644 --- a/doc/classes/EditorResourcePreviewGenerator.xml +++ b/doc/classes/EditorResourcePreviewGenerator.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorResourcePreviewGenerator" inherits="Reference" version="4.0"> +<class name="EditorResourcePreviewGenerator" inherits="RefCounted" version="4.0"> <brief_description> Custom generator of previews. </brief_description> @@ -9,15 +9,15 @@ <tutorials> </tutorials> <methods> - <method name="can_generate_small_preview" qualifiers="virtual"> + <method name="_can_generate_small_preview" qualifiers="virtual"> <return type="bool"> </return> <description> - If this function returns [code]true[/code], the generator will call [method generate] or [method generate_from_path] for small previews as well. + If this function returns [code]true[/code], the generator will call [method _generate] or [method _generate_from_path] for small previews as well. By default, it returns [code]false[/code]. </description> </method> - <method name="generate" qualifiers="virtual"> + <method name="_generate" qualifiers="virtual"> <return type="Texture2D"> </return> <argument index="0" name="from" type="Resource"> @@ -30,7 +30,7 @@ Care must be taken because this function is always called from a thread (not the main thread). </description> </method> - <method name="generate_from_path" qualifiers="virtual"> + <method name="_generate_from_path" qualifiers="virtual"> <return type="Texture2D"> </return> <argument index="0" name="path" type="String"> @@ -38,20 +38,20 @@ <argument index="1" name="size" type="Vector2"> </argument> <description> - Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call [method generate]. + Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call [method _generate]. Returning an empty texture is an OK way to fail and let another generator take care. Care must be taken because this function is always called from a thread (not the main thread). </description> </method> - <method name="generate_small_preview_automatically" qualifiers="virtual"> + <method name="_generate_small_preview_automatically" qualifiers="virtual"> <return type="bool"> </return> <description> - If this function returns [code]true[/code], the generator will automatically generate the small previews from the normal preview texture generated by the methods [method generate] or [method generate_from_path]. + If this function returns [code]true[/code], the generator will automatically generate the small previews from the normal preview texture generated by the methods [method _generate] or [method _generate_from_path]. By default, it returns [code]false[/code]. </description> </method> - <method name="handles" qualifiers="virtual"> + <method name="_handles" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="type" type="String"> diff --git a/doc/classes/EditorSceneImporter.xml b/doc/classes/EditorSceneImporter.xml index aa55a1653d..8df3091057 100644 --- a/doc/classes/EditorSceneImporter.xml +++ b/doc/classes/EditorSceneImporter.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorSceneImporter" inherits="Reference" version="4.0"> +<class name="EditorSceneImporter" inherits="RefCounted" version="4.0"> <brief_description> Imports scenes from third-parties' 3D files. </brief_description> diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml index d1cdc4e43e..d2b5e84ff7 100644 --- a/doc/classes/EditorScenePostImport.xml +++ b/doc/classes/EditorScenePostImport.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorScenePostImport" inherits="Reference" version="4.0"> +<class name="EditorScenePostImport" inherits="RefCounted" version="4.0"> <brief_description> Post-processes scenes after import. </brief_description> <description> Imported scenes can be automatically modified right after import by setting their [b]Custom Script[/b] Import property to a [code]tool[/code] script that inherits from this class. - The [method post_import] callback receives the imported scene's root node and returns the modified version of the scene. Usage example: + The [method _post_import] callback receives the imported scene's root node and returns the modified version of the scene. Usage example: [codeblocks] [gdscript] tool # Needed so it runs in editor. extends EditorScenePostImport # This sample changes all node names. # Called right after the scene is imported and gets the root node. - func post_import(scene): + func _post_import(scene): # Change all node names to "modified_[oldnodename]" iterate(scene) return scene # Remember to return the imported scene @@ -55,14 +55,7 @@ <link title="Importing 3D scenes: Custom script">https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_scenes.html#custom-script</link> </tutorials> <methods> - <method name="get_source_file" qualifiers="const"> - <return type="String"> - </return> - <description> - Returns the source file path which got imported (e.g. [code]res://scene.dae[/code]). - </description> - </method> - <method name="post_import" qualifiers="virtual"> + <method name="_post_import" qualifiers="virtual"> <return type="Object"> </return> <argument index="0" name="scene" type="Object"> @@ -71,6 +64,13 @@ Called after the scene was imported. This method must return the modified version of the scene. </description> </method> + <method name="get_source_file" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns the source file path which got imported (e.g. [code]res://scene.dae[/code]). + </description> + </method> </methods> <constants> </constants> diff --git a/doc/classes/EditorScript.xml b/doc/classes/EditorScript.xml index 60ccf451b8..a91ea0eb14 100644 --- a/doc/classes/EditorScript.xml +++ b/doc/classes/EditorScript.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorScript" inherits="Reference" version="4.0"> +<class name="EditorScript" inherits="RefCounted" version="4.0"> <brief_description> Base script that can be used to add extension functions to the editor. </brief_description> diff --git a/doc/classes/EditorSyntaxHighlighter.xml b/doc/classes/EditorSyntaxHighlighter.xml index b80e81928f..d81b25345f 100644 --- a/doc/classes/EditorSyntaxHighlighter.xml +++ b/doc/classes/EditorSyntaxHighlighter.xml @@ -5,7 +5,7 @@ </brief_description> <description> Base syntax highlighter resource all editor syntax highlighters extend from, it is used in the [ScriptEditor]. - Add a syntax highlighter to an individual script by calling [method ScriptEditorBase.add_syntax_highlighter]. To apply to all scripts on open, call [method ScriptEditor.register_syntax_highlighter] + Add a syntax highlighter to an individual script by calling [method ScriptEditorBase._add_syntax_highlighter]. To apply to all scripts on open, call [method ScriptEditor.register_syntax_highlighter] </description> <tutorials> </tutorials> diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml index c97459d9dc..a9f4e90e72 100644 --- a/doc/classes/EditorTranslationParserPlugin.xml +++ b/doc/classes/EditorTranslationParserPlugin.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EditorTranslationParserPlugin" inherits="Reference" version="4.0"> +<class name="EditorTranslationParserPlugin" inherits="RefCounted" version="4.0"> <brief_description> Plugin for adding custom parsers to extract strings that are to be translated from custom files (.csv, .json etc.). </brief_description> <description> - Plugins are registered via [method EditorPlugin.add_translation_parser_plugin] method. To define the parsing and string extraction logic, override the [method parse_file] method in script. + Plugins are registered via [method EditorPlugin.add_translation_parser_plugin] method. To define the parsing and string extraction logic, override the [method _parse_file] method in script. Add the extracted strings to argument [code]msgids[/code] or [code]msgids_context_plural[/code] if context or plural is used. When adding to [code]msgids_context_plural[/code], you must add the data using the format [code]["A", "B", "C"][/code], where [code]A[/code] represents the extracted string, [code]B[/code] represents the context, and [code]C[/code] represents the plural version of the extracted string. If you want to add only context but not plural, put [code]""[/code] for the plural slot. The idea is the same if you only want to add plural but not context. See the code below for concrete examples. The extracted strings will be written into a POT file selected by user under "POT Generation" in "Localization" tab in "Project Settings" menu. @@ -14,7 +14,7 @@ tool extends EditorTranslationParserPlugin - func parse_file(path, msgids, msgids_context_plural): + func _parse_file(path, msgids, msgids_context_plural): var file = File.new() file.open(path, File.READ) var text = file.get_as_text() @@ -23,7 +23,7 @@ msgids.append(s) #print("Extracted string: " + s) - func get_recognized_extensions(): + func _get_recognized_extensions(): return ["csv"] [/gdscript] [csharp] @@ -76,12 +76,12 @@ For example: [codeblocks] [gdscript] - func parse_file(path, msgids, msgids_context_plural): + func _parse_file(path, msgids, msgids_context_plural): var res = ResourceLoader.load(path, "Script") var text = res.source_code # Parsing logic. - func get_recognized_extensions(): + func _get_recognized_extensions(): return ["gd"] [/gdscript] [csharp] @@ -102,14 +102,14 @@ <tutorials> </tutorials> <methods> - <method name="get_recognized_extensions" qualifiers="virtual"> + <method name="_get_recognized_extensions" qualifiers="virtual"> <return type="Array"> </return> <description> Gets the list of file extensions to associate with this parser, e.g. [code]["csv"][/code]. </description> </method> - <method name="parse_file" qualifiers="virtual"> + <method name="_parse_file" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="path" type="String"> diff --git a/doc/classes/EncodedObjectAsID.xml b/doc/classes/EncodedObjectAsID.xml index 1e4fde453b..e3e36590a3 100644 --- a/doc/classes/EncodedObjectAsID.xml +++ b/doc/classes/EncodedObjectAsID.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="EncodedObjectAsID" inherits="Reference" version="4.0"> +<class name="EncodedObjectAsID" inherits="RefCounted" version="4.0"> <brief_description> Holds a reference to an [Object]'s instance ID. </brief_description> diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml index 6909fac2b7..878535a08d 100644 --- a/doc/classes/Environment.xml +++ b/doc/classes/Environment.xml @@ -206,7 +206,7 @@ The depth tolerance for screen-space reflections. </member> <member name="ss_reflections_enabled" type="bool" setter="set_ssr_enabled" getter="is_ssr_enabled" default="false"> - If [code]true[/code], screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from [GIProbe]s or [ReflectionProbe]s, but are slower and can't reflect surfaces occluded by others. + If [code]true[/code], screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from [VoxelGI]s or [ReflectionProbe]s, but are slower and can't reflect surfaces occluded by others. </member> <member name="ss_reflections_fade_in" type="float" setter="set_ssr_fade_in" getter="get_ssr_fade_in" default="0.15"> The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection). diff --git a/doc/classes/Expression.xml b/doc/classes/Expression.xml index d777c6fd9d..e41de4c4ed 100644 --- a/doc/classes/Expression.xml +++ b/doc/classes/Expression.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Expression" inherits="Reference" version="4.0"> +<class name="Expression" inherits="RefCounted" version="4.0"> <brief_description> A class that stores an expression you can execute. </brief_description> diff --git a/doc/classes/File.xml b/doc/classes/File.xml index 2206730523..7feaaa2040 100644 --- a/doc/classes/File.xml +++ b/doc/classes/File.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="File" inherits="Reference" version="4.0"> +<class name="File" inherits="RefCounted" version="4.0"> <brief_description> Type to handle file reading and writing operations. </brief_description> @@ -188,7 +188,7 @@ <argument index="0" name="file" type="String"> </argument> <description> - Returns the last time the [code]file[/code] was modified in unix timestamp format or returns a [String] "ERROR IN [code]file[/code]". This unix timestamp can be converted to datetime by using [method OS.get_datetime_from_unix_time]. + Returns the last time the [code]file[/code] was modified in Unix timestamp format or returns a [String] "ERROR IN [code]file[/code]". This Unix timestamp can be converted to another format using the [Time] singleton. </description> </method> <method name="get_pascal_string"> @@ -490,10 +490,10 @@ </method> </methods> <members> - <member name="endian_swap" type="bool" setter="set_endian_swap" getter="get_endian_swap" default="false"> + <member name="big_endian" type="bool" setter="set_big_endian" getter="is_big_endian" default="false"> If [code]true[/code], the file is read with big-endian [url=https://en.wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the file is read with little-endian endianness. If in doubt, leave this to [code]false[/code] as most files are written with little-endian endianness. - [b]Note:[/b] [member endian_swap] is only about the file format, not the CPU type. The CPU endianness doesn't affect the default endianness for files written. - [b]Note:[/b] This is always reset to [code]false[/code] whenever you open the file. Therefore, you must set [member endian_swap] [i]after[/i] opening the file, not before. + [b]Note:[/b] [member big_endian] is only about the file format, not the CPU type. The CPU endianness doesn't affect the default endianness for files written. + [b]Note:[/b] This is always reset to [code]false[/code] whenever you open the file. Therefore, you must set [member big_endian] [i]after[/i] opening the file, not before. </member> </members> <constants> diff --git a/doc/classes/FileSystemDock.xml b/doc/classes/FileSystemDock.xml index c553f90e37..15f92e90e3 100644 --- a/doc/classes/FileSystemDock.xml +++ b/doc/classes/FileSystemDock.xml @@ -7,40 +7,6 @@ <tutorials> </tutorials> <methods> - <method name="can_drop_data_fw" qualifiers="const"> - <return type="bool"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> - </argument> - <description> - </description> - </method> - <method name="drop_data_fw"> - <return type="void"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> - </argument> - <description> - </description> - </method> - <method name="get_drag_data_fw"> - <return type="Variant"> - </return> - <argument index="0" name="position" type="Vector2"> - </argument> - <argument index="1" name="from" type="Control"> - </argument> - <description> - </description> - </method> <method name="navigate_to_path"> <return type="void"> </return> diff --git a/doc/classes/GPUParticles3D.xml b/doc/classes/GPUParticles3D.xml index 76f0fdb406..47bdd9d745 100644 --- a/doc/classes/GPUParticles3D.xml +++ b/doc/classes/GPUParticles3D.xml @@ -22,7 +22,7 @@ <method name="emit_particle"> <return type="void"> </return> - <argument index="0" name="xform" type="Transform"> + <argument index="0" name="xform" type="Transform3D"> </argument> <argument index="1" name="velocity" type="Vector3"> </argument> diff --git a/doc/classes/HMACContext.xml b/doc/classes/HMACContext.xml index 00d528ef8f..9fa96e5ddf 100644 --- a/doc/classes/HMACContext.xml +++ b/doc/classes/HMACContext.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="HMACContext" inherits="Reference" version="4.0"> +<class name="HMACContext" inherits="RefCounted" version="4.0"> <brief_description> Used to create an HMAC for a message using a key. </brief_description> diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index ddfcdf7724..a549994a69 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="HTTPClient" inherits="Reference" version="4.0"> +<class name="HTTPClient" inherits="RefCounted" version="4.0"> <brief_description> Low-level hyper-text transfer protocol client. </brief_description> diff --git a/doc/classes/HashingContext.xml b/doc/classes/HashingContext.xml index e020293d76..1c7b7ca937 100644 --- a/doc/classes/HashingContext.xml +++ b/doc/classes/HashingContext.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="HashingContext" inherits="Reference" version="4.0"> +<class name="HashingContext" inherits="RefCounted" version="4.0"> <brief_description> Context to compute cryptographic hashes over multiple iterations. </brief_description> diff --git a/doc/classes/IP.xml b/doc/classes/IP.xml index 44da913492..b3ce1abaeb 100644 --- a/doc/classes/IP.xml +++ b/doc/classes/IP.xml @@ -59,6 +59,15 @@ Returns a queued hostname's IP address, given its queue [code]id[/code]. Returns an empty string on error or if resolution hasn't happened yet (see [method get_resolve_item_status]). </description> </method> + <method name="get_resolve_item_addresses" qualifiers="const"> + <return type="Array"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <description> + Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see [method get_resolve_item_status]). + </description> + </method> <method name="get_resolve_item_status" qualifiers="const"> <return type="int" enum="IP.ResolverStatus"> </return> @@ -79,6 +88,17 @@ Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the [enum Type] constant given as [code]ip_type[/code]. </description> </method> + <method name="resolve_hostname_addresses"> + <return type="Array"> + </return> + <argument index="0" name="host" type="String"> + </argument> + <argument index="1" name="ip_type" type="int" enum="IP.Type" default="3"> + </argument> + <description> + Resolves a given hostname in a blocking way. Addresses are returned as an [Array] of IPv4 or IPv6 addresses depending on [code]ip_type[/code]. + </description> + </method> <method name="resolve_hostname_queue_item"> <return type="int"> </return> diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index d7408cd0ff..ebfd32c5fb 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -449,7 +449,10 @@ [b]Note:[/b] If you want to process the mouse's movement in this mode, you need to use [member InputEventMouseMotion.relative]. </constant> <constant name="MOUSE_MODE_CONFINED" value="3" enum="MouseMode"> - Makes the mouse cursor visible but confines it to the game window. + Confines the mouse cursor to the game window, and make it visible. + </constant> + <constant name="MOUSE_MODE_CONFINED_HIDDEN" value="4" enum="MouseMode"> + Confines the mouse cursor to the game window, and make it hidden. </constant> <constant name="CURSOR_ARROW" value="0" enum="CursorShape"> Arrow cursor. Standard, default pointing cursor. diff --git a/doc/classes/InputEventAction.xml b/doc/classes/InputEventAction.xml index ed290fc7e2..42326f344f 100644 --- a/doc/classes/InputEventAction.xml +++ b/doc/classes/InputEventAction.xml @@ -14,7 +14,7 @@ <methods> </methods> <members> - <member name="action" type="StringName" setter="set_action" getter="get_action" default="@"""> + <member name="action" type="StringName" setter="set_action" getter="get_action" default="&"""> The action's name. Actions are accessed via this [String]. </member> <member name="pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false"> diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml index a9fb50c262..7baff7aa39 100644 --- a/doc/classes/JSON.xml +++ b/doc/classes/JSON.xml @@ -27,9 +27,12 @@ </argument> <argument index="2" name="sort_keys" type="bool" default="false"> </argument> + <argument index="3" name="full_precision" type="bool" default="false"> + </argument> <description> Converts a [Variant] var to JSON text and returns the result. Useful for serializing data to store or send over the network. [b]Note:[/b] The JSON specification does not define integer or float types, but only a [i]number[/i] type. Therefore, converting a Variant to JSON text will convert all numerical values to [float] types. + [b]Note:[/b] If [code]full_precision[/code] is true, when printing floats, the unreliable digits are printed in addition to the reliable digits to guarantee exact decoding. Use [code]indent[/code] parameter to pretty print the output. [b]Example output:[/b] [codeblock] diff --git a/doc/classes/JSONParseResult.xml b/doc/classes/JSONParseResult.xml index bc94f74b07..7311343b68 100644 --- a/doc/classes/JSONParseResult.xml +++ b/doc/classes/JSONParseResult.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="JSONParseResult" inherits="Reference" version="4.0"> +<class name="JSONParseResult" inherits="RefCounted" version="4.0"> <brief_description> Data class wrapper for decoded JSON. </brief_description> diff --git a/doc/classes/JSONParser.xml b/doc/classes/JSONParser.xml index 31ba295418..991629f255 100644 --- a/doc/classes/JSONParser.xml +++ b/doc/classes/JSONParser.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="JSONParser" inherits="Reference" version="4.0"> +<class name="JSONParser" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/JavaClass.xml b/doc/classes/JavaClass.xml index 69b7a9b718..0b6a44fe14 100644 --- a/doc/classes/JavaClass.xml +++ b/doc/classes/JavaClass.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="JavaClass" inherits="Reference" version="4.0"> +<class name="JavaClass" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/JavaScriptObject.xml b/doc/classes/JavaScriptObject.xml index a9e9c77e89..087fe163b4 100644 --- a/doc/classes/JavaScriptObject.xml +++ b/doc/classes/JavaScriptObject.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="JavaScriptObject" inherits="Reference" version="4.0"> +<class name="JavaScriptObject" inherits="RefCounted" version="4.0"> <brief_description> A wrapper class for native JavaScript objects. </brief_description> diff --git a/doc/classes/KinematicBody2D.xml b/doc/classes/KinematicBody2D.xml deleted file mode 100644 index fdd4db6115..0000000000 --- a/doc/classes/KinematicBody2D.xml +++ /dev/null @@ -1,176 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="KinematicBody2D" inherits="PhysicsBody2D" version="4.0"> - <brief_description> - Kinematic body 2D node. - </brief_description> - <description> - Kinematic bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a character or a rigid body, these are the same as a static body. However, they have two main uses: - [b]Simulated motion:[/b] When these bodies are moved manually, either from code or from an [AnimationPlayer] (with [member AnimationPlayer.playback_process_mode] set to "physics"), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc). - [b]Kinematic characters:[/b] KinematicBody2D also has an API for moving objects (the [method move_and_collide] and [method move_and_slide] methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but don't require advanced physics. - </description> - <tutorials> - <link title="Kinematic character (2D)">https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link> - <link title="Using KinematicBody2D">https://docs.godotengine.org/en/latest/tutorials/physics/using_kinematic_body_2d.html</link> - <link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link> - <link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link> - </tutorials> - <methods> - <method name="get_floor_normal" qualifiers="const"> - <return type="Vector2"> - </return> - <description> - Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/code]. - </description> - </method> - <method name="get_floor_velocity" qualifiers="const"> - <return type="Vector2"> - </return> - <description> - Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/code]. - </description> - </method> - <method name="get_slide_collision"> - <return type="KinematicCollision2D"> - </return> - <argument index="0" name="slide_idx" type="int"> - </argument> - <description> - Returns a [KinematicCollision2D], which contains information about a collision that occurred during the last call to [method move_and_slide] or [method move_and_slide_with_snap]. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1). - [b]Example usage:[/b] - [codeblocks] - [gdscript] - for i in get_slide_count(): - var collision = get_slide_collision(i) - print("Collided with: ", collision.collider.name) - [/gdscript] - [csharp] - for (int i = 0; i < GetSlideCount(); i++) - { - KinematicCollision2D collision = GetSlideCollision(i); - GD.Print("Collided with: ", (collision.Collider as Node).Name); - } - [/csharp] - [/codeblocks] - </description> - </method> - <method name="get_slide_count" qualifiers="const"> - <return type="int"> - </return> - <description> - Returns the number of times the body collided and changed direction during the last call to [method move_and_slide] or [method move_and_slide_with_snap]. - </description> - </method> - <method name="is_on_ceiling" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="is_on_floor" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="is_on_wall" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="move_and_collide"> - <return type="KinematicCollision2D"> - </return> - <argument index="0" name="rel_vec" type="Vector2"> - </argument> - <argument index="1" name="infinite_inertia" type="bool" default="true"> - </argument> - <argument index="2" name="exclude_raycast_shapes" type="bool" default="true"> - </argument> - <argument index="3" name="test_only" type="bool" default="false"> - </argument> - <description> - Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision2D], which contains information about the collision. - If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given. - </description> - </method> - <method name="move_and_slide"> - <return type="Vector2"> - </return> - <argument index="0" name="linear_velocity" type="Vector2"> - </argument> - <argument index="1" name="up_direction" type="Vector2" default="Vector2( 0, 0 )"> - </argument> - <argument index="2" name="stop_on_slope" type="bool" default="false"> - </argument> - <argument index="3" name="max_slides" type="int" default="4"> - </argument> - <argument index="4" name="floor_max_angle" type="float" default="0.785398"> - </argument> - <argument index="5" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [KinematicBody2D] or [RigidBody2D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. - This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed. - [code]linear_velocity[/code] is the velocity vector in pixels per second. Unlike in [method move_and_collide], you should [i]not[/i] multiply it by [code]delta[/code] — the physics engine handles applying the velocity. - [code]up_direction[/code] is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of [code]Vector2(0, 0)[/code], everything is considered a wall. This is useful for topdown games. - If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on slopes when you include gravity in [code]linear_velocity[/code] and the body is standing still. - If the body collides, it will change direction a maximum of [code]max_slides[/code] times before it stops. - [code]floor_max_angle[/code] is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees. - If [code]infinite_inertia[/code] is [code]true[/code], body will be able to push [RigidBody2D] nodes, but it won't also detect any collisions with them. If [code]false[/code], it will interact with [RigidBody2D] nodes like with [StaticBody2D]. - Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision]. - </description> - </method> - <method name="move_and_slide_with_snap"> - <return type="Vector2"> - </return> - <argument index="0" name="linear_velocity" type="Vector2"> - </argument> - <argument index="1" name="snap" type="Vector2"> - </argument> - <argument index="2" name="up_direction" type="Vector2" default="Vector2( 0, 0 )"> - </argument> - <argument index="3" name="stop_on_slope" type="bool" default="false"> - </argument> - <argument index="4" name="max_slides" type="int" default="4"> - </argument> - <argument index="5" name="floor_max_angle" type="float" default="0.785398"> - </argument> - <argument index="6" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Moves the body while keeping it attached to slopes. Similar to [method move_and_slide]. - As long as the [code]snap[/code] vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting [code]snap[/code] to [code](0, 0)[/code] or by using [method move_and_slide] instead. - </description> - </method> - <method name="test_move"> - <return type="bool"> - </return> - <argument index="0" name="from" type="Transform2D"> - </argument> - <argument index="1" name="rel_vec" type="Vector2"> - </argument> - <argument index="2" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur. - </description> - </method> - </methods> - <members> - <member name="collision/safe_margin" type="float" setter="set_safe_margin" getter="get_safe_margin" default="0.08"> - Extra margin used for collision recovery in motion functions (see [method move_and_collide], [method move_and_slide], [method move_and_slide_with_snap]). - If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. - A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. - A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of kinematic bodies. - </member> - <member name="motion/sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled" default="false"> - If [code]true[/code], the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms. Do [b]not[/b] use together with [method move_and_slide] or [method move_and_collide] functions. - </member> - </members> - <constants> - </constants> -</class> diff --git a/doc/classes/KinematicBody3D.xml b/doc/classes/KinematicBody3D.xml deleted file mode 100644 index efd3f58f88..0000000000 --- a/doc/classes/KinematicBody3D.xml +++ /dev/null @@ -1,188 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="KinematicBody3D" inherits="PhysicsBody3D" version="4.0"> - <brief_description> - Kinematic body 3D node. - </brief_description> - <description> - Kinematic bodies are special types of bodies that are meant to be user-controlled. They are not affected by physics at all; to other types of bodies, such as a character or a rigid body, these are the same as a static body. However, they have two main uses: - [b]Simulated motion:[/b] When these bodies are moved manually, either from code or from an [AnimationPlayer] (with [member AnimationPlayer.playback_process_mode] set to "physics"), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc). - [b]Kinematic characters:[/b] KinematicBody3D also has an API for moving objects (the [method move_and_collide] and [method move_and_slide] methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but don't require advanced physics. - </description> - <tutorials> - <link title="Kinematic character (2D)">https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link> - <link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link> - <link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link> - <link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link> - <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> - </tutorials> - <methods> - <method name="get_axis_lock" qualifiers="const"> - <return type="bool"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <description> - Returns [code]true[/code] if the specified [code]axis[/code] is locked. See also [member axis_lock_motion_x], [member axis_lock_motion_y] and [member axis_lock_motion_z]. - </description> - </method> - <method name="get_floor_normal" qualifiers="const"> - <return type="Vector3"> - </return> - <description> - Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/code]. - </description> - </method> - <method name="get_floor_velocity" qualifiers="const"> - <return type="Vector3"> - </return> - <description> - Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns [code]true[/code]. - </description> - </method> - <method name="get_slide_collision"> - <return type="KinematicCollision3D"> - </return> - <argument index="0" name="slide_idx" type="int"> - </argument> - <description> - Returns a [KinematicCollision3D], which contains information about a collision that occurred during the last call to [method move_and_slide] or [method move_and_slide_with_snap]. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1). - </description> - </method> - <method name="get_slide_count" qualifiers="const"> - <return type="int"> - </return> - <description> - Returns the number of times the body collided and changed direction during the last call to [method move_and_slide] or [method move_and_slide_with_snap]. - </description> - </method> - <method name="is_on_ceiling" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with the ceiling on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="is_on_floor" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with the floor on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="is_on_wall" qualifiers="const"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the body collided with a wall on the last call of [method move_and_slide] or [method move_and_slide_with_snap]. Otherwise, returns [code]false[/code]. - </description> - </method> - <method name="move_and_collide"> - <return type="KinematicCollision3D"> - </return> - <argument index="0" name="rel_vec" type="Vector3"> - </argument> - <argument index="1" name="infinite_inertia" type="bool" default="true"> - </argument> - <argument index="2" name="exclude_raycast_shapes" type="bool" default="true"> - </argument> - <argument index="3" name="test_only" type="bool" default="false"> - </argument> - <description> - Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision. - If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given. - </description> - </method> - <method name="move_and_slide"> - <return type="Vector3"> - </return> - <argument index="0" name="linear_velocity" type="Vector3"> - </argument> - <argument index="1" name="up_direction" type="Vector3" default="Vector3( 0, 0, 0 )"> - </argument> - <argument index="2" name="stop_on_slope" type="bool" default="false"> - </argument> - <argument index="3" name="max_slides" type="int" default="4"> - </argument> - <argument index="4" name="floor_max_angle" type="float" default="0.785398"> - </argument> - <argument index="5" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [KinematicBody3D] or [RigidBody3D], it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. - This method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's [code]delta[/code] value automatically in calculations. Otherwise, the simulation will run at an incorrect speed. - [code]linear_velocity[/code] is the velocity vector (typically meters per second). Unlike in [method move_and_collide], you should [i]not[/i] multiply it by [code]delta[/code] — the physics engine handles applying the velocity. - [code]up_direction[/code] is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of [code]Vector3(0, 0, 0)[/code], everything is considered a wall. - If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on slopes when you include gravity in [code]linear_velocity[/code] and the body is standing still. - If the body collides, it will change direction a maximum of [code]max_slides[/code] times before it stops. - [code]floor_max_angle[/code] is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees. - If [code]infinite_inertia[/code] is [code]true[/code], body will be able to push [RigidBody3D] nodes, but it won't also detect any collisions with them. If [code]false[/code], it will interact with [RigidBody3D] nodes like with [StaticBody3D]. - Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision]. - </description> - </method> - <method name="move_and_slide_with_snap"> - <return type="Vector3"> - </return> - <argument index="0" name="linear_velocity" type="Vector3"> - </argument> - <argument index="1" name="snap" type="Vector3"> - </argument> - <argument index="2" name="up_direction" type="Vector3" default="Vector3( 0, 0, 0 )"> - </argument> - <argument index="3" name="stop_on_slope" type="bool" default="false"> - </argument> - <argument index="4" name="max_slides" type="int" default="4"> - </argument> - <argument index="5" name="floor_max_angle" type="float" default="0.785398"> - </argument> - <argument index="6" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Moves the body while keeping it attached to slopes. Similar to [method move_and_slide]. - As long as the [code]snap[/code] vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting [code]snap[/code] to [code](0, 0, 0)[/code] or by using [method move_and_slide] instead. - </description> - </method> - <method name="set_axis_lock"> - <return type="void"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <argument index="1" name="lock" type="bool"> - </argument> - <description> - Locks or unlocks the specified [code]axis[/code] depending on the value of [code]lock[/code]. See also [member axis_lock_motion_x], [member axis_lock_motion_y] and [member axis_lock_motion_z]. - </description> - </method> - <method name="test_move"> - <return type="bool"> - </return> - <argument index="0" name="from" type="Transform"> - </argument> - <argument index="1" name="rel_vec" type="Vector3"> - </argument> - <argument index="2" name="infinite_inertia" type="bool" default="true"> - </argument> - <description> - Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur. - </description> - </method> - </methods> - <members> - <member name="axis_lock_motion_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's X axis movement. - </member> - <member name="axis_lock_motion_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's Y axis movement. - </member> - <member name="axis_lock_motion_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's Z axis movement. - </member> - <member name="collision/safe_margin" type="float" setter="set_safe_margin" getter="get_safe_margin" default="0.001"> - Extra margin used for collision recovery in motion functions (see [method move_and_collide], [method move_and_slide], [method move_and_slide_with_snap]). - If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. - A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. - A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of kinematic bodies. - </member> - </members> - <constants> - </constants> -</class> diff --git a/doc/classes/KinematicCollision2D.xml b/doc/classes/KinematicCollision2D.xml index ec6e16e25a..5480d7d55f 100644 --- a/doc/classes/KinematicCollision2D.xml +++ b/doc/classes/KinematicCollision2D.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="KinematicCollision2D" inherits="Reference" version="4.0"> +<class name="KinematicCollision2D" inherits="RefCounted" version="4.0"> <brief_description> - Collision data for [KinematicBody2D] collisions. + Collision data for [method PhysicsBody2D.move_and_collide] collisions. </brief_description> <description> - Contains collision data for [KinematicBody2D] collisions. When a [KinematicBody2D] is moved using [method KinematicBody2D.move_and_collide], it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision2D object is returned. + Contains collision data for [method PhysicsBody2D.move_and_collide] collisions. When a [PhysicsBody2D] is moved using [method PhysicsBody2D.move_and_collide], it stops if it detects a collision with another body. If a collision is detected, a [KinematicCollision2D] object is returned. This object contains information about the collision, including the colliding object, the remaining motion, and the collision position. This information can be used to calculate a collision response. </description> <tutorials> diff --git a/doc/classes/KinematicCollision3D.xml b/doc/classes/KinematicCollision3D.xml index f3248a9ca1..329efab474 100644 --- a/doc/classes/KinematicCollision3D.xml +++ b/doc/classes/KinematicCollision3D.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="KinematicCollision3D" inherits="Reference" version="4.0"> +<class name="KinematicCollision3D" inherits="RefCounted" version="4.0"> <brief_description> - Collision data for [KinematicBody3D] collisions. + Collision data for [method PhysicsBody3D.move_and_collide] collisions. </brief_description> <description> - Contains collision data for [KinematicBody3D] collisions. When a [KinematicBody3D] is moved using [method KinematicBody3D.move_and_collide], it stops if it detects a collision with another body. If a collision is detected, a KinematicCollision3D object is returned. + Contains collision data for [method PhysicsBody3D.move_and_collide] collisions. When a [PhysicsBody3D] is moved using [method PhysicsBody3D.move_and_collide], it stops if it detects a collision with another body. If a collision is detected, a [KinematicCollision3D] object is returned. This object contains information about the collision, including the colliding object, the remaining motion, and the collision position. This information can be used to calculate a collision response. </description> <tutorials> diff --git a/doc/classes/Light3D.xml b/doc/classes/Light3D.xml index 6bae612c9f..42b9ed8ab4 100644 --- a/doc/classes/Light3D.xml +++ b/doc/classes/Light3D.xml @@ -52,7 +52,7 @@ The light's strength multiplier (this is not a physical unit). For [OmniLight3D] and [SpotLight3D], changing this value will only change the light color's intensity, not the light's radius. </member> <member name="light_indirect_energy" type="float" setter="set_param" getter="get_param" default="1.0"> - Secondary multiplier used with indirect light (light bounces). Used with [GIProbe]. + Secondary multiplier used with indirect light (light bounces). Used with [VoxelGI]. </member> <member name="light_negative" type="bool" setter="set_negative" getter="is_negative" default="false"> If [code]true[/code], the light's effect is reversed, darkening areas and casting bright shadows. diff --git a/doc/classes/BakedLightmap.xml b/doc/classes/LightmapGI.xml index 6fd08fc4e4..d7722a83b0 100644 --- a/doc/classes/BakedLightmap.xml +++ b/doc/classes/LightmapGI.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="BakedLightmap" inherits="VisualInstance3D" version="4.0"> +<class name="LightmapGI" inherits="VisualInstance3D" version="4.0"> <brief_description> </brief_description> <description> @@ -21,17 +21,17 @@ </member> <member name="environment_custom_sky" type="Sky" setter="set_environment_custom_sky" getter="get_environment_custom_sky"> </member> - <member name="environment_mode" type="int" setter="set_environment_mode" getter="get_environment_mode" enum="BakedLightmap.EnvironmentMode" default="0"> + <member name="environment_mode" type="int" setter="set_environment_mode" getter="get_environment_mode" enum="LightmapGI.EnvironmentMode" default="0"> </member> - <member name="generate_probes_subdiv" type="int" setter="set_generate_probes" getter="get_generate_probes" enum="BakedLightmap.GenerateProbes" default="0"> + <member name="generate_probes_subdiv" type="int" setter="set_generate_probes" getter="get_generate_probes" enum="LightmapGI.GenerateProbes" default="0"> </member> <member name="interior" type="bool" setter="set_interior" getter="is_interior" default="false"> </member> - <member name="light_data" type="BakedLightmapData" setter="set_light_data" getter="get_light_data"> + <member name="light_data" type="LightmapGIData" setter="set_light_data" getter="get_light_data"> </member> <member name="max_texture_size" type="int" setter="set_max_texture_size" getter="get_max_texture_size" default="16384"> </member> - <member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality" default="1"> + <member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="LightmapGI.BakeQuality" default="1"> </member> <member name="use_denoiser" type="bool" setter="set_use_denoiser" getter="is_using_denoiser" default="true"> </member> diff --git a/doc/classes/BakedLightmapData.xml b/doc/classes/LightmapGIData.xml index 904555c48e..3a37c6dcb7 100644 --- a/doc/classes/BakedLightmapData.xml +++ b/doc/classes/LightmapGIData.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="BakedLightmapData" inherits="Resource" version="4.0"> +<class name="LightmapGIData" inherits="Resource" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/Lightmapper.xml b/doc/classes/Lightmapper.xml index e80194858a..79fae42d68 100644 --- a/doc/classes/Lightmapper.xml +++ b/doc/classes/Lightmapper.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Lightmapper" inherits="Reference" version="4.0"> +<class name="Lightmapper" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/Listener3D.xml b/doc/classes/Listener3D.xml index 998ea757ff..b2fcbe534d 100644 --- a/doc/classes/Listener3D.xml +++ b/doc/classes/Listener3D.xml @@ -18,10 +18,10 @@ </description> </method> <method name="get_listener_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> - Returns the listener's global orthonormalized [Transform]. + Returns the listener's global orthonormalized [Transform3D]. </description> </method> <method name="is_current" qualifiers="const"> diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml index 3c679047a0..da02511dc0 100644 --- a/doc/classes/MeshDataTool.xml +++ b/doc/classes/MeshDataTool.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="MeshDataTool" inherits="Reference" version="4.0"> +<class name="MeshDataTool" inherits="RefCounted" version="4.0"> <brief_description> Helper tool to access and edit [Mesh] data. </brief_description> diff --git a/doc/classes/MeshLibrary.xml b/doc/classes/MeshLibrary.xml index ad8bd6991d..b33bcc89e3 100644 --- a/doc/classes/MeshLibrary.xml +++ b/doc/classes/MeshLibrary.xml @@ -72,7 +72,7 @@ </description> </method> <method name="get_item_navmesh_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="id" type="int"> </argument> @@ -96,7 +96,7 @@ </argument> <description> Returns an item's collision shapes. - The array consists of each [Shape3D] followed by its [Transform]. + The array consists of each [Shape3D] followed by its [Transform3D]. </description> </method> <method name="get_last_unused_item_id" qualifiers="const"> @@ -154,7 +154,7 @@ </return> <argument index="0" name="id" type="int"> </argument> - <argument index="1" name="navmesh" type="Transform"> + <argument index="1" name="navmesh" type="Transform3D"> </argument> <description> Sets the transform to apply to the item's navigation mesh. @@ -180,7 +180,7 @@ </argument> <description> Sets an item's collision shapes. - The array should consist of [Shape3D] objects, each followed by a [Transform] that will be applied to it. For shapes that should not have a transform, use [constant Transform.IDENTITY]. + The array should consist of [Shape3D] objects, each followed by a [Transform3D] that will be applied to it. For shapes that should not have a transform, use [constant Transform3D.IDENTITY]. </description> </method> </methods> diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml index 2adebdb306..02628f4960 100644 --- a/doc/classes/MultiMesh.xml +++ b/doc/classes/MultiMesh.xml @@ -40,12 +40,12 @@ </description> </method> <method name="get_instance_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="instance" type="int"> </argument> <description> - Returns the [Transform] of a specific instance. + Returns the [Transform3D] of a specific instance. </description> </method> <method name="get_instance_transform_2d" qualifiers="const"> @@ -86,10 +86,10 @@ </return> <argument index="0" name="instance" type="int"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> - Sets the [Transform] for a specific instance. + Sets the [Transform3D] for a specific instance. </description> </method> <method name="set_instance_transform_2d"> diff --git a/doc/classes/MultiplayerAPI.xml b/doc/classes/MultiplayerAPI.xml index c168695d61..5de5703d95 100644 --- a/doc/classes/MultiplayerAPI.xml +++ b/doc/classes/MultiplayerAPI.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="MultiplayerAPI" inherits="Reference" version="4.0"> +<class name="MultiplayerAPI" inherits="RefCounted" version="4.0"> <brief_description> High-level multiplayer API. </brief_description> @@ -135,16 +135,16 @@ </signals> <constants> <constant name="RPC_MODE_DISABLED" value="0" enum="RPCMode"> - Used with [method Node.rpc_config] or [method Node.rset_config] to disable a method or property for all RPC calls, making it unavailable. Default for all methods. + Used with [method Node.rpc_config] to disable a method or property for all RPC calls, making it unavailable. Default for all methods. </constant> <constant name="RPC_MODE_REMOTE" value="1" enum="RPCMode"> - Used with [method Node.rpc_config] or [method Node.rset_config] to set a method to be called or a property to be changed only on the remote end, not locally. Analogous to the [code]remote[/code] keyword. Calls and property changes are accepted from all remote peers, no matter if they are node's master or puppets. + Used with [method Node.rpc_config] to set a method to be called or a property to be changed only on the remote end, not locally. Analogous to the [code]remote[/code] keyword. Calls and property changes are accepted from all remote peers, no matter if they are node's master or puppets. </constant> <constant name="RPC_MODE_MASTER" value="2" enum="RPCMode"> - Used with [method Node.rpc_config] or [method Node.rset_config] to set a method to be called or a property to be changed only on the network master for this node. Analogous to the [code]master[/code] keyword. Only accepts calls or property changes from the node's network puppets, see [method Node.set_network_master]. + Used with [method Node.rpc_config] to set a method to be called or a property to be changed only on the network master for this node. Analogous to the [code]master[/code] keyword. Only accepts calls or property changes from the node's network puppets, see [method Node.set_network_master]. </constant> <constant name="RPC_MODE_PUPPET" value="3" enum="RPCMode"> - Used with [method Node.rpc_config] or [method Node.rset_config] to set a method to be called or a property to be changed only on puppets for this node. Analogous to the [code]puppet[/code] keyword. Only accepts calls or property changes from the node's network master, see [method Node.set_network_master]. + Used with [method Node.rpc_config] to set a method to be called or a property to be changed only on puppets for this node. Analogous to the [code]puppet[/code] keyword. Only accepts calls or property changes from the node's network master, see [method Node.set_network_master]. </constant> <constant name="RPC_MODE_REMOTESYNC" value="4" enum="RPCMode"> Behave like [constant RPC_MODE_REMOTE] but also make the call or property change locally. Analogous to the [code]remotesync[/code] keyword. diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml index f5f6308401..dfda614f8e 100644 --- a/doc/classes/Mutex.xml +++ b/doc/classes/Mutex.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Mutex" inherits="Reference" version="4.0"> +<class name="Mutex" inherits="RefCounted" version="4.0"> <brief_description> A synchronization mutex (mutual exclusion). </brief_description> diff --git a/doc/classes/NavigationServer3D.xml b/doc/classes/NavigationServer3D.xml index b098a7fc20..ef9efcb99c 100644 --- a/doc/classes/NavigationServer3D.xml +++ b/doc/classes/NavigationServer3D.xml @@ -413,7 +413,7 @@ </return> <argument index="0" name="region" type="RID"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> Sets the global transformation for the region. diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index 523f3a0c17..1300351e47 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -649,7 +649,7 @@ <argument index="0" name="method" type="StringName"> </argument> <description> - Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns an empty [Variant]. + Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. Returns an empty [Variant]. [b]Note:[/b] You can only safely use RPCs on clients after you received the [code]connected_to_server[/code] signal from the [SceneTree]. You also need to keep track of the connection state, either by the [SceneTree] signals like [code]server_disconnected[/code] or by checking [code]SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED[/code]. </description> </method> @@ -658,33 +658,17 @@ </return> <argument index="0" name="method" type="StringName"> </argument> - <argument index="1" name="mode" type="int" enum="MultiplayerAPI.RPCMode"> + <argument index="1" name="rpc_mode" type="int" enum="MultiplayerAPI.RPCMode"> </argument> - <description> - Changes the RPC mode for the given [code]method[/code] to the given [code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is annotating methods and properties with the corresponding keywords ([code]remote[/code], [code]master[/code], [code]puppet[/code], [code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). By default, methods are not exposed to networking (and RPCs). See also [method rset] and [method rset_config] for properties. - </description> - </method> - <method name="rpc_id" qualifiers="vararg"> - <return type="Variant"> - </return> - <argument index="0" name="peer_id" type="int"> + <argument index="2" name="transfer_mode" type="int" enum="NetworkedMultiplayerPeer.TransferMode" default="2"> </argument> - <argument index="1" name="method" type="StringName"> - </argument> - <description> - Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant]. - </description> - </method> - <method name="rpc_unreliable" qualifiers="vararg"> - <return type="Variant"> - </return> - <argument index="0" name="method" type="StringName"> + <argument index="3" name="channel" type="int" default="0"> </argument> <description> - Sends a [method rpc] using an unreliable protocol. Returns an empty [Variant]. + Changes the RPC mode for the given [code]method[/code] to the given [code]rpc_mode[/code], optionally specifying the [code]transfer_mode[/code] and [code]channel[/code] (on supported peers). See [enum MultiplayerAPI.RPCMode] and [enum NetworkedMultiplayerPeer.TransferMode]. An alternative is annotating methods and properties with the corresponding keywords ([code]remote[/code], [code]master[/code], [code]puppet[/code], [code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). By default, methods are not exposed to networking (and RPCs). </description> </method> - <method name="rpc_unreliable_id" qualifiers="vararg"> + <method name="rpc_id" qualifiers="vararg"> <return type="Variant"> </return> <argument index="0" name="peer_id" type="int"> @@ -692,66 +676,7 @@ <argument index="1" name="method" type="StringName"> </argument> <description> - Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant]. - </description> - </method> - <method name="rset"> - <return type="void"> - </return> - <argument index="0" name="property" type="StringName"> - </argument> - <argument index="1" name="value" type="Variant"> - </argument> - <description> - Remotely changes a property's value on other peers (and locally). Behaviour depends on the RPC configuration for the given property, see [method rset_config]. See also [method rpc] for RPCs for methods, most information applies to this method as well. - </description> - </method> - <method name="rset_config"> - <return type="int"> - </return> - <argument index="0" name="property" type="StringName"> - </argument> - <argument index="1" name="mode" type="int" enum="MultiplayerAPI.RPCMode"> - </argument> - <description> - Changes the RPC mode for the given [code]property[/code] to the given [code]mode[/code]. See [enum MultiplayerAPI.RPCMode]. An alternative is annotating methods and properties with the corresponding keywords ([code]remote[/code], [code]master[/code], [code]puppet[/code], [code]remotesync[/code], [code]mastersync[/code], [code]puppetsync[/code]). By default, properties are not exposed to networking (and RPCs). See also [method rpc] and [method rpc_config] for methods. - </description> - </method> - <method name="rset_id"> - <return type="void"> - </return> - <argument index="0" name="peer_id" type="int"> - </argument> - <argument index="1" name="property" type="StringName"> - </argument> - <argument index="2" name="value" type="Variant"> - </argument> - <description> - Remotely changes the property's value on a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). - </description> - </method> - <method name="rset_unreliable"> - <return type="void"> - </return> - <argument index="0" name="property" type="StringName"> - </argument> - <argument index="1" name="value" type="Variant"> - </argument> - <description> - Remotely changes the property's value on other peers (and locally) using an unreliable protocol. - </description> - </method> - <method name="rset_unreliable_id"> - <return type="void"> - </return> - <argument index="0" name="peer_id" type="int"> - </argument> - <argument index="1" name="property" type="StringName"> - </argument> - <argument index="2" name="value" type="Variant"> - </argument> - <description> - Remotely changes property's value on a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). + Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant]. </description> </method> <method name="set_display_folded"> @@ -969,6 +894,12 @@ <constant name="NOTIFICATION_POST_ENTER_TREE" value="27"> Notification received when the node is ready, just before [constant NOTIFICATION_READY] is received. Unlike the latter, it's sent every time the node enters tree, instead of only once. </constant> + <constant name="NOTIFICATION_EDITOR_PRE_SAVE" value="9001"> + Notification received right before the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + </constant> + <constant name="NOTIFICATION_EDITOR_POST_SAVE" value="9002"> + Notification received right after the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + </constant> <constant name="NOTIFICATION_WM_MOUSE_ENTER" value="1002"> Notification received from the OS when the mouse enters the game window. Implemented on desktop and web platforms. diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml index 988fb72267..8ca945418c 100644 --- a/doc/classes/Node2D.xml +++ b/doc/classes/Node2D.xml @@ -150,6 +150,10 @@ <member name="transform" type="Transform2D" setter="set_transform" getter="get_transform"> Local [Transform2D]. </member> + <member name="y_sort_enabled" type="bool" setter="set_y_sort_enabled" getter="is_y_sort_enabled" default="false"> + If [code]true[/code], child nodes with the lowest Y position are drawn before those with a higher Y position. If [code]false[/code], Y-sorting is disabled. Y-sorting only affects children that inherit from [CanvasItem]. + You can nest nodes with Y-sorting. Child Y-sorted nodes are sorted in the same space as the parent Y-sort. This feature allows you to organize a scene better or divide it into multiple ones without changing your scene tree. + </member> <member name="z_as_relative" type="bool" setter="set_z_as_relative" getter="is_z_relative" default="true"> If [code]true[/code], the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5. </member> diff --git a/doc/classes/Node3D.xml b/doc/classes/Node3D.xml index 5c29c0d48f..a6237708c6 100644 --- a/doc/classes/Node3D.xml +++ b/doc/classes/Node3D.xml @@ -4,7 +4,7 @@ Most basic 3D game object, parent of all 3D-related nodes. </brief_description> <description> - Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Node3D. Use [Node3D] as a parent node to move, scale, rotate and show/hide children in a 3D project. + Most basic 3D game object, with a 3D [Transform3D] and visibility settings. All other 3D game objects inherit from Node3D. Use [Node3D] as a parent node to move, scale, rotate and show/hide children in a 3D project. Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the [Node3D] object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the [Node3D]'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the [Node3D] object itself is referred to as object-local coordinate system. [b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GlobalScope.deg2rad]. </description> @@ -128,7 +128,7 @@ <return type="void"> </return> <description> - Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform]. + Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform3D]. </description> </method> <method name="rotate"> @@ -202,7 +202,7 @@ <return type="void"> </return> <description> - Reset all transformations for this node (sets its [Transform] to the identity matrix). + Reset all transformations for this node (sets its [Transform3D] to the identity matrix). </description> </method> <method name="set_ignore_transform_notification"> @@ -288,8 +288,11 @@ <member name="gizmo" type="Node3DGizmo" setter="set_gizmo" getter="get_gizmo"> The [Node3DGizmo] for this node. Used for example in [EditorNode3DGizmo] as custom visualization and editing handles in Editor. </member> - <member name="global_transform" type="Transform" setter="set_global_transform" getter="get_global_transform"> - World3D space (global) [Transform] of this node. + <member name="global_transform" type="Transform3D" setter="set_global_transform" getter="get_global_transform"> + World3D space (global) [Transform3D] of this node. + </member> + <member name="position" type="Vector3" setter="set_position" getter="get_position" default="Vector3( 0, 0, 0 )"> + Local position or translation of this node relative to the parent. This is equivalent to [code]transform.origin[/code]. </member> <member name="rotation" type="Vector3" setter="set_rotation" getter="get_rotation"> Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle). @@ -304,11 +307,8 @@ <member name="top_level" type="bool" setter="set_as_top_level" getter="is_set_as_top_level" default="false"> If [code]true[/code], the node will not inherit its transformations from its parent. Node transformations are only in global space. </member> - <member name="transform" type="Transform" setter="set_transform" getter="get_transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> - Local space [Transform] of this node, with respect to the parent node. - </member> - <member name="translation" type="Vector3" setter="set_translation" getter="get_translation" default="Vector3( 0, 0, 0 )"> - Local translation of this node. + <member name="transform" type="Transform3D" setter="set_transform" getter="get_transform" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + Local space [Transform3D] of this node, with respect to the parent node. </member> <member name="visible" type="bool" setter="set_visible" getter="is_visible" default="true"> If [code]true[/code], this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, [method is_visible_in_tree] must return [code]true[/code]). diff --git a/doc/classes/Node3DGizmo.xml b/doc/classes/Node3DGizmo.xml index 55080614fc..c561047332 100644 --- a/doc/classes/Node3DGizmo.xml +++ b/doc/classes/Node3DGizmo.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Node3DGizmo" inherits="Reference" version="4.0"> +<class name="Node3DGizmo" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index b8b437f78f..bfcd5b1beb 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -176,34 +176,6 @@ [b]Note:[/b] This method is implemented on Linux, macOS and Windows. </description> </method> - <method name="get_date" qualifiers="const"> - <return type="Dictionary"> - </return> - <argument index="0" name="utc" type="bool" default="false"> - </argument> - <description> - Returns current date as a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] (Daylight Savings Time). - </description> - </method> - <method name="get_datetime" qualifiers="const"> - <return type="Dictionary"> - </return> - <argument index="0" name="utc" type="bool" default="false"> - </argument> - <description> - Returns current datetime as a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] (Daylight Savings Time), [code]hour[/code], [code]minute[/code], [code]second[/code]. - </description> - </method> - <method name="get_datetime_from_unix_time" qualifiers="const"> - <return type="Dictionary"> - </return> - <argument index="0" name="unix_time_val" type="int"> - </argument> - <description> - Gets a dictionary of time values corresponding to the given UNIX epoch time (in seconds). - The returned Dictionary's values will be the same as [method get_datetime], with the exception of Daylight Savings Time as it cannot be determined from the epoch. - </description> - </method> <method name="get_environment" qualifiers="const"> <return type="String"> </return> @@ -221,6 +193,13 @@ Returns the path to the current engine executable. </description> </method> + <method name="get_external_data_dir" qualifiers="const"> + <return type="String"> + </return> + <description> + On Android, returns the absolute directory path where user data can be written to external storage if available. On all other platforms, this will return the same location as [method get_user_data_dir]. + </description> + </method> <method name="get_granted_permissions" qualifiers="const"> <return type="PackedStringArray"> </return> @@ -313,36 +292,6 @@ [b]Note:[/b] Thread IDs are not deterministic and may be reused across application restarts. </description> </method> - <method name="get_ticks_msec" qualifiers="const"> - <return type="int"> - </return> - <description> - Returns the amount of time passed in milliseconds since the engine started. - </description> - </method> - <method name="get_ticks_usec" qualifiers="const"> - <return type="int"> - </return> - <description> - Returns the amount of time passed in microseconds since the engine started. - </description> - </method> - <method name="get_time" qualifiers="const"> - <return type="Dictionary"> - </return> - <argument index="0" name="utc" type="bool" default="false"> - </argument> - <description> - Returns current time as a dictionary of keys: hour, minute, second. - </description> - </method> - <method name="get_time_zone_info" qualifiers="const"> - <return type="Dictionary"> - </return> - <description> - Returns the current time zone as a dictionary with the keys: bias and name. - </description> - </method> <method name="get_unique_id" qualifiers="const"> <return type="String"> </return> @@ -352,26 +301,6 @@ [b]Note:[/b] Returns an empty string on HTML5 and UWP, as this method isn't implemented on those platforms yet. </description> </method> - <method name="get_unix_time" qualifiers="const"> - <return type="float"> - </return> - <description> - Returns the current UNIX epoch timestamp in seconds. - [b]Important:[/b] This is the system clock that the user can manually set. [b]Never use[/b] this method for precise time calculation since its results are also subject to automatic adjustments by the operating system. [b]Always use[/b] [method get_ticks_usec] or [method get_ticks_msec] for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). - </description> - </method> - <method name="get_unix_time_from_datetime" qualifiers="const"> - <return type="int"> - </return> - <argument index="0" name="datetime" type="Dictionary"> - </argument> - <description> - Gets an epoch time value from a dictionary of time values. - [code]datetime[/code] must be populated with the following keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]hour[/code], [code]minute[/code], [code]second[/code]. - If the dictionary is empty [code]0[/code] is returned. If some keys are omitted, they default to the equivalent values for the UNIX epoch timestamp 0 (1970-01-01 at 00:00:00 UTC). - You can pass the output from [method get_datetime_from_unix_time] directly into this function. Daylight Savings Time ([code]dst[/code]), if present, is ignored. - </description> - </method> <method name="get_user_data_dir" qualifiers="const"> <return type="String"> </return> diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml index 7da9c1ac38..f5dcd6bcdc 100644 --- a/doc/classes/Object.xml +++ b/doc/classes/Object.xml @@ -7,7 +7,7 @@ Every class which is not a built-in type inherits from this class. You can construct Objects from scripting languages, using [code]Object.new()[/code] in GDScript, [code]new Object[/code] in C#, or the "Construct Object" node in VisualScript. Objects do not manage memory. If a class inherits from Object, you will have to delete instances of it manually. To do so, call the [method free] method from your script or delete the instance from C++. - Some classes that extend Object add memory management. This is the case of [Reference], which counts references and deletes itself automatically when no longer referenced. [Node], another fundamental type, deletes all its children when freed from memory. + Some classes that extend Object add memory management. This is the case of [RefCounted], which counts references and deletes itself automatically when no longer referenced. [Node], another fundamental type, deletes all its children when freed from memory. Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in [method _get_property_list] and handled in [method _get] and [method _set]. However, scripting languages and C++ have simpler means to export them. Property membership can be tested directly in GDScript using [code]in[/code]: [codeblocks] @@ -26,7 +26,7 @@ [/codeblocks] The [code]in[/code] operator will evaluate to [code]true[/code] as long as the key exists, even if the value is [code]null[/code]. Objects also receive notifications. Notifications are a simple way to notify the object about different events, so they can all be handled together. See [method _notification]. - [b]Note:[/b] Unlike references to a [Reference], references to an Object stored in a variable can become invalid without warning. Therefore, it's recommended to use [Reference] for data classes instead of [Object]. + [b]Note:[/b] Unlike references to a [RefCounted], references to an Object stored in a variable can become invalid without warning. Therefore, it's recommended to use [RefCounted] for data classes instead of [Object]. </description> <tutorials> <link title="When and how to avoid using nodes for everything">https://docs.godotengine.org/en/latest/getting_started/workflow/best_practices/node_alternatives.html</link> diff --git a/doc/classes/PCKPacker.xml b/doc/classes/PCKPacker.xml index e3c78e08f1..40e8683c93 100644 --- a/doc/classes/PCKPacker.xml +++ b/doc/classes/PCKPacker.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PCKPacker" inherits="Reference" version="4.0"> +<class name="PCKPacker" inherits="RefCounted" version="4.0"> <brief_description> Creates packages that can be loaded into a running project. </brief_description> diff --git a/doc/classes/PackedDataContainerRef.xml b/doc/classes/PackedDataContainerRef.xml index f0f59675de..bfd5a6f1c1 100644 --- a/doc/classes/PackedDataContainerRef.xml +++ b/doc/classes/PackedDataContainerRef.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PackedDataContainerRef" inherits="Reference" version="4.0"> +<class name="PackedDataContainerRef" inherits="RefCounted" version="4.0"> <brief_description> - Reference version of [PackedDataContainer]. + Reference-counted version of [PackedDataContainer]. </brief_description> <description> </description> diff --git a/doc/classes/PackedVector3Array.xml b/doc/classes/PackedVector3Array.xml index 85d41d7519..00ded39082 100644 --- a/doc/classes/PackedVector3Array.xml +++ b/doc/classes/PackedVector3Array.xml @@ -106,7 +106,7 @@ <method name="operator *" qualifiers="operator"> <return type="PackedVector3Array"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml index e3e2f63e14..0a758c2cd6 100644 --- a/doc/classes/PacketPeer.xml +++ b/doc/classes/PacketPeer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PacketPeer" inherits="Reference" version="4.0"> +<class name="PacketPeer" inherits="RefCounted" version="4.0"> <brief_description> Abstraction and base class for packet-based protocols. </brief_description> diff --git a/doc/classes/PhysicalBone2D.xml b/doc/classes/PhysicalBone2D.xml new file mode 100644 index 0000000000..cea75bad52 --- /dev/null +++ b/doc/classes/PhysicalBone2D.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="PhysicalBone2D" inherits="RigidBody2D" version="4.0"> + <brief_description> + A 2D node that can be used for physically aware bones in 2D. + </brief_description> + <description> + The [code]PhysicalBone2D[/code] node is a [RigidBody2D]-based node that can be used to make [Bone2D] nodes in a [Skeleton2D] react to physics. This node is very similar to the [PhysicalBone3D] node, just for 2D instead of 3D. + [b]Note:[/b] To have the Bone2D nodes visually follow the [code]PhysicalBone2D[/code] node, use a [SkeletonModification2DPhysicalBones] modification on the [Skeleton2D] node with the [Bone2D] nodes. + [b]Note:[/b] The PhysicalBone2D node does not automatically create a [Joint2D] node to keep [code]PhysicalBone2D[/code] nodes together. You will need to create these manually. For most cases, you want to use a [PinJoint2D] node. The [code]PhysicalBone2D[/code] node can automatically configure the [Joint2D] node once it's been created as a child node. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_joint" qualifiers="const"> + <return type="Joint2D"> + </return> + <description> + Returns the first [Joint2D] child node, if one exists. This is mainly a helper function to make it easier to get the [Joint2D] that the [code]PhysicalBone2D[/code] is autoconfiguring. + </description> + </method> + <method name="is_simulating_physics" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns a boolean that indicates whether the [code]PhysicalBone2D[/code] node is running and simulating using the Godot 2D physics engine. When [code]true[/code], the PhysicalBone2D node is using physics. + </description> + </method> + </methods> + <members> + <member name="auto_configure_joint" type="bool" setter="set_auto_configure_joint" getter="get_auto_configure_joint" default="true"> + If [code]true[/code], the [code]PhysicalBone2D[/code] node will automatically configure the first [Joint2D] child node. The automatic configuration is limited to setting up the node properties and positioning the [Joint2D]. + </member> + <member name="bone2d_index" type="int" setter="set_bone2d_index" getter="get_bone2d_index" default="-1"> + The index of the [Bone2D] node that this [code]PhysicalBone2D[/code] node is supposed to be simulating. + </member> + <member name="bone2d_nodepath" type="NodePath" setter="set_bone2d_nodepath" getter="get_bone2d_nodepath" default="NodePath("")"> + The [NodePath] to the [Bone2D] node that this [code]PhysicalBone2D[/code] node is supposed to be simulating. + </member> + <member name="follow_bone_when_simulating" type="bool" setter="set_follow_bone_when_simulating" getter="get_follow_bone_when_simulating" default="false"> + If [code]true[/code], the [code]PhysicalBone2D[/code] will keep the transform of the bone it is bound to when simulating physics. + </member> + <member name="simulate_physics" type="bool" setter="set_simulate_physics" getter="get_simulate_physics" default="false"> + If [code]true[/code], the [code]PhysicalBone2D[/code] will start simulating using physics. If [code]false[/code], the [code]PhysicalBone2D[/code] will follow the transform of the [Bone2D] node. + [b]Note:[/b] To have the Bone2D nodes visually follow the [code]PhysicalBone2D[/code] node, use a [SkeletonModification2DPhysicalBones] modification on the [Skeleton2D] node with the [Bone2D] nodes. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/PhysicalBone3D.xml b/doc/classes/PhysicalBone3D.xml index 38d9f722b1..5d15590a3f 100644 --- a/doc/classes/PhysicalBone3D.xml +++ b/doc/classes/PhysicalBone3D.xml @@ -25,14 +25,6 @@ <description> </description> </method> - <method name="get_axis_lock" qualifiers="const"> - <return type="bool"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <description> - </description> - </method> <method name="get_bone_id" qualifiers="const"> <return type="int"> </return> @@ -51,40 +43,12 @@ <description> </description> </method> - <method name="set_axis_lock"> - <return type="void"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <argument index="1" name="lock" type="bool"> - </argument> - <description> - </description> - </method> </methods> <members> <member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0"> Damps the body's rotation if greater than [code]0[/code]. </member> - <member name="axis_lock_angular_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the X axis. - </member> - <member name="axis_lock_angular_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the Y axis. - </member> - <member name="axis_lock_angular_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the Z axis. - </member> - <member name="axis_lock_linear_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the X axis. - </member> - <member name="axis_lock_linear_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the Y axis. - </member> - <member name="axis_lock_linear_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the Z axis. - </member> - <member name="body_offset" type="Transform" setter="set_body_offset" getter="get_body_offset" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <member name="body_offset" type="Transform3D" setter="set_body_offset" getter="get_body_offset" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> Sets the body's transform. </member> <member name="bounce" type="float" setter="set_bounce" getter="get_bounce" default="0.0"> @@ -99,7 +63,7 @@ <member name="gravity_scale" type="float" setter="set_gravity_scale" getter="get_gravity_scale" default="1.0"> This is multiplied by the global 3D gravity setting found in [b]Project > Project Settings > Physics > 3d[/b] to produce the body's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object. </member> - <member name="joint_offset" type="Transform" setter="set_joint_offset" getter="get_joint_offset" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <member name="joint_offset" type="Transform3D" setter="set_joint_offset" getter="get_joint_offset" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> Sets the joint's transform. </member> <member name="joint_rotation" type="Vector3" setter="set_joint_rotation" getter="get_joint_rotation"> diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml index e43d3bb762..654b0fb668 100644 --- a/doc/classes/PhysicsBody2D.xml +++ b/doc/classes/PhysicsBody2D.xml @@ -26,6 +26,25 @@ Returns an array of nodes that were added as collision exceptions for this body. </description> </method> + <method name="move_and_collide"> + <return type="KinematicCollision2D"> + </return> + <argument index="0" name="rel_vec" type="Vector2"> + </argument> + <argument index="1" name="infinite_inertia" type="bool" default="true"> + </argument> + <argument index="2" name="exclude_raycast_shapes" type="bool" default="true"> + </argument> + <argument index="3" name="test_only" type="bool" default="false"> + </argument> + <argument index="4" name="safe_margin" type="float" default="0.08"> + </argument> + <description> + Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision2D], which contains information about the collision. + If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given. + [code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody2D.collision/safe_margin] for more details). + </description> + </method> <method name="remove_collision_exception_with"> <return type="void"> </return> @@ -35,6 +54,27 @@ Removes a body from the list of bodies that this body can't collide with. </description> </method> + <method name="test_move"> + <return type="bool"> + </return> + <argument index="0" name="from" type="Transform2D"> + </argument> + <argument index="1" name="rel_vec" type="Vector2"> + </argument> + <argument index="2" name="infinite_inertia" type="bool" default="true"> + </argument> + <argument index="3" name="exclude_raycast_shapes" type="bool" default="true"> + </argument> + <argument index="4" name="collision" type="KinematicCollision2D" default="null"> + </argument> + <argument index="5" name="safe_margin" type="float" default="0.08"> + </argument> + <description> + Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur. + [code]collision[/code] is an optional object of type [KinematicCollision2D], which contains additional information about the collision (should there be one). + [code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody2D.collision/safe_margin] for more details). + </description> + </method> </methods> <members> <member name="input_pickable" type="bool" setter="set_pickable" getter="is_pickable" override="true" default="false" /> diff --git a/doc/classes/PhysicsBody3D.xml b/doc/classes/PhysicsBody3D.xml index b320d37d23..1ec38000be 100644 --- a/doc/classes/PhysicsBody3D.xml +++ b/doc/classes/PhysicsBody3D.xml @@ -19,6 +19,15 @@ Adds a body to the list of bodies that this body can't collide with. </description> </method> + <method name="get_axis_lock" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> + </argument> + <description> + Returns [code]true[/code] if the specified linear or rotational [code]axis[/code] is locked. + </description> + </method> <method name="get_collision_exceptions"> <return type="PhysicsBody3D[]"> </return> @@ -26,6 +35,25 @@ Returns an array of nodes that were added as collision exceptions for this body. </description> </method> + <method name="move_and_collide"> + <return type="KinematicCollision3D"> + </return> + <argument index="0" name="rel_vec" type="Vector3"> + </argument> + <argument index="1" name="infinite_inertia" type="bool" default="true"> + </argument> + <argument index="2" name="exclude_raycast_shapes" type="bool" default="true"> + </argument> + <argument index="3" name="test_only" type="bool" default="false"> + </argument> + <argument index="4" name="safe_margin" type="float" default="0.001"> + </argument> + <description> + Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision. + If [code]test_only[/code] is [code]true[/code], the body does not move but the would-be collision information is given. + [code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody3D.collision/safe_margin] for more details). + </description> + </method> <method name="remove_collision_exception_with"> <return type="void"> </return> @@ -35,7 +63,59 @@ Removes a body from the list of bodies that this body can't collide with. </description> </method> + <method name="set_axis_lock"> + <return type="void"> + </return> + <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> + </argument> + <argument index="1" name="lock" type="bool"> + </argument> + <description> + Locks or unlocks the specified linear or rotational [code]axis[/code] depending on the value of [code]lock[/code]. + </description> + </method> + <method name="test_move"> + <return type="bool"> + </return> + <argument index="0" name="from" type="Transform3D"> + </argument> + <argument index="1" name="rel_vec" type="Vector3"> + </argument> + <argument index="2" name="infinite_inertia" type="bool" default="true"> + </argument> + <argument index="3" name="exclude_raycast_shapes" type="bool" default="true"> + </argument> + <argument index="4" name="collision" type="KinematicCollision3D" default="null"> + </argument> + <argument index="5" name="safe_margin" type="float" default="0.001"> + </argument> + <description> + Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [code]rel_vec[/code]. Returns [code]true[/code] if a collision would occur. + [code]collision[/code] is an optional object of type [KinematicCollision3D], which contains additional information about the collision (should there be one). + [code]safe_margin[/code] is the extra margin used for collision recovery (see [member CharacterBody3D.collision/safe_margin] for more details). + </description> + </method> </methods> + <members> + <member name="axis_lock_angular_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's rotation in the X axis. + </member> + <member name="axis_lock_angular_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's rotation in the Y axis. + </member> + <member name="axis_lock_angular_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's rotation in the Z axis. + </member> + <member name="axis_lock_linear_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's linear movement in the X axis. + </member> + <member name="axis_lock_linear_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's linear movement in the Y axis. + </member> + <member name="axis_lock_linear_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> + Lock the body's linear movement in the Z axis. + </member> + </members> <constants> </constants> </class> diff --git a/doc/classes/PhysicsDirectBodyState2D.xml b/doc/classes/PhysicsDirectBodyState2D.xml index dfc0ab909a..66ff16a3ce 100644 --- a/doc/classes/PhysicsDirectBodyState2D.xml +++ b/doc/classes/PhysicsDirectBodyState2D.xml @@ -4,7 +4,7 @@ Direct access object to a physics body in the [PhysicsServer2D]. </brief_description> <description> - Provides direct access to a physics body in the [PhysicsServer2D], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody2D._integrate_forces]. + Provides direct access to a physics body in the [PhysicsServer2D], allowing safe changes to physics properties. This object is passed via the direct state callback of dynamic bodies, and is intended for changing the direct state of that body. See [method RigidBody2D._integrate_forces]. </description> <tutorials> <link title="Ray-casting">https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link> diff --git a/doc/classes/PhysicsDirectBodyState3D.xml b/doc/classes/PhysicsDirectBodyState3D.xml index eea681e696..7cb3a56338 100644 --- a/doc/classes/PhysicsDirectBodyState3D.xml +++ b/doc/classes/PhysicsDirectBodyState3D.xml @@ -4,7 +4,7 @@ Direct access object to a physics body in the [PhysicsServer3D]. </brief_description> <description> - Provides direct access to a physics body in the [PhysicsServer3D], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody3D._integrate_forces]. + Provides direct access to a physics body in the [PhysicsServer3D], allowing safe changes to physics properties. This object is passed via the direct state callback of dynamic bodies, and is intended for changing the direct state of that body. See [method RigidBody3D._integrate_forces]. </description> <tutorials> </tutorials> @@ -214,7 +214,7 @@ <member name="total_linear_damp" type="float" setter="" getter="get_total_linear_damp"> The rate at which the body stops moving, if there are not any other forces moving it. </member> - <member name="transform" type="Transform" setter="set_transform" getter="get_transform"> + <member name="transform" type="Transform3D" setter="set_transform" getter="get_transform"> The body's transformation matrix. </member> </members> diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml index cfa4215fd4..4c2abcb087 100644 --- a/doc/classes/PhysicsServer2D.xml +++ b/doc/classes/PhysicsServer2D.xml @@ -1207,16 +1207,16 @@ This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. </constant> <constant name="BODY_MODE_STATIC" value="0" enum="BodyMode"> - Constant for static bodies. + Constant for static bodies. In this mode, a body can be only moved by user code. </constant> <constant name="BODY_MODE_KINEMATIC" value="1" enum="BodyMode"> - Constant for kinematic bodies. + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. </constant> - <constant name="BODY_MODE_RIGID" value="2" enum="BodyMode"> - Constant for rigid bodies. + <constant name="BODY_MODE_DYNAMIC" value="2" enum="BodyMode"> + Constant for dynamic bodies. In this mode, a body can be pushed by other bodies and has forces applied. </constant> - <constant name="BODY_MODE_CHARACTER" value="3" enum="BodyMode"> - Constant for rigid bodies in character mode. In this mode, a body can not rotate, and only its linear velocity is affected by physics. + <constant name="BODY_MODE_DYNAMIC_LOCKED" value="3" enum="BodyMode"> + Constant for locked dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces. </constant> <constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter"> Constant to set/get a body's bounce factor. diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml index 46de9e5282..2972d5155c 100644 --- a/doc/classes/PhysicsServer3D.xml +++ b/doc/classes/PhysicsServer3D.xml @@ -16,7 +16,7 @@ </argument> <argument index="1" name="shape" type="RID"> </argument> - <argument index="2" name="transform" type="Transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <argument index="2" name="transform" type="Transform3D" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> </argument> <argument index="3" name="disabled" type="bool" default="false"> </argument> @@ -92,7 +92,7 @@ </description> </method> <method name="area_get_shape_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="area" type="RID"> </argument> @@ -121,7 +121,7 @@ </description> </method> <method name="area_get_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="area" type="RID"> </argument> @@ -258,7 +258,7 @@ </argument> <argument index="1" name="shape_idx" type="int"> </argument> - <argument index="2" name="transform" type="Transform"> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> Sets the transform matrix for an area shape. @@ -291,7 +291,7 @@ </return> <argument index="0" name="area" type="RID"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> Sets the transform matrix for an area. @@ -337,7 +337,7 @@ </argument> <argument index="1" name="shape" type="RID"> </argument> - <argument index="2" name="transform" type="Transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <argument index="2" name="transform" type="Transform3D" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> </argument> <argument index="3" name="disabled" type="bool" default="false"> </argument> @@ -443,14 +443,6 @@ Returns the [PhysicsDirectBodyState3D] of the body. </description> </method> - <method name="body_get_kinematic_safe_margin" qualifiers="const"> - <return type="float"> - </return> - <argument index="0" name="body" type="RID"> - </argument> - <description> - </description> - </method> <method name="body_get_max_contacts_reported" qualifiers="const"> <return type="int"> </return> @@ -510,7 +502,7 @@ </description> </method> <method name="body_get_shape_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="body" type="RID"> </argument> @@ -661,16 +653,6 @@ Sets the function used to calculate physics for an object, if that object allows it (see [method body_set_omit_force_integration]). </description> </method> - <method name="body_set_kinematic_safe_margin"> - <return type="void"> - </return> - <argument index="0" name="body" type="RID"> - </argument> - <argument index="1" name="margin" type="float"> - </argument> - <description> - </description> - </method> <method name="body_set_max_contacts_reported"> <return type="void"> </return> @@ -760,7 +742,7 @@ </argument> <argument index="1" name="shape_idx" type="int"> </argument> - <argument index="2" name="transform" type="Transform"> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> Sets the transform matrix for a body shape. @@ -1017,11 +999,11 @@ </argument> <argument index="1" name="body_A" type="RID"> </argument> - <argument index="2" name="local_ref_A" type="Transform"> + <argument index="2" name="local_ref_A" type="Transform3D"> </argument> <argument index="3" name="body_B" type="RID"> </argument> - <argument index="4" name="local_ref_B" type="Transform"> + <argument index="4" name="local_ref_B" type="Transform3D"> </argument> <description> </description> @@ -1033,11 +1015,11 @@ </argument> <argument index="1" name="body_A" type="RID"> </argument> - <argument index="2" name="local_ref_A" type="Transform"> + <argument index="2" name="local_ref_A" type="Transform3D"> </argument> <argument index="3" name="body_B" type="RID"> </argument> - <argument index="4" name="local_ref_B" type="Transform"> + <argument index="4" name="local_ref_B" type="Transform3D"> </argument> <description> </description> @@ -1049,11 +1031,11 @@ </argument> <argument index="1" name="body_A" type="RID"> </argument> - <argument index="2" name="hinge_A" type="Transform"> + <argument index="2" name="hinge_A" type="Transform3D"> </argument> <argument index="3" name="body_B" type="RID"> </argument> - <argument index="4" name="hinge_B" type="Transform"> + <argument index="4" name="hinge_B" type="Transform3D"> </argument> <description> </description> @@ -1081,11 +1063,11 @@ </argument> <argument index="1" name="body_A" type="RID"> </argument> - <argument index="2" name="local_ref_A" type="Transform"> + <argument index="2" name="local_ref_A" type="Transform3D"> </argument> <argument index="3" name="body_B" type="RID"> </argument> - <argument index="4" name="local_ref_B" type="Transform"> + <argument index="4" name="local_ref_B" type="Transform3D"> </argument> <description> </description> @@ -1595,16 +1577,16 @@ This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. </constant> <constant name="BODY_MODE_STATIC" value="0" enum="BodyMode"> - Constant for static bodies. + Constant for static bodies. In this mode, a body can be only moved by user code. </constant> <constant name="BODY_MODE_KINEMATIC" value="1" enum="BodyMode"> - Constant for kinematic bodies. + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. </constant> - <constant name="BODY_MODE_RIGID" value="2" enum="BodyMode"> - Constant for rigid bodies. + <constant name="BODY_MODE_DYNAMIC" value="2" enum="BodyMode"> + Constant for dynamic bodies. In this mode, a body can be pushed by other bodies and has forces applied. </constant> - <constant name="BODY_MODE_CHARACTER" value="3" enum="BodyMode"> - Constant for rigid bodies in character mode. In this mode, a body can not rotate, and only its linear velocity is affected by physics. + <constant name="BODY_MODE_DYNAMIC_LOCKED" value="3" enum="BodyMode"> + Constant for locked dynamic bodies. In this mode, a body is dynamic but can not rotate, and only its linear velocity is affected by external forces. </constant> <constant name="BODY_PARAM_BOUNCE" value="0" enum="BodyParameter"> Constant to set/get a body's bounce factor. diff --git a/doc/classes/PhysicsShapeQueryParameters2D.xml b/doc/classes/PhysicsShapeQueryParameters2D.xml index 4d7fc61517..92bd9b136a 100644 --- a/doc/classes/PhysicsShapeQueryParameters2D.xml +++ b/doc/classes/PhysicsShapeQueryParameters2D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PhysicsShapeQueryParameters2D" inherits="Reference" version="4.0"> +<class name="PhysicsShapeQueryParameters2D" inherits="RefCounted" version="4.0"> <brief_description> Parameters to be sent to a 2D shape physics query. </brief_description> diff --git a/doc/classes/PhysicsShapeQueryParameters3D.xml b/doc/classes/PhysicsShapeQueryParameters3D.xml index 4b43ea66fc..087c52a650 100644 --- a/doc/classes/PhysicsShapeQueryParameters3D.xml +++ b/doc/classes/PhysicsShapeQueryParameters3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PhysicsShapeQueryParameters3D" inherits="Reference" version="4.0"> +<class name="PhysicsShapeQueryParameters3D" inherits="RefCounted" version="4.0"> <brief_description> Parameters to be sent to a 3D shape physics query. </brief_description> @@ -60,7 +60,7 @@ [/csharp] [/codeblocks] </member> - <member name="transform" type="Transform" setter="set_transform" getter="get_transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <member name="transform" type="Transform3D" setter="set_transform" getter="get_transform" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> The queried shape's transform matrix. </member> </members> diff --git a/doc/classes/PhysicsShapeQueryResult2D.xml b/doc/classes/PhysicsShapeQueryResult2D.xml index 227683cc33..07b7bc90e2 100644 --- a/doc/classes/PhysicsShapeQueryResult2D.xml +++ b/doc/classes/PhysicsShapeQueryResult2D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PhysicsShapeQueryResult2D" inherits="Reference" version="4.0"> +<class name="PhysicsShapeQueryResult2D" inherits="RefCounted" version="4.0"> <brief_description> Result of a 2D shape query in [PhysicsServer2D]. </brief_description> diff --git a/doc/classes/PhysicsShapeQueryResult3D.xml b/doc/classes/PhysicsShapeQueryResult3D.xml index 4555c4e242..d0ca227a68 100644 --- a/doc/classes/PhysicsShapeQueryResult3D.xml +++ b/doc/classes/PhysicsShapeQueryResult3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PhysicsShapeQueryResult3D" inherits="Reference" version="4.0"> +<class name="PhysicsShapeQueryResult3D" inherits="RefCounted" version="4.0"> <brief_description> Result of a 3D shape query in [PhysicsServer3D]. </brief_description> diff --git a/doc/classes/PhysicsTestMotionResult2D.xml b/doc/classes/PhysicsTestMotionResult2D.xml index 301cff2885..2744aa17a1 100644 --- a/doc/classes/PhysicsTestMotionResult2D.xml +++ b/doc/classes/PhysicsTestMotionResult2D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="PhysicsTestMotionResult2D" inherits="Reference" version="4.0"> +<class name="PhysicsTestMotionResult2D" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/PinJoint2D.xml b/doc/classes/PinJoint2D.xml index 42155a7f25..ed45149cdf 100644 --- a/doc/classes/PinJoint2D.xml +++ b/doc/classes/PinJoint2D.xml @@ -4,7 +4,7 @@ Pin joint for 2D shapes. </brief_description> <description> - Pin joint for 2D rigid bodies. It pins two bodies (rigid or static) together. + Pin joint for 2D rigid bodies. It pins two bodies (dynamic or static) together. </description> <tutorials> </tutorials> diff --git a/doc/classes/PinJoint3D.xml b/doc/classes/PinJoint3D.xml index 267ea38873..37a85e497f 100644 --- a/doc/classes/PinJoint3D.xml +++ b/doc/classes/PinJoint3D.xml @@ -4,7 +4,7 @@ Pin joint for 3D PhysicsBodies. </brief_description> <description> - Pin joint for 3D rigid bodies. It pins 2 bodies (rigid or static) together. See also [Generic6DOFJoint3D]. + Pin joint for 3D rigid bodies. It pins 2 bodies (dynamic or static) together. See also [Generic6DOFJoint3D]. </description> <tutorials> </tutorials> diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml index 8b73bcb9c1..3892633654 100644 --- a/doc/classes/PrimitiveMesh.xml +++ b/doc/classes/PrimitiveMesh.xml @@ -31,7 +31,7 @@ </methods> <members> <member name="custom_aabb" type="AABB" setter="set_custom_aabb" getter="get_custom_aabb" default="AABB( 0, 0, 0, 0, 0, 0 )"> - Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. + Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. </member> <member name="flip_faces" type="bool" setter="set_flip_faces" getter="get_flip_faces" default="false"> If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 73899daaea..360ccc597e 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -551,7 +551,7 @@ prime-run %command% [/codeblock] </member> - <member name="editor/script/search_in_file_extensions" type="PackedStringArray" setter="" getter="" default="PackedStringArray( "gd", "shader" )"> + <member name="editor/script/search_in_file_extensions" type="PackedStringArray" setter="" getter="" default="PackedStringArray( "gd", "gdshader" )"> Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. [code]tscn[/code] if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files. </member> <member name="editor/script/templates_search_path" type="String" setter="" getter="" default=""res://script_templates""> @@ -703,6 +703,8 @@ </member> <member name="input/ui_text_completion_query" type="Dictionary" setter="" getter=""> </member> + <member name="input/ui_text_completion_replace" type="Dictionary" setter="" getter=""> + </member> <member name="input/ui_text_dedent" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_delete" type="Dictionary" setter="" getter=""> @@ -1137,8 +1139,6 @@ <member name="layer_names/3d_render/layer_9" type="String" setter="" getter="" default=""""> Optional name for the 3D render layer 9. If left empty, the layer will display as "Layer 9". </member> - <member name="memory/limits/command_queue/multithreading_queue_size_kb" type="int" setter="" getter="" default="256"> - </member> <member name="memory/limits/message_queue/max_size_kb" type="int" setter="" getter="" default="4096"> Godot uses a message queue to defer some function calls. If you run out of space on it (you will see an error), you can increase the size here. </member> @@ -1419,18 +1419,16 @@ </member> <member name="rendering/global_illumination/gi/use_half_resolution" type="bool" setter="" getter="" default="false"> </member> - <member name="rendering/global_illumination/gi_probes/anisotropic" type="bool" setter="" getter="" default="false"> - If [code]true[/code], take additional samples when rendering objects affected by a [GIProbe] to reduce artifacts from only sampling in one direction. - </member> - <member name="rendering/global_illumination/gi_probes/quality" type="int" setter="" getter="" default="1"> - Sets the number of cone samples taken when rendering objects affected by [GIProbe]s. - </member> <member name="rendering/global_illumination/sdfgi/frames_to_converge" type="int" setter="" getter="" default="4"> </member> <member name="rendering/global_illumination/sdfgi/frames_to_update_lights" type="int" setter="" getter="" default="2"> </member> <member name="rendering/global_illumination/sdfgi/probe_ray_count" type="int" setter="" getter="" default="1"> </member> + <member name="rendering/global_illumination/voxel_gi/anisotropic" type="bool" setter="" getter="" default="false"> + </member> + <member name="rendering/global_illumination/voxel_gi/quality" type="int" setter="" getter="" default="1"> + </member> <member name="rendering/lightmapping/bake_performance/max_rays_per_pass" type="int" setter="" getter="" default="32"> </member> <member name="rendering/lightmapping/bake_performance/max_rays_per_probe_pass" type="int" setter="" getter="" default="64"> @@ -1576,20 +1574,31 @@ <member name="rendering/textures/default_filters/use_nearest_mipmap_filter" type="bool" setter="" getter="" default="false"> If [code]true[/code], uses nearest-neighbor mipmap filtering when using mipmaps (also called "bilinear filtering"), which will result in visible seams appearing between mipmap stages. This may increase performance in mobile as less memory bandwidth is used. If [code]false[/code], linear mipmap filtering (also called "trilinear filtering") is used. </member> + <member name="rendering/textures/lossless_compression/force_png" type="bool" setter="" getter="" default="false"> + If [code]true[/code], the texture importer will import lossless textures using the PNG format. Otherwise, it will default to using WebP. + </member> + <member name="rendering/textures/lossless_compression/webp_compression_level" type="int" setter="" getter="" default="2"> + The default compression level for lossless WebP. Higher levels result in smaller files at the cost of compression speed. Decompression speed is mostly unaffected by the compression level. Supported values are 0 to 9. Note that compression levels above 6 are very slow and offer very little savings. + </member> <member name="rendering/textures/vram_compression/import_bptc" type="bool" setter="" getter="" default="false"> If [code]true[/code], the texture importer will import VRAM-compressed textures using the BPTC algorithm. This texture compression algorithm is only supported on desktop platforms, and only when using the Vulkan renderer. + [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor. </member> <member name="rendering/textures/vram_compression/import_etc" type="bool" setter="" getter="" default="false"> If [code]true[/code], the texture importer will import VRAM-compressed textures using the Ericsson Texture Compression algorithm. This algorithm doesn't support alpha channels in textures. + [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor. </member> <member name="rendering/textures/vram_compression/import_etc2" type="bool" setter="" getter="" default="true"> If [code]true[/code], the texture importer will import VRAM-compressed textures using the Ericsson Texture Compression 2 algorithm. This texture compression algorithm is only supported when using the Vulkan renderer. + [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor. </member> <member name="rendering/textures/vram_compression/import_pvrtc" type="bool" setter="" getter="" default="false"> If [code]true[/code], the texture importer will import VRAM-compressed textures using the PowerVR Texture Compression algorithm. This texture compression algorithm is only supported on iOS. + [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor. </member> <member name="rendering/textures/vram_compression/import_s3tc" type="bool" setter="" getter="" default="true"> If [code]true[/code], the texture importer will import VRAM-compressed textures using the S3 Texture Compression algorithm. This algorithm is only supported on desktop platforms and consoles. + [b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor. </member> <member name="rendering/vulkan/descriptor_pools/max_descriptors_per_pool" type="int" setter="" getter="" default="64"> </member> @@ -1603,6 +1612,9 @@ </member> <member name="rendering/vulkan/staging_buffer/texture_upload_region_size_px" type="int" setter="" getter="" default="64"> </member> + <member name="rendering/xr/enabled" type="bool" setter="" getter="" default="false"> + If [code]true[/code], XR support is enabled in Godot, this ensures required shaders are compiled. + </member> <member name="world/2d/cell_size" type="int" setter="" getter="" default="100"> Cell size used for the 2D hash grid that [VisibilityNotifier2D] uses (in pixels). </member> diff --git a/doc/classes/Quat.xml b/doc/classes/Quaternion.xml index 1c0a3e37c0..678fb0d44d 100644 --- a/doc/classes/Quat.xml +++ b/doc/classes/Quaternion.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Quat" version="4.0"> +<class name="Quaternion" version="4.0"> <brief_description> Quaternion. </brief_description> <description> A unit quaternion used for representing 3D rotations. Quaternions need to be normalized to be used for rotation. - It is similar to Basis, which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. Basis stores rotation, scale, and shearing, while Quat only stores rotation. + It is similar to Basis, which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. Basis stores rotation, scale, and shearing, while Quaternion only stores rotation. Due to its compactness and the way it is stored in memory, certain operations (obtaining axis-angle and performing SLERP, in particular) are more efficient and robust against floating-point errors. </description> <tutorials> @@ -13,24 +13,24 @@ <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> </tutorials> <methods> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <description> Constructs a default-initialized quaternion with all components set to [code]0[/code]. </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> - <argument index="0" name="from" type="Quat"> + <argument index="0" name="from" type="Quaternion"> </argument> <description> - Constructs a [Quat] as a copy of the given [Quat]. + Constructs a [Quaternion] as a copy of the given [Quaternion]. </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <argument index="0" name="arc_from" type="Vector3"> </argument> @@ -39,8 +39,8 @@ <description> </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <argument index="0" name="axis" type="Vector3"> </argument> @@ -50,8 +50,8 @@ Constructs a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector. </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <argument index="0" name="euler" type="Vector3"> </argument> @@ -59,8 +59,8 @@ Constructs a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle). </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <argument index="0" name="from" type="Basis"> </argument> @@ -68,8 +68,8 @@ Constructs a quaternion from the given [Basis]. </description> </method> - <method name="Quat" qualifiers="constructor"> - <return type="Quat"> + <method name="Quaternion" qualifiers="constructor"> + <return type="Quaternion"> </return> <argument index="0" name="x" type="float"> </argument> @@ -84,13 +84,13 @@ </description> </method> <method name="cubic_slerp" qualifiers="const"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="b" type="Quat"> + <argument index="0" name="b" type="Quaternion"> </argument> - <argument index="1" name="pre_a" type="Quat"> + <argument index="1" name="pre_a" type="Quaternion"> </argument> - <argument index="2" name="post_b" type="Quat"> + <argument index="2" name="post_b" type="Quaternion"> </argument> <argument index="3" name="weight" type="float"> </argument> @@ -101,7 +101,7 @@ <method name="dot" qualifiers="const"> <return type="float"> </return> - <argument index="0" name="with" type="Quat"> + <argument index="0" name="with" type="Quaternion"> </argument> <description> Returns the dot product of two quaternions. @@ -115,7 +115,7 @@ </description> </method> <method name="inverse" qualifiers="const"> - <return type="Quat"> + <return type="Quaternion"> </return> <description> Returns the inverse of the quaternion. @@ -124,7 +124,7 @@ <method name="is_equal_approx" qualifiers="const"> <return type="bool"> </return> - <argument index="0" name="to" type="Quat"> + <argument index="0" name="to" type="Quaternion"> </argument> <description> Returns [code]true[/code] if this quaternion and [code]quat[/code] are approximately equal, by running [method @GlobalScope.is_equal_approx] on each component. @@ -152,7 +152,7 @@ </description> </method> <method name="normalized" qualifiers="const"> - <return type="Quat"> + <return type="Quaternion"> </return> <description> Returns a copy of the quaternion, normalized to unit length. @@ -161,15 +161,15 @@ <method name="operator !=" qualifiers="operator"> <return type="bool"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> @@ -183,7 +183,7 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <argument index="0" name="right" type="float"> </argument> @@ -191,7 +191,7 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <argument index="0" name="right" type="int"> </argument> @@ -199,35 +199,35 @@ </description> </method> <method name="operator +" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <description> </description> </method> <method name="operator +" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> </method> <method name="operator -" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <description> </description> </method> <method name="operator -" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> </method> <method name="operator /" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <argument index="0" name="right" type="float"> </argument> @@ -235,7 +235,7 @@ </description> </method> <method name="operator /" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> <argument index="0" name="right" type="int"> </argument> @@ -245,7 +245,7 @@ <method name="operator ==" qualifiers="operator"> <return type="bool"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> @@ -259,9 +259,9 @@ </description> </method> <method name="slerp" qualifiers="const"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="to" type="Quat"> + <argument index="0" name="to" type="Quaternion"> </argument> <argument index="1" name="weight" type="float"> </argument> @@ -271,9 +271,9 @@ </description> </method> <method name="slerpni" qualifiers="const"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="to" type="Quat"> + <argument index="0" name="to" type="Quaternion"> </argument> <argument index="1" name="weight" type="float"> </argument> @@ -301,7 +301,7 @@ </member> </members> <constants> - <constant name="IDENTITY" value="Quat( 0, 0, 0, 1 )"> + <constant name="IDENTITY" value="Quaternion( 0, 0, 0, 1 )"> The identity quaternion, representing no rotation. Equivalent to an identity [Basis] matrix. If a vector is transformed by an identity quaternion, it will not change. </constant> </constants> diff --git a/doc/classes/RDAttachmentFormat.xml b/doc/classes/RDAttachmentFormat.xml index 4ee7b9b28e..b73377bf77 100644 --- a/doc/classes/RDAttachmentFormat.xml +++ b/doc/classes/RDAttachmentFormat.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDAttachmentFormat" inherits="Reference" version="4.0"> +<class name="RDAttachmentFormat" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDPipelineColorBlendState.xml b/doc/classes/RDPipelineColorBlendState.xml index adc6f1f6a3..1424a0d653 100644 --- a/doc/classes/RDPipelineColorBlendState.xml +++ b/doc/classes/RDPipelineColorBlendState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDPipelineColorBlendState" inherits="Reference" version="4.0"> +<class name="RDPipelineColorBlendState" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDPipelineColorBlendStateAttachment.xml b/doc/classes/RDPipelineColorBlendStateAttachment.xml index 7f118b5f0b..a6a1900cb5 100644 --- a/doc/classes/RDPipelineColorBlendStateAttachment.xml +++ b/doc/classes/RDPipelineColorBlendStateAttachment.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDPipelineColorBlendStateAttachment" inherits="Reference" version="4.0"> +<class name="RDPipelineColorBlendStateAttachment" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDPipelineDepthStencilState.xml b/doc/classes/RDPipelineDepthStencilState.xml index 562ff52819..76e0506bca 100644 --- a/doc/classes/RDPipelineDepthStencilState.xml +++ b/doc/classes/RDPipelineDepthStencilState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDPipelineDepthStencilState" inherits="Reference" version="4.0"> +<class name="RDPipelineDepthStencilState" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDPipelineMultisampleState.xml b/doc/classes/RDPipelineMultisampleState.xml index 4658c7d9ba..8c90f02301 100644 --- a/doc/classes/RDPipelineMultisampleState.xml +++ b/doc/classes/RDPipelineMultisampleState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDPipelineMultisampleState" inherits="Reference" version="4.0"> +<class name="RDPipelineMultisampleState" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDPipelineRasterizationState.xml b/doc/classes/RDPipelineRasterizationState.xml index 5064dd6deb..3f8c50cf42 100644 --- a/doc/classes/RDPipelineRasterizationState.xml +++ b/doc/classes/RDPipelineRasterizationState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDPipelineRasterizationState" inherits="Reference" version="4.0"> +<class name="RDPipelineRasterizationState" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDSamplerState.xml b/doc/classes/RDSamplerState.xml index ab31960b7c..9a9d55948c 100644 --- a/doc/classes/RDSamplerState.xml +++ b/doc/classes/RDSamplerState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDSamplerState" inherits="Reference" version="4.0"> +<class name="RDSamplerState" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDShaderFile.xml b/doc/classes/RDShaderFile.xml index 14e70d53ea..346a97a1c0 100644 --- a/doc/classes/RDShaderFile.xml +++ b/doc/classes/RDShaderFile.xml @@ -10,7 +10,7 @@ <method name="get_bytecode" qualifiers="const"> <return type="RDShaderBytecode"> </return> - <argument index="0" name="version" type="StringName" default="@"""> + <argument index="0" name="version" type="StringName" default="&"""> </argument> <description> </description> @@ -26,7 +26,7 @@ </return> <argument index="0" name="bytecode" type="RDShaderBytecode"> </argument> - <argument index="1" name="version" type="StringName" default="@"""> + <argument index="1" name="version" type="StringName" default="&"""> </argument> <description> </description> diff --git a/doc/classes/RDShaderSource.xml b/doc/classes/RDShaderSource.xml index c1cfd34bb7..68fc43d8ef 100644 --- a/doc/classes/RDShaderSource.xml +++ b/doc/classes/RDShaderSource.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDShaderSource" inherits="Reference" version="4.0"> +<class name="RDShaderSource" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDTextureFormat.xml b/doc/classes/RDTextureFormat.xml index e41ddff368..ccfa6d1b95 100644 --- a/doc/classes/RDTextureFormat.xml +++ b/doc/classes/RDTextureFormat.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDTextureFormat" inherits="Reference" version="4.0"> +<class name="RDTextureFormat" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDTextureView.xml b/doc/classes/RDTextureView.xml index 73b2a7ae4a..db140ae775 100644 --- a/doc/classes/RDTextureView.xml +++ b/doc/classes/RDTextureView.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDTextureView" inherits="Reference" version="4.0"> +<class name="RDTextureView" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDUniform.xml b/doc/classes/RDUniform.xml index bc8a21e985..666935d663 100644 --- a/doc/classes/RDUniform.xml +++ b/doc/classes/RDUniform.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDUniform" inherits="Reference" version="4.0"> +<class name="RDUniform" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RDVertexAttribute.xml b/doc/classes/RDVertexAttribute.xml index 56fe40b51d..3499918cc8 100644 --- a/doc/classes/RDVertexAttribute.xml +++ b/doc/classes/RDVertexAttribute.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RDVertexAttribute" inherits="Reference" version="4.0"> +<class name="RDVertexAttribute" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml index 6312cd18aa..6fcb79b5fe 100644 --- a/doc/classes/RandomNumberGenerator.xml +++ b/doc/classes/RandomNumberGenerator.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="RandomNumberGenerator" inherits="Reference" version="4.0"> +<class name="RandomNumberGenerator" inherits="RefCounted" version="4.0"> <brief_description> A class for generating pseudo-random numbers. </brief_description> diff --git a/doc/classes/Reference.xml b/doc/classes/RefCounted.xml index 724d2db924..cf96514203 100644 --- a/doc/classes/Reference.xml +++ b/doc/classes/RefCounted.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Reference" inherits="Object" version="4.0"> +<class name="RefCounted" inherits="Object" version="4.0"> <brief_description> Base class for reference-counted objects. </brief_description> <description> Base class for any object that keeps a reference count. [Resource] and many other helper objects inherit this class. Unlike other [Object] types, References keep an internal reference counter so that they are automatically released when no longer in use, and only then. References therefore do not need to be freed manually with [method Object.free]. - In the vast majority of use cases, instantiating and using [Reference]-derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused. + In the vast majority of use cases, instantiating and using [RefCounted]-derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused. [b]Note:[/b] In C#, references will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free references that are no longer in use. This means that unused references will linger on for a while before being removed. </description> <tutorials> diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml index cd08778c89..13df17cd22 100644 --- a/doc/classes/ReflectionProbe.xml +++ b/doc/classes/ReflectionProbe.xml @@ -5,7 +5,7 @@ </brief_description> <description> Captures its surroundings as a cubemap, and stores versions of it with increasing levels of blur to simulate different material roughnesses. - The [ReflectionProbe] is used to create high-quality reflections at the cost of performance. It can be combined with [GIProbe]s and Screen Space Reflections to achieve high quality reflections. [ReflectionProbe]s render all objects within their [member cull_mask], so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them. + The [ReflectionProbe] is used to create high-quality reflections at the cost of performance. It can be combined with [VoxelGI]s and Screen Space Reflections to achieve high quality reflections. [ReflectionProbe]s render all objects within their [member cull_mask], so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them. </description> <tutorials> <link title="Reflection probes">https://docs.godotengine.org/en/latest/tutorials/3d/reflection_probes.html</link> diff --git a/doc/classes/RemoteTransform3D.xml b/doc/classes/RemoteTransform3D.xml index bd3da2aea9..453177496f 100644 --- a/doc/classes/RemoteTransform3D.xml +++ b/doc/classes/RemoteTransform3D.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="RemoteTransform3D" inherits="Node3D" version="4.0"> <brief_description> - RemoteTransform3D pushes its own [Transform] to another [Node3D] derived Node in the scene. + RemoteTransform3D pushes its own [Transform3D] to another [Node3D] derived Node in the scene. </brief_description> <description> - RemoteTransform3D pushes its own [Transform] to another [Node3D] derived Node (called the remote node) in the scene. + RemoteTransform3D pushes its own [Transform3D] to another [Node3D] derived Node (called the remote node) in the scene. It can be set to update another Node's position, rotation and/or scale. It can use either global or local coordinates. </description> <tutorials> diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml index 7a345f726d..ba19176788 100644 --- a/doc/classes/RenderingServer.xml +++ b/doc/classes/RenderingServer.xml @@ -130,10 +130,10 @@ </return> <argument index="0" name="camera" type="RID"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> - Sets [Transform] of camera. + Sets [Transform3D] of camera. </description> </method> <method name="camera_set_use_vertical_aspect"> @@ -1335,7 +1335,7 @@ </return> <argument index="0" name="instance" type="RID"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> Sets the world space transform of the instance. Equivalent to [member Node3D.transform]. @@ -1894,14 +1894,14 @@ </description> </method> <method name="multimesh_instance_get_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="multimesh" type="RID"> </argument> <argument index="1" name="index" type="int"> </argument> <description> - Returns the [Transform] of the specified instance. + Returns the [Transform3D] of the specified instance. </description> </method> <method name="multimesh_instance_get_transform_2d" qualifiers="const"> @@ -1948,10 +1948,10 @@ </argument> <argument index="1" name="index" type="int"> </argument> - <argument index="2" name="transform" type="Transform"> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> - Sets the [Transform] for this instance. Equivalent to [method MultiMesh.set_instance_transform]. + Sets the [Transform3D] for this instance. Equivalent to [method MultiMesh.set_instance_transform]. </description> </method> <method name="multimesh_instance_set_transform_2d"> @@ -2142,10 +2142,10 @@ </return> <argument index="0" name="particles" type="RID"> </argument> - <argument index="1" name="transform" type="Transform"> + <argument index="1" name="transform" type="Transform3D"> </argument> <description> - Sets the [Transform] that will be used by the particles when they first emit. + Sets the [Transform3D] that will be used by the particles when they first emit. </description> </method> <method name="particles_set_emitting"> @@ -2590,14 +2590,14 @@ </description> </method> <method name="skeleton_bone_get_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="skeleton" type="RID"> </argument> <argument index="1" name="bone" type="int"> </argument> <description> - Returns the [Transform] set for a specific bone of this skeleton. + Returns the [Transform3D] set for a specific bone of this skeleton. </description> </method> <method name="skeleton_bone_get_transform_2d" qualifiers="const"> @@ -2618,10 +2618,10 @@ </argument> <argument index="1" name="bone" type="int"> </argument> - <argument index="2" name="transform" type="Transform"> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> - Sets the [Transform] for a specific bone of this skeleton. + Sets the [Transform3D] for a specific bone of this skeleton. </description> </method> <method name="skeleton_bone_set_transform_2d"> @@ -3267,7 +3267,7 @@ Use [Transform2D] to store MultiMesh transform. </constant> <constant name="MULTIMESH_TRANSFORM_3D" value="1" enum="MultimeshTransformFormat"> - Use [Transform] to store MultiMesh transform. + Use [Transform3D] to store MultiMesh transform. </constant> <constant name="LIGHT_DIRECTIONAL" value="0" enum="LightType"> Is a directional (sun) light. @@ -3477,14 +3477,14 @@ <constant name="VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER" value="5" enum="ViewportDebugDraw"> Normal buffer is drawn instead of regular scene so you can see the per-pixel normals that will be used by post-processing effects. </constant> - <constant name="VIEWPORT_DEBUG_DRAW_GI_PROBE_ALBEDO" value="6" enum="ViewportDebugDraw"> - Objects are displayed with only the albedo value from [GIProbe]s. + <constant name="VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO" value="6" enum="ViewportDebugDraw"> + Objects are displayed with only the albedo value from [VoxelGI]s. </constant> - <constant name="VIEWPORT_DEBUG_DRAW_GI_PROBE_LIGHTING" value="7" enum="ViewportDebugDraw"> - Objects are displayed with only the lighting value from [GIProbe]s. + <constant name="VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING" value="7" enum="ViewportDebugDraw"> + Objects are displayed with only the lighting value from [VoxelGI]s. </constant> - <constant name="VIEWPORT_DEBUG_DRAW_GI_PROBE_EMISSION" value="8" enum="ViewportDebugDraw"> - Objects are displayed with only the emission color from [GIProbe]s. + <constant name="VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION" value="8" enum="ViewportDebugDraw"> + Objects are displayed with only the emission color from [VoxelGI]s. </constant> <constant name="VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS" value="9" enum="ViewportDebugDraw"> Draws the shadow atlas that stores shadows from [OmniLight3D]s and [SpotLight3D]s in the upper left quadrant of the [Viewport]. @@ -3694,8 +3694,8 @@ <constant name="INSTANCE_DECAL" value="8" enum="InstanceType"> The instance is a decal. </constant> - <constant name="INSTANCE_GI_PROBE" value="9" enum="InstanceType"> - The instance is a GI probe. + <constant name="INSTANCE_VOXEL_GI" value="9" enum="InstanceType"> + The instance is a VoxelGI. </constant> <constant name="INSTANCE_LIGHTMAP" value="10" enum="InstanceType"> The instance is a lightmap. diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml index 75736798fd..6edb3b1a11 100644 --- a/doc/classes/Resource.xml +++ b/doc/classes/Resource.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Resource" inherits="Reference" version="4.0"> +<class name="Resource" inherits="RefCounted" version="4.0"> <brief_description> Base class for all resources. </brief_description> <description> - Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from [Reference], resources are reference-counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a [Node], which is not reference-counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource. + Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from [RefCounted], resources are reference-counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a [Node], which is not reference-counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource. [b]Note:[/b] In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will linger on for a while before being removed. </description> <tutorials> diff --git a/doc/classes/ResourceFormatLoader.xml b/doc/classes/ResourceFormatLoader.xml index 9943f644cf..6abe5c813b 100644 --- a/doc/classes/ResourceFormatLoader.xml +++ b/doc/classes/ResourceFormatLoader.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoader" inherits="Reference" version="4.0"> +<class name="ResourceFormatLoader" inherits="RefCounted" version="4.0"> <brief_description> Loads a specific resource type from a file. </brief_description> @@ -11,7 +11,7 @@ <tutorials> </tutorials> <methods> - <method name="get_dependencies" qualifiers="virtual"> + <method name="_get_dependencies" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="path" type="String"> @@ -23,14 +23,14 @@ [b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them. </description> </method> - <method name="get_recognized_extensions" qualifiers="virtual"> + <method name="_get_recognized_extensions" qualifiers="virtual"> <return type="PackedStringArray"> </return> <description> Gets the list of extensions for files this loader is able to read. </description> </method> - <method name="get_resource_type" qualifiers="virtual"> + <method name="_get_resource_type" qualifiers="virtual"> <return type="String"> </return> <argument index="0" name="path" type="String"> @@ -40,7 +40,7 @@ [b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them. </description> </method> - <method name="handles_type" qualifiers="virtual"> + <method name="_handles_type" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="typename" type="StringName"> @@ -50,7 +50,7 @@ [b]Note:[/b] Custom resource types defined by scripts aren't known by the [ClassDB], so you might just handle [code]"Resource"[/code] for them. </description> </method> - <method name="load" qualifiers="virtual"> + <method name="_load" qualifiers="virtual"> <return type="Variant"> </return> <argument index="0" name="path" type="String"> @@ -66,7 +66,7 @@ The [code]cache_mode[/code] property defines whether and how the cache should be used or updated when loading the resource. See [enum CacheMode] for details. </description> </method> - <method name="rename_dependencies" qualifiers="virtual"> + <method name="_rename_dependencies" qualifiers="virtual"> <return type="int"> </return> <argument index="0" name="path" type="String"> diff --git a/doc/classes/ResourceFormatSaver.xml b/doc/classes/ResourceFormatSaver.xml index 69f8b43898..df71e05d02 100644 --- a/doc/classes/ResourceFormatSaver.xml +++ b/doc/classes/ResourceFormatSaver.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaver" inherits="Reference" version="4.0"> +<class name="ResourceFormatSaver" inherits="RefCounted" version="4.0"> <brief_description> Saves a specific resource type to a file. </brief_description> @@ -10,16 +10,16 @@ <tutorials> </tutorials> <methods> - <method name="get_recognized_extensions" qualifiers="virtual"> + <method name="_get_recognized_extensions" qualifiers="virtual"> <return type="PackedStringArray"> </return> <argument index="0" name="resource" type="Resource"> </argument> <description> - Returns the list of extensions available for saving the resource object, provided it is recognized (see [method recognize]). + Returns the list of extensions available for saving the resource object, provided it is recognized (see [method _recognize]). </description> </method> - <method name="recognize" qualifiers="virtual"> + <method name="_recognize" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="resource" type="Resource"> @@ -28,7 +28,7 @@ Returns whether the given resource object can be saved by this saver. </description> </method> - <method name="save" qualifiers="virtual"> + <method name="_save" qualifiers="virtual"> <return type="int"> </return> <argument index="0" name="path" type="String"> diff --git a/doc/classes/ResourceImporter.xml b/doc/classes/ResourceImporter.xml index 0475d2c94d..59900b1b73 100644 --- a/doc/classes/ResourceImporter.xml +++ b/doc/classes/ResourceImporter.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceImporter" inherits="Reference" version="4.0"> +<class name="ResourceImporter" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/ResourceSaver.xml b/doc/classes/ResourceSaver.xml index ecde5754f9..437b0ce730 100644 --- a/doc/classes/ResourceSaver.xml +++ b/doc/classes/ResourceSaver.xml @@ -49,7 +49,7 @@ Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix). </constant> <constant name="FLAG_SAVE_BIG_ENDIAN" value="16" enum="SaverFlags"> - Save as big endian (see [member File.endian_swap]). + Save as big endian (see [member File.big_endian]). </constant> <constant name="FLAG_COMPRESS" value="32" enum="SaverFlags"> Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only available for binary resource types. diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml index a37ebb2dd5..237317daf1 100644 --- a/doc/classes/RigidBody2D.xml +++ b/doc/classes/RigidBody2D.xml @@ -5,7 +5,7 @@ </brief_description> <description> This node implements simulated 2D physics. You do not control a RigidBody2D directly. Instead, you apply forces to it (gravity, impulses, etc.) and the physics simulation calculates the resulting movement based on its mass, friction, and other physical properties. - A RigidBody2D has 4 behavior [member mode]s: Rigid, Static, Character, and Kinematic. + A RigidBody2D has 4 behavior [member mode]s: Dynamic, Static, DynamicLocked, and Kinematic. [b]Note:[/b] You should not change a RigidBody2D's [code]position[/code] or [code]linear_velocity[/code] every frame or even very often. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state. Please also keep in mind that physics bodies manage their own transform which overwrites the ones you set. So any direct or indirect transformation (including scaling of the node or its parent) will be visible in the editor only, and immediately reset at runtime. If you need to override the default physics behavior or add a transformation at runtime, you can write a custom force integration. See [member custom_integrator]. @@ -100,21 +100,6 @@ Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. </description> </method> - <method name="test_motion"> - <return type="bool"> - </return> - <argument index="0" name="motion" type="Vector2"> - </argument> - <argument index="1" name="infinite_inertia" type="bool" default="true"> - </argument> - <argument index="2" name="margin" type="float" default="0.08"> - </argument> - <argument index="3" name="result" type="PhysicsTestMotionResult2D" default="null"> - </argument> - <description> - Returns [code]true[/code] if a collision would result from moving in the given vector. [code]margin[/code] increases the size of the shapes involved in the collision detection, and [code]result[/code] is an object of type [PhysicsTestMotionResult2D], which contains additional information about the collision (should there be one). - </description> - </method> </methods> <members> <member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0"> @@ -132,7 +117,6 @@ </member> <member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true"> If [code]true[/code], the body can enter sleep mode when there is no movement. See [member sleeping]. - [b]Note:[/b] A RigidBody2D will never enter sleep mode automatically if its [member mode] is [constant MODE_CHARACTER]. It can still be put to sleep manually by setting its [member sleeping] property to [code]true[/code]. </member> <member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false"> If [code]true[/code], the body will emit signals when it collides with another RigidBody2D. See also [member contacts_reported]. @@ -234,17 +218,17 @@ </signal> </signals> <constants> - <constant name="MODE_RIGID" value="0" enum="Mode"> - Rigid mode. The body behaves as a physical object. It collides with other bodies and responds to forces applied to it. This is the default mode. + <constant name="MODE_DYNAMIC" value="0" enum="Mode"> + Dynamic body mode. This is the default mode of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code. </constant> <constant name="MODE_STATIC" value="1" enum="Mode"> - Static mode. The body behaves like a [StaticBody2D] and does not move. + Static body mode. The body behaves like a [StaticBody2D], and must be moved by code. </constant> - <constant name="MODE_CHARACTER" value="2" enum="Mode"> - Character mode. Similar to [constant MODE_RIGID], but the body can not rotate. + <constant name="MODE_DYNAMIC_LOCKED" value="2" enum="Mode"> + Locked dynamic body mode. Similar to [constant MODE_DYNAMIC], but the body can not rotate. </constant> <constant name="MODE_KINEMATIC" value="3" enum="Mode"> - Kinematic mode. The body behaves like a [KinematicBody2D], and must be moved by code. + Kinematic body mode. The body behaves like a [StaticBody2D] with [member StaticBody2D.kinematic_motion] enabled, and must be moved by user code. </constant> <constant name="CCD_MODE_DISABLED" value="0" enum="CCDMode"> Continuous collision detection disabled. This is the fastest way to detect body collisions, but can miss small, fast-moving objects. diff --git a/doc/classes/RigidBody3D.xml b/doc/classes/RigidBody3D.xml index 2ee8e2697c..e3349169ff 100644 --- a/doc/classes/RigidBody3D.xml +++ b/doc/classes/RigidBody3D.xml @@ -5,7 +5,7 @@ </brief_description> <description> This is the node that implements full 3D physics. This means that you do not control a RigidBody3D directly. Instead, you can apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, collision, bouncing, rotating, etc. - A RigidBody3D has 4 behavior [member mode]s: Rigid, Static, Character, and Kinematic. + A RigidBody3D has 4 behavior [member mode]s: Dynamic, Static, DynamicLocked, and Kinematic. [b]Note:[/b] Don't change a RigidBody3D's position every frame or very often. Sporadic changes work fine, but physics runs at a different granularity (fixed Hz) than usual rendering (process callback) and maybe even in a separate thread, so changing this from a process loop may result in strange behavior. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state. If you need to override the default physics behavior, you can write a custom force integration function. See [member custom_integrator]. With Bullet physics (the default), the center of mass is the RigidBody3D center. With GodotPhysics, the center of mass is the average of the [CollisionShape3D] centers. @@ -86,15 +86,6 @@ Applies a torque impulse which will be affected by the body mass and shape. This will rotate the body around the [code]impulse[/code] vector passed. </description> </method> - <method name="get_axis_lock" qualifiers="const"> - <return type="bool"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <description> - Returns [code]true[/code] if the specified linear or rotational axis is locked. - </description> - </method> <method name="get_colliding_bodies" qualifiers="const"> <return type="Array"> </return> @@ -110,17 +101,6 @@ Returns the inverse inertia tensor basis. This is used to calculate the angular acceleration resulting from a torque applied to the [RigidBody3D]. </description> </method> - <method name="set_axis_lock"> - <return type="void"> - </return> - <argument index="0" name="axis" type="int" enum="PhysicsServer3D.BodyAxis"> - </argument> - <argument index="1" name="lock" type="bool"> - </argument> - <description> - Locks the specified linear or rotational axis. - </description> - </method> <method name="set_axis_velocity"> <return type="void"> </return> @@ -139,27 +119,8 @@ <member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity" default="Vector3( 0, 0, 0 )"> RigidBody3D's rotational velocity. </member> - <member name="axis_lock_angular_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the X axis. - </member> - <member name="axis_lock_angular_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the Y axis. - </member> - <member name="axis_lock_angular_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's rotation in the Z axis. - </member> - <member name="axis_lock_linear_x" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the X axis. - </member> - <member name="axis_lock_linear_y" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the Y axis. - </member> - <member name="axis_lock_linear_z" type="bool" setter="set_axis_lock" getter="get_axis_lock" default="false"> - Lock the body's movement in the Z axis. - </member> <member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true"> If [code]true[/code], the body can enter sleep mode when there is no movement. See [member sleeping]. - [b]Note:[/b] A RigidBody3D will never enter sleep mode automatically if its [member mode] is [constant MODE_CHARACTER]. It can still be put to sleep manually by setting its [member sleeping] property to [code]true[/code]. </member> <member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false"> If [code]true[/code], the RigidBody3D will emit signals when it collides with another RigidBody3D. See also [member contacts_reported]. @@ -260,17 +221,17 @@ </signal> </signals> <constants> - <constant name="MODE_RIGID" value="0" enum="Mode"> - Rigid body mode. This is the "natural" state of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code. + <constant name="MODE_DYNAMIC" value="0" enum="Mode"> + Dynamic body mode. This is the default mode of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code. </constant> <constant name="MODE_STATIC" value="1" enum="Mode"> - Static mode. The body behaves like a [StaticBody3D], and can only move by user code. + Static body mode. The body behaves like a [StaticBody3D], and can only move by user code. </constant> - <constant name="MODE_CHARACTER" value="2" enum="Mode"> - Character body mode. This behaves like a rigid body, but can not rotate. + <constant name="MODE_DYNAMIC_LOCKED" value="2" enum="Mode"> + Locked dynamic body mode. Similar to [constant MODE_DYNAMIC], but the body can not rotate. </constant> <constant name="MODE_KINEMATIC" value="3" enum="Mode"> - Kinematic body mode. The body behaves like a [KinematicBody3D], and can only move by user code. + Kinematic body mode. The body behaves like a [StaticBody3D] with [member StaticBody3D.kinematic_motion] enabled, and can only move by user code. </constant> </constants> </class> diff --git a/doc/classes/SceneState.xml b/doc/classes/SceneState.xml index abc429d5fe..f9e0ef76b9 100644 --- a/doc/classes/SceneState.xml +++ b/doc/classes/SceneState.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="SceneState" inherits="Reference" version="4.0"> +<class name="SceneState" inherits="RefCounted" version="4.0"> <brief_description> A script interface to a scene file's data. </brief_description> diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml index 06800082cb..7a15153fc2 100644 --- a/doc/classes/SceneTree.xml +++ b/doc/classes/SceneTree.xml @@ -207,6 +207,7 @@ Quits the application at the end of the current iteration. Argument [code]exit_code[/code] can optionally be given (defaulting to 0) to customize the exit status code. By convention, an exit code of [code]0[/code] indicates success whereas a non-zero exit code indicates an error. For portability reasons, the exit code should be set between 0 and 125 (inclusive). + [b]Note:[/b] On iOS this method doesn't work. Instead, as recommended by the iOS Human Interface Guidelines, the user is expected to close apps via the Home button. </description> </method> <method name="reload_current_scene"> diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml index b223bf6821..4eef754345 100644 --- a/doc/classes/SceneTreeTimer.xml +++ b/doc/classes/SceneTreeTimer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="SceneTreeTimer" inherits="Reference" version="4.0"> +<class name="SceneTreeTimer" inherits="RefCounted" version="4.0"> <brief_description> One-shot timer. </brief_description> diff --git a/doc/classes/ScriptEditor.xml b/doc/classes/ScriptEditor.xml index 28620bd29b..31dbf7453f 100644 --- a/doc/classes/ScriptEditor.xml +++ b/doc/classes/ScriptEditor.xml @@ -9,30 +9,6 @@ <tutorials> </tutorials> <methods> - <method name="can_drop_data_fw" qualifiers="const"> - <return type="bool"> - </return> - <argument index="0" name="point" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> - </argument> - <description> - </description> - </method> - <method name="drop_data_fw"> - <return type="void"> - </return> - <argument index="0" name="point" type="Vector2"> - </argument> - <argument index="1" name="data" type="Variant"> - </argument> - <argument index="2" name="from" type="Control"> - </argument> - <description> - </description> - </method> <method name="get_current_editor" qualifiers="const"> <return type="ScriptEditorBase"> </return> @@ -47,16 +23,6 @@ Returns a [Script] that is currently active in editor. </description> </method> - <method name="get_drag_data_fw"> - <return type="Variant"> - </return> - <argument index="0" name="point" type="Vector2"> - </argument> - <argument index="1" name="from" type="Control"> - </argument> - <description> - </description> - </method> <method name="get_open_script_editors" qualifiers="const"> <return type="Array"> </return> diff --git a/doc/classes/ScriptEditorBase.xml b/doc/classes/ScriptEditorBase.xml index e5c4c32450..a135062bd8 100644 --- a/doc/classes/ScriptEditorBase.xml +++ b/doc/classes/ScriptEditorBase.xml @@ -9,7 +9,7 @@ <tutorials> </tutorials> <methods> - <method name="add_syntax_highlighter" qualifiers="virtual"> + <method name="_add_syntax_highlighter" qualifiers="virtual"> <return type="void"> </return> <argument index="0" name="highlighter" type="Object"> diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml index 40e29ac74b..60f3106b4b 100644 --- a/doc/classes/ScrollContainer.xml +++ b/doc/classes/ScrollContainer.xml @@ -11,6 +11,15 @@ <tutorials> </tutorials> <methods> + <method name="ensure_control_visible"> + <return type="void"> + </return> + <argument index="0" name="control" type="Control"> + </argument> + <description> + Ensures the given [code]control[/code] is visible (must be a direct or indirect child of the ScrollContainer). Used by [member follow_focus]. + </description> + </method> <method name="get_h_scrollbar"> <return type="HScrollBar"> </return> diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml index f311e1c72f..e8b405e52a 100644 --- a/doc/classes/Semaphore.xml +++ b/doc/classes/Semaphore.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Semaphore" inherits="Reference" version="4.0"> +<class name="Semaphore" inherits="RefCounted" version="4.0"> <brief_description> A synchronization semaphore. </brief_description> diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml index 0ddbac9ba4..6665a4a9f6 100644 --- a/doc/classes/Skeleton2D.xml +++ b/doc/classes/Skeleton2D.xml @@ -10,6 +10,17 @@ <link title="2D skeletons">https://docs.godotengine.org/en/latest/tutorials/animation/2d_skeletons.html</link> </tutorials> <methods> + <method name="execute_modifications"> + <return type="void"> + </return> + <argument index="0" name="delta" type="float"> + </argument> + <argument index="1" name="execution_mode" type="int"> + </argument> + <description> + Executes all the modifications on the [SkeletonModificationStack2D], if the Skeleton3D has one assigned. + </description> + </method> <method name="get_bone"> <return type="Bone2D"> </return> @@ -26,6 +37,22 @@ Returns the number of [Bone2D] nodes in the node hierarchy parented by Skeleton2D. </description> </method> + <method name="get_bone_local_pose_override"> + <return type="Transform2D"> + </return> + <argument index="0" name="bone_idx" type="int"> + </argument> + <description> + Returns the local pose override transform for [code]bone_idx[/code]. + </description> + </method> + <method name="get_modification_stack" qualifiers="const"> + <return type="SkeletonModificationStack2D"> + </return> + <description> + Returns the [SkeletonModificationStack2D] attached to this skeleton, if one exists. + </description> + </method> <method name="get_skeleton" qualifiers="const"> <return type="RID"> </return> @@ -33,10 +60,37 @@ Returns the [RID] of a Skeleton2D instance. </description> </method> + <method name="set_bone_local_pose_override"> + <return type="void"> + </return> + <argument index="0" name="bone_idx" type="int"> + </argument> + <argument index="1" name="override_pose" type="Transform2D"> + </argument> + <argument index="2" name="strength" type="float"> + </argument> + <argument index="3" name="persistent" type="bool"> + </argument> + <description> + Sets the local pose transform, [code]pose[/code], for the bone at [code]bone_idx[/code]. + [code]amount[/code] is the interpolation strengh that will be used when applying the pose, and [code]persistent[/code] determines if the applied pose will remain. + [b]Note:[/b] The pose transform needs to be a local transform relative to the [Bone2D] node at [code]bone_idx[/code]! + </description> + </method> + <method name="set_modification_stack"> + <return type="void"> + </return> + <argument index="0" name="modification_stack" type="SkeletonModificationStack2D"> + </argument> + <description> + Sets the [SkeletonModificationStack2D] attached to this skeleton. + </description> + </method> </methods> <signals> <signal name="bone_setup_changed"> <description> + Emitted when the [Bone2D] setup attached to this skeletons changes. This is primarily used internally within the skeleton. </description> </signal> </signals> diff --git a/doc/classes/Skeleton3D.xml b/doc/classes/Skeleton3D.xml index 44ad460459..d8b35ad272 100644 --- a/doc/classes/Skeleton3D.xml +++ b/doc/classes/Skeleton3D.xml @@ -23,9 +23,9 @@ </description> </method> <method name="bone_transform_to_world_transform"> - <return type="Transform"> + <return type="Transform3D"> </return> - <argument index="0" name="bone_transform" type="Transform"> + <argument index="0" name="bone_transform" type="Transform3D"> </argument> <description> Takes the given bone pose/transform and converts it to a world transform, relative to the [Skeleton3D] node. @@ -63,7 +63,7 @@ </description> </method> <method name="get_bone_custom_pose" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bone_idx" type="int"> </argument> @@ -72,7 +72,7 @@ </description> </method> <method name="get_bone_global_pose" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bone_idx" type="int"> </argument> @@ -81,7 +81,7 @@ </description> </method> <method name="get_bone_global_pose_no_override" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bone_idx" type="int"> </argument> @@ -109,7 +109,7 @@ </description> </method> <method name="get_bone_pose" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bone_idx" type="int"> </argument> @@ -124,7 +124,7 @@ </description> </method> <method name="get_bone_rest" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bone_idx" type="int"> </argument> @@ -199,7 +199,7 @@ </return> <argument index="0" name="bone_idx" type="int"> </argument> - <argument index="1" name="custom_pose" type="Transform"> + <argument index="1" name="custom_pose" type="Transform3D"> </argument> <description> Sets the custom pose transform, [code]custom_pose[/code], for the bone at [code]bone_idx[/code]. This pose is an addition to the bone rest pose. @@ -222,7 +222,7 @@ </return> <argument index="0" name="bone_idx" type="int"> </argument> - <argument index="1" name="pose" type="Transform"> + <argument index="1" name="pose" type="Transform3D"> </argument> <argument index="2" name="amount" type="float"> </argument> @@ -261,7 +261,7 @@ </return> <argument index="0" name="bone_idx" type="int"> </argument> - <argument index="1" name="pose" type="Transform"> + <argument index="1" name="pose" type="Transform3D"> </argument> <description> Sets the pose transform for bone [code]bone_idx[/code]. @@ -273,7 +273,7 @@ </return> <argument index="0" name="bone_idx" type="int"> </argument> - <argument index="1" name="rest" type="Transform"> + <argument index="1" name="rest" type="Transform3D"> </argument> <description> Sets the rest transform for bone [code]bone_idx[/code]. @@ -289,9 +289,9 @@ </description> </method> <method name="world_transform_to_bone_transform"> - <return type="Transform"> + <return type="Transform3D"> </return> - <argument index="0" name="world_transform" type="Transform"> + <argument index="0" name="world_transform" type="Transform3D"> </argument> <description> Takes the given world transform, relative to the [Skeleton3D], and converts it to a bone pose/transform. diff --git a/doc/classes/SkeletonIK3D.xml b/doc/classes/SkeletonIK3D.xml index 5193109447..dccc45d0ec 100644 --- a/doc/classes/SkeletonIK3D.xml +++ b/doc/classes/SkeletonIK3D.xml @@ -46,13 +46,13 @@ </member> <member name="override_tip_basis" type="bool" setter="set_override_tip_basis" getter="is_override_tip_basis" default="true"> </member> - <member name="root_bone" type="StringName" setter="set_root_bone" getter="get_root_bone" default="@"""> + <member name="root_bone" type="StringName" setter="set_root_bone" getter="get_root_bone" default="&"""> </member> - <member name="target" type="Transform" setter="set_target_transform" getter="get_target_transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <member name="target" type="Transform3D" setter="set_target_transform" getter="get_target_transform" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> </member> <member name="target_node" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> </member> - <member name="tip_bone" type="StringName" setter="set_tip_bone" getter="get_tip_bone" default="@"""> + <member name="tip_bone" type="StringName" setter="set_tip_bone" getter="get_tip_bone" default="&"""> </member> <member name="use_magnet" type="bool" setter="set_use_magnet" getter="is_using_magnet" default="false"> </member> diff --git a/doc/classes/SkeletonModification2D.xml b/doc/classes/SkeletonModification2D.xml new file mode 100644 index 0000000000..8596dac76e --- /dev/null +++ b/doc/classes/SkeletonModification2D.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2D" inherits="Resource" version="4.0"> + <brief_description> + A resource that operates on [Bone2D] nodes in a [Skeleton2D]. + </brief_description> + <description> + This resource provides an interface that can be expanded so code that operates on [Bone2D] nodes in a [Skeleton2D] can be mixed and matched together to create complex interactions. + This is used to provide Godot with a flexible and powerful Inverse Kinematics solution that can be adapted for many different uses. + </description> + <tutorials> + </tutorials> + <methods> + <method name="_draw_editor_gizmo" qualifiers="virtual"> + <return type="void"> + </return> + <description> + Used for drawing [b]editor-only[/b] modification gizmos. This function will only be called in the Godot editor and can be overriden to draw custom gizmos. + [b]Note:[/b] You will need to use the Skeleton2D from [method SkeletonModificationStack2D.get_skeleton] and it's draw functions, as the [SkeletonModification2D] resource cannot draw on its own. + </description> + </method> + <method name="_execute" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="delta" type="float"> + </argument> + <description> + Executes the given modification. This is where the modification performs whatever function it is designed to do. + </description> + </method> + <method name="_setup_modification" qualifiers="virtual"> + <return type="void"> + </return> + <argument index="0" name="modification_stack" type="SkeletonModificationStack2D"> + </argument> + <description> + Called when the modification is setup. This is where the modification performs initialization. + </description> + </method> + <method name="clamp_angle"> + <return type="float"> + </return> + <argument index="0" name="angle" type="float"> + </argument> + <argument index="1" name="min" type="float"> + </argument> + <argument index="2" name="max" type="float"> + </argument> + <argument index="3" name="invert" type="bool"> + </argument> + <description> + Takes a angle and clamps it so it is within the passed-in [code]min[/code] and [code]max[/code] range. [code]invert[/code] will inversely clamp the angle, clamping it to the range outside of the given bounds. + </description> + </method> + <method name="get_editor_draw_gizmo" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns whether this modification will call [method _draw_editor_gizmo] in the Godot editor to draw modification-specific gizmos. + </description> + </method> + <method name="get_is_setup" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns whether this modification has been successfully setup or not. + </description> + </method> + <method name="get_modification_stack"> + <return type="SkeletonModificationStack2D"> + </return> + <description> + Returns the [SkeletonModificationStack2D] that this modification is bound to. Through the modification stack, you can access the Skeleton3D the modification is operating on. + </description> + </method> + <method name="set_editor_draw_gizmo"> + <return type="void"> + </return> + <argument index="0" name="draw_gizmo" type="bool"> + </argument> + <description> + Sets whether this modification will call [method _draw_editor_gizmo] in the Godot editor to draw modification-specific gizmos. + </description> + </method> + <method name="set_is_setup"> + <return type="void"> + </return> + <argument index="0" name="is_setup" type="bool"> + </argument> + <description> + Manually allows you to set the setup state of the modification. This function should only rarely be used, as the [SkeletonModificationStack2D] the modification is bound to should handle setting the modification up. + </description> + </method> + </methods> + <members> + <member name="enabled" type="bool" setter="set_enabled" getter="get_enabled" default="true"> + If [code]true[/code], the modification's [method _execute] function will be called by the [SkeletonModificationStack2D]. + </member> + <member name="execution_mode" type="int" setter="set_execution_mode" getter="get_execution_mode" default="0"> + The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only availible in certain execution modes. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DCCDIK.xml b/doc/classes/SkeletonModification2DCCDIK.xml new file mode 100644 index 0000000000..014d366a42 --- /dev/null +++ b/doc/classes/SkeletonModification2DCCDIK.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DCCDIK" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that uses CCDIK to manipulate a series of bones to reach a target in 2D. + </brief_description> + <description> + This [SkeletonModification2D] uses an algorithm called [b]C[/b]yclic [b]C[/b]oordinate [b]D[/b]escent [b]I[/b]nverse [b]K[/b]inematics, or CCDIK, to maniuplate a chain of bones in a [Skeleton2D] so it reaches a defined target. + CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK [i]can[/i] look more robotic than other IK solvers. + [b]Note:[/b] The CCDIK modifier has [code]ccdik_joints[/code], which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK. + CCDIK also fully supports angle constraints, allowing for more control over how a solution is met. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_ccdik_joint_bone2d_node" qualifiers="const"> + <return type="NodePath"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the [Bone2D] node assigned to the CCDIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_ccdik_joint_bone_index" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the index of the [Bone2D] node assigned to the CCDIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_ccdik_joint_constraint_angle_invert" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns whether the CCDIK joint at [code]joint_idx[/code] uses an inverted joint constraint. See [method set_ccdik_joint_constraint_angle_invert] for details. + </description> + </method> + <method name="get_ccdik_joint_constraint_angle_max" qualifiers="const"> + <return type="float"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the maximum angle constraint for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_ccdik_joint_constraint_angle_min" qualifiers="const"> + <return type="float"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the minimum angle constraint for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_ccdik_joint_enable_constraint" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns whether angle constraints on the CCDIK joint at [code]joint_idx[/code] are enabled. + </description> + </method> + <method name="get_ccdik_joint_rotate_from_joint" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns whether the joint at [code]joint_idx[/code] is set to rotate from the joint, [code]true[/code], or to rotate from the tip, [code]false[/code]. The default is to rotate from the tip. + </description> + </method> + <method name="set_ccdik_joint_bone2d_node"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone2d_nodepath" type="NodePath"> + </argument> + <description> + Sets the [Bone2D] node assigned to the CCDIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_ccdik_joint_bone_index"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone_idx" type="int"> + </argument> + <description> + Sets the bone index, [code]bone_index[/code], of the CCDIK joint at [code]joint_idx[/code]. When possible, this will also update the [code]bone2d_node[/code] of the CCDIK joint based on data provided by the linked skeleton. + </description> + </method> + <method name="set_ccdik_joint_constraint_angle_invert"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="invert" type="bool"> + </argument> + <description> + Sets whether the CCDIK joint at [code]joint_idx[/code] uses an inverted joint constraint. + An inverted joint constraint only constraints the CCDIK joint to the angles [i]outside of[/i] the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + </description> + </method> + <method name="set_ccdik_joint_constraint_angle_max"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="angle_max" type="float"> + </argument> + <description> + Sets the maximum angle constraint for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_ccdik_joint_constraint_angle_min"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="angle_min" type="float"> + </argument> + <description> + Sets the minimum angle constraint for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_ccdik_joint_enable_constraint"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="enable_constraint" type="bool"> + </argument> + <description> + Determines whether angle constraints on the CCDIK joint at [code]joint_idx[/code] are enabled. When [code]true[/code], constraints will be enabled and taken into account when solving. + </description> + </method> + <method name="set_ccdik_joint_rotate_from_joint"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="rotate_from_joint" type="bool"> + </argument> + <description> + Sets whether the joint at [code]joint_idx[/code] is set to rotate from the joint, [code]true[/code], or to rotate from the tip, [code]false[/code]. + </description> + </method> + </methods> + <members> + <member name="ccdik_data_chain_length" type="int" setter="set_ccdik_data_chain_length" getter="get_ccdik_data_chain_length" default="0"> + The amount of CCDIK joints in the CCDIK modification. + </member> + <member name="target_nodepath" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> + The NodePath to the node that is the target for the CCDIK modification. This node is what the CCDIK chain will attempt to rotate the bone chain to. + </member> + <member name="tip_nodepath" type="NodePath" setter="set_tip_node" getter="get_tip_node" default="NodePath("")"> + The end position of the CCDIK chain. Typically, this should be a child of a [Bone2D] node attached to the final [Bone2D] in the CCDIK chain. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DFABRIK.xml b/doc/classes/SkeletonModification2DFABRIK.xml new file mode 100644 index 0000000000..62ab34b06f --- /dev/null +++ b/doc/classes/SkeletonModification2DFABRIK.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DFABRIK" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that uses FABRIK to manipulate a series of [Bone2D] nodes to reach a target. + </brief_description> + <description> + This [SkeletonModification2D] uses an algorithm called [b]F[/b]orward [b]A[/b]nd [b]B[/b]ackward [b]R[/b]eaching [b]I[/b]nverse [b]K[/b]inematics, or FABRIK, to rotate a bone chain so that it reaches a target. + FABRIK works by knowing the positions and lengths of a series of bones, typically called a "bone chain". It first starts by running a forward pass, which places the final bone at the target's position. Then all other bones are moved towards the tip bone, so they stay at the defined bone length away. Then a backwards pass is performed, where the root/first bone in the FABRIK chain is placed back at the origin. then all other bones are moved so they stay at the defined bone length away. This positions the bone chain so that it reaches the target when possible, but all of the bones stay the correct length away from each other. + Because of how FABRIK works, it often gives more natural results than those seen in [SkeletonModification2DCCDIK]. FABRIK also supports angle constraints, which are fully taken into account when solving. + [b]Note:[/b] The FABRIK modifier has [code]fabrik_joints[/code], which are the data objects that hold the data for each joint in the FABRIK chain. This is different from [Bone2D] nodes! FABRIK joints hold the data needed for each [Bone2D] in the bone chain used by FABRIK. + To help control how the FABRIK joints move, a magnet vector can be passed, which can nudge the bones in a certain direction prior to solving, giving a level of control over the final result. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_fabrik_joint_bone2d_node" qualifiers="const"> + <return type="NodePath"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the [Bone2D] node assigned to the FABRIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_fabrik_joint_bone_index" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the index of the [Bone2D] node assigned to the FABRIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_fabrik_joint_magnet_position" qualifiers="const"> + <return type="Vector2"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the magnet position vector for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_fabrik_joint_use_target_rotation" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns whether the joint is using the target's rotation rather than allowing FABRIK to rotate the joint. This option only applies to the tip/final joint in the chain. + </description> + </method> + <method name="set_fabrik_joint_bone2d_node"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone2d_nodepath" type="NodePath"> + </argument> + <description> + Sets the [Bone2D] node assigned to the FABRIK joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_fabrik_joint_bone_index"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone_idx" type="int"> + </argument> + <description> + Sets the bone index, [code]bone_index[/code], of the FABRIK joint at [code]joint_idx[/code]. When possible, this will also update the [code]bone2d_node[/code] of the FABRIK joint based on data provided by the linked skeleton. + </description> + </method> + <method name="set_fabrik_joint_magnet_position"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="magnet_position" type="Vector2"> + </argument> + <description> + Sets the magnet position vector for the joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_fabrik_joint_use_target_rotation"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="use_target_rotation" type="bool"> + </argument> + <description> + Sets whether the joint at [code]joint_idx[/code] will use the target node's rotation rather than letting FABRIK rotate the node. + [b]Note:[/b] This option only works for the tip/final joint in the chain. For all other nodes, this option will be ignored. + </description> + </method> + </methods> + <members> + <member name="fabrik_data_chain_length" type="int" setter="set_fabrik_data_chain_length" getter="get_fabrik_data_chain_length" default="0"> + The amount of FABRIK joints in the FABRIK modification. + </member> + <member name="target_nodepath" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> + The NodePath to the node that is the target for the FABRIK modification. This node is what the FABRIK chain will attempt to rotate the bone chain to. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DJiggle.xml b/doc/classes/SkeletonModification2DJiggle.xml new file mode 100644 index 0000000000..7f8cf2d4d9 --- /dev/null +++ b/doc/classes/SkeletonModification2DJiggle.xml @@ -0,0 +1,232 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DJiggle" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that jiggles [Bone2D] nodes as they move towards a target. + </brief_description> + <description> + This modification moves a series of bones, typically called a bone chain, towards a target. What makes this modification special is that it calculates the velocity and acceleration for each bone in the bone chain, and runs a very light physics-like calculation using the inputted values. This allows the bones to overshoot the target and "jiggle" around. It can be configured to act more like a spring, or sway around like cloth might. + This modification is useful for adding additional motion to things like hair, the edges of clothing, and more. It has several settings to that allow control over how the joint moves when the target moves. + [b]Note:[/b] The Jiggle modifier has [code]jiggle_joints[/code], which are the data objects that hold the data for each joint in the Jiggle chain. This is different from than [Bone2D] nodes! Jiggle joints hold the data needed for each [Bone2D] in the bone chain used by the Jiggle modification. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_collision_mask" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the collision mask used by the Jiggle modifier when collisions are enabled. + </description> + </method> + <method name="get_jiggle_joint_bone2d_node" qualifiers="const"> + <return type="NodePath"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the [Bone2D] node assigned to the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_jiggle_joint_bone_index" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the index of the [Bone2D] node assigned to the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_jiggle_joint_damping" qualifiers="const"> + <return type="float"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the amount of damping of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_jiggle_joint_gravity" qualifiers="const"> + <return type="Vector2"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns a [Vector2] representing the amount of gravity the Jiggle joint at [code]joint_idx[/code] is influenced by. + </description> + </method> + <method name="get_jiggle_joint_mass" qualifiers="const"> + <return type="float"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the amount of mass of the jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_jiggle_joint_override" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns a boolean that indiciates whether the joint at [code]joint_idx[/code] is overriding the default Jiggle joint data defined in the modification. + </description> + </method> + <method name="get_jiggle_joint_stiffness" qualifiers="const"> + <return type="float"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the stiffness of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="get_jiggle_joint_use_gravity" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns a boolean that indiciates whether the joint at [code]joint_idx[/code] is using gravity or not. + </description> + </method> + <method name="get_use_colliders" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns whether the jiggle modifier is taking physics colliders into account when solving. + </description> + </method> + <method name="set_collision_mask"> + <return type="void"> + </return> + <argument index="0" name="collision_mask" type="int"> + </argument> + <description> + Sets the collision mask that the Jiggle modifier will use when reacting to colliders, if the Jiggle modifier is set to take colliders into account. + </description> + </method> + <method name="set_jiggle_joint_bone2d_node"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone2d_node" type="NodePath"> + </argument> + <description> + Sets the [Bone2D] node assigned to the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_jiggle_joint_bone_index"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="bone_idx" type="int"> + </argument> + <description> + Sets the bone index, [code]bone_index[/code], of the Jiggle joint at [code]joint_idx[/code]. When possible, this will also update the [code]bone2d_node[/code] of the Jiggle joint based on data provided by the linked skeleton. + </description> + </method> + <method name="set_jiggle_joint_damping"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="damping" type="float"> + </argument> + <description> + Sets the amount of dampening of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_jiggle_joint_gravity"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="gravity" type="Vector2"> + </argument> + <description> + Sets the gravity vector of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_jiggle_joint_mass"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="mass" type="float"> + </argument> + <description> + Sets the of mass of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_jiggle_joint_override"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="override" type="bool"> + </argument> + <description> + Sets whether the Jiggle joint at [code]joint_idx[/code] should override the default Jiggle joint settings. Setting this to [code]true[/code] will make the joint use its own settings rather than the default ones attached to the modification. + </description> + </method> + <method name="set_jiggle_joint_stiffness"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="stiffness" type="float"> + </argument> + <description> + Sets the of stiffness of the Jiggle joint at [code]joint_idx[/code]. + </description> + </method> + <method name="set_jiggle_joint_use_gravity"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="use_gravity" type="bool"> + </argument> + <description> + Sets whether the Jiggle joint at [code]joint_idx[/code] should use gravity. + </description> + </method> + <method name="set_use_colliders"> + <return type="void"> + </return> + <argument index="0" name="use_colliders" type="bool"> + </argument> + <description> + If [code]true[/code], the Jiggle modifier will take colliders into account, keeping them from entering into these collision objects. + </description> + </method> + </methods> + <members> + <member name="damping" type="float" setter="set_damping" getter="get_damping" default="0.75"> + The default amount of dampening applied to the Jiggle joints, if they are not overriden. Higher values lead to more of the calculated velocity being applied. + </member> + <member name="gravity" type="Vector2" setter="set_gravity" getter="get_gravity" default="Vector2( 0, 6 )"> + The default amount of gravity applied to the Jiggle joints, if they are not overriden. + </member> + <member name="jiggle_data_chain_length" type="int" setter="set_jiggle_data_chain_length" getter="get_jiggle_data_chain_length" default="0"> + The amount of Jiggle joints in the Jiggle modification. + </member> + <member name="mass" type="float" setter="set_mass" getter="get_mass" default="0.75"> + The default amount of mass assigned to the Jiggle joints, if they are not overriden. Higher values lead to faster movements and more overshooting. + </member> + <member name="stiffness" type="float" setter="set_stiffness" getter="get_stiffness" default="3.0"> + The default amount of stiffness assigned to the Jiggle joints, if they are not overriden. Higher values act more like springs, quickly moving into the correct position. + </member> + <member name="target_nodepath" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> + The NodePath to the node that is the target for the Jiggle modification. This node is what the Jiggle chain will attempt to rotate the bone chain to. + </member> + <member name="use_gravity" type="bool" setter="set_use_gravity" getter="get_use_gravity" default="false"> + Whether the gravity vector, [member gravity], should be applied to the Jiggle joints, assuming they are not overriding the default settings. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DLookAt.xml b/doc/classes/SkeletonModification2DLookAt.xml new file mode 100644 index 0000000000..b0fa0e5a01 --- /dev/null +++ b/doc/classes/SkeletonModification2DLookAt.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DLookAt" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that rotates a [Bone2D] node to look at a target. + </brief_description> + <description> + This [SkeletonModification2D] rotates a bone to look a target. This is extremely helpful for moving character's head to look at the player, rotating a turret to look at a target, or any other case where you want to make a bone rotate towards something quickly and easily. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_additional_rotation" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the amount of additional rotation that is applied after the LookAt modification executes. + </description> + </method> + <method name="get_constraint_angle_invert" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns whether the constraints to this modification are inverted or not. + </description> + </method> + <method name="get_constraint_angle_max" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the constraint's maximum allowed angle. + </description> + </method> + <method name="get_constraint_angle_min" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the constraint's minimum allowed angle. + </description> + </method> + <method name="get_enable_constraint" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the LookAt modification is using constraints. + </description> + </method> + <method name="set_additional_rotation"> + <return type="void"> + </return> + <argument index="0" name="rotation" type="float"> + </argument> + <description> + Sets the amount of additional rotation that is to be applied after executing the modification. This allows for offsetting the results by the inputted rotation amount. + </description> + </method> + <method name="set_constraint_angle_invert"> + <return type="void"> + </return> + <argument index="0" name="invert" type="bool"> + </argument> + <description> + When [code]true[/code], the modification will use an inverted joint constraint. + An inverted joint constraint only constraints the [Bone2D] to the angles [i]outside of[/i] the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + </description> + </method> + <method name="set_constraint_angle_max"> + <return type="void"> + </return> + <argument index="0" name="angle_max" type="float"> + </argument> + <description> + Sets the constraint's maximum allowed angle. + </description> + </method> + <method name="set_constraint_angle_min"> + <return type="void"> + </return> + <argument index="0" name="angle_min" type="float"> + </argument> + <description> + Sets the constraint's minimum allowed angle. + </description> + </method> + <method name="set_enable_constraint"> + <return type="void"> + </return> + <argument index="0" name="enable_constraint" type="bool"> + </argument> + <description> + Sets whether this modification will use constraints or not. When [code]true[/code], constraints will be applied when solving the LookAt modification. + </description> + </method> + </methods> + <members> + <member name="bone2d_node" type="NodePath" setter="set_bone2d_node" getter="get_bone2d_node" default="NodePath("")"> + The [Bone2D] node that the modification will operate on. + </member> + <member name="bone_index" type="int" setter="set_bone_index" getter="get_bone_index" default="-1"> + The index of the [Bone2D] node that the modification will oeprate on. + </member> + <member name="target_nodepath" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> + The NodePath to the node that is the target for the LookAt modification. This node is what the modification will rotate the [Bone2D] to. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DPhysicalBones.xml b/doc/classes/SkeletonModification2DPhysicalBones.xml new file mode 100644 index 0000000000..d8aaf09a8e --- /dev/null +++ b/doc/classes/SkeletonModification2DPhysicalBones.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DPhysicalBones" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that applies the transforms of [PhysicalBone2D] nodes to [Bone2D] nodes. + </brief_description> + <description> + This modification takes the transforms of [PhysicalBone2D] nodes and applies them to [Bone2D] nodes. This allows the [Bone2D] nodes to react to physics thanks to the linked [PhysicalBone2D] nodes. + </description> + <tutorials> + </tutorials> + <methods> + <method name="fetch_physical_bones"> + <return type="void"> + </return> + <description> + Empties the list of [PhysicalBone2D] nodes and populates it will all [PhysicalBone2D] nodes that are children of the [Skeleton2D]. + </description> + </method> + <method name="get_physical_bone_node" qualifiers="const"> + <return type="NodePath"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <description> + Returns the [PhysicalBone2D] node at [code]joint_idx[/code]. + </description> + </method> + <method name="set_physical_bone_node"> + <return type="void"> + </return> + <argument index="0" name="joint_idx" type="int"> + </argument> + <argument index="1" name="physicalbone2d_node" type="NodePath"> + </argument> + <description> + Sets the [PhysicalBone2D] node at [code]joint_idx[/code]. + [b]Note:[/b] This is just the index used for this modification, not the bone index used in the [Skeleton2D]. + </description> + </method> + <method name="start_simulation"> + <return type="void"> + </return> + <argument index="0" name="bones" type="StringName[]" default="[ ]"> + </argument> + <description> + Tell the [PhysicalBone2D] nodes to start simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only [PhysicalBone2D] nodes with those names to start simulating. + </description> + </method> + <method name="stop_simulation"> + <return type="void"> + </return> + <argument index="0" name="bones" type="StringName[]" default="[ ]"> + </argument> + <description> + Tell the [PhysicalBone2D] nodes to stop simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only [PhysicalBone2D] nodes with those names to stop simulating. + </description> + </method> + </methods> + <members> + <member name="physical_bone_chain_length" type="int" setter="set_physical_bone_chain_length" getter="get_physical_bone_chain_length" default="0"> + The amount of [PhysicalBone2D] nodes linked in this modification. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DStackHolder.xml b/doc/classes/SkeletonModification2DStackHolder.xml new file mode 100644 index 0000000000..313cf81482 --- /dev/null +++ b/doc/classes/SkeletonModification2DStackHolder.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DStackHolder" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that holds and executes a [SkeletonModificationStack2D]. + </brief_description> + <description> + This [SkeletonModification2D] holds a reference to a [SkeletonModificationStack2D], allowing you to use multiple modification stacks on a single [Skeleton2D]. + [b]Note:[/b] The modifications in the held [SkeletonModificationStack2D] will only be executed if their execution mode matches the execution mode of the SkeletonModification2DStackHolder. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_held_modification_stack" qualifiers="const"> + <return type="SkeletonModificationStack2D"> + </return> + <description> + Returns the [SkeletonModificationStack2D] that this modification is holding. + </description> + </method> + <method name="set_held_modification_stack"> + <return type="void"> + </return> + <argument index="0" name="held_modification_stack" type="SkeletonModificationStack2D"> + </argument> + <description> + Sets the [SkeletonModificationStack2D] that this modification is holding. This modification stack will then be executed when this modification is executed. + </description> + </method> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModification2DTwoBoneIK.xml b/doc/classes/SkeletonModification2DTwoBoneIK.xml new file mode 100644 index 0000000000..554515556b --- /dev/null +++ b/doc/classes/SkeletonModification2DTwoBoneIK.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModification2DTwoBoneIK" inherits="SkeletonModification2D" version="4.0"> + <brief_description> + A modification that rotates two bones using the law of cosigns to reach the target. + </brief_description> + <description> + This [SkeletonModification2D] uses an algorithm typically called TwoBoneIK. This algorithm works by leveraging the law of cosigns and the lengths of the bones to figure out what rotation the bones currently have, and what rotation they need to make a complete triangle, where the first bone, the second bone, and the target form the three verticies of the triangle. Because the algorithm works by making a triangle, it can only opperate on two bones. + TwoBoneIK is great for arms, legs, and really any joints that can be represented by just two bones that bend to reach a target. This solver is more lightweight than [SkeletonModification2DFABRIK], but gives similar, natural looking results. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_joint_one_bone2d_node" qualifiers="const"> + <return type="NodePath"> + </return> + <description> + Returns the [Bone2D] node that is being used as the first bone in the TwoBoneIK modification. + </description> + </method> + <method name="get_joint_one_bone_idx" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the index of the [Bone2D] node that is being used as the first bone in the TwoBoneIK modification. + </description> + </method> + <method name="get_joint_two_bone2d_node" qualifiers="const"> + <return type="NodePath"> + </return> + <description> + Returns the [Bone2D] node that is being used as the second bone in the TwoBoneIK modification. + </description> + </method> + <method name="get_joint_two_bone_idx" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the index of the [Bone2D] node that is being used as the second bone in the TwoBoneIK modification. + </description> + </method> + <method name="set_joint_one_bone2d_node"> + <return type="void"> + </return> + <argument index="0" name="bone2d_node" type="NodePath"> + </argument> + <description> + Sets the [Bone2D] node that is being used as the first bone in the TwoBoneIK modification. + </description> + </method> + <method name="set_joint_one_bone_idx"> + <return type="void"> + </return> + <argument index="0" name="bone_idx" type="int"> + </argument> + <description> + Sets the index of the [Bone2D] node that is being used as the first bone in the TwoBoneIK modification. + </description> + </method> + <method name="set_joint_two_bone2d_node"> + <return type="void"> + </return> + <argument index="0" name="bone2d_node" type="NodePath"> + </argument> + <description> + Sets the [Bone2D] node that is being used as the second bone in the TwoBoneIK modification. + </description> + </method> + <method name="set_joint_two_bone_idx"> + <return type="void"> + </return> + <argument index="0" name="bone_idx" type="int"> + </argument> + <description> + Sets the index of the [Bone2D] node that is being used as the second bone in the TwoBoneIK modification. + </description> + </method> + </methods> + <members> + <member name="flip_bend_direction" type="bool" setter="set_flip_bend_direction" getter="get_flip_bend_direction" default="false"> + If [code]true[/code], the bones in the modification will blend outward as opposed to inwards when contracting. If [code]false[/code], the bones will bend inwards when contracting. + </member> + <member name="target_maximum_distance" type="float" setter="set_target_maximum_distance" getter="get_target_maximum_distance" default="0.0"> + The maximum distance the target can be at. If the target is farther than this distance, the modification will solve as if it's at this maximum distance. When set to [code]0[/code], the modification will solve without distance constraints. + </member> + <member name="target_minimum_distance" type="float" setter="set_target_minimum_distance" getter="get_target_minimum_distance" default="0.0"> + The minimum distance the target can be at. If the target is closer than this distance, the modification will solve as if it's at this minimum distance. When set to [code]0[/code], the modification will solve without distance constraints. + </member> + <member name="target_nodepath" type="NodePath" setter="set_target_node" getter="get_target_node" default="NodePath("")"> + The NodePath to the node that is the target for the TwoBoneIK modification. This node is what the modification will use when bending the [Bone2D] nodes. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/SkeletonModificationStack2D.xml b/doc/classes/SkeletonModificationStack2D.xml new file mode 100644 index 0000000000..35b899fe08 --- /dev/null +++ b/doc/classes/SkeletonModificationStack2D.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="SkeletonModificationStack2D" inherits="Resource" version="4.0"> + <brief_description> + A resource that holds a stack of [SkeletonModification2D]s. + </brief_description> + <description> + This resource is used by the Skeleton and holds a stack of [SkeletonModification2D]s. + This controls the order of the modifications and how they are applied. Modification order is especially important for full-body IK setups, as you need to execute the modifications in the correct order to get the desired results. For example, you want to execute a modification on the spine [i]before[/i] the arms on a humanoid skeleton. + This resource also controls how strongly all of the modifications are applied to the [Skeleton2D]. + </description> + <tutorials> + </tutorials> + <methods> + <method name="add_modification"> + <return type="void"> + </return> + <argument index="0" name="modification" type="SkeletonModification2D"> + </argument> + <description> + Adds the passed-in [SkeletonModification2D] to the stack. + </description> + </method> + <method name="delete_modification"> + <return type="void"> + </return> + <argument index="0" name="mod_idx" type="int"> + </argument> + <description> + Deletes the [SkeletonModification2D] at the index position [code]mod_idx[/code], if it exists. + </description> + </method> + <method name="enable_all_modifications"> + <return type="void"> + </return> + <argument index="0" name="enabled" type="bool"> + </argument> + <description> + Enables all [SkeletonModification2D]s in the stack. + </description> + </method> + <method name="execute"> + <return type="void"> + </return> + <argument index="0" name="delta" type="float"> + </argument> + <argument index="1" name="execution_mode" type="int"> + </argument> + <description> + Executes all of the [SkeletonModification2D]s in the stack that use the same execution mode as the passed-in [code]execution_mode[/code], starting from index [code]0[/code] to [member modification_count]. + [b]Note:[/b] The order of the modifications can matter depending on the modifications. For example, modifications on a spine should operate before modifications on the arms in order to get proper results. + </description> + </method> + <method name="get_is_setup" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns a boolean that indiciates whether the modification stack is setup and can execute. + </description> + </method> + <method name="get_modification" qualifiers="const"> + <return type="SkeletonModification2D"> + </return> + <argument index="0" name="mod_idx" type="int"> + </argument> + <description> + Returns the [SkeletonModification2D] at the passed-in index, [code]mod_idx[/code]. + </description> + </method> + <method name="get_skeleton" qualifiers="const"> + <return type="Skeleton2D"> + </return> + <description> + Returns the [Skeleton2D] node that the SkeletonModificationStack2D is bound to. + </description> + </method> + <method name="set_modification"> + <return type="void"> + </return> + <argument index="0" name="mod_idx" type="int"> + </argument> + <argument index="1" name="modification" type="SkeletonModification2D"> + </argument> + <description> + Sets the modification at [code]mod_idx[/code] to the passed-in modification, [code]modification[/code]. + </description> + </method> + <method name="setup"> + <return type="void"> + </return> + <description> + Sets up the modification stack so it can execute. This function should be called by [Skeleton2D] and shouldn't be manually called unless you know what you are doing. + </description> + </method> + </methods> + <members> + <member name="enabled" type="bool" setter="set_enabled" getter="get_enabled" default="false"> + If [code]true[/code], the modification's in the stack will be called. This is handled automatically through the [Skeleton2D] node. + </member> + <member name="modification_count" type="int" setter="set_modification_count" getter="get_modification_count" default="0"> + The number of modifications in the stack. + </member> + <member name="strength" type="float" setter="set_strength" getter="get_strength" default="1.0"> + The interpolation strength of the modifications in stack. A value of [code]0[/code] will make it where the modifications are not applied, a strength of [code]0.5[/code] will be half applied, and a strength of [code]1[/code] will allow the modifications to be fully applied and override the [Skeleton2D] [Bone2D] poses. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/Skin.xml b/doc/classes/Skin.xml index e22feb42f0..f409b6c80c 100644 --- a/doc/classes/Skin.xml +++ b/doc/classes/Skin.xml @@ -12,7 +12,7 @@ </return> <argument index="0" name="bone" type="int"> </argument> - <argument index="1" name="pose" type="Transform"> + <argument index="1" name="pose" type="Transform3D"> </argument> <description> </description> @@ -46,7 +46,7 @@ </description> </method> <method name="get_bind_pose" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="bind_index" type="int"> </argument> @@ -86,7 +86,7 @@ </return> <argument index="0" name="bind_index" type="int"> </argument> - <argument index="1" name="pose" type="Transform"> + <argument index="1" name="pose" type="Transform3D"> </argument> <description> </description> diff --git a/doc/classes/SkinReference.xml b/doc/classes/SkinReference.xml index 8fc163f88d..3f8bc3be82 100644 --- a/doc/classes/SkinReference.xml +++ b/doc/classes/SkinReference.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="SkinReference" inherits="Reference" version="4.0"> +<class name="SkinReference" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/Sprite3D.xml b/doc/classes/Sprite3D.xml index a7d61a6bab..8c4b9e7d10 100644 --- a/doc/classes/Sprite3D.xml +++ b/doc/classes/Sprite3D.xml @@ -39,6 +39,11 @@ Emitted when the [member frame] changes. </description> </signal> + <signal name="texture_changed"> + <description> + Emitted when the [member texture] changes. + </description> + </signal> </signals> <constants> </constants> diff --git a/doc/classes/StaticBody2D.xml b/doc/classes/StaticBody2D.xml index 2a5c1ea6f4..298339d5fc 100644 --- a/doc/classes/StaticBody2D.xml +++ b/doc/classes/StaticBody2D.xml @@ -4,8 +4,11 @@ Static body for 2D physics. </brief_description> <description> - Static body for 2D physics. A StaticBody2D is a body that is not intended to move. It is ideal for implementing objects in the environment, such as walls or platforms. - Additionally, a constant linear or angular velocity can be set for the static body, which will affect colliding bodies as if it were moving (for example, a conveyor belt). + Static body for 2D physics. A static body is a simple body that can't be moved by external forces or contacts. It is ideal for implementing objects in the environment, such as walls or platforms. In contrast to [RigidBody2D], they don't consume any CPU resources as long as they don't move. + They however have extra functionalities to move and affect other bodies: + [b]Constant velocity:[/b] [member constant_linear_velocity] and [member constant_angular_velocity] can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels). + [b]Transform change:[/b] Static bodies can be also moved by code. Unless [member kinematic_motion] is enabled, they are just teleported in this case and don't affect other bodies on their path. + [b]Kinematic motion:[/b] Static bodies can have [member kinematic_motion] enabled to make them kinematic bodies that can be moved by code and push other bodies on their path. </description> <tutorials> </tutorials> @@ -13,10 +16,14 @@ </methods> <members> <member name="constant_angular_velocity" type="float" setter="set_constant_angular_velocity" getter="get_constant_angular_velocity" default="0.0"> - The body's constant angular velocity. This does not rotate the body, but affects colliding bodies, as if it were rotating. + The body's constant angular velocity. This does not rotate the body (unless [member kinematic_motion] is enabled), but affects other bodies that touch it, as if it were rotating. </member> <member name="constant_linear_velocity" type="Vector2" setter="set_constant_linear_velocity" getter="get_constant_linear_velocity" default="Vector2( 0, 0 )"> - The body's constant linear velocity. This does not move the body, but affects colliding bodies, as if it were moving. + The body's constant linear velocity. This does not move the body (unless [member kinematic_motion] is enabled), but affects other bodies that touch it, as if it were moving. + </member> + <member name="kinematic_motion" type="bool" setter="set_kinematic_motion_enabled" getter="is_kinematic_motion_enabled" default="false"> + If [code]true[/code], the body will act the same as a [RigidBody2D] in [constant RigidBody2D.MODE_KINEMATIC] mode. + When the body is moved manually, either from code or from an [AnimationPlayer] (with [member AnimationPlayer.playback_process_mode] set to [code]physics[/code]), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc). </member> <member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override"> The physics material override for the body. diff --git a/doc/classes/StaticBody3D.xml b/doc/classes/StaticBody3D.xml index 63a15cbe1d..5ffbb71522 100644 --- a/doc/classes/StaticBody3D.xml +++ b/doc/classes/StaticBody3D.xml @@ -4,8 +4,11 @@ Static body for 3D physics. </brief_description> <description> - Static body for 3D physics. A static body is a simple body that is not intended to move. In contrast to [RigidBody3D], they don't consume any CPU resources as long as they don't move. - Additionally, a constant linear or angular velocity can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels). + Static body for 3D physics. A static body is a simple body that can't be moved by external forces or contacts. It is ideal for implementing objects in the environment, such as walls or platforms. In contrast to [RigidBody3D], they don't consume any CPU resources as long as they don't move. + They however have extra functionalities to move and affect other bodies: + [b]Constant velocity:[/b] [member constant_linear_velocity] and [member constant_angular_velocity] can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels). + [b]Transform change:[/b] Static bodies can be also moved by code. Unless [member kinematic_motion] is enabled, they are just teleported in this case and don't affect other bodies on their path. + [b]Kinematic motion:[/b] Static bodies can have [member kinematic_motion] enabled to make them kinematic bodies that can be moved by code and push other bodies on their path. </description> <tutorials> <link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link> @@ -16,10 +19,14 @@ </methods> <members> <member name="constant_angular_velocity" type="Vector3" setter="set_constant_angular_velocity" getter="get_constant_angular_velocity" default="Vector3( 0, 0, 0 )"> - The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation. + The body's constant angular velocity. This does not rotate the body (unless [member kinematic_motion] is enabled), but affects other bodies that touch it, as if it were rotating. </member> <member name="constant_linear_velocity" type="Vector3" setter="set_constant_linear_velocity" getter="get_constant_linear_velocity" default="Vector3( 0, 0, 0 )"> - The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement. + The body's constant linear velocity. This does not move the body (unless [member kinematic_motion] is enabled), but affects other bodies that touch it, as if it were moving. + </member> + <member name="kinematic_motion" type="bool" setter="set_kinematic_motion_enabled" getter="is_kinematic_motion_enabled" default="false"> + If [code]true[/code], the body will act the same as a [RigidBody3D] in [constant RigidBody3D.MODE_KINEMATIC] mode. + When the body is moved manually, either from code or from an [AnimationPlayer] (with [member AnimationPlayer.playback_process_mode] set to [code]physics[/code]), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc). </member> <member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override"> The physics material override for the body. diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml index f120103916..5367a572f1 100644 --- a/doc/classes/StreamPeer.xml +++ b/doc/classes/StreamPeer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="StreamPeer" inherits="Reference" version="4.0"> +<class name="StreamPeer" inherits="RefCounted" version="4.0"> <brief_description> Abstraction and base class for stream-based protocols. </brief_description> diff --git a/doc/classes/String.xml b/doc/classes/String.xml index a81defa16c..d0c5f0ea86 100644 --- a/doc/classes/String.xml +++ b/doc/classes/String.xml @@ -275,7 +275,7 @@ Returns a copy of the string with the substring [code]what[/code] inserted at the given position. </description> </method> - <method name="is_abs_path" qualifiers="const"> + <method name="is_absolute_path" qualifiers="const"> <return type="bool"> </return> <description> diff --git a/doc/classes/StyleBoxTexture.xml b/doc/classes/StyleBoxTexture.xml index 895d0c357d..f4a1f1f01d 100644 --- a/doc/classes/StyleBoxTexture.xml +++ b/doc/classes/StyleBoxTexture.xml @@ -127,13 +127,6 @@ The texture to use when drawing this style box. </member> </members> - <signals> - <signal name="texture_changed"> - <description> - Emitted when the stylebox's texture is changed. - </description> - </signal> - </signals> <constants> <constant name="AXIS_STRETCH_MODE_STRETCH" value="0" enum="AxisStretchMode"> Stretch the stylebox's texture. This results in visible distortion unless the texture size matches the stylebox's size perfectly. diff --git a/doc/classes/SurfaceTool.xml b/doc/classes/SurfaceTool.xml index 1195e4aa2b..56b47f4a24 100644 --- a/doc/classes/SurfaceTool.xml +++ b/doc/classes/SurfaceTool.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="SurfaceTool" inherits="Reference" version="4.0"> +<class name="SurfaceTool" inherits="RefCounted" version="4.0"> <brief_description> Helper tool to create geometry. </brief_description> @@ -76,10 +76,10 @@ </argument> <argument index="1" name="surface" type="int"> </argument> - <argument index="2" name="transform" type="Transform"> + <argument index="2" name="transform" type="Transform3D"> </argument> <description> - Append vertices from a given [Mesh] surface onto the current vertex array with specified [Transform]. + Append vertices from a given [Mesh] surface onto the current vertex array with specified [Transform3D]. </description> </method> <method name="begin"> diff --git a/doc/classes/TCPServer.xml b/doc/classes/TCPServer.xml index 28f06ad3ae..7160055c6d 100644 --- a/doc/classes/TCPServer.xml +++ b/doc/classes/TCPServer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="TCPServer" inherits="Reference" version="4.0"> +<class name="TCPServer" inherits="RefCounted" version="4.0"> <brief_description> A TCP server. </brief_description> diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml index 29067b5534..74811318dc 100644 --- a/doc/classes/TextEdit.xml +++ b/doc/classes/TextEdit.xml @@ -128,6 +128,13 @@ Folds the given line, if possible (see [method can_fold]). </description> </method> + <method name="get_caret_draw_pos" qualifiers="const"> + <return type="Vector2"> + </return> + <description> + Gets the caret pixel draw poistion. + </description> + </method> <method name="get_gutter_count" qualifiers="const"> <return type="int"> </return> @@ -315,6 +322,13 @@ Insert the specified text at the cursor position. </description> </method> + <method name="is_caret_visible" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the caret is visible on the screen. + </description> + </method> <method name="is_folded" qualifiers="const"> <return type="bool"> </return> @@ -812,10 +826,6 @@ <description> </description> </signal> - <signal name="request_completion"> - <description> - </description> - </signal> <signal name="symbol_lookup"> <argument index="0" name="symbol" type="String"> </argument> @@ -964,24 +974,6 @@ </theme_item> <theme_item name="code_folding_color" type="Color" default="Color( 0.8, 0.8, 0.8, 0.8 )"> </theme_item> - <theme_item name="completion" type="StyleBox"> - </theme_item> - <theme_item name="completion_background_color" type="Color" default="Color( 0.17, 0.16, 0.2, 1 )"> - </theme_item> - <theme_item name="completion_existing_color" type="Color" default="Color( 0.87, 0.87, 0.87, 0.13 )"> - </theme_item> - <theme_item name="completion_font_color" type="Color" default="Color( 0.67, 0.67, 0.67, 1 )"> - </theme_item> - <theme_item name="completion_lines" type="int" default="7"> - </theme_item> - <theme_item name="completion_max_width" type="int" default="50"> - </theme_item> - <theme_item name="completion_scroll_color" type="Color" default="Color( 1, 1, 1, 1 )"> - </theme_item> - <theme_item name="completion_scroll_width" type="int" default="3"> - </theme_item> - <theme_item name="completion_selected_color" type="Color" default="Color( 0.26, 0.26, 0.27, 1 )"> - </theme_item> <theme_item name="current_line_color" type="Color" default="Color( 0.25, 0.25, 0.26, 0.8 )"> Sets the [Color] of the breakpoints. [member breakpoint_gutter] has to be enabled. </theme_item> diff --git a/doc/classes/TextLine.xml b/doc/classes/TextLine.xml index c21da09edb..ddbae0e977 100644 --- a/doc/classes/TextLine.xml +++ b/doc/classes/TextLine.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="TextLine" inherits="Reference" version="4.0"> +<class name="TextLine" inherits="RefCounted" version="4.0"> <brief_description> Holds a line of text. </brief_description> diff --git a/doc/classes/TextParagraph.xml b/doc/classes/TextParagraph.xml index 8df53b8423..e9afe47ee8 100644 --- a/doc/classes/TextParagraph.xml +++ b/doc/classes/TextParagraph.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="TextParagraph" inherits="Reference" version="4.0"> +<class name="TextParagraph" inherits="RefCounted" version="4.0"> <brief_description> Holds a paragraph of text. </brief_description> diff --git a/doc/classes/TextServer.xml b/doc/classes/TextServer.xml index fe63e434c9..9a96d8699c 100644 --- a/doc/classes/TextServer.xml +++ b/doc/classes/TextServer.xml @@ -976,7 +976,7 @@ </argument> <description> Returns [code]true[/code] if text buffer is configured to display hexadecimal codes in place of invalid characters. - Note: If set to [code]false[/code], nothing is displayed in place of invalid characters. + Note: If set to [code]false[/code], nothing is displayed in place of invalid characters. </description> </method> <method name="shaped_text_get_range" qualifiers="const"> diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml index 88f46e3937..5ac9416b72 100644 --- a/doc/classes/Thread.xml +++ b/doc/classes/Thread.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Thread" inherits="Reference" version="4.0"> +<class name="Thread" inherits="RefCounted" version="4.0"> <brief_description> A unit of execution in a process. </brief_description> diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml index fd52a28486..93d5dd8037 100644 --- a/doc/classes/TileMap.xml +++ b/doc/classes/TileMap.xml @@ -132,6 +132,10 @@ <member name="cell_quadrant_size" type="int" setter="set_quadrant_size" getter="get_quadrant_size" default="16"> The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size. </member> + <member name="show_collision" type="int" setter="set_collision_visibility_mode" getter="get_collision_visibility_mode" enum="TileMap.VisibilityMode" default="0"> + </member> + <member name="show_navigation" type="int" setter="set_navigation_visibility_mode" getter="get_navigation_visibility_mode" enum="TileMap.VisibilityMode" default="0"> + </member> <member name="tile_set" type="TileSet" setter="set_tileset" getter="get_tileset"> The assigned [TileSet]. </member> @@ -144,5 +148,11 @@ </signal> </signals> <constants> + <constant name="VISIBILITY_MODE_DEFAULT" value="0" enum="VisibilityMode"> + </constant> + <constant name="VISIBILITY_MODE_FORCE_HIDE" value="2" enum="VisibilityMode"> + </constant> + <constant name="VISIBILITY_MODE_FORCE_SHOW" value="1" enum="VisibilityMode"> + </constant> </constants> </class> diff --git a/doc/classes/Time.xml b/doc/classes/Time.xml new file mode 100644 index 0000000000..0c7c090e97 --- /dev/null +++ b/doc/classes/Time.xml @@ -0,0 +1,270 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="Time" inherits="Object" version="4.0"> + <brief_description> + Time singleton for working with time. + </brief_description> + <description> + The Time singleton allows converting time between various formats and also getting time information from the system. + This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before [code]1582-10-15[/code] is [code]1582-10-14[/code], not [code]1582-10-04[/code]. The year before 1 AD (aka 1 BC) is number [code]0[/code], with the year before that (2 BC) being [code]-1[/code], etc. + Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually. + [b]Important:[/b] The [code]_from_system[/code] methods use the system clock that the user can manually set. [b]Never use[/b] this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. [b]Always use[/b] [method get_ticks_usec] or [method get_ticks_msec] for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_date_dict_from_system" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <description> + Returns the current date as a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], and [code]dst[/code] (Daylight Savings Time). + The returned values are in the system's local time when [code]utc[/code] is false, otherwise they are in UTC. + </description> + </method> + <method name="get_date_dict_from_unix_time" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <description> + Converts the given Unix timestamp to a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], and [code]weekday[/code]. + </description> + </method> + <method name="get_date_string_from_system" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <description> + Returns the current date as an ISO 8601 date string (YYYY-MM-DD). + The returned values are in the system's local time when [code]utc[/code] is false, otherwise they are in UTC. + </description> + </method> + <method name="get_date_string_from_unix_time" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <description> + Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD). + </description> + </method> + <method name="get_datetime_dict_from_string" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="datetime" type="String"> + </argument> + <argument index="1" name="weekday" type="bool"> + </argument> + <description> + Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], [code]hour[/code], [code]minute[/code], and [code]second[/code]. + If [code]weekday[/code] is false, then the [code]weekday[/code] entry is excluded (the calculation is relatively expensive). + </description> + </method> + <method name="get_datetime_dict_from_system" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <description> + Returns the current date as a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], [code]hour[/code], [code]minute[/code], and [code]second[/code]. + </description> + </method> + <method name="get_datetime_dict_from_unix_time" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <description> + Converts the given Unix timestamp to a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], and [code]weekday[/code]. + The returned Dictionary's values will be the same as the [method get_datetime_dict_from_system] if the Unix timestamp is the current time, with the exception of Daylight Savings Time as it cannot be determined from the epoch. + </description> + </method> + <method name="get_datetime_string_from_dict" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="datetime" type="Dictionary"> + </argument> + <argument index="1" name="use_space" type="bool"> + </argument> + <description> + Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The given dictionary can be populated with the following keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]hour[/code], [code]minute[/code], and [code]second[/code]. Any other entries (including [code]dst[/code]) are ignored. + If the dictionary is empty, [code]0[/code] is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + If [code]use_space[/code] is true, use a space instead of the letter T in the middle. + </description> + </method> + <method name="get_datetime_string_from_system" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <argument index="1" name="use_space" type="bool" default="false"> + </argument> + <description> + Returns the current date and time as a dictionary of keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]weekday[/code], [code]dst[/code] (Daylight Savings Time), [code]hour[/code], [code]minute[/code], and [code]second[/code]. + The returned values are in the system's local time when [code]utc[/code] is false, otherwise they are in UTC. + If [code]use_space[/code] is true, use a space instead of the letter T in the middle. + </description> + </method> + <method name="get_datetime_string_from_unix_time" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <argument index="1" name="use_space" type="bool" default="false"> + </argument> + <description> + Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + If [code]use_space[/code] is true, use a space instead of the letter T in the middle. + </description> + </method> + <method name="get_ticks_msec" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the amount of time passed in milliseconds since the engine started. + </description> + </method> + <method name="get_ticks_usec" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the amount of time passed in microseconds since the engine started. + </description> + </method> + <method name="get_time_dict_from_system" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <description> + Returns the current time as a dictionary of keys: [code]hour[/code], [code]minute[/code], and [code]second[/code]. + The returned values are in the system's local time when [code]utc[/code] is false, otherwise they are in UTC. + </description> + </method> + <method name="get_time_dict_from_unix_time" qualifiers="const"> + <return type="Dictionary"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <description> + Converts the given time to a dictionary of keys: [code]hour[/code], [code]minute[/code], and [code]second[/code]. + </description> + </method> + <method name="get_time_string_from_system" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="utc" type="bool" default="false"> + </argument> + <description> + Returns the current time as an ISO 8601 time string (HH:MM:SS). + The returned values are in the system's local time when [code]utc[/code] is false, otherwise they are in UTC. + </description> + </method> + <method name="get_time_string_from_unix_time" qualifiers="const"> + <return type="String"> + </return> + <argument index="0" name="unix_time_val" type="int"> + </argument> + <description> + Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS). + </description> + </method> + <method name="get_time_zone_from_system" qualifiers="const"> + <return type="Dictionary"> + </return> + <description> + Returns the current time zone as a dictionary of keys: [code]bias[/code] and [code]name[/code]. The [code]bias[/code] value is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC. + </description> + </method> + <method name="get_unix_time_from_datetime_dict" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="datetime" type="Dictionary"> + </argument> + <description> + Converts a dictionary of time values to a Unix timestamp. + The given dictionary can be populated with the following keys: [code]year[/code], [code]month[/code], [code]day[/code], [code]hour[/code], [code]minute[/code], and [code]second[/code]. Any other entries (including [code]dst[/code]) are ignored. + If the dictionary is empty, [code]0[/code] is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + You can pass the output from [method get_datetime_dict_from_unix_time] directly into this function and get the same as what was put in. + </description> + </method> + <method name="get_unix_time_from_datetime_string" qualifiers="const"> + <return type="int"> + </return> + <argument index="0" name="datetime" type="String"> + </argument> + <description> + Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both. + </description> + </method> + <method name="get_unix_time_from_system" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the current Unix timestamp in seconds based on the system time. + </description> + </method> + </methods> + <constants> + <constant name="MONTH_JANUARY" value="1" enum="Month"> + The month of January, represented numerically as [code]01[/code]. + </constant> + <constant name="MONTH_FEBRUARY" value="2" enum="Month"> + The month of February, represented numerically as [code]02[/code]. + </constant> + <constant name="MONTH_MARCH" value="3" enum="Month"> + The month of March, represented numerically as [code]03[/code]. + </constant> + <constant name="MONTH_APRIL" value="4" enum="Month"> + The month of April, represented numerically as [code]04[/code]. + </constant> + <constant name="MONTH_MAY" value="5" enum="Month"> + The month of May, represented numerically as [code]05[/code]. + </constant> + <constant name="MONTH_JUNE" value="6" enum="Month"> + The month of June, represented numerically as [code]06[/code]. + </constant> + <constant name="MONTH_JULY" value="7" enum="Month"> + The month of July, represented numerically as [code]07[/code]. + </constant> + <constant name="MONTH_AUGUST" value="8" enum="Month"> + The month of August, represented numerically as [code]08[/code]. + </constant> + <constant name="MONTH_SEPTEMBER" value="9" enum="Month"> + The month of September, represented numerically as [code]09[/code]. + </constant> + <constant name="MONTH_OCTOBER" value="10" enum="Month"> + The month of October, represented numerically as [code]10[/code]. + </constant> + <constant name="MONTH_NOVEMBER" value="11" enum="Month"> + The month of November, represented numerically as [code]11[/code]. + </constant> + <constant name="MONTH_DECEMBER" value="12" enum="Month"> + The month of December, represented numerically as [code]12[/code]. + </constant> + <constant name="WEEKDAY_SUNDAY" value="0" enum="Weekday"> + The day of the week Sunday, represented numerically as [code]0[/code]. + </constant> + <constant name="WEEKDAY_MONDAY" value="1" enum="Weekday"> + The day of the week Monday, represented numerically as [code]1[/code]. + </constant> + <constant name="WEEKDAY_TUESDAY" value="2" enum="Weekday"> + The day of the week Tuesday, represented numerically as [code]2[/code]. + </constant> + <constant name="WEEKDAY_WEDNESDAY" value="3" enum="Weekday"> + The day of the week Wednesday, represented numerically as [code]3[/code]. + </constant> + <constant name="WEEKDAY_THURSDAY" value="4" enum="Weekday"> + The day of the week Thursday, represented numerically as [code]4[/code]. + </constant> + <constant name="WEEKDAY_FRIDAY" value="5" enum="Weekday"> + The day of the week Friday, represented numerically as [code]5[/code]. + </constant> + <constant name="WEEKDAY_SATURDAY" value="6" enum="Weekday"> + The day of the week Saturday, represented numerically as [code]6[/code]. + </constant> + </constants> +</class> diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml index 6ae7fbcf79..0dbf95376a 100644 --- a/doc/classes/Transform2D.xml +++ b/doc/classes/Transform2D.xml @@ -18,7 +18,7 @@ <return type="Transform2D"> </return> <description> - Constructs a default-initialized [Transform] set to [constant IDENTITY]. + Constructs a default-initialized [Transform2D] set to [constant IDENTITY]. </description> </method> <method name="Transform2D" qualifiers="constructor"> @@ -129,6 +129,16 @@ Returns [code]true[/code] if this transform and [code]transform[/code] are approximately equal, by calling [code]is_equal_approx[/code] on each component. </description> </method> + <method name="looking_at" qualifiers="const"> + <return type="Transform2D"> + </return> + <argument index="0" name="target" type="Vector2" default="Transform2D( 1, 0, 0, 1, 0, 0 )"> + </argument> + <description> + Returns a copy of the transform rotated such that it's rotation on the X-axis points towards the [code]target[/code] position. + Operations take place in global space. + </description> + </method> <method name="operator !=" qualifiers="operator"> <return type="bool"> </return> @@ -138,33 +148,33 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Vector2"> + <return type="PackedVector2Array"> </return> - <argument index="0" name="right" type="Vector2"> + <argument index="0" name="right" type="PackedVector2Array"> </argument> <description> </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Rect2"> + <return type="Transform2D"> </return> - <argument index="0" name="right" type="Rect2"> + <argument index="0" name="right" type="Transform2D"> </argument> <description> </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Transform2D"> + <return type="Rect2"> </return> - <argument index="0" name="right" type="Transform2D"> + <argument index="0" name="right" type="Rect2"> </argument> <description> </description> </method> <method name="operator *" qualifiers="operator"> - <return type="PackedVector2Array"> + <return type="Vector2"> </return> - <argument index="0" name="right" type="PackedVector2Array"> + <argument index="0" name="right" type="Vector2"> </argument> <description> </description> @@ -210,6 +220,15 @@ Scales the transform by the given scale factor, using matrix multiplication. </description> </method> + <method name="set_rotation"> + <return type="void"> + </return> + <argument index="0" name="rotation" type="float"> + </argument> + <description> + Sets the transform's rotation (in radians). + </description> + </method> <method name="translated" qualifiers="const"> <return type="Transform2D"> </return> diff --git a/doc/classes/Transform.xml b/doc/classes/Transform3D.xml index 9d8721e2de..0d49255523 100644 --- a/doc/classes/Transform.xml +++ b/doc/classes/Transform3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="Transform" version="4.0"> +<class name="Transform3D" version="4.0"> <brief_description> 3D transformation (3×4 matrix). </brief_description> @@ -16,35 +16,35 @@ <link title="2.5D Demo">https://godotengine.org/asset-library/asset/583</link> </tutorials> <methods> - <method name="Transform" qualifiers="constructor"> - <return type="Transform"> + <method name="Transform3D" qualifiers="constructor"> + <return type="Transform3D"> </return> <description> - Constructs a default-initialized [Transform] set to [constant IDENTITY]. + Constructs a default-initialized [Transform3D] set to [constant IDENTITY]. </description> </method> - <method name="Transform" qualifiers="constructor"> - <return type="Transform"> + <method name="Transform3D" qualifiers="constructor"> + <return type="Transform3D"> </return> - <argument index="0" name="from" type="Transform"> + <argument index="0" name="from" type="Transform3D"> </argument> <description> - Constructs a [Transform] as a copy of the given [Transform]. + Constructs a [Transform3D] as a copy of the given [Transform3D]. </description> </method> - <method name="Transform" qualifiers="constructor"> - <return type="Transform"> + <method name="Transform3D" qualifiers="constructor"> + <return type="Transform3D"> </return> <argument index="0" name="basis" type="Basis"> </argument> <argument index="1" name="origin" type="Vector3"> </argument> <description> - Constructs a Transform from a [Basis] and [Vector3]. + Constructs a Transform3D from a [Basis] and [Vector3]. </description> </method> - <method name="Transform" qualifiers="constructor"> - <return type="Transform"> + <method name="Transform3D" qualifiers="constructor"> + <return type="Transform3D"> </return> <argument index="0" name="x_axis" type="Vector3"> </argument> @@ -55,29 +55,29 @@ <argument index="3" name="origin" type="Vector3"> </argument> <description> - Constructs a Transform from four [Vector3] values (matrix columns). Each axis corresponds to local basis vectors (some of which may be scaled). + Constructs a Transform3D from four [Vector3] values (matrix columns). Each axis corresponds to local basis vectors (some of which may be scaled). </description> </method> <method name="affine_inverse" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Returns the inverse of the transform, under the assumption that the transformation is composed of rotation, scaling and translation. </description> </method> <method name="interpolate_with" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> - <argument index="0" name="xform" type="Transform"> + <argument index="0" name="xform" type="Transform3D"> </argument> <argument index="1" name="weight" type="float"> </argument> <description> - Interpolates the transform to other Transform by weight amount (on the range of 0.0 to 1.0). + Interpolates the transform to other Transform3D by weight amount (on the range of 0.0 to 1.0). </description> </method> <method name="inverse" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use affine_inverse for transforms with scaling). @@ -86,14 +86,14 @@ <method name="is_equal_approx" qualifiers="const"> <return type="bool"> </return> - <argument index="0" name="xform" type="Transform"> + <argument index="0" name="xform" type="Transform3D"> </argument> <description> Returns [code]true[/code] if this transform and [code]transform[/code] are approximately equal, by calling [code]is_equal_approx[/code] on each component. </description> </method> <method name="looking_at" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="target" type="Vector3"> </argument> @@ -108,7 +108,7 @@ <method name="operator !=" qualifiers="operator"> <return type="bool"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> @@ -122,9 +122,9 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Transform"> + <return type="Transform3D"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> @@ -148,20 +148,20 @@ <method name="operator ==" qualifiers="operator"> <return type="bool"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> </method> <method name="orthonormalized" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors. </description> </method> <method name="rotated" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="axis" type="Vector3"> </argument> @@ -172,7 +172,7 @@ </description> </method> <method name="scaled" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="scale" type="Vector3"> </argument> @@ -181,7 +181,7 @@ </description> </method> <method name="translated" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="offset" type="Vector3"> </argument> @@ -200,17 +200,17 @@ </member> </members> <constants> - <constant name="IDENTITY" value="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> - [Transform] with no translation, rotation or scaling applied. When applied to other data structures, [constant IDENTITY] performs no transformation. + <constant name="IDENTITY" value="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + [Transform3D] with no translation, rotation or scaling applied. When applied to other data structures, [constant IDENTITY] performs no transformation. </constant> - <constant name="FLIP_X" value="Transform( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> - [Transform] with mirroring applied perpendicular to the YZ plane. + <constant name="FLIP_X" value="Transform3D( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + [Transform3D] with mirroring applied perpendicular to the YZ plane. </constant> - <constant name="FLIP_Y" value="Transform( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 )"> - [Transform] with mirroring applied perpendicular to the XZ plane. + <constant name="FLIP_Y" value="Transform3D( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 )"> + [Transform3D] with mirroring applied perpendicular to the XZ plane. </constant> - <constant name="FLIP_Z" value="Transform( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 )"> - [Transform] with mirroring applied perpendicular to the XY plane. + <constant name="FLIP_Z" value="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 )"> + [Transform3D] with mirroring applied perpendicular to the XY plane. </constant> </constants> </class> diff --git a/doc/classes/Tree.xml b/doc/classes/Tree.xml index c31467c67e..fe83bf9c2d 100644 --- a/doc/classes/Tree.xml +++ b/doc/classes/Tree.xml @@ -361,7 +361,7 @@ The number of columns. </member> <member name="drop_mode_flags" type="int" setter="set_drop_mode_flags" getter="get_drop_mode_flags" default="0"> - The drop mode as an OR combination of flags. See [enum DropModeFlags] constants. Once dropping is done, reverts to [constant DROP_MODE_DISABLED]. Setting this during [method Control.can_drop_data] is recommended. + The drop mode as an OR combination of flags. See [enum DropModeFlags] constants. Once dropping is done, reverts to [constant DROP_MODE_DISABLED]. Setting this during [method Control._can_drop_data] is recommended. This controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position. </member> <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="2" /> diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml index 7d37580504..0256d83fea 100644 --- a/doc/classes/TreeItem.xml +++ b/doc/classes/TreeItem.xml @@ -175,6 +175,14 @@ Returns the custom color of column [code]column[/code]. </description> </method> + <method name="get_custom_font" qualifiers="const"> + <return type="Font"> + </return> + <argument index="0" name="column" type="int"> + </argument> + <description> + </description> + </method> <method name="get_expand_right" qualifiers="const"> <return type="bool"> </return> @@ -579,6 +587,16 @@ The [code]callback[/code] should accept two arguments: the [TreeItem] that is drawn and its position and size as a [Rect2]. </description> </method> + <method name="set_custom_font"> + <return type="void"> + </return> + <argument index="0" name="column" type="int"> + </argument> + <argument index="1" name="font" type="Font"> + </argument> + <description> + </description> + </method> <method name="set_editable"> <return type="void"> </return> diff --git a/doc/classes/TriangleMesh.xml b/doc/classes/TriangleMesh.xml index 39bee0c2b3..cfdb6fe33e 100644 --- a/doc/classes/TriangleMesh.xml +++ b/doc/classes/TriangleMesh.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="TriangleMesh" inherits="Reference" version="4.0"> +<class name="TriangleMesh" inherits="RefCounted" version="4.0"> <brief_description> Internal mesh type. </brief_description> diff --git a/doc/classes/UDPServer.xml b/doc/classes/UDPServer.xml index 6f3ccb8a17..5e2906450c 100644 --- a/doc/classes/UDPServer.xml +++ b/doc/classes/UDPServer.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="UDPServer" inherits="Reference" version="4.0"> +<class name="UDPServer" inherits="RefCounted" version="4.0"> <brief_description> Helper class to implement a UDP server. </brief_description> diff --git a/doc/classes/Variant.xml b/doc/classes/Variant.xml index 775bd58bcf..240c1c909f 100644 --- a/doc/classes/Variant.xml +++ b/doc/classes/Variant.xml @@ -5,20 +5,30 @@ </brief_description> <description> In computer programming, a Variant class is a class that is designed to store a variety of other types. Dynamic programming languages like PHP, Lua, JavaScript and GDScript like to use them to store variables' data on the backend. With these Variants, properties are able to change value types freely. - [codeblock] + [codeblocks] + [gdscript] var foo = 2 # foo is dynamically an integer foo = "Now foo is a string!" - foo = Reference.new() # foo is an Object + foo = RefCounted.new() # foo is an Object var bar: int = 2 # bar is a statically typed integer. # bar = "Uh oh! I can't make static variables become a different type!" - [/codeblock] + [/gdscript] + [csharp] + // ... but C# is statically typed. Once a variable has a type it cannot be changed. However you can use the var keyword in methods to let the compiler decide the type automatically. + var foo = 2; // Foo is a 32-bit integer (int). Be cautious, integers in GDScript are 64-bit and the direct C# equivalent is "long". + // foo = "foo was and will always be an integer. It cannot be turned into a string!"; + var boo = "Boo is a string!"; + var ref = new Reference(); // var is especially useful when used together with a constructor. + [/csharp] + [/codeblocks] Godot tracks all scripting API variables within Variants. Without even realizing it, you use Variants all the time. When a particular language enforces its own rules for keeping data typed, then that language is applying its own custom logic over the base Variant scripting API. - GDScript automatically wrap values in them. It keeps all data in plain Variants by default and then optionally enforces custom static typing rules on variable types. - VisualScript tracks properties inside Variants as well, but it also uses static typing. The GUI interface enforces that properties have a particular type that doesn't change over time. - C# is statically typed, but uses the Mono [code]object[/code] type in place of Godot's Variant class when it needs to represent a dynamic value. [code]object[/code] is the Mono runtime's equivalent of the same concept. - The statically-typed language NativeScript C++ does not define a built-in Variant-like class. Godot's GDNative bindings provide their own godot::Variant class for users; Any point at which the C++ code starts interacting with the Godot runtime is a place where you might have to start wrapping data inside Variant objects. The global [method @GlobalScope.typeof] function returns the enumerated value of the Variant type stored in the current variable (see [enum Variant.Type]). - [codeblock] + [codeblocks] + [gdscript] var foo = 2 match typeof(foo): TYPE_NIL: @@ -32,7 +42,19 @@ # Note also that there is not yet any way to get a script's `class_name` string easily. # To fetch that value, you need to dig deeply into a hidden ProjectSettings setting: an Array of Dictionaries called "_global_script_classes". # Open your project.godot file to see it up close. - [/codeblock] + [/gdscript] + [csharp] + int foo = 2; + if (foo == null) + { + GD.Print("foo is null"); + } + if (foo is int) + { + GD.Print("foo is an integer"); + } + [/csharp] + [/codeblocks] A Variant takes up only 20 bytes and can store almost any engine datatype inside of it. Variants are rarely used to hold information for long periods of time. Instead, they are used mainly for communication, editing, serialization and moving data around. Godot has specifically invested in making its Variant class as flexible as possible; so much so that it is used for a multitude of operations to facilitate communication between all of Godot's systems. A Variant: diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index 94d4b1a903..1390a5e45b 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -110,13 +110,15 @@ Returns the vector with all components rounded up (towards positive infinity). </description> </method> - <method name="clamped" qualifiers="const"> + <method name="clamp" qualifiers="const"> <return type="Vector2"> </return> - <argument index="0" name="length" type="float"> + <argument index="0" name="min" type="Vector2"> + </argument> + <argument index="1" name="max" type="Vector2"> </argument> <description> - Returns the vector with a maximum length by limiting its length to [code]length[/code]. + Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component. </description> </method> <method name="cross" qualifiers="const"> @@ -232,6 +234,15 @@ Returns the result of the linear interpolation between this vector and [code]to[/code] by amount [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. </description> </method> + <method name="limit_length" qualifiers="const"> + <return type="Vector2"> + </return> + <argument index="0" name="length" type="float" default="1.0"> + </argument> + <description> + Returns the vector with a maximum length by limiting its length to [code]length[/code]. + </description> + </method> <method name="move_toward" qualifiers="const"> <return type="Vector2"> </return> diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml index b38b968ba3..6efb52b712 100644 --- a/doc/classes/Vector2i.xml +++ b/doc/classes/Vector2i.xml @@ -64,6 +64,17 @@ Returns the ratio of [member x] to [member y]. </description> </method> + <method name="clamp" qualifiers="const"> + <return type="Vector2i"> + </return> + <argument index="0" name="min" type="Vector2i"> + </argument> + <argument index="1" name="max" type="Vector2i"> + </argument> + <description> + Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component. + </description> + </method> <method name="operator !=" qualifiers="operator"> <return type="bool"> </return> diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index 0a86369506..b6effd441b 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -87,6 +87,17 @@ Returns a new vector with all components rounded up (towards positive infinity). </description> </method> + <method name="clamp" qualifiers="const"> + <return type="Vector3"> + </return> + <argument index="0" name="min" type="Vector3"> + </argument> + <argument index="1" name="max" type="Vector3"> + </argument> + <description> + Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component. + </description> + </method> <method name="cross" qualifiers="const"> <return type="Vector3"> </return> @@ -207,6 +218,15 @@ Returns the result of the linear interpolation between this vector and [code]to[/code] by amount [code]weight[/code]. [code]weight[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. </description> </method> + <method name="limit_length" qualifiers="const"> + <return type="Vector3"> + </return> + <argument index="0" name="length" type="float" default="1.0"> + </argument> + <description> + Returns the vector with a maximum length by limiting its length to [code]length[/code]. + </description> + </method> <method name="max_axis" qualifiers="const"> <return type="int"> </return> @@ -266,7 +286,7 @@ <method name="operator *" qualifiers="operator"> <return type="Vector3"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> </description> @@ -274,7 +294,7 @@ <method name="operator *" qualifiers="operator"> <return type="Vector3"> </return> - <argument index="0" name="right" type="Transform"> + <argument index="0" name="right" type="Transform3D"> </argument> <description> </description> diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml index ea5945f5b7..6e8a34b692 100644 --- a/doc/classes/Vector3i.xml +++ b/doc/classes/Vector3i.xml @@ -58,6 +58,17 @@ <description> </description> </method> + <method name="clamp" qualifiers="const"> + <return type="Vector3i"> + </return> + <argument index="0" name="min" type="Vector3i"> + </argument> + <argument index="1" name="max" type="Vector3i"> + </argument> + <description> + Returns a new vector with all components clamped between the components of [code]min[/code] and [code]max[/code], by running [method @GlobalScope.clamp] on each component. + </description> + </method> <method name="max_axis" qualifiers="const"> <return type="int"> </return> diff --git a/doc/classes/VelocityTracker3D.xml b/doc/classes/VelocityTracker3D.xml index 98f7533c76..2d5e3a4d30 100644 --- a/doc/classes/VelocityTracker3D.xml +++ b/doc/classes/VelocityTracker3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="VelocityTracker3D" inherits="Reference" version="4.0"> +<class name="VelocityTracker3D" inherits="RefCounted" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoPlayer.xml index d905ce4054..12558ebbbc 100644 --- a/doc/classes/VideoPlayer.xml +++ b/doc/classes/VideoPlayer.xml @@ -60,7 +60,7 @@ <member name="buffering_msec" type="int" setter="set_buffering_msec" getter="get_buffering_msec" default="500"> Amount of time in milliseconds to store in buffer while playing. </member> - <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="@"Master""> + <member name="bus" type="StringName" setter="set_bus" getter="get_bus" default="&"Master""> Audio bus to use for sound playback. </member> <member name="expand" type="bool" setter="set_expand" getter="has_expand" default="true"> diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml index 1c33274cb0..96d63b27ad 100644 --- a/doc/classes/Viewport.xml +++ b/doc/classes/Viewport.xml @@ -81,10 +81,16 @@ <description> Returns the viewport's texture. [b]Note:[/b] Due to the way OpenGL works, the resulting [ViewportTexture] is flipped vertically. You can use [method Image.flip_y] on the result of [method Texture2D.get_image] to flip it back, for example: - [codeblock] + [codeblocks] + [gdscript] var img = get_viewport().get_texture().get_image() img.flip_y() - [/codeblock] + [/gdscript] + [csharp] + Image img = GetViewport().GetTexture().GetImage(); + img.FlipY(); + [/csharp] + [/codeblocks] </description> </method> <method name="get_viewport_rid" qualifiers="const"> @@ -105,7 +111,7 @@ <return type="Variant"> </return> <description> - Returns the drag data from the GUI, that was previously returned by [method Control.get_drag_data]. + Returns the drag data from the GUI, that was previously returned by [method Control._get_drag_data]. </description> </method> <method name="gui_is_dragging" qualifiers="const"> @@ -382,14 +388,14 @@ </constant> <constant name="DEBUG_DRAW_NORMAL_BUFFER" value="5" enum="DebugDraw"> </constant> - <constant name="DEBUG_DRAW_GI_PROBE_ALBEDO" value="6" enum="DebugDraw"> - Objects are displayed with only the albedo value from [GIProbe]s. + <constant name="DEBUG_DRAW_VOXEL_GI_ALBEDO" value="6" enum="DebugDraw"> + Objects are displayed with only the albedo value from [VoxelGI]s. </constant> - <constant name="DEBUG_DRAW_GI_PROBE_LIGHTING" value="7" enum="DebugDraw"> - Objects are displayed with only the lighting value from [GIProbe]s. + <constant name="DEBUG_DRAW_VOXEL_GI_LIGHTING" value="7" enum="DebugDraw"> + Objects are displayed with only the lighting value from [VoxelGI]s. </constant> - <constant name="DEBUG_DRAW_GI_PROBE_EMISSION" value="8" enum="DebugDraw"> - Objects are displayed with only the emission color from [GIProbe]s. + <constant name="DEBUG_DRAW_VOXEL_GI_EMISSION" value="8" enum="DebugDraw"> + Objects are displayed with only the emission color from [VoxelGI]s. </constant> <constant name="DEBUG_DRAW_SHADOW_ATLAS" value="9" enum="DebugDraw"> Draws the shadow atlas that stores shadows from [OmniLight3D]s and [SpotLight3D]s in the upper left quadrant of the [Viewport]. diff --git a/doc/classes/VisualInstance3D.xml b/doc/classes/VisualInstance3D.xml index 01d569d9c8..2a12254b71 100644 --- a/doc/classes/VisualInstance3D.xml +++ b/doc/classes/VisualInstance3D.xml @@ -44,7 +44,7 @@ </return> <description> Returns the transformed [AABB] (also known as the bounding box) for this [VisualInstance3D]. - Transformed in this case means the [AABB] plus the position, rotation, and scale of the [Node3D]'s [Transform]. See also [method get_aabb]. + Transformed in this case means the [AABB] plus the position, rotation, and scale of the [Node3D]'s [Transform3D]. See also [method get_aabb]. </description> </method> <method name="set_base"> diff --git a/doc/classes/VisualShader.xml b/doc/classes/VisualShader.xml index ff00a848b9..775ac88eff 100644 --- a/doc/classes/VisualShader.xml +++ b/doc/classes/VisualShader.xml @@ -222,15 +222,19 @@ <constant name="TYPE_LIGHT" value="2" enum="Type"> A shader for light calculations. </constant> - <constant name="TYPE_EMIT" value="3" enum="Type"> + <constant name="TYPE_START" value="3" enum="Type"> </constant> <constant name="TYPE_PROCESS" value="4" enum="Type"> </constant> - <constant name="TYPE_END" value="5" enum="Type"> + <constant name="TYPE_COLLIDE" value="5" enum="Type"> </constant> - <constant name="TYPE_SKY" value="6" enum="Type"> + <constant name="TYPE_START_CUSTOM" value="6" enum="Type"> </constant> - <constant name="TYPE_MAX" value="7" enum="Type"> + <constant name="TYPE_PROCESS_CUSTOM" value="7" enum="Type"> + </constant> + <constant name="TYPE_SKY" value="8" enum="Type"> + </constant> + <constant name="TYPE_MAX" value="9" enum="Type"> Represents the size of the [enum Type] enum. </constant> <constant name="NODE_ID_INVALID" value="-1"> diff --git a/doc/classes/VisualShaderNode.xml b/doc/classes/VisualShaderNode.xml index 6327ab534f..9a74f2322e 100644 --- a/doc/classes/VisualShaderNode.xml +++ b/doc/classes/VisualShaderNode.xml @@ -9,6 +9,13 @@ <link title="VisualShaders">https://docs.godotengine.org/en/latest/tutorials/shading/visual_shaders.html</link> </tutorials> <methods> + <method name="clear_default_input_values"> + <return type="void"> + </return> + <description> + Clears the default input ports value. + </description> + </method> <method name="get_default_input_values" qualifiers="const"> <return type="Array"> </return> @@ -25,6 +32,15 @@ Returns the default value of the input [code]port[/code]. </description> </method> + <method name="remove_input_port_default_value"> + <return type="void"> + </return> + <argument index="0" name="port" type="int"> + </argument> + <description> + Removes the default value of the input [code]port[/code]. + </description> + </method> <method name="set_default_input_values"> <return type="void"> </return> diff --git a/doc/classes/VisualShaderNodeDeterminant.xml b/doc/classes/VisualShaderNodeDeterminant.xml index 6b042f6172..06b05addfa 100644 --- a/doc/classes/VisualShaderNodeDeterminant.xml +++ b/doc/classes/VisualShaderNodeDeterminant.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeDeterminant" inherits="VisualShaderNode" version="4.0"> <brief_description> - Calculates the determinant of a [Transform] within the visual shader graph. + Calculates the determinant of a [Transform3D] within the visual shader graph. </brief_description> <description> Translates to [code]determinant(x)[/code] in the shader language. diff --git a/doc/classes/VisualShaderNodeParticleAccelerator.xml b/doc/classes/VisualShaderNodeParticleAccelerator.xml new file mode 100644 index 0000000000..82aae1df63 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleAccelerator.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleAccelerator" inherits="VisualShaderNodeOutput" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="VisualShaderNodeParticleAccelerator.Mode" default="0"> + </member> + </members> + <constants> + <constant name="MODE_LINEAR" value="0" enum="Mode"> + </constant> + <constant name="MODE_RADIAL" value="1" enum="Mode"> + </constant> + <constant name="MODE_TANGENTIAL" value="2" enum="Mode"> + </constant> + <constant name="MODE_MAX" value="3" enum="Mode"> + </constant> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleBoxEmitter.xml b/doc/classes/VisualShaderNodeParticleBoxEmitter.xml new file mode 100644 index 0000000000..af33b285d2 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleBoxEmitter.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleBoxEmitter" inherits="VisualShaderNodeParticleEmitter" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleConeVelocity.xml b/doc/classes/VisualShaderNodeParticleConeVelocity.xml new file mode 100644 index 0000000000..7a40c2a7d0 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleConeVelocity.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleConeVelocity" inherits="VisualShaderNode" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleEmit.xml b/doc/classes/VisualShaderNodeParticleEmit.xml new file mode 100644 index 0000000000..120b12d643 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleEmit.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleEmit" inherits="VisualShaderNode" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="flags" type="int" setter="set_flags" getter="get_flags" enum="VisualShaderNodeParticleEmit.EmitFlags" default="31"> + </member> + </members> + <constants> + <constant name="EMIT_FLAG_POSITION" value="1" enum="EmitFlags"> + </constant> + <constant name="EMIT_FLAG_ROT_SCALE" value="2" enum="EmitFlags"> + </constant> + <constant name="EMIT_FLAG_VELOCITY" value="4" enum="EmitFlags"> + </constant> + <constant name="EMIT_FLAG_COLOR" value="8" enum="EmitFlags"> + </constant> + <constant name="EMIT_FLAG_CUSTOM" value="16" enum="EmitFlags"> + </constant> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleEmitter.xml b/doc/classes/VisualShaderNodeParticleEmitter.xml new file mode 100644 index 0000000000..3a25fc1c7f --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleEmitter.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleEmitter" inherits="VisualShaderNode" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml b/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml new file mode 100644 index 0000000000..89a53699c9 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleMultiplyByAxisAngle.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleMultiplyByAxisAngle" inherits="VisualShaderNode" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="degrees_mode" type="bool" setter="set_degrees_mode" getter="is_degrees_mode" default="true"> + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleOutput.xml b/doc/classes/VisualShaderNodeParticleOutput.xml new file mode 100644 index 0000000000..c8fc66f2ff --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleOutput.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleOutput" inherits="VisualShaderNodeOutput" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleRandomness.xml b/doc/classes/VisualShaderNodeParticleRandomness.xml new file mode 100644 index 0000000000..f19723a663 --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleRandomness.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleRandomness" inherits="VisualShaderNode" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="op_type" type="int" setter="set_op_type" getter="get_op_type" enum="VisualShaderNodeParticleRandomness.OpType" default="0"> + </member> + </members> + <constants> + <constant name="OP_TYPE_SCALAR" value="0" enum="OpType"> + </constant> + <constant name="OP_TYPE_VECTOR" value="1" enum="OpType"> + </constant> + <constant name="OP_TYPE_MAX" value="2" enum="OpType"> + </constant> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleRingEmitter.xml b/doc/classes/VisualShaderNodeParticleRingEmitter.xml new file mode 100644 index 0000000000..ee3fbe7faf --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleRingEmitter.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleRingEmitter" inherits="VisualShaderNodeParticleEmitter" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeParticleSphereEmitter.xml b/doc/classes/VisualShaderNodeParticleSphereEmitter.xml new file mode 100644 index 0000000000..d43ac518cf --- /dev/null +++ b/doc/classes/VisualShaderNodeParticleSphereEmitter.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeParticleSphereEmitter" inherits="VisualShaderNodeParticleEmitter" version="4.0"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeTransformCompose.xml b/doc/classes/VisualShaderNodeTransformCompose.xml index 41762b0099..b82ce9bdd8 100644 --- a/doc/classes/VisualShaderNodeTransformCompose.xml +++ b/doc/classes/VisualShaderNodeTransformCompose.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformCompose" inherits="VisualShaderNode" version="4.0"> <brief_description> - Composes a [Transform] from four [Vector3]s within the visual shader graph. + Composes a [Transform3D] from four [Vector3]s within the visual shader graph. </brief_description> <description> Creates a 4x4 transform matrix using four vectors of type [code]vec3[/code]. Each vector is one row in the matrix and the last column is a [code]vec4(0, 0, 0, 1)[/code]. diff --git a/doc/classes/VisualShaderNodeTransformConstant.xml b/doc/classes/VisualShaderNodeTransformConstant.xml index b8f054e914..550ed829c9 100644 --- a/doc/classes/VisualShaderNodeTransformConstant.xml +++ b/doc/classes/VisualShaderNodeTransformConstant.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformConstant" inherits="VisualShaderNodeConstant" version="4.0"> <brief_description> - A [Transform] constant for use within the visual shader graph. + A [Transform3D] constant for use within the visual shader graph. </brief_description> <description> - A constant [Transform], which can be used as an input node. + A constant [Transform3D], which can be used as an input node. </description> <tutorials> </tutorials> <methods> </methods> <members> - <member name="constant" type="Transform" setter="set_constant" getter="get_constant" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> - A [Transform] constant which represents the state of this node. + <member name="constant" type="Transform3D" setter="set_constant" getter="get_constant" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + A [Transform3D] constant which represents the state of this node. </member> </members> <constants> diff --git a/doc/classes/VisualShaderNodeTransformDecompose.xml b/doc/classes/VisualShaderNodeTransformDecompose.xml index c8d893db00..b815efc67a 100644 --- a/doc/classes/VisualShaderNodeTransformDecompose.xml +++ b/doc/classes/VisualShaderNodeTransformDecompose.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformDecompose" inherits="VisualShaderNode" version="4.0"> <brief_description> - Decomposes a [Transform] into four [Vector3]s within the visual shader graph. + Decomposes a [Transform3D] into four [Vector3]s within the visual shader graph. </brief_description> <description> Takes a 4x4 transform matrix and decomposes it into four [code]vec3[/code] values, one from each row of the matrix. diff --git a/doc/classes/VisualShaderNodeTransformFunc.xml b/doc/classes/VisualShaderNodeTransformFunc.xml index d0b5c5129d..41a58e1458 100644 --- a/doc/classes/VisualShaderNodeTransformFunc.xml +++ b/doc/classes/VisualShaderNodeTransformFunc.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformFunc" inherits="VisualShaderNode" version="4.0"> <brief_description> - Computes a [Transform] function within the visual shader graph. + Computes a [Transform3D] function within the visual shader graph. </brief_description> <description> - Computes an inverse or transpose function on the provided [Transform]. + Computes an inverse or transpose function on the provided [Transform3D]. </description> <tutorials> </tutorials> @@ -17,10 +17,10 @@ </members> <constants> <constant name="FUNC_INVERSE" value="0" enum="Function"> - Perform the inverse operation on the [Transform] matrix. + Perform the inverse operation on the [Transform3D] matrix. </constant> <constant name="FUNC_TRANSPOSE" value="1" enum="Function"> - Perform the transpose operation on the [Transform] matrix. + Perform the transpose operation on the [Transform3D] matrix. </constant> </constants> </class> diff --git a/doc/classes/VisualShaderNodeTransformMult.xml b/doc/classes/VisualShaderNodeTransformMult.xml index 02b6e0cd1c..f26f60a1f3 100644 --- a/doc/classes/VisualShaderNodeTransformMult.xml +++ b/doc/classes/VisualShaderNodeTransformMult.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformMult" inherits="VisualShaderNode" version="4.0"> <brief_description> - Multiplies [Transform] by [Transform] within the visual shader graph. + Multiplies [Transform3D] by [Transform3D] within the visual shader graph. </brief_description> <description> A multiplication operation on two transforms (4x4 matrices), with support for different multiplication operators. diff --git a/doc/classes/VisualShaderNodeTransformUniform.xml b/doc/classes/VisualShaderNodeTransformUniform.xml index ff6246618d..1f1cc4b630 100644 --- a/doc/classes/VisualShaderNodeTransformUniform.xml +++ b/doc/classes/VisualShaderNodeTransformUniform.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformUniform" inherits="VisualShaderNodeUniform" version="4.0"> <brief_description> - A [Transform] uniform for use within the visual shader graph. + A [Transform3D] uniform for use within the visual shader graph. </brief_description> <description> Translated to [code]uniform mat4[/code] in the shader language. @@ -11,7 +11,7 @@ <methods> </methods> <members> - <member name="default_value" type="Transform" setter="set_default_value" getter="get_default_value" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> + <member name="default_value" type="Transform3D" setter="set_default_value" getter="get_default_value" default="Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )"> A default value to be assigned within the shader. </member> <member name="default_value_enabled" type="bool" setter="set_default_value_enabled" getter="is_default_value_enabled" default="false"> diff --git a/doc/classes/VisualShaderNodeTransformVecMult.xml b/doc/classes/VisualShaderNodeTransformVecMult.xml index 3d5f87f727..2c9c115d9c 100644 --- a/doc/classes/VisualShaderNodeTransformVecMult.xml +++ b/doc/classes/VisualShaderNodeTransformVecMult.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="VisualShaderNodeTransformVecMult" inherits="VisualShaderNode" version="4.0"> <brief_description> - Multiplies a [Transform] and a [Vector3] within the visual shader graph. + Multiplies a [Transform3D] and a [Vector3] within the visual shader graph. </brief_description> <description> A multiplication operation on a transform (4x4 matrix) and a vector, with support for different multiplication operators. diff --git a/doc/classes/VisualShaderNodeUVFunc.xml b/doc/classes/VisualShaderNodeUVFunc.xml new file mode 100644 index 0000000000..042644feb0 --- /dev/null +++ b/doc/classes/VisualShaderNodeUVFunc.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeUVFunc" inherits="VisualShaderNode" version="4.0"> + <brief_description> + Contains functions to modify texture coordinates ([code]uv[/code]) to be used within the visual shader graph. + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeUVFunc.Function" default="0"> + A function to be applied to the texture coordinates. See [enum Function] for options. + </member> + </members> + <constants> + <constant name="FUNC_PANNING" value="0" enum="Function"> + Translates [code]uv[/code] by using [code]scale[/code] and [code]offset[/code] values using the following formula: [code]uv = uv + offset * scale[/code]. [code]uv[/code] port is connected to [code]UV[/code] built-in by default. + </constant> + <constant name="FUNC_SCALING" value="1" enum="Function"> + Scales [code]uv[/uv] by using [code]scale[/code] and [code]pivot[/code] values using the following formula: [code]uv = (uv - pivot) * scale + pivot[/code]. [code]uv[/code] port is connected to [code]UV[/code] built-in by default. + </constant> + <constant name="FUNC_MAX" value="2" enum="Function"> + Represents the size of the [enum Function] enum. + </constant> + </constants> +</class> diff --git a/doc/classes/GIProbe.xml b/doc/classes/VoxelGI.xml index 4f56d1ad3e..fa5035349e 100644 --- a/doc/classes/GIProbe.xml +++ b/doc/classes/VoxelGI.xml @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GIProbe" inherits="VisualInstance3D" version="4.0"> +<class name="VoxelGI" inherits="VisualInstance3D" version="4.0"> <brief_description> Real-time global illumination (GI) probe. </brief_description> <description> - [GIProbe]s are used to provide high-quality real-time indirect light to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. [GIProbe]s need to be baked before using, however, once baked, dynamic objects will receive light from them. Further, lights can be fully dynamic or baked. - Having [GIProbe]s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the [ProjectSettings] using [member ProjectSettings.rendering/global_illumination/gi_probes/quality]. + [VoxelGI]s are used to provide high-quality real-time indirect light to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. [VoxelGI]s need to be baked before using, however, once baked, dynamic objects will receive light from them. Further, lights can be fully dynamic or baked. + Having [VoxelGI]s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the [ProjectSettings] using [member ProjectSettings.rendering/global_illumination/voxel_gi/quality]. [b]Note:[/b] Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. </description> <tutorials> - <link title="GI probes">https://docs.godotengine.org/en/latest/tutorials/3d/gi_probes.html</link> + <link title="GI probes">https://docs.godotengine.org/en/latest/tutorials/3d/voxel_gi.html</link> <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> </tutorials> <methods> @@ -21,7 +21,7 @@ <argument index="1" name="create_visual_debug" type="bool" default="false"> </argument> <description> - Bakes the effect from all [GeometryInstance3D]s marked with [constant GeometryInstance3D.GI_MODE_BAKED] and [Light3D]s marked with either [constant Light3D.BAKE_DYNAMIC] or [constant Light3D.BAKE_STATIC]. If [code]create_visual_debug[/code] is [code]true[/code], after baking the light, this will generate a [MultiMesh] that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the [GIProbe]'s data and debug any issues that may be occurring. + Bakes the effect from all [GeometryInstance3D]s marked with [constant GeometryInstance3D.GI_MODE_BAKED] and [Light3D]s marked with either [constant Light3D.BAKE_DYNAMIC] or [constant Light3D.BAKE_STATIC]. If [code]create_visual_debug[/code] is [code]true[/code], after baking the light, this will generate a [MultiMesh] that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the [VoxelGI]'s data and debug any issues that may be occurring. </description> </method> <method name="debug_bake"> @@ -33,14 +33,14 @@ </method> </methods> <members> - <member name="data" type="GIProbeData" setter="set_probe_data" getter="get_probe_data"> - The [GIProbeData] resource that holds the data for this [GIProbe]. + <member name="data" type="VoxelGIData" setter="set_probe_data" getter="get_probe_data"> + The [VoxelGIData] resource that holds the data for this [VoxelGI]. </member> <member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3( 10, 10, 10 )"> - The size of the area covered by the [GIProbe]. If you make the extents larger without increasing the subdivisions with [member subdiv], the size of each cell will increase and result in lower detailed lighting. + The size of the area covered by the [VoxelGI]. If you make the extents larger without increasing the subdivisions with [member subdiv], the size of each cell will increase and result in lower detailed lighting. </member> - <member name="subdiv" type="int" setter="set_subdiv" getter="get_subdiv" enum="GIProbe.Subdiv" default="1"> - Number of times to subdivide the grid that the [GIProbe] operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance. + <member name="subdiv" type="int" setter="set_subdiv" getter="get_subdiv" enum="VoxelGI.Subdiv" default="1"> + Number of times to subdivide the grid that the [VoxelGI] operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance. </member> </members> <constants> diff --git a/doc/classes/GIProbeData.xml b/doc/classes/VoxelGIData.xml index 693df8f819..88a0411e2b 100644 --- a/doc/classes/GIProbeData.xml +++ b/doc/classes/VoxelGIData.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GIProbeData" inherits="Resource" version="4.0"> +<class name="VoxelGIData" inherits="Resource" version="4.0"> <brief_description> </brief_description> <description> @@ -11,7 +11,7 @@ <method name="allocate"> <return type="void"> </return> - <argument index="0" name="to_cell_xform" type="Transform"> + <argument index="0" name="to_cell_xform" type="Transform3D"> </argument> <argument index="1" name="aabb" type="AABB"> </argument> @@ -59,7 +59,7 @@ </description> </method> <method name="get_to_cell_xform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> </description> diff --git a/doc/classes/WeakRef.xml b/doc/classes/WeakRef.xml index 4140df5828..6c9a7de67f 100644 --- a/doc/classes/WeakRef.xml +++ b/doc/classes/WeakRef.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="WeakRef" inherits="Reference" version="4.0"> +<class name="WeakRef" inherits="RefCounted" version="4.0"> <brief_description> Holds an [Object], but does not contribute to the reference count if the object is a reference. </brief_description> <description> - A weakref can hold a [Reference], without contributing to the reference counter. A weakref can be created from an [Object] using [method @GlobalScope.weakref]. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released. + A weakref can hold a [RefCounted], without contributing to the reference counter. A weakref can be created from an [Object] using [method @GlobalScope.weakref]. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released. </description> <tutorials> </tutorials> diff --git a/doc/classes/Window.xml b/doc/classes/Window.xml index 37709753bc..9c320747d1 100644 --- a/doc/classes/Window.xml +++ b/doc/classes/Window.xml @@ -340,7 +340,7 @@ </member> <member name="theme" type="Theme" setter="set_theme" getter="get_theme"> </member> - <member name="theme_custom_type" type="StringName" setter="set_theme_custom_type" getter="get_theme_custom_type" default="@"""> + <member name="theme_custom_type" type="StringName" setter="set_theme_custom_type" getter="get_theme_custom_type" default="&"""> </member> <member name="title" type="String" setter="set_title" getter="get_title" default=""""> </member> diff --git a/doc/classes/XMLParser.xml b/doc/classes/XMLParser.xml index 2849ea62ab..ab5c58c51c 100644 --- a/doc/classes/XMLParser.xml +++ b/doc/classes/XMLParser.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="XMLParser" inherits="Reference" version="4.0"> +<class name="XMLParser" inherits="RefCounted" version="4.0"> <brief_description> Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/XML]XML[/url] files. </brief_description> diff --git a/doc/classes/XRInterface.xml b/doc/classes/XRInterface.xml index 034cb51be3..fec98007c3 100644 --- a/doc/classes/XRInterface.xml +++ b/doc/classes/XRInterface.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="XRInterface" inherits="Reference" version="4.0"> +<class name="XRInterface" inherits="RefCounted" version="4.0"> <brief_description> Base class for an AR/VR interface implementation. </brief_description> @@ -46,6 +46,13 @@ If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking. </description> </method> + <method name="get_view_count"> + <return type="int"> + </return> + <description> + Returns the number of views that need to be rendered for this device. 1 for Monoscopic, 2 for Stereoscopic. + </description> + </method> <method name="initialize"> <return type="bool"> </return> @@ -57,13 +64,6 @@ While currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD. </description> </method> - <method name="is_stereo"> - <return type="bool"> - </return> - <description> - Returns [code]true[/code] if the current output of this interface is in stereo. - </description> - </method> <method name="uninitialize"> <return type="void"> </return> diff --git a/doc/classes/XRPositionalTracker.xml b/doc/classes/XRPositionalTracker.xml index 5274d952fd..cd8cb71cd9 100644 --- a/doc/classes/XRPositionalTracker.xml +++ b/doc/classes/XRPositionalTracker.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="XRPositionalTracker" inherits="Reference" version="4.0"> +<class name="XRPositionalTracker" inherits="RefCounted" version="4.0"> <brief_description> A tracked object. </brief_description> @@ -69,7 +69,7 @@ </description> </method> <method name="get_transform" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <argument index="0" name="adjust_by_reference_frame" type="bool"> </argument> diff --git a/doc/classes/XRServer.xml b/doc/classes/XRServer.xml index d0edf91fed..149e177700 100644 --- a/doc/classes/XRServer.xml +++ b/doc/classes/XRServer.xml @@ -63,7 +63,7 @@ </description> </method> <method name="get_hmd_transform"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Returns the primary interface's transformation. @@ -96,7 +96,7 @@ <return type="int"> </return> <description> - Returns the absolute timestamp (in μs) of the last [XRServer] commit of the AR/VR eyes to [RenderingServer]. The value comes from an internal call to [method OS.get_ticks_usec]. + Returns the absolute timestamp (in μs) of the last [XRServer] commit of the AR/VR eyes to [RenderingServer]. The value comes from an internal call to [method Time.get_ticks_usec]. </description> </method> <method name="get_last_frame_usec"> @@ -110,11 +110,11 @@ <return type="int"> </return> <description> - Returns the absolute timestamp (in μs) of the last [XRServer] process callback. The value comes from an internal call to [method OS.get_ticks_usec]. + Returns the absolute timestamp (in μs) of the last [XRServer] process callback. The value comes from an internal call to [method Time.get_ticks_usec]. </description> </method> <method name="get_reference_frame" qualifiers="const"> - <return type="Transform"> + <return type="Transform3D"> </return> <description> Returns the reference frame transform. Mostly used internally and exposed for GDNative build interfaces. diff --git a/doc/classes/YSort.xml b/doc/classes/YSort.xml deleted file mode 100644 index 4ef6a4b4ec..0000000000 --- a/doc/classes/YSort.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="YSort" inherits="Node2D" version="4.0"> - <brief_description> - Sort all child nodes based on their Y positions. - </brief_description> - <description> - Sort all child nodes based on their Y positions. The child node must inherit from [CanvasItem] for it to be sorted. Nodes that have a higher Y position will be drawn later, so they will appear on top of nodes that have a lower Y position. - Nesting of YSort nodes is possible. Children YSort nodes will be sorted in the same space as the parent YSort, allowing to better organize a scene or divide it in multiple ones, yet keep the unique sorting. - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <members> - <member name="sort_enabled" type="bool" setter="set_sort_enabled" getter="is_sort_enabled" default="true"> - If [code]true[/code], child nodes are sorted, otherwise sorting is disabled. - </member> - </members> - <constants> - </constants> -</class> diff --git a/doc/classes/float.xml b/doc/classes/float.xml index 11f6d91b05..f75c130039 100644 --- a/doc/classes/float.xml +++ b/doc/classes/float.xml @@ -113,12 +113,12 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> - Multiplies each component of the [Quat] by the given [float]. + Multiplies each component of the [Quaternion] by the given [float]. </description> </method> <method name="operator *" qualifiers="operator"> diff --git a/doc/classes/int.xml b/doc/classes/int.xml index 119cdf8eeb..b0ad963998 100644 --- a/doc/classes/int.xml +++ b/doc/classes/int.xml @@ -183,9 +183,9 @@ </description> </method> <method name="operator *" qualifiers="operator"> - <return type="Quat"> + <return type="Quaternion"> </return> - <argument index="0" name="right" type="Quat"> + <argument index="0" name="right" type="Quaternion"> </argument> <description> Multiplies each component of the quaternion by the given integer. diff --git a/doc/translations/ar.po b/doc/translations/ar.po index b4ae664714..77a3d39f27 100644 --- a/doc/translations/ar.po +++ b/doc/translations/ar.po @@ -33036,7 +33036,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33055,12 +33055,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34557,7 +34557,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41765,30 +41765,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41796,7 +41796,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54060,7 +54060,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59139,7 +59139,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/ca.po b/doc/translations/ca.po index 6485111b20..8ea801181d 100644 --- a/doc/translations/ca.po +++ b/doc/translations/ca.po @@ -33067,7 +33067,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33086,12 +33086,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34588,7 +34588,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41796,30 +41796,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41827,7 +41827,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54091,7 +54091,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59170,7 +59170,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/classes.pot b/doc/translations/classes.pot index d14b0d9b1f..d12fa78b0e 100644 --- a/doc/translations/classes.pot +++ b/doc/translations/classes.pot @@ -33037,7 +33037,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33056,12 +33056,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34558,7 +34558,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41766,30 +41766,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41797,7 +41797,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54061,7 +54061,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59140,7 +59140,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/cs.po b/doc/translations/cs.po index 7b958a5049..a267656497 100644 --- a/doc/translations/cs.po +++ b/doc/translations/cs.po @@ -33536,7 +33536,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33555,12 +33555,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -35058,7 +35058,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42266,30 +42266,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42297,7 +42297,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54562,7 +54562,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59645,7 +59645,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/de.po b/doc/translations/de.po index 2e3e219ba6..181d64d525 100644 --- a/doc/translations/de.po +++ b/doc/translations/de.po @@ -33453,7 +33453,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33472,12 +33472,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 #, fuzzy msgid "" @@ -34984,7 +34984,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42226,30 +42226,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42257,7 +42257,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54558,7 +54558,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59796,7 +59796,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/es.po b/doc/translations/es.po index 3078c1bf90..7df36316b7 100644 --- a/doc/translations/es.po +++ b/doc/translations/es.po @@ -44834,7 +44834,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -44853,9 +44853,9 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" "Toda clase que no es un tipo integrado hereda de esta clase.\n" "Puedes construir Objetos desde lenguajes de scripting, usando [code]Object." @@ -44866,7 +44866,7 @@ msgstr "" "llama al método [method free] desde tu script o elimina la instancia desde C+" "+.\n" "Algunas clases que extienden a Object añaden gestión de memoria. Este es el " -"caso de [Reference], que cuenta las referencias y se borra a sà misma " +"caso de [RefCounted], que cuenta las referencias y se borra a sà misma " "automáticamente cuando deja de estar referenciada. [Node], otro tipo " "fundamental, borra todos sus hijos cuando se libera de la memoria.\n" "Los objetos exportan propiedades, que son principalmente útiles para el " @@ -44887,7 +44887,7 @@ msgstr "" "sencilla de notificar al objeto sobre diferentes eventos, de modo que todos " "ellos pueden ser manejados juntos. Véase [method _notification]." -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 #, fuzzy msgid "" @@ -46525,7 +46525,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -53779,30 +53779,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -53810,7 +53810,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -66189,7 +66189,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -71348,7 +71348,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/fa.po b/doc/translations/fa.po index 733d3bb969..e440146dd3 100644 --- a/doc/translations/fa.po +++ b/doc/translations/fa.po @@ -33042,7 +33042,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33061,12 +33061,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34563,7 +34563,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41771,30 +41771,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41802,7 +41802,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54066,7 +54066,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59145,7 +59145,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/fi.po b/doc/translations/fi.po index 0a40863a52..92ec4f29dd 100644 --- a/doc/translations/fi.po +++ b/doc/translations/fi.po @@ -33055,7 +33055,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33074,12 +33074,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34576,7 +34576,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41784,30 +41784,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41815,7 +41815,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54080,7 +54080,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59168,7 +59168,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/fr.po b/doc/translations/fr.po index f3e26ebc61..7717474c0f 100644 --- a/doc/translations/fr.po +++ b/doc/translations/fr.po @@ -33403,7 +33403,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33422,12 +33422,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34927,7 +34927,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42142,30 +42142,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42173,7 +42173,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54519,7 +54519,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59618,7 +59618,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/id.po b/doc/translations/id.po index 1bce3d6b50..edfd392f4f 100644 --- a/doc/translations/id.po +++ b/doc/translations/id.po @@ -33068,7 +33068,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33087,12 +33087,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34589,7 +34589,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41797,30 +41797,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41828,7 +41828,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54092,7 +54092,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59171,7 +59171,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/it.po b/doc/translations/it.po index 18e162476c..353eae4116 100644 --- a/doc/translations/it.po +++ b/doc/translations/it.po @@ -33334,7 +33334,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33353,12 +33353,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34856,7 +34856,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42067,30 +42067,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42098,7 +42098,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54365,7 +54365,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59459,7 +59459,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/ja.po b/doc/translations/ja.po index ede80a35ef..1424b24153 100644 --- a/doc/translations/ja.po +++ b/doc/translations/ja.po @@ -34306,7 +34306,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -34325,12 +34325,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 #, fuzzy msgid "" @@ -35830,7 +35830,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -43046,30 +43046,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -43077,7 +43077,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -55349,7 +55349,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -60446,7 +60446,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/ko.po b/doc/translations/ko.po index e71cd06ba7..8e8aef2eaf 100644 --- a/doc/translations/ko.po +++ b/doc/translations/ko.po @@ -33044,7 +33044,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33063,12 +33063,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34565,7 +34565,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41773,30 +41773,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41804,7 +41804,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54068,7 +54068,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59149,7 +59149,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/nl.po b/doc/translations/nl.po index 032ff95bdb..096e59f497 100644 --- a/doc/translations/nl.po +++ b/doc/translations/nl.po @@ -33070,7 +33070,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33089,12 +33089,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34591,7 +34591,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41799,30 +41799,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41830,7 +41830,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54094,7 +54094,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59173,7 +59173,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/pl.po b/doc/translations/pl.po index b0c94b55be..5ef41b155a 100644 --- a/doc/translations/pl.po +++ b/doc/translations/pl.po @@ -33089,7 +33089,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33108,12 +33108,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34610,7 +34610,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41818,30 +41818,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41849,7 +41849,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54117,7 +54117,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59203,7 +59203,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/pt_BR.po b/doc/translations/pt_BR.po index a508d38859..ef62950d51 100644 --- a/doc/translations/pt_BR.po +++ b/doc/translations/pt_BR.po @@ -33083,7 +33083,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33102,12 +33102,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34604,7 +34604,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41812,30 +41812,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41843,7 +41843,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54108,7 +54108,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59194,7 +59194,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/ro.po b/doc/translations/ro.po index 96c0161312..5f018aa497 100644 --- a/doc/translations/ro.po +++ b/doc/translations/ro.po @@ -33044,7 +33044,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33063,12 +33063,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34565,7 +34565,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41773,30 +41773,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41804,7 +41804,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54068,7 +54068,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59147,7 +59147,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/ru.po b/doc/translations/ru.po index 1108967bc9..0d227beff7 100644 --- a/doc/translations/ru.po +++ b/doc/translations/ru.po @@ -33581,7 +33581,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33600,12 +33600,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -35104,7 +35104,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42362,30 +42362,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42393,7 +42393,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54666,7 +54666,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59891,7 +59891,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/sr_Cyrl.po b/doc/translations/sr_Cyrl.po index d7d2911b97..d53711d996 100644 --- a/doc/translations/sr_Cyrl.po +++ b/doc/translations/sr_Cyrl.po @@ -33054,7 +33054,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33073,12 +33073,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34575,7 +34575,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41783,30 +41783,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41814,7 +41814,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54078,7 +54078,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59157,7 +59157,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/th.po b/doc/translations/th.po index 5031ecfb0e..7686e22f19 100644 --- a/doc/translations/th.po +++ b/doc/translations/th.po @@ -33060,7 +33060,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33079,12 +33079,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34581,7 +34581,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41789,30 +41789,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41820,7 +41820,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54084,7 +54084,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59163,7 +59163,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/tr.po b/doc/translations/tr.po index a317f4ee83..df9897f1d6 100644 --- a/doc/translations/tr.po +++ b/doc/translations/tr.po @@ -33036,7 +33036,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33055,12 +33055,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34557,7 +34557,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41765,30 +41765,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41796,7 +41796,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54060,7 +54060,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59139,7 +59139,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/uk.po b/doc/translations/uk.po index 8ca75e8b19..d1296da87a 100644 --- a/doc/translations/uk.po +++ b/doc/translations/uk.po @@ -33122,7 +33122,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33141,12 +33141,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34643,7 +34643,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41851,30 +41851,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41882,7 +41882,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54147,7 +54147,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59237,7 +59237,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/zh_Hans.po b/doc/translations/zh_Hans.po index aee852699c..edfb11dec1 100644 --- a/doc/translations/zh_Hans.po +++ b/doc/translations/zh_Hans.po @@ -33272,7 +33272,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33291,12 +33291,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34794,7 +34794,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -42002,30 +42002,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -42033,7 +42033,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54298,7 +54298,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59381,7 +59381,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " diff --git a/doc/translations/zh_Hant.po b/doc/translations/zh_Hant.po index 242c8cc086..3afec7ead8 100644 --- a/doc/translations/zh_Hant.po +++ b/doc/translations/zh_Hant.po @@ -33073,7 +33073,7 @@ msgid "" "to delete instances of it manually. To do so, call the [method free] method " "from your script or delete the instance from C++.\n" "Some classes that extend Object add memory management. This is the case of " -"[Reference], which counts references and deletes itself automatically when " +"[RefCounted], which counts references and deletes itself automatically when " "no longer referenced. [Node], another fundamental type, deletes all its " "children when freed from memory.\n" "Objects export properties, which are mainly useful for storage and editing, " @@ -33092,12 +33092,12 @@ msgid "" "Objects also receive notifications. Notifications are a simple way to notify " "the object about different events, so they can all be handled together. See " "[method _notification].\n" -"[b]Note:[/b] Unlike references to a [Reference], references to an Object " +"[b]Note:[/b] Unlike references to a [RefCounted], references to an Object " "stored in a variable can become invalid without warning. Therefore, it's " -"recommended to use [Reference] for data classes instead of [Object]." +"recommended to use [RefCounted] for data classes instead of [Object]." msgstr "" -#: doc/classes/Object.xml:23 doc/classes/Reference.xml:12 +#: doc/classes/Object.xml:23 doc/classes/RefCounted.xml:12 #: doc/classes/Resource.xml:11 msgid "" "https://docs.godotengine.org/en/latest/getting_started/workflow/" @@ -34594,7 +34594,7 @@ msgid "Changes the [Color] at the given index." msgstr "" #: doc/classes/PackedDataContainerRef.xml:4 -msgid "Reference version of [PackedDataContainer]." +msgid "RefCounted version of [PackedDataContainer]." msgstr "" #: doc/classes/PackedFloat32Array.xml:4 @@ -41802,30 +41802,30 @@ msgid "" "the half extents." msgstr "" -#: doc/classes/Reference.xml:4 +#: doc/classes/RefCounted.xml:4 msgid "Base class for reference-counted objects." msgstr "" -#: doc/classes/Reference.xml:7 +#: doc/classes/RefCounted.xml:7 msgid "" "Base class for any object that keeps a reference count. [Resource] and many " "other helper objects inherit this class.\n" "Unlike [Object]s, References keep an internal reference counter so that they " "are automatically released when no longer in use, and only then. References " "therefore do not need to be freed manually with [method Object.free].\n" -"In the vast majority of use cases, instantiating and using [Reference]-" +"In the vast majority of use cases, instantiating and using [RefCounted]-" "derived types is all you need to do. The methods provided in this class are " "only for advanced users, and can cause issues if misused." msgstr "" -#: doc/classes/Reference.xml:19 +#: doc/classes/RefCounted.xml:19 msgid "" "Initializes the internal reference counter. Use this only if you really know " "what you are doing.\n" "Returns whether the initialization was successful." msgstr "" -#: doc/classes/Reference.xml:27 +#: doc/classes/RefCounted.xml:27 msgid "" "Increments the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -41833,7 +41833,7 @@ msgid "" "code] otherwise." msgstr "" -#: doc/classes/Reference.xml:35 +#: doc/classes/RefCounted.xml:35 msgid "" "Decrements the internal reference counter. Use this only if you really know " "what you are doing.\n" @@ -54098,7 +54098,7 @@ msgid "" "[codeblock]\n" "var foo = 2 # foo is dynamically an integer\n" "foo = \"Now foo is a string!\"\n" -"foo = Reference.new() # foo is an Object\n" +"foo = RefCounted.new() # foo is an Object\n" "var bar: int = 2 # bar is a statically typed integer.\n" "# bar = \"Uh oh! I can't make static variables become a different type!\"\n" "[/codeblock]\n" @@ -59181,7 +59181,7 @@ msgstr "" #: doc/classes/WeakRef.xml:7 msgid "" -"A weakref can hold a [Reference], without contributing to the reference " +"A weakref can hold a [RefCounted], without contributing to the reference " "counter. A weakref can be created from an [Object] using [method @GDScript." "weakref]. If this object is not a reference, weakref still works, however, " "it does not have any effect on the object. Weakrefs are useful in cases " |