diff options
Diffstat (limited to 'doc/classes')
79 files changed, 942 insertions, 567 deletions
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 41cc043a74..161e6278a2 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -1210,56 +1210,59 @@ </constant> <constant name="COUNTERCLOCKWISE" value="1" enum="ClockDirection"> </constant> - <constant name="HALIGN_LEFT" value="0" enum="HAlign"> + <constant name="HORIZONTAL_ALIGNMENT_LEFT" value="0" enum="HorizontalAlignment"> Horizontal left alignment, usually for text-derived classes. </constant> - <constant name="HALIGN_CENTER" value="1" enum="HAlign"> + <constant name="HORIZONTAL_ALIGNMENT_CENTER" value="1" enum="HorizontalAlignment"> Horizontal center alignment, usually for text-derived classes. </constant> - <constant name="HALIGN_RIGHT" value="2" enum="HAlign"> + <constant name="HORIZONTAL_ALIGNMENT_RIGHT" value="2" enum="HorizontalAlignment"> Horizontal right alignment, usually for text-derived classes. </constant> - <constant name="HALIGN_FILL" value="3" enum="HAlign"> + <constant name="HORIZONTAL_ALIGNMENT_FILL" value="3" enum="HorizontalAlignment"> Expand row to fit width, usually for text-derived classes. </constant> - <constant name="VALIGN_TOP" value="0" enum="VAlign"> + <constant name="VERTICAL_ALIGNMENT_TOP" value="0" enum="VerticalAlignment"> Vertical top alignment, usually for text-derived classes. </constant> - <constant name="VALIGN_CENTER" value="1" enum="VAlign"> + <constant name="VERTICAL_ALIGNMENT_CENTER" value="1" enum="VerticalAlignment"> Vertical center alignment, usually for text-derived classes. </constant> - <constant name="VALIGN_BOTTOM" value="2" enum="VAlign"> + <constant name="VERTICAL_ALIGNMENT_BOTTOM" value="2" enum="VerticalAlignment"> Vertical bottom alignment, usually for text-derived classes. </constant> - <constant name="INLINE_ALIGN_TOP_TO" value="0" enum="InlineAlign"> - Aligns the top of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGN_TO_*[/code] constant. + <constant name="VERTICAL_ALIGNMENT_FILL" value="3" enum="VerticalAlignment"> + Expand rows to fit height, usually for text-derived classes. </constant> - <constant name="INLINE_ALIGN_CENTER_TO" value="1" enum="InlineAlign"> - Aligns the center of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGN_TO_*[/code] constant. + <constant name="INLINE_ALIGNMENT_TOP_TO" value="0" enum="InlineAlignment"> + Aligns the top of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant. </constant> - <constant name="INLINE_ALIGN_BOTTOM_TO" value="2" enum="InlineAlign"> - Aligns the bottom of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGN_TO_*[/code] constant. + <constant name="INLINE_ALIGNMENT_CENTER_TO" value="1" enum="InlineAlignment"> + Aligns the center of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant. </constant> - <constant name="INLINE_ALIGN_TO_TOP" value="0" enum="InlineAlign"> - Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGN_*_TO[/code] constant to the top of the text. + <constant name="INLINE_ALIGNMENT_BOTTOM_TO" value="2" enum="InlineAlignment"> + Aligns the bottom of the inline object (e.g. image, table) to the position of the text specified by [code]INLINE_ALIGNMENT_TO_*[/code] constant. </constant> - <constant name="INLINE_ALIGN_TO_CENTER" value="4" enum="InlineAlign"> - Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGN_*_TO[/code] constant to the center of the text. + <constant name="INLINE_ALIGNMENT_TO_TOP" value="0" enum="InlineAlignment"> + Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the top of the text. </constant> - <constant name="INLINE_ALIGN_TO_BASELINE" value="8" enum="InlineAlign"> - Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGN_*_TO[/code] constant to the baseline of the text. + <constant name="INLINE_ALIGNMENT_TO_CENTER" value="4" enum="InlineAlignment"> + Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the center of the text. </constant> - <constant name="INLINE_ALIGN_TO_BOTTOM" value="12" enum="InlineAlign"> + <constant name="INLINE_ALIGNMENT_TO_BASELINE" value="8" enum="InlineAlignment"> + Aligns the position of the inline object (e.g. image, table) specified by [code]INLINE_ALIGNMENT_*_TO[/code] constant to the baseline of the text. + </constant> + <constant name="INLINE_ALIGNMENT_TO_BOTTOM" value="12" enum="InlineAlignment"> Aligns inline object (e.g. image, table) to the bottom of the text. </constant> - <constant name="INLINE_ALIGN_TOP" value="0" enum="InlineAlign"> - Aligns top of the inline object (e.g. image, table) to the top of the text. Equvalent to [code]INLINE_ALIGN_TOP_TO | INLINE_ALIGN_TO_TOP[/code]. + <constant name="INLINE_ALIGNMENT_TOP" value="0" enum="InlineAlignment"> + Aligns top of the inline object (e.g. image, table) to the top of the text. Equvalent to [code]INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP[/code]. </constant> - <constant name="INLINE_ALIGN_CENTER" value="5" enum="InlineAlign"> - Aligns center of the inline object (e.g. image, table) to the center of the text. Equvalent to [code]INLINE_ALIGN_CENTER_TO | INLINE_ALIGN_TO_CENTER[/code]. + <constant name="INLINE_ALIGNMENT_CENTER" value="5" enum="InlineAlignment"> + Aligns center of the inline object (e.g. image, table) to the center of the text. Equvalent to [code]INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER[/code]. </constant> - <constant name="INLINE_ALIGN_BOTTOM" value="14" enum="InlineAlign"> - Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equvalent to [code]INLINE_ALIGN_BOTTOM_TO | INLINE_ALIGN_TO_BOTTOM[/code]. + <constant name="INLINE_ALIGNMENT_BOTTOM" value="14" enum="InlineAlignment"> + Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equvalent to [code]INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM[/code]. </constant> <constant name="KEY_SPECIAL" value="16777216" enum="Key"> Keycodes with this bit applied are non-printable. diff --git a/doc/classes/AnimatedSprite2D.xml b/doc/classes/AnimatedSprite2D.xml index 789c6bd960..1710b28537 100644 --- a/doc/classes/AnimatedSprite2D.xml +++ b/doc/classes/AnimatedSprite2D.xml @@ -12,12 +12,6 @@ <link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link> </tutorials> <methods> - <method name="is_playing" qualifiers="const"> - <return type="bool" /> - <description> - Returns [code]true[/code] if an animation is currently being played. - </description> - </method> <method name="play"> <return type="void" /> <argument index="0" name="anim" type="StringName" default="&""" /> @@ -55,7 +49,7 @@ <member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2(0, 0)"> The texture's drawing offset. </member> - <member name="playing" type="bool" setter="_set_playing" getter="_is_playing" default="false"> + <member name="playing" type="bool" setter="set_playing" getter="is_playing" default="false"> If [code]true[/code], the [member animation] is currently playing. </member> <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale" default="1.0"> diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index d505ee98cc..5b1861bc9a 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -449,7 +449,10 @@ <argument index="2" name="step" type="int" default="1" /> <argument index="3" name="deep" type="bool" default="false" /> <description> - Duplicates the subset described in the function and returns it in an array, deeply copying the array if [code]deep[/code] is [code]true[/code]. Lower and upper index are inclusive, with the [code]step[/code] describing the change between indices while slicing. Wraps around if [code]begin[/code] or [code]end[/code] are out of bounds or negative. Returns an empty array for invalid parameters. + Returns the slice of the [Array], from [code]begin[/code] (inclusive) to [code]end[/code] (exclusive), as a new [Array]. + If [code]end[/code] is negative, it will be relative to the end of the array. + If specified, [code]step[/code] is the relative index between source elements. + If [code]deep[/code] is true, each element will be copied by value rather than by reference. </description> </method> <method name="sort"> diff --git a/doc/classes/AspectRatioContainer.xml b/doc/classes/AspectRatioContainer.xml index 4c0af0b997..237bec4e61 100644 --- a/doc/classes/AspectRatioContainer.xml +++ b/doc/classes/AspectRatioContainer.xml @@ -9,10 +9,10 @@ <tutorials> </tutorials> <members> - <member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignMode" default="1"> + <member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignmentMode" default="1"> Specifies the horizontal relative position of child controls. </member> - <member name="alignment_vertical" type="int" setter="set_alignment_vertical" getter="get_alignment_vertical" enum="AspectRatioContainer.AlignMode" default="1"> + <member name="alignment_vertical" type="int" setter="set_alignment_vertical" getter="get_alignment_vertical" enum="AspectRatioContainer.AlignmentMode" default="1"> Specifies the vertical relative position of child controls. </member> <member name="ratio" type="float" setter="set_ratio" getter="get_ratio" default="1.0"> @@ -36,13 +36,13 @@ The width and height of child controls is automatically adjusted to make their bounding rectangle cover the entire area of the container while keeping the aspect ratio. When the bounding rectangle of child controls exceed the container's size and [member Control.rect_clip_content] is enabled, this allows to show only the container's area restricted by its own bounding rectangle. </constant> - <constant name="ALIGN_BEGIN" value="0" enum="AlignMode"> + <constant name="ALIGNMENT_BEGIN" value="0" enum="AlignmentMode"> Aligns child controls with the beginning (left or top) of the container. </constant> - <constant name="ALIGN_CENTER" value="1" enum="AlignMode"> + <constant name="ALIGNMENT_CENTER" value="1" enum="AlignmentMode"> Aligns child controls with the center of the container. </constant> - <constant name="ALIGN_END" value="2" enum="AlignMode"> + <constant name="ALIGNMENT_END" value="2" enum="AlignmentMode"> Aligns child controls with the end (right or bottom) of the container. </constant> </constants> diff --git a/doc/classes/BoxContainer.xml b/doc/classes/BoxContainer.xml index ec81b866f6..a968e855a5 100644 --- a/doc/classes/BoxContainer.xml +++ b/doc/classes/BoxContainer.xml @@ -18,19 +18,16 @@ </method> </methods> <members> - <member name="alignment" type="int" setter="set_alignment" getter="get_alignment" enum="BoxContainer.AlignMode" default="0"> - The alignment of the container's children (must be one of [constant ALIGN_BEGIN], [constant ALIGN_CENTER], or [constant ALIGN_END]). + <member name="alignment" type="int" setter="set_alignment" getter="get_alignment" enum="BoxContainer.AlignmentMode" default="0"> + The alignment of the container's children (must be one of [constant ALIGNMENT_BEGIN], [constant ALIGNMENT_CENTER], or [constant ALIGNMENT_END]). </member> </members> <constants> - <constant name="ALIGN_BEGIN" value="0" enum="AlignMode"> - Aligns children with the beginning of the container. + <constant name="ALIGNMENT_BEGIN" value="0" enum="AlignmentMode"> </constant> - <constant name="ALIGN_CENTER" value="1" enum="AlignMode"> - Aligns children with the center of the container. + <constant name="ALIGNMENT_CENTER" value="1" enum="AlignmentMode"> </constant> - <constant name="ALIGN_END" value="2" enum="AlignMode"> - Aligns children with the end of the container. + <constant name="ALIGNMENT_END" value="2" enum="AlignmentMode"> </constant> </constants> </class> diff --git a/doc/classes/Button.xml b/doc/classes/Button.xml index 3145756511..d1a19861e4 100644 --- a/doc/classes/Button.xml +++ b/doc/classes/Button.xml @@ -64,8 +64,8 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_text_align" getter="get_text_align" enum="Button.TextAlign" default="1"> - Text alignment policy for the button's text, use one of the [enum TextAlign] constants. + <member name="alignment" type="int" setter="set_text_alignment" getter="get_text_alignment" enum="HorizontalAlignment" default="1"> + Text alignment policy for the button's text, use one of the [enum @GlobalScope.HorizontalAlignment] constants. </member> <member name="clip_text" type="bool" setter="set_clip_text" getter="get_clip_text" default="false"> When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text. @@ -80,8 +80,8 @@ Button's icon, if text is present the icon will be placed before the text. To edit margin and spacing of the icon, use [theme_item hseparation] theme property and [code]content_margin_*[/code] properties of the used [StyleBox]es. </member> - <member name="icon_align" type="int" setter="set_icon_align" getter="get_icon_align" enum="Button.TextAlign" default="0"> - Specifies if the icon should be aligned to the left, right, or center of a button. Uses the same [enum TextAlign] constants as the text alignment. If centered, text will draw on top of the icon. + <member name="icon_alignment" type="int" setter="set_icon_alignment" getter="get_icon_alignment" enum="HorizontalAlignment" default="0"> + Specifies if the icon should be aligned to the left, right, or center of a button. Uses the same [enum @GlobalScope.HorizontalAlignment] constants as the text alignment. If centered, text will draw on top of the icon. </member> <member name="language" type="String" setter="set_language" getter="get_language" default=""""> Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. @@ -93,17 +93,6 @@ Base text writing direction. </member> </members> - <constants> - <constant name="ALIGN_LEFT" value="0" enum="TextAlign"> - Align the text to the left. - </constant> - <constant name="ALIGN_CENTER" value="1" enum="TextAlign"> - Align the text to the center. - </constant> - <constant name="ALIGN_RIGHT" value="2" enum="TextAlign"> - Align the text to the right. - </constant> - </constants> <theme_items> <theme_item name="font_color" data_type="color" type="Color" default="Color(0.88, 0.88, 0.88, 1)"> Default text [Color] of the [Button]. diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml index 0505d8ad36..a4415e89db 100644 --- a/doc/classes/CPUParticles2D.xml +++ b/doc/classes/CPUParticles2D.xml @@ -116,6 +116,9 @@ <member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)"> Each particle's initial color. If [member texture] is defined, it will be multiplied by this color. </member> + <member name="color_initial_ramp" type="Gradient" setter="set_color_initial_ramp" getter="get_color_initial_ramp"> + Each particle's initial color will vary along this [GradientTexture1D] (multiplied with [member color]). + </member> <member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp"> Each particle's color will vary along this [Gradient] (multiplied with [member color]). </member> diff --git a/doc/classes/CPUParticles3D.xml b/doc/classes/CPUParticles3D.xml index ad491465f2..da9c63c0f7 100644 --- a/doc/classes/CPUParticles3D.xml +++ b/doc/classes/CPUParticles3D.xml @@ -96,13 +96,13 @@ Minimum angle. </member> <member name="angular_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> - Each particle's angular velocity will vary along this [Curve]. + Each particle's angular velocity (rotation speed) will vary along this [Curve] over its lifetime. </member> <member name="angular_velocity_max" type="float" setter="set_param_max" getter="get_param_max" default="0.0"> - Maximum angular velocity. + Maximum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] per second. </member> <member name="angular_velocity_min" type="float" setter="set_param_min" getter="get_param_min" default="0.0"> - Minimum angular velocity. + Minimum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] per second. </member> <member name="anim_offset_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> Each particle's animation offset will vary along this [Curve]. @@ -125,6 +125,9 @@ <member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)"> Each particle's initial color. To have particle display color in a [BaseMaterial3D] make sure to set [member BaseMaterial3D.vertex_color_use_as_albedo] to [code]true[/code]. </member> + <member name="color_initial_ramp" type="Gradient" setter="set_color_initial_ramp" getter="get_color_initial_ramp"> + Each particle's initial color will vary along this [GradientTexture1D] (multiplied with [member color]). + </member> <member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp"> Each particle's color will vary along this [GradientTexture1D] over its lifetime (multiplied with [member color]). </member> diff --git a/doc/classes/Camera2D.xml b/doc/classes/Camera2D.xml index a3a891cdcb..1bcc9689aa 100644 --- a/doc/classes/Camera2D.xml +++ b/doc/classes/Camera2D.xml @@ -30,13 +30,15 @@ <method name="get_camera_position" qualifiers="const"> <return type="Vector2" /> <description> - Returns the camera position. + Returns the camera's [code]position[/code] (the tracked point the camera attempts to follow), relative to the origin. + [b]Note:[/b] The returned value is not the same as [member Node2D.position] or [member Node2D.global_position], as it is affected by the [code]drag[/code] properties. </description> </method> <method name="get_camera_screen_center" qualifiers="const"> <return type="Vector2" /> <description> Returns the location of the [Camera2D]'s screen-center, relative to the origin. + [b]Note:[/b] The real [code]position[/code] of the camera may be different, see [method get_camera_position]. </description> </method> <method name="get_drag_margin" qualifiers="const"> @@ -57,7 +59,7 @@ <return type="void" /> <description> Sets the camera's position immediately to its current smoothing destination. - This has no effect if smoothing is disabled. + This method has no effect if [member smoothing_enabled] is [code]false[/code]. </description> </method> <method name="set_drag_margin"> @@ -95,7 +97,7 @@ </member> <member name="drag_horizontal_offset" type="float" setter="set_drag_horizontal_offset" getter="get_drag_horizontal_offset" default="0.0"> The relative horizontal drag offset of the camera between the right ([code]-1[/code]) and left ([code]1[/code]) drag margins. - [b]Note:[/b] Used to set the initial horizontal drag offset; determine the current offset; or force the current offset. It's not automatically updated when the horizontal drag margin is enabled or the drag margins are changed. + [b]Note:[/b] Used to set the initial horizontal drag offset; determine the current offset; or force the current offset. It's not automatically updated when [member drag_horizontal_enabled] is [code]true[/code] or the drag margins are changed. </member> <member name="drag_left_margin" type="float" setter="set_drag_margin" getter="get_drag_margin" default="0.2"> Left margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the left edge of the screen. @@ -111,7 +113,7 @@ </member> <member name="drag_vertical_offset" type="float" setter="set_drag_vertical_offset" getter="get_drag_vertical_offset" default="0.0"> The relative vertical drag offset of the camera between the bottom ([code]-1[/code]) and top ([code]1[/code]) drag margins. - [b]Note:[/b] Used to set the initial vertical drag offset; determine the current offset; or force the current offset. It's not automatically updated when the vertical drag margin is enabled or the drag margins are changed. + [b]Note:[/b] Used to set the initial vertical drag offset; determine the current offset; or force the current offset. It's not automatically updated when [member drag_vertical_enabled] is [code]true[/code] or the drag margins are changed. </member> <member name="editor_draw_drag_margin" type="bool" setter="set_margin_drawing_enabled" getter="is_margin_drawing_enabled" default="false"> If [code]true[/code], draws the camera's drag margin rectangle in the editor. @@ -123,30 +125,30 @@ If [code]true[/code], draws the camera's screen rectangle in the editor. </member> <member name="limit_bottom" type="int" setter="set_limit" getter="get_limit" default="10000000"> - Bottom scroll limit in pixels. The camera stops moving when reaching this value. + Bottom scroll limit in pixels. The camera stops moving when reaching this value, but [member offset] can push the view past the limit. </member> <member name="limit_left" type="int" setter="set_limit" getter="get_limit" default="-10000000"> - Left scroll limit in pixels. The camera stops moving when reaching this value. + Left scroll limit in pixels. The camera stops moving when reaching this value, but [member offset] can push the view past the limit. </member> <member name="limit_right" type="int" setter="set_limit" getter="get_limit" default="10000000"> - Right scroll limit in pixels. The camera stops moving when reaching this value. + Right scroll limit in pixels. The camera stops moving when reaching this value, but [member offset] can push the view past the limit. </member> <member name="limit_smoothed" type="bool" setter="set_limit_smoothing_enabled" getter="is_limit_smoothing_enabled" default="false"> If [code]true[/code], the camera smoothly stops when reaches its limits. - This has no effect if smoothing is disabled. + This property has no effect if [member smoothing_enabled] is [code]false[/code]. [b]Note:[/b] To immediately update the camera's position to be within limits without smoothing, even with this setting enabled, invoke [method reset_smoothing]. </member> <member name="limit_top" type="int" setter="set_limit" getter="get_limit" default="-10000000"> - Top scroll limit in pixels. The camera stops moving when reaching this value. + Top scroll limit in pixels. The camera stops moving when reaching this value, but [member offset] can push the view past the limit. </member> <member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2(0, 0)"> - The camera's offset, useful for looking around or camera shake animations. + The camera's relative offset. Useful for looking around or camera shake animations. The offseted camera can go past the limits defined in [member limit_top], [member limit_bottom], [member limit_left] and [member limit_right]. </member> <member name="process_callback" type="int" setter="set_process_callback" getter="get_process_callback" enum="Camera2D.Camera2DProcessCallback" default="1"> The camera's process callback. See [enum Camera2DProcessCallback]. </member> <member name="rotating" type="bool" setter="set_rotating" getter="is_rotating" default="false"> - If [code]true[/code], the camera rotates with the target. + If [code]true[/code], the camera view rotates with the target. </member> <member name="smoothing_enabled" type="bool" setter="set_enable_follow_smoothing" getter="is_follow_smoothing_enabled" default="false"> If [code]true[/code], the camera smoothly moves towards the target at [member smoothing_speed]. diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml index 98437ef296..cf6a8bad5e 100644 --- a/doc/classes/CanvasItem.xml +++ b/doc/classes/CanvasItem.xml @@ -143,7 +143,7 @@ <argument index="0" name="font" type="Font" /> <argument index="1" name="pos" type="Vector2" /> <argument index="2" name="text" type="String" /> - <argument index="3" name="align" type="int" enum="HAlign" default="0" /> + <argument index="3" name="alignment" type="int" enum="HorizontalAlignment" default="0" /> <argument index="4" name="width" type="float" default="-1" /> <argument index="5" name="max_lines" type="int" default="-1" /> <argument index="6" name="size" type="int" default="16" /> @@ -236,7 +236,7 @@ <argument index="0" name="font" type="Font" /> <argument index="1" name="pos" type="Vector2" /> <argument index="2" name="text" type="String" /> - <argument index="3" name="align" type="int" enum="HAlign" default="0" /> + <argument index="3" name="alignment" type="int" enum="HorizontalAlignment" default="0" /> <argument index="4" name="width" type="float" default="-1" /> <argument index="5" name="size" type="int" default="16" /> <argument index="6" name="modulate" type="Color" default="Color(1, 1, 1, 1)" /> @@ -253,7 +253,7 @@ # so the Control is only created once. var default_font = Control.new().get_font("font") var default_font_size = Control.new().get_font_size("font_size") - draw_string(default_font, Vector2(64, 64), "Hello world", HALIGN_LEFT, -1, font_size) + draw_string(default_font, Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, font_size) [/gdscript] [csharp] // If using this method in a script that redraws constantly, move the @@ -261,7 +261,7 @@ // so the Control is only created once. Font defaultFont = new Control().GetFont("font"); int defaultFontSize = new Control().GetFontSize("font_size"); - DrawString(defaultFont, new Vector2(64, 64), "Hello world", HALIGN_LEFT, -1, defaultFontSize); + DrawString(defaultFont, new Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize); [/csharp] [/codeblocks] See also [method Font.draw_string]. diff --git a/doc/classes/CheckBox.xml b/doc/classes/CheckBox.xml index 7dddacf3c9..32ef70a5cf 100644 --- a/doc/classes/CheckBox.xml +++ b/doc/classes/CheckBox.xml @@ -10,7 +10,7 @@ <tutorials> </tutorials> <members> - <member name="align" type="int" setter="set_text_align" getter="get_text_align" overrides="Button" enum="Button.TextAlign" default="0" /> + <member name="alignment" type="int" setter="set_text_alignment" getter="get_text_alignment" overrides="Button" enum="HorizontalAlignment" default="0" /> <member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" overrides="BaseButton" default="true" /> </members> <theme_items> diff --git a/doc/classes/CheckButton.xml b/doc/classes/CheckButton.xml index c0315b93be..cf3aa869c3 100644 --- a/doc/classes/CheckButton.xml +++ b/doc/classes/CheckButton.xml @@ -10,7 +10,7 @@ <tutorials> </tutorials> <members> - <member name="align" type="int" setter="set_text_align" getter="get_text_align" overrides="Button" enum="Button.TextAlign" default="0" /> + <member name="alignment" type="int" setter="set_text_alignment" getter="get_text_alignment" overrides="Button" enum="HorizontalAlignment" default="0" /> <member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" overrides="BaseButton" default="true" /> </members> <theme_items> diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index 8739e0157d..39f8980b2c 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -102,6 +102,7 @@ <description> Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to [member rect_min_size] for controlling minimum size via code. The actual minimum size will be the max value of these two (in each axis separately). If not overridden, defaults to [constant Vector2.ZERO]. + [b]Note:[/b] This method will not be called when the script is attached to a [Control] node that already overrides its minimum size (e.g. [Label], [Button], [PanelContainer] etc.). It can only be used with most basic GUI nodes, like [Control], [Container], [Panel] etc. </description> </method> <method name="_gui_input" qualifiers="virtual"> @@ -666,12 +667,6 @@ Returns [code]true[/code] if layout is right-to-left. </description> </method> - <method name="minimum_size_changed"> - <return type="void" /> - <description> - Invalidates the size cache in this node and in parent nodes up to top_level. Intended to be used with [method get_minimum_size] when the return value is changed. Setting [member rect_min_size] directly calls this method automatically. - </description> - </method> <method name="release_focus"> <return type="void" /> <description> @@ -933,6 +928,12 @@ If [code]keep_offsets[/code] is [code]true[/code], control's anchors will be updated instead of offsets. </description> </method> + <method name="update_minimum_size"> + <return type="void" /> + <description> + Invalidates the size cache in this node and in parent nodes up to top level. Intended to be used with [method get_minimum_size] when the return value is changed. Setting [member rect_min_size] directly calls this method automatically. + </description> + </method> <method name="warp_mouse"> <return type="void" /> <argument index="0" name="to_position" type="Vector2" /> diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml index cd4b8fde1e..dbf5e31da4 100644 --- a/doc/classes/Directory.xml +++ b/doc/classes/Directory.xml @@ -108,6 +108,13 @@ Returns the currently opened directory's drive index. See [method get_drive] to convert returned index to the name of the drive. </description> </method> + <method name="get_directories"> + <return type="PackedStringArray" /> + <description> + Returns a [PackedStringArray] containing filenames of the directory contents, excluding files. The array is sorted alphabetically. + Affected by [member include_hidden] and [member include_navigational]. + </description> + </method> <method name="get_drive"> <return type="String" /> <argument index="0" name="idx" type="int" /> @@ -121,6 +128,13 @@ On Windows, returns the number of drives (partitions) mounted on the current filesystem. On other platforms, the method returns 0. </description> </method> + <method name="get_files"> + <return type="PackedStringArray" /> + <description> + Returns a [PackedStringArray] containing filenames of the directory contents, excluding directories. The array is sorted alphabetically. + Affected by [member include_hidden]. + </description> + </method> <method name="get_next"> <return type="String" /> <description> @@ -136,12 +150,10 @@ </method> <method name="list_dir_begin"> <return type="int" enum="Error" /> - <argument index="0" name="show_navigational" type="bool" default="false" /> - <argument index="1" name="show_hidden" type="bool" default="false" /> <description> Initializes the stream used to list all files and directories using the [method get_next] function, closing the currently opened stream if needed. Once the stream has been processed, it should typically be closed with [method list_dir_end]. - If [code]show_navigational[/code] is [code]true[/code], [code].[/code] and [code]..[/code] are included too. - If [code]show_hidden[/code] is [code]true[/code], hidden files are included too. + Affected by [member include_hidden] and [member include_navigational]. + [b]Note:[/b] The order of files and directories returned by this method is not deterministic, and can vary between operating systems. If you want a list of all files or folders sorted alphabetically, use [method get_files] or [method get_directories]. </description> </method> <method name="list_dir_end"> @@ -192,4 +204,14 @@ </description> </method> </methods> + <members> + <member name="include_hidden" type="bool" setter="set_include_hidden" getter="get_include_hidden" default="false"> + If [code]true[/code], hidden files are included when the navigating directory. + Affects [method list_dir_begin], [method get_directories] and [method get_files]. + </member> + <member name="include_navigational" type="bool" setter="set_include_navigational" getter="get_include_navigational" default="false"> + If [code]true[/code], [code].[/code] and [code]..[/code] are included when navigating the directory. + Affects [method list_dir_begin] and [method get_directories]. + </member> + </members> </class> diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml index 46cebbd795..dbfbaf103d 100644 --- a/doc/classes/EditorInspector.xml +++ b/doc/classes/EditorInspector.xml @@ -10,7 +10,7 @@ <tutorials> </tutorials> <members> - <member name="scroll_horizontal_enabled" type="bool" setter="set_enable_h_scroll" getter="is_h_scroll_enabled" overrides="ScrollContainer" default="false" /> + <member name="horizontal_scroll_mode" type="int" setter="set_horizontal_scroll_mode" getter="get_horizontal_scroll_mode" overrides="ScrollContainer" enum="ScrollContainer.ScrollMode" default="0" /> </members> <signals> <signal name="object_id_selected"> diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml index 5790d8c5af..15d31cd0f0 100644 --- a/doc/classes/EditorInterface.xml +++ b/doc/classes/EditorInterface.xml @@ -21,7 +21,17 @@ <return type="void" /> <argument index="0" name="resource" type="Resource" /> <description> - Edits the given [Resource]. + Edits the given [Resource]. If the resource is a [Script] you can also edit it with [method edit_script] to specify the line and column position. + </description> + </method> + <method name="edit_script"> + <return type="void" /> + <argument index="0" name="script" type="Script" /> + <argument index="1" name="line" type="int" default="-1" /> + <argument index="2" name="column" type="int" default="0" /> + <argument index="3" name="grab_focus" type="bool" default="true" /> + <description> + Edits the given [Script]. The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor. </description> </method> <method name="get_base_control"> diff --git a/doc/classes/Engine.xml b/doc/classes/Engine.xml index 9756b26dee..d0c4d28c55 100644 --- a/doc/classes/Engine.xml +++ b/doc/classes/Engine.xml @@ -187,7 +187,8 @@ [b]Note:[/b] For best results, when using a custom physics interpolation solution, the physics jitter fix should be disabled by setting [member physics_jitter_fix] to [code]0[/code]. </member> <member name="physics_ticks_per_second" type="int" setter="set_physics_ticks_per_second" getter="get_physics_ticks_per_second" default="60"> - The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. This value should generally always be set to [code]60[/code] or above, as Godot doesn't interpolate the physics step. As a result, values lower than [code]60[/code] will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage. See also [member target_fps]. + The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. This value should generally always be set to [code]60[/code] or above, as Godot doesn't interpolate the physics step. As a result, values lower than [code]60[/code] will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also [member target_fps] and [member ProjectSettings.physics/common/physics_ticks_per_second]. + [b]Note:[/b] Only 8 physics ticks may be simulated per rendered frame at most. If more than 8 physics ticks have to be simulated per rendered frame to keep up with rendering, the game will appear to slow down (even if [code]delta[/code] is used consistently in physics calculations). Therefore, it is recommended not to increase [member physics_ticks_per_second] above 240. Otherwise, the game will slow down when the rendering framerate goes below 30 FPS. </member> <member name="print_error_messages" type="bool" setter="set_print_error_messages" getter="is_printing_error_messages" default="true"> If [code]false[/code], stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the [member ProjectSettings.application/run/disable_stderr] project setting. @@ -195,7 +196,7 @@ [b]Note:[/b] This property does not impact the editor's Errors tab when running a project from the editor. </member> <member name="target_fps" type="int" setter="set_target_fps" getter="get_target_fps" default="0"> - The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit. See also [member physics_ticks_per_second]. + The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit. See also [member physics_ticks_per_second] and [member ProjectSettings.debug/settings/fps/force_fps]. </member> <member name="time_scale" type="float" setter="set_time_scale" getter="get_time_scale" default="1.0"> Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed. diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml index 01bc2837f1..275d6b6577 100644 --- a/doc/classes/Font.xml +++ b/doc/classes/Font.xml @@ -96,7 +96,7 @@ <argument index="0" name="canvas_item" type="RID" /> <argument index="1" name="pos" type="Vector2" /> <argument index="2" name="text" type="String" /> - <argument index="3" name="align" type="int" enum="HAlign" default="0" /> + <argument index="3" name="alignment" type="int" enum="HorizontalAlignment" default="0" /> <argument index="4" name="width" type="float" default="-1" /> <argument index="5" name="max_lines" type="int" default="-1" /> <argument index="6" name="size" type="int" default="16" /> @@ -114,7 +114,7 @@ <argument index="0" name="canvas_item" type="RID" /> <argument index="1" name="pos" type="Vector2" /> <argument index="2" name="text" type="String" /> - <argument index="3" name="align" type="int" enum="HAlign" default="0" /> + <argument index="3" name="alignment" type="int" enum="HorizontalAlignment" default="0" /> <argument index="4" name="width" type="float" default="-1" /> <argument index="5" name="size" type="int" default="16" /> <argument index="6" name="modulate" type="Color" default="Color(1, 1, 1, 1)" /> @@ -202,7 +202,7 @@ <return type="Vector2" /> <argument index="0" name="text" type="String" /> <argument index="1" name="size" type="int" default="16" /> - <argument index="2" name="align" type="int" enum="HAlign" default="0" /> + <argument index="2" name="alignment" type="int" enum="HorizontalAlignment" default="0" /> <argument index="3" name="width" type="float" default="-1" /> <argument index="4" name="flags" type="int" default="3" /> <description> diff --git a/doc/classes/GPUParticlesAttractorBox.xml b/doc/classes/GPUParticlesAttractorBox3D.xml index 93fdc45e56..0795e11b16 100644 --- a/doc/classes/GPUParticlesAttractorBox.xml +++ b/doc/classes/GPUParticlesAttractorBox3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesAttractorBox" inherits="GPUParticlesAttractor3D" version="4.0"> +<class name="GPUParticlesAttractorBox3D" inherits="GPUParticlesAttractor3D" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/GPUParticlesAttractorSphere.xml b/doc/classes/GPUParticlesAttractorSphere3D.xml index 4398de55e9..590c966d70 100644 --- a/doc/classes/GPUParticlesAttractorSphere.xml +++ b/doc/classes/GPUParticlesAttractorSphere3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesAttractorSphere" inherits="GPUParticlesAttractor3D" version="4.0"> +<class name="GPUParticlesAttractorSphere3D" inherits="GPUParticlesAttractor3D" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/GPUParticlesAttractorVectorField.xml b/doc/classes/GPUParticlesAttractorVectorField3D.xml index e164343528..d0dbf886f6 100644 --- a/doc/classes/GPUParticlesAttractorVectorField.xml +++ b/doc/classes/GPUParticlesAttractorVectorField3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesAttractorVectorField" inherits="GPUParticlesAttractor3D" version="4.0"> +<class name="GPUParticlesAttractorVectorField3D" inherits="GPUParticlesAttractor3D" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/GPUParticlesCollisionBox.xml b/doc/classes/GPUParticlesCollisionBox3D.xml index d2bf4ef538..e899637206 100644 --- a/doc/classes/GPUParticlesCollisionBox.xml +++ b/doc/classes/GPUParticlesCollisionBox3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesCollisionBox" inherits="GPUParticlesCollision3D" version="4.0"> +<class name="GPUParticlesCollisionBox3D" inherits="GPUParticlesCollision3D" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/GPUParticlesCollisionHeightField.xml b/doc/classes/GPUParticlesCollisionHeightField3D.xml index 99b2ad3ce0..801120d911 100644 --- a/doc/classes/GPUParticlesCollisionHeightField.xml +++ b/doc/classes/GPUParticlesCollisionHeightField3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesCollisionHeightField" inherits="GPUParticlesCollision3D" version="4.0"> +<class name="GPUParticlesCollisionHeightField3D" inherits="GPUParticlesCollision3D" version="4.0"> <brief_description> </brief_description> <description> @@ -13,9 +13,9 @@ </member> <member name="follow_camera_push_ratio" type="float" setter="set_follow_camera_push_ratio" getter="get_follow_camera_push_ratio" default="0.1"> </member> - <member name="resolution" type="int" setter="set_resolution" getter="get_resolution" enum="GPUParticlesCollisionHeightField.Resolution" default="2"> + <member name="resolution" type="int" setter="set_resolution" getter="get_resolution" enum="GPUParticlesCollisionHeightField3D.Resolution" default="2"> </member> - <member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="GPUParticlesCollisionHeightField.UpdateMode" default="0"> + <member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="GPUParticlesCollisionHeightField3D.UpdateMode" default="0"> </member> </members> <constants> diff --git a/doc/classes/GPUParticlesCollisionSDF.xml b/doc/classes/GPUParticlesCollisionSDF3D.xml index 8d798a9d28..9e86d16eef 100644 --- a/doc/classes/GPUParticlesCollisionSDF.xml +++ b/doc/classes/GPUParticlesCollisionSDF3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesCollisionSDF" inherits="GPUParticlesCollision3D" version="4.0"> +<class name="GPUParticlesCollisionSDF3D" inherits="GPUParticlesCollision3D" version="4.0"> <brief_description> </brief_description> <description> @@ -9,7 +9,7 @@ <members> <member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(1, 1, 1)"> </member> - <member name="resolution" type="int" setter="set_resolution" getter="get_resolution" enum="GPUParticlesCollisionSDF.Resolution" default="2"> + <member name="resolution" type="int" setter="set_resolution" getter="get_resolution" enum="GPUParticlesCollisionSDF3D.Resolution" default="2"> </member> <member name="texture" type="Texture3D" setter="set_texture" getter="get_texture"> </member> diff --git a/doc/classes/GPUParticlesCollisionSphere.xml b/doc/classes/GPUParticlesCollisionSphere3D.xml index ddb2391fd9..82728f853b 100644 --- a/doc/classes/GPUParticlesCollisionSphere.xml +++ b/doc/classes/GPUParticlesCollisionSphere3D.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GPUParticlesCollisionSphere" inherits="GPUParticlesCollision3D" version="4.0"> +<class name="GPUParticlesCollisionSphere3D" inherits="GPUParticlesCollision3D" version="4.0"> <brief_description> </brief_description> <description> diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index a50983853d..e15b065744 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -173,6 +173,24 @@ Sends the body data raw, as a byte array and does not encode it in any way. </description> </method> + <method name="set_http_proxy"> + <return type="void" /> + <argument index="0" name="host" type="String" /> + <argument index="1" name="port" type="int" /> + <description> + Sets the proxy server for HTTP requests. + The proxy server is unset if [code]host[/code] is empty or [code]port[/code] is -1. + </description> + </method> + <method name="set_https_proxy"> + <return type="void" /> + <argument index="0" name="host" type="String" /> + <argument index="1" name="port" type="int" /> + <description> + Sets the proxy server for HTTPS requests. + The proxy server is unset if [code]host[/code] is empty or [code]port[/code] is -1. + </description> + </method> </methods> <members> <member name="blocking_mode_enabled" type="bool" setter="set_blocking_mode" getter="is_blocking_mode_enabled" default="false"> diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml index 8a4bbee0fa..29feb107d4 100644 --- a/doc/classes/Image.xml +++ b/doc/classes/Image.xml @@ -286,7 +286,7 @@ <return type="int" enum="Error" /> <argument index="0" name="path" type="String" /> <description> - Loads an image from file [code]path[/code]. See [url=$DOCS_URL/getting_started/workflow/assets/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations. + Loads an image from file [code]path[/code]. See [url=$DOCS_URL/tutorials/assets_pipeline/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations. [b]Warning:[/b] This method should only be used in the editor or in cases when you need to load external images at run-time, such as images located at the [code]user://[/code] directory, and may not work in exported projects. See also [ImageTexture] description for usage examples. </description> diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index cd5ba2e17f..068106f2c7 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -243,17 +243,6 @@ Returns [code]true[/code] if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a [enum Key] constant. </description> </method> - <method name="joy_connection_changed"> - <return type="void" /> - <argument index="0" name="device" type="int" /> - <argument index="1" name="connected" type="bool" /> - <argument index="2" name="name" type="String" /> - <argument index="3" name="guid" type="String" /> - <description> - Notifies the [Input] singleton that a connection has changed, to update the state for the [code]device[/code] index. - This is used internally and should not have to be called from user scripts. See [signal joy_connection_changed] for the signal emitted when this is triggered internally. - </description> - </method> <method name="parse_input_event"> <return type="void" /> <argument index="0" name="event" type="InputEvent" /> diff --git a/doc/classes/InputEventScreenTouch.xml b/doc/classes/InputEventScreenTouch.xml index 0694b2eabc..17f6eeecab 100644 --- a/doc/classes/InputEventScreenTouch.xml +++ b/doc/classes/InputEventScreenTouch.xml @@ -15,7 +15,7 @@ The touch index in the case of a multi-touch event. One index = one finger. </member> <member name="position" type="Vector2" setter="set_position" getter="get_position" default="Vector2(0, 0)"> - The touch position. + The touch position, in screen (global) coordinates. </member> <member name="pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false"> If [code]true[/code], the touch's state is pressed. If [code]false[/code], the touch's state is released. diff --git a/doc/classes/ItemList.xml b/doc/classes/ItemList.xml index 0626df0414..7263687ea8 100644 --- a/doc/classes/ItemList.xml +++ b/doc/classes/ItemList.xml @@ -381,7 +381,7 @@ <member name="icon_scale" type="float" setter="set_icon_scale" getter="get_icon_scale" default="1.0"> The scale of icon applied after [member fixed_icon_size] and transposing takes effect. </member> - <member name="items_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> + <member name="item_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> The number of items currently in the list. </member> <member name="max_columns" type="int" setter="set_max_columns" getter="get_max_columns" default="1"> diff --git a/doc/classes/Joint2D.xml b/doc/classes/Joint2D.xml index b003224ad4..6b32d680eb 100644 --- a/doc/classes/Joint2D.xml +++ b/doc/classes/Joint2D.xml @@ -11,6 +11,7 @@ <members> <member name="bias" type="float" setter="set_bias" getter="get_bias" default="0.0"> When [member node_a] and [member node_b] move in different directions the [code]bias[/code] controls how fast the joint pulls them back to their original position. The lower the [code]bias[/code] the more the two bodies can pull on the joint. + When set to [code]0[/code], the default value from [member ProjectSettings.physics/2d/solver/default_constraint_bias] is used. </member> <member name="disable_collision" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision" default="true"> If [code]true[/code], [member node_a] and [member node_b] can not collide. diff --git a/doc/classes/Label.xml b/doc/classes/Label.xml index bb273bcf48..e1d8b9e9f4 100644 --- a/doc/classes/Label.xml +++ b/doc/classes/Label.xml @@ -61,15 +61,15 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_align" getter="get_align" enum="Label.Align" default="0"> - Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the [enum Align] constants. - </member> <member name="autowrap_mode" type="int" setter="set_autowrap_mode" getter="get_autowrap_mode" enum="Label.AutowrapMode" default="0"> If set to something other than [constant AUTOWRAP_OFF], the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see [enum AutowrapMode]. </member> <member name="clip_text" type="bool" setter="set_clip_text" getter="is_clipping_text" default="false"> If [code]true[/code], the Label only shows the text that fits inside its bounding rectangle and will clip text horizontally. </member> + <member name="horizontal_alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0"> + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the [enum HorizontalAlignment] constants. + </member> <member name="language" type="String" setter="set_language" getter="get_language" default=""""> Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. </member> @@ -102,38 +102,14 @@ <member name="uppercase" type="bool" setter="set_uppercase" getter="is_uppercase" default="false"> If [code]true[/code], all the text displays as UPPERCASE. </member> - <member name="valign" type="int" setter="set_valign" getter="get_valign" enum="Label.VAlign" default="0"> - Controls the text's vertical align. Supports top, center, bottom, and fill. Set it to one of the [enum VAlign] constants. + <member name="vertical_alignment" type="int" setter="set_vertical_alignment" getter="get_vertical_alignment" enum="VerticalAlignment" default="0"> + Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the [enum VerticalAlignment] constants. </member> <member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1"> Restricts the number of characters to display. Set to -1 to disable. </member> </members> <constants> - <constant name="ALIGN_LEFT" value="0" enum="Align"> - Align rows to the left (default). - </constant> - <constant name="ALIGN_CENTER" value="1" enum="Align"> - Align rows centered. - </constant> - <constant name="ALIGN_RIGHT" value="2" enum="Align"> - Align rows to the right. - </constant> - <constant name="ALIGN_FILL" value="3" enum="Align"> - Expand row to fit the width. - </constant> - <constant name="VALIGN_TOP" value="0" enum="VAlign"> - Align the whole text to the top. - </constant> - <constant name="VALIGN_CENTER" value="1" enum="VAlign"> - Align the whole text to the center. - </constant> - <constant name="VALIGN_BOTTOM" value="2" enum="VAlign"> - Align the whole text to the bottom. - </constant> - <constant name="VALIGN_FILL" value="3" enum="VAlign"> - Align the whole text by spreading the rows. - </constant> <constant name="AUTOWRAP_OFF" value="0" enum="AutowrapMode"> Autowrap is disabled. </constant> diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml index 40e1057ed0..06094300de 100644 --- a/doc/classes/LineEdit.xml +++ b/doc/classes/LineEdit.xml @@ -159,8 +159,8 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_align" getter="get_align" enum="LineEdit.Align" default="0"> - Text alignment as defined in the [enum Align] enum. + <member name="alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0"> + Text alignment as defined in the [enum HorizontalAlignment] enum. </member> <member name="caret_blink" type="bool" setter="set_caret_blink_enabled" getter="is_caret_blink_enabled" default="false"> If [code]true[/code], the caret (text cursor) blinks. @@ -292,18 +292,6 @@ </signal> </signals> <constants> - <constant name="ALIGN_LEFT" value="0" enum="Align"> - Aligns the text on the left-hand side of the [LineEdit]. - </constant> - <constant name="ALIGN_CENTER" value="1" enum="Align"> - Centers the text in the middle of the [LineEdit]. - </constant> - <constant name="ALIGN_RIGHT" value="2" enum="Align"> - Aligns the text on the right-hand side of the [LineEdit]. - </constant> - <constant name="ALIGN_FILL" value="3" enum="Align"> - Expand row to fit the [LineEdit]'s width. - </constant> <constant name="MENU_CUT" value="0" enum="MenuItems"> Cuts (copies and clears) the selected text. </constant> diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml index 93f514cc63..b0774d4cab 100644 --- a/doc/classes/MenuButton.xml +++ b/doc/classes/MenuButton.xml @@ -30,7 +30,7 @@ <member name="action_mode" type="int" setter="set_action_mode" getter="get_action_mode" overrides="BaseButton" enum="BaseButton.ActionMode" default="0" /> <member name="flat" type="bool" setter="set_flat" getter="is_flat" overrides="Button" default="true" /> <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="0" /> - <member name="items_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> + <member name="item_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> The number of items currently in the list. </member> <member name="switch_on_hover" type="bool" setter="set_switch_on_hover" getter="is_switch_on_hover" default="false"> diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index f1ab5e4843..22ebbb87f3 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -571,7 +571,8 @@ <description> Replaces a node in a scene by the given one. Subscriptions that pass through this node will be lost. If [code]keep_groups[/code] is [code]true[/code], the [code]node[/code] is added to the same groups that the replaced node is in. - Note that the replaced node is not automatically freed, so you either need to keep it in a variable for later use or free it using [method Object.free]. + [b]Note:[/b] The given node will become the new parent of any child nodes that the replaced node had. + [b]Note:[/b] The replaced node is not automatically freed, so you either need to keep it in a variable for later use or free it using [method Object.free]. </description> </method> <method name="request_ready"> @@ -726,7 +727,7 @@ <signals> <signal name="ready"> <description> - Emitted when the node is ready. + Emitted when the node is ready. Comes after [method _ready] callback and follows the same rules. </description> </signal> <signal name="renamed"> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index 7088844547..a5bd8e2768 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -31,6 +31,13 @@ [b]Note:[/b] This method is implemented on Linux, macOS and Windows. </description> </method> + <method name="crash"> + <return type="void" /> + <argument index="0" name="message" type="String" /> + <description> + Crashes the engine (or the editor if called within a [code]@tool[/code] script). This should [i]only[/i] be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) [method @GDScript.assert], [method @GlobalScope.push_error] or [method alert]. See also [method kill]. + </description> + </method> <method name="create_instance"> <return type="int" /> <argument index="0" name="arguments" type="PackedStringArray" /> @@ -374,7 +381,7 @@ <return type="int" enum="Error" /> <argument index="0" name="pid" type="int" /> <description> - Kill (terminate) the process identified by the given process ID ([code]pid[/code]), e.g. the one returned by [method execute] in non-blocking mode. + Kill (terminate) the process identified by the given process ID ([code]pid[/code]), e.g. the one returned by [method execute] in non-blocking mode. See also [method crash]. [b]Note:[/b] This method can also be used to kill processes that were not spawned by the game. [b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and Windows. </description> diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml index d914b86a33..d2f9b08fbf 100644 --- a/doc/classes/OptionButton.xml +++ b/doc/classes/OptionButton.xml @@ -164,7 +164,7 @@ </methods> <members> <member name="action_mode" type="int" setter="set_action_mode" getter="get_action_mode" overrides="BaseButton" enum="BaseButton.ActionMode" default="0" /> - <member name="align" type="int" setter="set_text_align" getter="get_text_align" overrides="Button" enum="Button.TextAlign" default="0" /> + <member name="alignment" type="int" setter="set_text_alignment" getter="get_text_alignment" overrides="Button" enum="HorizontalAlignment" default="0" /> <member name="selected" type="int" setter="_select_int" getter="get_selected" default="-1"> The index of the currently selected item, or [code]-1[/code] if no item is selected. </member> diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml index fd098481e4..b16d45b8ca 100644 --- a/doc/classes/PackedByteArray.xml +++ b/doc/classes/PackedByteArray.xml @@ -366,18 +366,19 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedByteArray" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. + Returns the slice of the [PackedByteArray], from [code]begin[/code] (inclusive) to [code]end[/code] (exclusive), as a new [PackedByteArray]. + If [code]end[/code]is negative, it will be relative to the end of the array. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedByteArray" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> - Returns the slice of the [PackedByteArray] between indices (inclusive) as a new [PackedByteArray]. Any negative index is considered to be from the end of the array. + Sorts the elements of the array in ascending order. </description> </method> <method name="to_float32_array" qualifiers="const"> diff --git a/doc/classes/PackedColorArray.xml b/doc/classes/PackedColorArray.xml index f69c5504da..13d7440bb9 100644 --- a/doc/classes/PackedColorArray.xml +++ b/doc/classes/PackedColorArray.xml @@ -129,17 +129,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedColorArray" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedColorArray" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedFloat32Array.xml b/doc/classes/PackedFloat32Array.xml index ccac607386..151014192f 100644 --- a/doc/classes/PackedFloat32Array.xml +++ b/doc/classes/PackedFloat32Array.xml @@ -130,17 +130,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedFloat32Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedFloat32Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedFloat64Array.xml b/doc/classes/PackedFloat64Array.xml index b164283b3e..963a02ace8 100644 --- a/doc/classes/PackedFloat64Array.xml +++ b/doc/classes/PackedFloat64Array.xml @@ -130,17 +130,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedFloat64Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedFloat64Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedInt32Array.xml b/doc/classes/PackedInt32Array.xml index c6ff31ebdd..cef113dee9 100644 --- a/doc/classes/PackedInt32Array.xml +++ b/doc/classes/PackedInt32Array.xml @@ -130,17 +130,17 @@ Returns the array size. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedInt32Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedInt32Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedInt64Array.xml b/doc/classes/PackedInt64Array.xml index ff48eb1aad..072df519c6 100644 --- a/doc/classes/PackedInt64Array.xml +++ b/doc/classes/PackedInt64Array.xml @@ -130,17 +130,17 @@ Returns the array size. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedInt64Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedInt64Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedStringArray.xml b/doc/classes/PackedStringArray.xml index 4204277ea2..0bded150a3 100644 --- a/doc/classes/PackedStringArray.xml +++ b/doc/classes/PackedStringArray.xml @@ -130,17 +130,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedStringArray" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedStringArray" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedVector2Array.xml b/doc/classes/PackedVector2Array.xml index e6a7b2fa41..8e993c41ab 100644 --- a/doc/classes/PackedVector2Array.xml +++ b/doc/classes/PackedVector2Array.xml @@ -130,17 +130,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedVector2Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedVector2Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/PackedVector3Array.xml b/doc/classes/PackedVector3Array.xml index 6992bbca01..df69e3cd4a 100644 --- a/doc/classes/PackedVector3Array.xml +++ b/doc/classes/PackedVector3Array.xml @@ -129,17 +129,17 @@ Returns the size of the array. </description> </method> - <method name="sort"> - <return type="void" /> + <method name="slice" qualifiers="const"> + <return type="PackedVector3Array" /> + <argument index="0" name="begin" type="int" /> + <argument index="1" name="end" type="int" /> <description> - Sorts the elements of the array in ascending order. </description> </method> - <method name="subarray" qualifiers="const"> - <return type="PackedVector3Array" /> - <argument index="0" name="from" type="int" /> - <argument index="1" name="to" type="int" /> + <method name="sort"> + <return type="void" /> <description> + Sorts the elements of the array in ascending order. </description> </method> <method name="to_byte_array" qualifiers="const"> diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml index 2cc0d8f2b0..d2261ed4cc 100644 --- a/doc/classes/ParticlesMaterial.xml +++ b/doc/classes/ParticlesMaterial.xml @@ -6,7 +6,7 @@ <description> ParticlesMaterial defines particle properties and behavior. It is used in the [code]process_material[/code] of [GPUParticles3D] and [GPUParticles2D] emitter nodes. Some of this material's properties are applied to each particle when emitted, while others can have a [CurveTexture] applied to vary values over the lifetime of the particle. - When a randomness ratio is applied to a property it is used to scale that property by a random amount. The random ratio is used to interpolate between [code]1.0[/code] and a random number less than one, the result is multiplied by the property to obtain the randomized property. For example a random ratio of [code]0.4[/code] would scale the original property between [code]0.4-1.0[/code] of its original value. + Particle animation is available only in [GPUParticles2D]. To use it, attach a [CanvasItemMaterial], with [member CanvasItemMaterial.particles_animation] enabled, to the particles node. </description> <tutorials> </tutorials> @@ -83,13 +83,13 @@ Minimum angle. </member> <member name="angular_velocity_curve" type="Texture2D" setter="set_param_texture" getter="get_param_texture"> - Each particle's angular velocity will vary along this [CurveTexture]. + Each particle's angular velocity (rotation speed) will vary along this [CurveTexture] over its lifetime. </member> <member name="angular_velocity_max" type="float" setter="set_param_max" getter="get_param_max" default="0.0"> - Maximum angular velocity. + Maximum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] per second. </member> <member name="angular_velocity_min" type="float" setter="set_param_min" getter="get_param_min" default="0.0"> - Minimum angular velocity. + Minimum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] per second. </member> <member name="anim_offset_curve" type="Texture2D" setter="set_param_texture" getter="get_param_texture"> Each particle's animation offset will vary along this [CurveTexture]. @@ -104,7 +104,8 @@ Each particle's animation speed will vary along this [CurveTexture]. </member> <member name="anim_speed_max" type="float" setter="set_param_max" getter="get_param_max" default="0.0"> - Maximum particle animation speed. + Maximum particle animation speed. Animation speed of [code]1[/code] means that the particles will make full [code]0[/code] to [code]1[/code] offset cycle during lifetime, [code]2[/code] means [code]2[/code] cycles etc. + With animation speed greater than [code]1[/code], remember to enable [member CanvasItemMaterial.particles_anim_loop] property if you want the animation to repeat. </member> <member name="anim_speed_min" type="float" setter="set_param_min" getter="get_param_min" default="0.0"> Minimum particle animation speed. @@ -127,6 +128,9 @@ <member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)"> Each particle's initial color. If the [GPUParticles2D]'s [code]texture[/code] is defined, it will be multiplied by this color. To have particle display color in a [BaseMaterial3D] make sure to set [member BaseMaterial3D.vertex_color_use_as_albedo] to [code]true[/code]. </member> + <member name="color_initial_ramp" type="Texture2D" setter="set_color_initial_ramp" getter="get_color_initial_ramp"> + Each particle's initial color will vary along this [GradientTexture1D] (multiplied with [member color]). + </member> <member name="color_ramp" type="Texture2D" setter="set_color_ramp" getter="get_color_ramp"> Each particle's color will vary along this [GradientTexture1D] over its lifetime (multiplied with [member color]). </member> @@ -195,7 +199,7 @@ Minimum initial velocity. </member> <member name="lifetime_randomness" type="float" setter="set_lifetime_randomness" getter="get_lifetime_randomness" default="0.0"> - Particle lifetime randomness ratio. + Particle lifetime randomness ratio. The lifetime will be multipled by a value interpolated between [code]1.0[/code] and a random number less than one. For example a random ratio of [code]0.4[/code] would scale the original lifetime between [code]0.4-1.0[/code] of its original value. </member> <member name="linear_accel_curve" type="Texture2D" setter="set_param_texture" getter="get_param_texture"> Each particle's linear acceleration will vary along this [CurveTexture]. diff --git a/doc/classes/PhysicsDirectBodyState2D.xml b/doc/classes/PhysicsDirectBodyState2D.xml index c33bd930be..9921974c6e 100644 --- a/doc/classes/PhysicsDirectBodyState2D.xml +++ b/doc/classes/PhysicsDirectBodyState2D.xml @@ -11,26 +11,36 @@ <link title="Ray-casting">$DOCS_URL/tutorials/physics/ray-casting.html</link> </tutorials> <methods> - <method name="add_central_force"> + <method name="add_constant_central_force"> <return type="void" /> - <argument index="0" name="force" type="Vector2" /> + <argument index="0" name="force" type="Vector2" default="Vector2(0, 0)" /> <description> - Adds a constant directional force without affecting rotation. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]constant_force = Vector2(0, 0)[/code]. + This is equivalent to using [method add_constant_force] at the body's center of mass. </description> </method> - <method name="add_force"> + <method name="add_constant_force"> <return type="void" /> <argument index="0" name="force" type="Vector2" /> <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates. + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]constant_force = Vector2(0, 0)[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> - <method name="add_torque"> + <method name="add_constant_torque"> <return type="void" /> <argument index="0" name="torque" type="float" /> <description> - Adds a constant rotational force. + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]constant_torque = 0[/code]. + </description> + </method> + <method name="apply_central_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector2" default="Vector2(0, 0)" /> + <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method apply_force] at the body's center of mass. </description> </method> <method name="apply_central_impulse"> @@ -38,6 +48,17 @@ <argument index="0" name="impulse" type="Vector2" /> <description> Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method apply_impulse] at the body's center of mass. + </description> + </method> + <method name="apply_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector2" /> + <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="apply_impulse"> @@ -45,14 +66,38 @@ <argument index="0" name="impulse" type="Vector2" /> <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The offset uses the rotation of the global coordinate system, but is centered at the object's origin. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="apply_torque"> + <return type="void" /> + <argument index="0" name="torque" type="float" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="apply_torque_impulse"> <return type="void" /> <argument index="0" name="impulse" type="float" /> <description> - Applies a rotational impulse to the body. + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + </description> + </method> + <method name="get_constant_force" qualifiers="const"> + <return type="Vector2" /> + <description> + Returns the body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </description> + </method> + <method name="get_constant_torque" qualifiers="const"> + <return type="float" /> + <description> + Returns the body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. </description> </method> <method name="get_contact_collider" qualifiers="const"> @@ -144,10 +189,26 @@ Calls the built-in force integration code. </description> </method> + <method name="set_constant_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector2" /> + <description> + Sets the body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </description> + </method> + <method name="set_constant_torque"> + <return type="void" /> + <argument index="0" name="torque" type="float" /> + <description> + Sets the body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. + </description> + </method> </methods> <members> <member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity"> - The body's rotational velocity. + The body's rotational velocity in [i]radians[/i] per second. </member> <member name="center_of_mass" type="Vector2" setter="" getter="get_center_of_mass"> The body's center of mass position relative to the body's center in the global coordinate system. @@ -162,7 +223,7 @@ The inverse of the mass of the body. </member> <member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity"> - The body's linear velocity. + The body's linear velocity in pixels per second. </member> <member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping"> If [code]true[/code], this body is currently sleeping (not active). diff --git a/doc/classes/PhysicsDirectBodyState3D.xml b/doc/classes/PhysicsDirectBodyState3D.xml index 7aa46dec2f..77c99c55b1 100644 --- a/doc/classes/PhysicsDirectBodyState3D.xml +++ b/doc/classes/PhysicsDirectBodyState3D.xml @@ -11,35 +11,54 @@ <link title="Ray-casting">$DOCS_URL/tutorials/physics/ray-casting.html</link> </tutorials> <methods> - <method name="add_central_force"> + <method name="add_constant_central_force"> <return type="void" /> <argument index="0" name="force" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Adds a constant directional force without affecting rotation. - This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]constant_force = Vector3(0, 0, 0)[/code]. + This is equivalent to using [method add_constant_force] at the body's center of mass. </description> </method> - <method name="add_force"> + <method name="add_constant_force"> <return type="void" /> <argument index="0" name="force" type="Vector3" /> <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates. + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]constant_force = Vector3(0, 0, 0)[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> - <method name="add_torque"> + <method name="add_constant_torque"> <return type="void" /> <argument index="0" name="torque" type="Vector3" /> <description> - Adds a constant rotational force without affecting position. + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]constant_torque = Vector3(0, 0, 0)[/code]. + </description> + </method> + <method name="apply_central_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector3" default="Vector3(0, 0, 0)" /> + <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method apply_force] at the body's center of mass. </description> </method> <method name="apply_central_impulse"> <return type="void" /> <argument index="0" name="impulse" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Applies a single directional impulse without affecting rotation. - This is equivalent to [code]apply_impulse(Vector3(0, 0, 0), impulse)[/code]. + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method apply_impulse] at the body's center of mass. + </description> + </method> + <method name="apply_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector3" /> + <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="apply_impulse"> @@ -47,14 +66,38 @@ <argument index="0" name="impulse" type="Vector3" /> <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="apply_torque"> + <return type="void" /> + <argument index="0" name="torque" type="Vector3" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="apply_torque_impulse"> <return type="void" /> <argument index="0" name="impulse" type="Vector3" /> <description> - Apply a torque impulse (which will be affected by the body mass and shape). This will rotate the body around the vector [code]j[/code] passed as parameter. + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + </description> + </method> + <method name="get_constant_force" qualifiers="const"> + <return type="Vector3" /> + <description> + Returns the body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </description> + </method> + <method name="get_constant_torque" qualifiers="const"> + <return type="Vector3" /> + <description> + Returns the body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. </description> </method> <method name="get_contact_collider" qualifiers="const"> @@ -153,10 +196,26 @@ Calls the built-in force integration code. </description> </method> + <method name="set_constant_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector3" /> + <description> + Sets the body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </description> + </method> + <method name="set_constant_torque"> + <return type="void" /> + <argument index="0" name="torque" type="Vector3" /> + <description> + Sets the body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. + </description> + </method> </methods> <members> <member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity"> - The body's rotational velocity. + The body's rotational velocity in [i]radians[/i] per second. </member> <member name="center_of_mass" type="Vector3" setter="" getter="get_center_of_mass"> The body's center of mass position relative to the body's center in the global coordinate system. @@ -171,7 +230,7 @@ The inverse of the mass of the body. </member> <member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity"> - The body's linear velocity. + The body's linear velocity in units per second. </member> <member name="principal_inertia_axes" type="Basis" setter="" getter="get_principal_inertia_axes"> </member> diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml index 868b58ea9f..624f5e7b17 100644 --- a/doc/classes/PhysicsServer2D.xml +++ b/doc/classes/PhysicsServer2D.xml @@ -208,28 +208,39 @@ Sets the transform matrix for an area. </description> </method> - <method name="body_add_central_force"> + <method name="body_add_collision_exception"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="force" type="Vector2" /> + <argument index="1" name="excepted_body" type="RID" /> <description> + Adds a body to the list of bodies exempt from collisions. </description> </method> - <method name="body_add_collision_exception"> + <method name="body_add_constant_central_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="excepted_body" type="RID" /> + <argument index="1" name="force" type="Vector2" /> <description> - Adds a body to the list of bodies exempt from collisions. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]body_set_constant_force(body, Vector2(0, 0))[/code]. + This is equivalent to using [method body_add_constant_force] at the body's center of mass. </description> </method> - <method name="body_add_force"> + <method name="body_add_constant_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> <argument index="1" name="force" type="Vector2" /> <argument index="2" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Adds a positioned force to the applied force and torque. As with [method body_apply_impulse], both the force and the offset from the body origin are in global coordinates. A force differs from an impulse in that, while the two are forces, the impulse clears itself after being applied. + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]body_set_constant_force(body, Vector2(0, 0))[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="body_add_constant_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="float" /> + <description> + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]body_set_constant_torque(body, 0)[/code]. </description> </method> <method name="body_add_shape"> @@ -242,11 +253,13 @@ Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. </description> </method> - <method name="body_add_torque"> + <method name="body_apply_central_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="torque" type="float" /> + <argument index="1" name="force" type="Vector2" /> <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method body_apply_force] at the body's center of mass. </description> </method> <method name="body_apply_central_impulse"> @@ -254,6 +267,19 @@ <argument index="0" name="body" type="RID" /> <argument index="1" name="impulse" type="Vector2" /> <description> + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method body_apply_impulse] at the body's center of mass. + </description> + </method> + <method name="body_apply_force"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="force" type="Vector2" /> + <argument index="2" name="position" type="Vector2" default="Vector2(0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="body_apply_impulse"> @@ -262,7 +288,17 @@ <argument index="1" name="impulse" type="Vector2" /> <argument index="2" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Adds a positioned impulse to the applied force and torque. Both the force and the offset from the body origin are in global coordinates. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="body_apply_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="float" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="body_apply_torque_impulse"> @@ -270,6 +306,8 @@ <argument index="0" name="body" type="RID" /> <argument index="1" name="impulse" type="float" /> <description> + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). </description> </method> <method name="body_attach_canvas_instance_id"> @@ -320,6 +358,22 @@ Returns the physics layer or layers a body can collide with. </description> </method> + <method name="body_get_constant_force" qualifiers="const"> + <return type="Vector2" /> + <argument index="0" name="body" type="RID" /> + <description> + Returns the body's total constant positional forces applied during each physics update. + See [method body_add_constant_force] and [method body_add_constant_central_force]. + </description> + </method> + <method name="body_get_constant_torque" qualifiers="const"> + <return type="float" /> + <argument index="0" name="body" type="RID" /> + <description> + Returns the body's total constant rotational forces applied during each physics update. + See [method body_add_constant_torque]. + </description> + </method> <method name="body_get_continuous_collision_detection_mode" qualifiers="const"> <return type="int" enum="PhysicsServer2D.CCDMode" /> <argument index="0" name="body" type="RID" /> @@ -455,6 +509,24 @@ Sets the physics layer or layers a body can collide with. </description> </method> + <method name="body_set_constant_force"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="force" type="Vector2" /> + <description> + Sets the body's total constant positional forces applied during each physics update. + See [method body_add_constant_force] and [method body_add_constant_central_force]. + </description> + </method> + <method name="body_set_constant_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="float" /> + <description> + Sets the body's total constant rotational forces applied during each physics update. + See [method body_add_constant_torque]. + </description> + </method> <method name="body_set_continuous_collision_detection_mode"> <return type="void" /> <argument index="0" name="body" type="RID" /> @@ -711,13 +783,6 @@ Activates or deactivates the 2D physics engine. </description> </method> - <method name="set_collision_iterations"> - <return type="void" /> - <argument index="0" name="iterations" type="int" /> - <description> - Sets the amount of iterations for calculating velocities of colliding bodies. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. The default value is [code]8[/code]. - </description> - </method> <method name="shape_get_data" qualifiers="const"> <return type="Variant" /> <argument index="0" name="shape" type="RID" /> @@ -796,23 +861,29 @@ Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated. </constant> <constant name="SPACE_PARAM_CONTACT_MAX_SEPARATION" value="1" enum="SpaceParameter"> - Constant to set/get the maximum distance a shape can be from another before they are considered separated. + Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded. </constant> - <constant name="SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION" value="2" enum="SpaceParameter"> + <constant name="SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION" value="2" enum="SpaceParameter"> Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision. </constant> - <constant name="SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD" value="3" enum="SpaceParameter"> + <constant name="SPACE_PARAM_CONTACT_DEFAULT_BIAS" value="3" enum="SpaceParameter"> + Constant to set/get the default solver bias for all physics contacts. A solver bias is a factor controlling how much two objects "rebound", after overlapping, to avoid leaving them in that state because of numerical imprecision. + </constant> + <constant name="SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD" value="4" enum="SpaceParameter"> Constant to set/get the threshold linear velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. </constant> - <constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD" value="4" enum="SpaceParameter"> + <constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD" value="5" enum="SpaceParameter"> Constant to set/get the threshold angular velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. </constant> - <constant name="SPACE_PARAM_BODY_TIME_TO_SLEEP" value="5" enum="SpaceParameter"> + <constant name="SPACE_PARAM_BODY_TIME_TO_SLEEP" value="6" enum="SpaceParameter"> Constant to set/get the maximum time of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after this time. </constant> - <constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="6" enum="SpaceParameter"> + <constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="7" enum="SpaceParameter"> Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision. </constant> + <constant name="SPACE_PARAM_SOLVER_ITERATIONS" value="8" enum="SpaceParameter"> + Constant to set/get the number of solver iterations for all contacts and constraints. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. + </constant> <constant name="SHAPE_WORLD_BOUNDARY" value="0" enum="ShapeType"> This is the constant for creating world boundary shapes. A world boundary shape is an [i]infinite[/i] line with an origin point, and a normal. Thus, it can be used for front/behind checks. </constant> diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml index ceb3e788d2..16c195c6dc 100644 --- a/doc/classes/PhysicsServer3D.xml +++ b/doc/classes/PhysicsServer3D.xml @@ -202,27 +202,39 @@ Sets the transform matrix for an area. </description> </method> - <method name="body_add_central_force"> + <method name="body_add_collision_exception"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="force" type="Vector3" /> + <argument index="1" name="excepted_body" type="RID" /> <description> + Adds a body to the list of bodies exempt from collisions. </description> </method> - <method name="body_add_collision_exception"> + <method name="body_add_constant_central_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="excepted_body" type="RID" /> + <argument index="1" name="force" type="Vector3" /> <description> - Adds a body to the list of bodies exempt from collisions. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]body_set_constant_force(body, Vector3(0, 0, 0))[/code]. + This is equivalent to using [method body_add_constant_force] at the body's center of mass. </description> </method> - <method name="body_add_force"> + <method name="body_add_constant_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> <argument index="1" name="force" type="Vector3" /> <argument index="2" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]body_set_constant_force(body, Vector3(0, 0, 0))[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="body_add_constant_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="Vector3" /> + <description> + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]body_set_constant_torque(body, Vector3(0, 0, 0))[/code]. </description> </method> <method name="body_add_shape"> @@ -235,11 +247,13 @@ Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. </description> </method> - <method name="body_add_torque"> + <method name="body_apply_central_force"> <return type="void" /> <argument index="0" name="body" type="RID" /> - <argument index="1" name="torque" type="Vector3" /> + <argument index="1" name="force" type="Vector3" /> <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method body_apply_force] at the body's center of mass. </description> </method> <method name="body_apply_central_impulse"> @@ -247,6 +261,19 @@ <argument index="0" name="body" type="RID" /> <argument index="1" name="impulse" type="Vector3" /> <description> + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method body_apply_impulse] at the body's center of mass. + </description> + </method> + <method name="body_apply_force"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="force" type="Vector3" /> + <argument index="2" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="body_apply_impulse"> @@ -255,7 +282,17 @@ <argument index="1" name="impulse" type="Vector3" /> <argument index="2" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Gives the body a push at a [code]position[/code] in the direction of the [code]impulse[/code]. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="body_apply_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="Vector3" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="body_apply_torque_impulse"> @@ -263,7 +300,8 @@ <argument index="0" name="body" type="RID" /> <argument index="1" name="impulse" type="Vector3" /> <description> - Gives the body a push to rotate it. + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). </description> </method> <method name="body_attach_object_instance_id"> @@ -301,6 +339,22 @@ - </description> </method> + <method name="body_get_constant_force" qualifiers="const"> + <return type="Vector3" /> + <argument index="0" name="body" type="RID" /> + <description> + Returns the body's total constant positional forces applied during each physics update. + See [method body_add_constant_force] and [method body_add_constant_central_force]. + </description> + </method> + <method name="body_get_constant_torque" qualifiers="const"> + <return type="Vector3" /> + <argument index="0" name="body" type="RID" /> + <description> + Returns the body's total constant rotational forces applied during each physics update. + See [method body_add_constant_torque]. + </description> + </method> <method name="body_get_direct_state"> <return type="PhysicsDirectBodyState3D" /> <argument index="0" name="body" type="RID" /> @@ -452,6 +506,24 @@ Sets the physics layer or layers a body can collide with. </description> </method> + <method name="body_set_constant_force"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="force" type="Vector3" /> + <description> + Sets the body's total constant positional forces applied during each physics update. + See [method body_add_constant_force] and [method body_add_constant_central_force]. + </description> + </method> + <method name="body_set_constant_torque"> + <return type="void" /> + <argument index="0" name="body" type="RID" /> + <argument index="1" name="torque" type="Vector3" /> + <description> + Sets the body's total constant rotational forces applied during each physics update. + See [method body_add_constant_torque]. + </description> + </method> <method name="body_set_enable_continuous_collision_detection"> <return type="void" /> <argument index="0" name="body" type="RID" /> @@ -846,14 +918,6 @@ Activates or deactivates the 3D physics engine. </description> </method> - <method name="set_collision_iterations"> - <return type="void" /> - <argument index="0" name="iterations" type="int" /> - <description> - Sets the amount of iterations for calculating velocities of colliding bodies. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. The default value is [code]8[/code]. - [b]Note:[/b] Only has an effect when using the default GodotPhysics engine, not the Bullet physics engine. - </description> - </method> <method name="shape_get_data" qualifiers="const"> <return type="Variant" /> <argument index="0" name="shape" type="RID" /> @@ -1341,24 +1405,25 @@ Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated. </constant> <constant name="SPACE_PARAM_CONTACT_MAX_SEPARATION" value="1" enum="SpaceParameter"> - Constant to set/get the maximum distance a shape can be from another before they are considered separated. + Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded. </constant> - <constant name="SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION" value="2" enum="SpaceParameter"> + <constant name="SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION" value="2" enum="SpaceParameter"> Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision. </constant> - <constant name="SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD" value="3" enum="SpaceParameter"> + <constant name="SPACE_PARAM_CONTACT_DEFAULT_BIAS" value="3" enum="SpaceParameter"> + Constant to set/get the default solver bias for all physics contacts. A solver bias is a factor controlling how much two objects "rebound", after overlapping, to avoid leaving them in that state because of numerical imprecision. + </constant> + <constant name="SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD" value="4" enum="SpaceParameter"> Constant to set/get the threshold linear velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. </constant> - <constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD" value="4" enum="SpaceParameter"> + <constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD" value="5" enum="SpaceParameter"> Constant to set/get the threshold angular velocity of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after the time given. </constant> - <constant name="SPACE_PARAM_BODY_TIME_TO_SLEEP" value="5" enum="SpaceParameter"> + <constant name="SPACE_PARAM_BODY_TIME_TO_SLEEP" value="6" enum="SpaceParameter"> Constant to set/get the maximum time of activity. A body marked as potentially inactive for both linear and angular velocity will be put to sleep after this time. </constant> - <constant name="SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO" value="6" enum="SpaceParameter"> - </constant> - <constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="7" enum="SpaceParameter"> - Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision. + <constant name="SPACE_PARAM_SOLVER_ITERATIONS" value="7" enum="SpaceParameter"> + Constant to set/get the number of solver iterations for contacts and constraints. The greater the amount of iterations, the more accurate the collisions and constraints will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. </constant> <constant name="BODY_AXIS_LINEAR_X" value="1" enum="BodyAxis"> </constant> diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index b377b186f6..b45f62394d 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -107,6 +107,7 @@ <description> Adds a new item with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. + [b]Note:[/b] The provided [code]id[/code] is used only in [signal id_pressed] and [signal id_focused] signals. It's not related to the [code]index[/code] arguments in e.g. [method set_item_checked]. </description> </method> <method name="add_multistate_item"> @@ -181,7 +182,7 @@ </method> <method name="clear_item_opentype_features"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Removes all OpenType features form the item's text. </description> @@ -194,49 +195,49 @@ </method> <method name="get_item_accelerator" qualifiers="const"> <return type="int" enum="Key" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the accelerator of the item at index [code]idx[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Returns the accelerator of the item at the given [code]index[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. </description> </method> <method name="get_item_icon" qualifiers="const"> <return type="Texture2D" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the icon of the item at index [code]idx[/code]. + Returns the icon of the item at the given [code]index[/code]. </description> </method> <method name="get_item_id" qualifiers="const"> <return type="int" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the id of the item at index [code]idx[/code]. [code]id[/code] can be manually assigned, while index can not. + Returns the id of the item at the given [code]index[/code]. [code]id[/code] can be manually assigned, while index can not. </description> </method> <method name="get_item_index" qualifiers="const"> <return type="int" /> <argument index="0" name="id" type="int" /> <description> - Returns the index of the item containing the specified [code]id[/code]. Index is automatically assigned to each item by the engine. Index can not be set manually. + Returns the index of the item containing the specified [code]id[/code]. Index is automatically assigned to each item by the engine and can not be set manually. </description> </method> <method name="get_item_language" qualifiers="const"> <return type="String" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Returns item's text language code. </description> </method> <method name="get_item_metadata" qualifiers="const"> <return type="Variant" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Returns the metadata of the specified item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. </description> </method> <method name="get_item_opentype_feature" qualifiers="const"> <return type="int" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="tag" type="String" /> <description> Returns OpenType feature [code]tag[/code] of the item's text. @@ -244,160 +245,161 @@ </method> <method name="get_item_shortcut" qualifiers="const"> <return type="Shortcut" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the [Shortcut] associated with the specified [code]idx[/code] item. + Returns the [Shortcut] associated with the item at the given [code]index[/code]. </description> </method> <method name="get_item_submenu" qualifiers="const"> <return type="String" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the submenu name of the item at index [code]idx[/code]. See [method add_submenu_item] for more info on how to add a submenu. + Returns the submenu name of the item at the given [code]index[/code]. See [method add_submenu_item] for more info on how to add a submenu. </description> </method> <method name="get_item_text" qualifiers="const"> <return type="String" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the text of the item at index [code]idx[/code]. + Returns the text of the item at the given [code]index[/code]. </description> </method> <method name="get_item_text_direction" qualifiers="const"> <return type="int" enum="Control.TextDirection" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Returns item's text base writing direction. </description> </method> <method name="get_item_tooltip" qualifiers="const"> <return type="String" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns the tooltip associated with the specified index index [code]idx[/code]. + Returns the tooltip associated with the item at the given [code]index[/code]. </description> </method> <method name="is_item_checkable" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns [code]true[/code] if the item at index [code]idx[/code] is checkable in some way, i.e. if it has a checkbox or radio button. + Returns [code]true[/code] if the item at the given [code]index[/code] is checkable in some way, i.e. if it has a checkbox or radio button. [b]Note:[/b] Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> <method name="is_item_checked" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns [code]true[/code] if the item at index [code]idx[/code] is checked. + Returns [code]true[/code] if the item at the given [code]index[/code] is checked. </description> </method> <method name="is_item_disabled" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns [code]true[/code] if the item at index [code]idx[/code] is disabled. When it is disabled it can't be selected, or its action invoked. + Returns [code]true[/code] if the item at the given [code]index[/code] is disabled. When it is disabled it can't be selected, or its action invoked. See [method set_item_disabled] for more info on how to disable an item. </description> </method> <method name="is_item_radio_checkable" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Returns [code]true[/code] if the item at index [code]idx[/code] has radio button-style checkability. + Returns [code]true[/code] if the item at the given [code]index[/code] has radio button-style checkability. [b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. </description> </method> <method name="is_item_separator" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Returns [code]true[/code] if the item is a separator. If it is, it will be displayed as a line. See [method add_separator] for more info on how to add a separator. </description> </method> <method name="is_item_shortcut_disabled" qualifiers="const"> <return type="bool" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Returns [code]true[/code] if the specified item's shortcut is disabled. </description> </method> <method name="remove_item"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Removes the item at index [code]idx[/code] from the menu. + Removes the item at the given [code]index[/code] from the menu. [b]Note:[/b] The indices of items after the removed item will be shifted by one. </description> </method> <method name="set_item_accelerator"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="accel" type="int" enum="Key" /> <description> - Sets the accelerator of the item at index [code]idx[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Sets the accelerator of the item at the given [code]index[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. </description> </method> <method name="set_item_as_checkable"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="enable" type="bool" /> <description> - Sets whether the item at index [code]idx[/code] has a checkbox. If [code]false[/code], sets the type of the item to plain text. + Sets whether the item at the given [code]index[/code] has a checkbox. If [code]false[/code], sets the type of the item to plain text. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> <method name="set_item_as_radio_checkable"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="enable" type="bool" /> <description> - Sets the type of the item at the specified index [code]idx[/code] to radio button. If [code]false[/code], sets the type of the item to plain text. + Sets the type of the item at the given [code]index[/code] to radio button. If [code]false[/code], sets the type of the item to plain text. </description> </method> <method name="set_item_as_separator"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="enable" type="bool" /> <description> - Mark the item at index [code]idx[/code] as a separator, which means that it would be displayed as a line. If [code]false[/code], sets the type of the item to plain text. + Mark the item at the given [code]index[/code] as a separator, which means that it would be displayed as a line. If [code]false[/code], sets the type of the item to plain text. </description> </method> <method name="set_item_checked"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="checked" type="bool" /> <description> - Sets the checkstate status of the item at index [code]idx[/code]. + Sets the checkstate status of the item at the given [code]index[/code]. </description> </method> <method name="set_item_disabled"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="disabled" type="bool" /> <description> - Enables/disables the item at index [code]idx[/code]. When it is disabled, it can't be selected and its action can't be invoked. + Enables/disables the item at the given [code]index[/code]. When it is disabled, it can't be selected and its action can't be invoked. </description> </method> <method name="set_item_icon"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="icon" type="Texture2D" /> <description> - Replaces the [Texture2D] icon of the specified [code]idx[/code]. + Replaces the [Texture2D] icon of the item at the given [code]index[/code]. </description> </method> <method name="set_item_id"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="id" type="int" /> <description> - Sets the [code]id[/code] of the item at index [code]idx[/code]. + Sets the [code]id[/code] of the item at the given [code]index[/code]. + The [code]id[/code] is used in [signal id_pressed] and [signal id_focused] signals. </description> </method> <method name="set_item_language"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="language" type="String" /> <description> Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. @@ -405,7 +407,7 @@ </method> <method name="set_item_metadata"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="metadata" type="Variant" /> <description> Sets the metadata of an item, which may be of any type. You can later get it with [method get_item_metadata], which provides a simple way of assigning context data to items. @@ -413,7 +415,7 @@ </method> <method name="set_item_multistate"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="state" type="int" /> <description> Sets the state of a multistate item. See [method add_multistate_item] for details. @@ -421,7 +423,7 @@ </method> <method name="set_item_opentype_feature"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="tag" type="String" /> <argument index="2" name="value" type="int" /> <description> @@ -430,40 +432,40 @@ </method> <method name="set_item_shortcut"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="shortcut" type="Shortcut" /> <argument index="2" name="global" type="bool" default="false" /> <description> - Sets a [Shortcut] for the specified item [code]idx[/code]. + Sets a [Shortcut] for the item at the given [code]index[/code]. </description> </method> <method name="set_item_shortcut_disabled"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="disabled" type="bool" /> <description> - Disables the [Shortcut] of the specified index [code]idx[/code]. + Disables the [Shortcut] of the item at the given [code]index[/code]. </description> </method> <method name="set_item_submenu"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="submenu" type="String" /> <description> - Sets the submenu of the item at index [code]idx[/code]. The submenu is the name of a child [PopupMenu] node that would be shown when the item is clicked. + Sets the submenu of the item at the given [code]index[/code]. The submenu is the name of a child [PopupMenu] node that would be shown when the item is clicked. </description> </method> <method name="set_item_text"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="text" type="String" /> <description> - Sets the text of the item at index [code]idx[/code]. + Sets the text of the item at the given [code]index[/code]. </description> </method> <method name="set_item_text_direction"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="direction" type="int" enum="Control.TextDirection" /> <description> Sets item's text base writing direction. @@ -471,22 +473,22 @@ </method> <method name="set_item_tooltip"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <argument index="1" name="tooltip" type="String" /> <description> - Sets the [String] tooltip of the item at the specified index [code]idx[/code]. + Sets the [String] tooltip of the item at the given [code]index[/code]. </description> </method> <method name="toggle_item_checked"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> - Toggles the check state of the item of the specified index [code]idx[/code]. + Toggles the check state of the item at the given [code]index[/code]. </description> </method> <method name="toggle_item_multistate"> <return type="void" /> - <argument index="0" name="idx" type="int" /> + <argument index="0" name="index" type="int" /> <description> Cycle to the next state of a multistate item. See [method add_multistate_item] for details. </description> @@ -505,7 +507,7 @@ <member name="hide_on_state_item_selection" type="bool" setter="set_hide_on_state_item_selection" getter="is_hide_on_state_item_selection" default="false"> If [code]true[/code], hides the [PopupMenu] when a state item is selected. </member> - <member name="items_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> + <member name="item_count" type="int" setter="set_item_count" getter="get_item_count" default="0"> The number of items currently in the list. </member> <member name="submenu_popup_delay" type="float" setter="set_submenu_popup_delay" getter="get_submenu_popup_delay" default="0.3"> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index e0371a6a4a..26d519506b 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -432,8 +432,9 @@ </member> <member name="debug/settings/fps/force_fps" type="int" setter="" getter="" default="0"> Maximum number of frames per second allowed. The actual number of frames per second may still be below this value if the game is lagging. - If [member display/window/vsync/vsync_mode] is set to [code]Enabled[/code] or [code]Adaptive[/code], it takes precedence and the forced FPS number cannot exceed the monitor's refresh rate. + If [member display/window/vsync/vsync_mode] is set to [code]Enabled[/code] or [code]Adaptive[/code], it takes precedence and the forced FPS number cannot exceed the monitor's refresh rate. See also [member physics/common/physics_ticks_per_second]. This setting is therefore mostly relevant for lowering the maximum FPS below VSync, e.g. to perform non-real-time rendering of static frames, or test the project under lag conditions. + [b]Note:[/b] This property is only read when the project starts. To change the rendering FPS cap at runtime, set [member Engine.target_fps] instead. </member> <member name="debug/settings/gdscript/max_call_stack" type="int" setter="" getter="" default="1024"> Maximum call stack allowed for debugging GDScript. @@ -1420,6 +1421,26 @@ <member name="physics/2d/sleep_threshold_linear" type="float" setter="" getter="" default="2.0"> Threshold linear velocity under which a 2D physics body will be considered inactive. See [constant PhysicsServer2D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD]. </member> + <member name="physics/2d/solver/contact_max_allowed_penetration" type="float" setter="" getter="" default="0.3"> + Maximum distance a shape can penetrate another shape before it is considered a collision. See [constant PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION]. + </member> + <member name="physics/2d/solver/contact_max_separation" type="float" setter="" getter="" default="1.5"> + Maximum distance a shape can be from another before they are considered separated and the contact is discarded. See [constant PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_SEPARATION]. + </member> + <member name="physics/2d/solver/contact_recycle_radius" type="float" setter="" getter="" default="1.0"> + Maximum distance a pair of bodies has to move before their collision status has to be recalculated. See [constant PhysicsServer2D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS]. + </member> + <member name="physics/2d/solver/default_constraint_bias" type="float" setter="" getter="" default="0.2"> + Default solver bias for all physics constraints. Defines how much bodies react to enforce constraints. See [constant PhysicsServer2D.SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS]. + Individual constraints can have a specific bias value (see [member Joint2D.bias]). + </member> + <member name="physics/2d/solver/default_contact_bias" type="float" setter="" getter="" default="0.8"> + Default solver bias for all physics contacts. Defines how much bodies react to enforce contact separation. See [constant PhysicsServer2D.SPACE_PARAM_CONTACT_DEFAULT_BIAS]. + Individual shapes can have a specific bias value (see [member Shape2D.custom_solver_bias]). + </member> + <member name="physics/2d/solver/solver_iterations" type="int" setter="" getter="" default="16"> + Number of solver iterations for all contacts and constraints. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. See [constant PhysicsServer2D.SPACE_PARAM_SOLVER_ITERATIONS]. + </member> <member name="physics/2d/time_before_sleep" type="float" setter="" getter="" default="0.5"> Time (in seconds) of inactivity before which a 2D physics body will put to sleep. See [constant PhysicsServer2D.SPACE_PARAM_BODY_TIME_TO_SLEEP]. </member> @@ -1467,10 +1488,29 @@ Sets whether 3D physics is run on the main thread or a separate one. Running the server on a thread increases performance, but restricts API access to only physics process. </member> <member name="physics/3d/sleep_threshold_angular" type="float" setter="" getter="" default="0.139626"> + Threshold angular velocity under which a 3D physics body will be considered inactive. See [constant PhysicsServer3D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD]. </member> <member name="physics/3d/sleep_threshold_linear" type="float" setter="" getter="" default="0.1"> + Threshold linear velocity under which a 3D physics body will be considered inactive. See [constant PhysicsServer3D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD]. + </member> + <member name="physics/3d/solver/contact_max_allowed_penetration" type="float" setter="" getter="" default="0.01"> + Maximum distance a shape can penetrate another shape before it is considered a collision. See [constant PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION]. + </member> + <member name="physics/3d/solver/contact_max_separation" type="float" setter="" getter="" default="0.05"> + Maximum distance a shape can be from another before they are considered separated and the contact is discarded. See [constant PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_SEPARATION]. + </member> + <member name="physics/3d/solver/contact_recycle_radius" type="float" setter="" getter="" default="0.01"> + Maximum distance a pair of bodies has to move before their collision status has to be recalculated. See [constant PhysicsServer3D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS]. + </member> + <member name="physics/3d/solver/default_contact_bias" type="float" setter="" getter="" default="0.8"> + Default solver bias for all physics contacts. Defines how much bodies react to enforce contact separation. See [constant PhysicsServer3D.SPACE_PARAM_CONTACT_DEFAULT_BIAS]. + Individual shapes can have a specific bias value (see [member Shape3D.custom_solver_bias]). + </member> + <member name="physics/3d/solver/solver_iterations" type="int" setter="" getter="" default="16"> + Number of solver iterations for all contacts and constraints. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. See [constant PhysicsServer3D.SPACE_PARAM_SOLVER_ITERATIONS]. </member> <member name="physics/3d/time_before_sleep" type="float" setter="" getter="" default="0.5"> + Time (in seconds) of inactivity before which a 3D physics body will put to sleep. See [constant PhysicsServer3D.SPACE_PARAM_BODY_TIME_TO_SLEEP]. </member> <member name="physics/common/enable_object_picking" type="bool" setter="" getter="" default="true"> Enables [member Viewport.physics_object_picking] on the root viewport. @@ -1481,8 +1521,9 @@ [b]Note:[/b] This property is only read when the project starts. To change the physics FPS at runtime, set [member Engine.physics_jitter_fix] instead. </member> <member name="physics/common/physics_ticks_per_second" type="int" setter="" getter="" default="60"> - The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. + The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. See also [member debug/settings/fps/force_fps]. [b]Note:[/b] This property is only read when the project starts. To change the physics FPS at runtime, set [member Engine.physics_ticks_per_second] instead. + [b]Note:[/b] Only 8 physics ticks may be simulated per rendered frame at most. If more than 8 physics ticks have to be simulated per rendered frame to keep up with rendering, the game will appear to slow down (even if [code]delta[/code] is used consistently in physics calculations). Therefore, it is recommended not to increase [member physics/common/physics_ticks_per_second] above 240. Otherwise, the game will slow down when the rendering framerate goes below 30 FPS. </member> <member name="rendering/2d/opengl/batching_send_null" type="int" setter="" getter="" default="0"> </member> @@ -1680,6 +1721,9 @@ <member name="rendering/limits/time/time_rollover_secs" type="float" setter="" getter="" default="3600"> </member> <member name="rendering/mesh_lod/lod_change/threshold_pixels" type="float" setter="" getter="" default="1.0"> + The automatic LOD bias to use for meshes rendered within the [ReflectionProbe]. Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member rendering/mesh_lod/lod_change/threshold_pixels] to improve performance at the cost of geometry detail. + [b]Note:[/b] [member rendering/mesh_lod/lod_change/threshold_pixels] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD). + [b]Note:[/b] This property is only read when the project starts. To adjust the automatic LOD threshold at runtime, set [member Viewport.lod_threshold] on the root [Viewport]. </member> <member name="rendering/occlusion_culling/bvh_build_quality" type="int" setter="" getter="" default="2"> </member> diff --git a/doc/classes/ProximityGroup3D.xml b/doc/classes/ProximityGroup3D.xml deleted file mode 100644 index 15735bd6f6..0000000000 --- a/doc/classes/ProximityGroup3D.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ProximityGroup3D" inherits="Node3D" version="4.0"> - <brief_description> - General-purpose proximity detection node. - </brief_description> - <description> - General-purpose proximity detection node. - </description> - <tutorials> - </tutorials> - <methods> - <method name="broadcast"> - <return type="void" /> - <argument index="0" name="method" type="String" /> - <argument index="1" name="parameters" type="Variant" /> - <description> - </description> - </method> - </methods> - <members> - <member name="dispatch_mode" type="int" setter="set_dispatch_mode" getter="get_dispatch_mode" enum="ProximityGroup3D.DispatchMode" default="0"> - </member> - <member name="grid_radius" type="Vector3" setter="set_grid_radius" getter="get_grid_radius" default="Vector3(1, 1, 1)"> - </member> - <member name="group_name" type="String" setter="set_group_name" getter="get_group_name" default=""""> - </member> - </members> - <signals> - <signal name="broadcast"> - <argument index="0" name="method" type="String" /> - <argument index="1" name="parameters" type="Array" /> - <description> - </description> - </signal> - </signals> - <constants> - <constant name="MODE_PROXY" value="0" enum="DispatchMode"> - </constant> - <constant name="MODE_SIGNAL" value="1" enum="DispatchMode"> - </constant> - </constants> -</class> diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml index 8bf8534334..ae0eae6454 100644 --- a/doc/classes/ReflectionProbe.xml +++ b/doc/classes/ReflectionProbe.xml @@ -1,33 +1,39 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ReflectionProbe" inherits="VisualInstance3D" version="4.0"> <brief_description> - Captures its surroundings to create reflections. + Captures its surroundings to create fast, accurate reflections from a given point. </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 [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. + The [ReflectionProbe] is used to create high-quality reflections at a low performance cost (when [member update_mode] is [constant UPDATE_ONCE]). [ReflectionProbe]s can be blended together and with the rest of the scene smoothly. [ReflectionProbe]s can also be combined with [VoxelGI], SDFGI ([member Environment.sdfgi_enabled]) and screen-space reflections ([member Environment.ss_reflections_enabled]) to get more accurate reflections in specific areas. [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 as-is. + [b]Note:[/b] Unlike [VoxelGI] and SDFGI, [ReflectionProbe]s only source their environment from a [WorldEnvironment] node. If you specify an [Environment] resource within a [Camera3D] node, it will be ignored by the [ReflectionProbe]. This can lead to incorrect lighting within the [ReflectionProbe]. </description> <tutorials> <link title="Reflection probes">$DOCS_URL/tutorials/3d/reflection_probes.html</link> </tutorials> <members> <member name="ambient_color" type="Color" setter="set_ambient_color" getter="get_ambient_color" default="Color(0, 0, 0, 1)"> + The custom ambient color to use within the [ReflectionProbe]'s [member extents]. Only effective if [member ambient_mode] is [constant AMBIENT_COLOR]. </member> <member name="ambient_color_energy" type="float" setter="set_ambient_color_energy" getter="get_ambient_color_energy" default="1.0"> + The custom ambient color energy to use within the [ReflectionProbe]'s [member extents]. Only effective if [member ambient_mode] is [constant AMBIENT_COLOR]. </member> <member name="ambient_mode" type="int" setter="set_ambient_mode" getter="get_ambient_mode" enum="ReflectionProbe.AmbientMode" default="1"> + The ambient color to use within the [ReflectionProbe]'s [member extents]. The ambient color will smoothly blend with other [ReflectionProbe]s and the rest of the scene (outside the [ReflectionProbe]'s [member extents]). </member> <member name="box_projection" type="bool" setter="set_enable_box_projection" getter="is_box_projection_enabled" default="false"> If [code]true[/code], enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location. + [b]Note:[/b] To better fit rectangle-shaped rooms that are not aligned to the grid, you can rotate the [ReflectionProbe] node. </member> <member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="1048575"> - Sets the cull mask which determines what objects are drawn by this probe. Every [VisualInstance3D] with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost. + Sets the cull mask which determines what objects are drawn by this probe. Every [VisualInstance3D] with a layer included in this cull mask will be rendered by the probe. To improve performance, it is best to only include large objects which are likely to take up a lot of space in the reflection. </member> <member name="enable_shadows" type="bool" setter="set_enable_shadows" getter="are_shadows_enabled" default="false"> If [code]true[/code], computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the [constant UPDATE_ALWAYS] [member update_mode]. </member> <member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3(10, 10, 10)"> The size of the reflection probe. The larger the extents, the more space covered by the probe, which will lower the perceived resolution. It is best to keep the extents only as large as you need them. + [b]Note:[/b] To better fit areas that are not aligned to the grid, you can rotate the [ReflectionProbe] node. </member> <member name="intensity" type="float" setter="set_intensity" getter="get_intensity" default="1.0"> Defines the reflection intensity. Intensity modulates the strength of the reflection. @@ -36,29 +42,34 @@ If [code]true[/code], reflections will ignore sky contribution. </member> <member name="lod_threshold" type="float" setter="set_lod_threshold" getter="get_lod_threshold" default="1.0"> + The automatic LOD bias to use for meshes rendered within the [ReflectionProbe] (this is analog to [member Viewport.lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member lod_threshold] to improve performance at the cost of geometry detail, especially when using the [constant UPDATE_ALWAYS] [member update_mode]. + [b]Note:[/b] [member lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD). </member> <member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="0.0"> - Sets the max distance away from the probe an object can be before it is culled. + The maximum distance away from the [ReflectionProbe] an object can be before it is culled. Decrease this to improve performance, especially when using the [constant UPDATE_ALWAYS] [member update_mode]. </member> <member name="origin_offset" type="Vector3" setter="set_origin_offset" getter="get_origin_offset" default="Vector3(0, 0, 0)"> - Sets the origin offset to be used when this reflection probe is in box project mode. + Sets the origin offset to be used when this [ReflectionProbe] is in [member box_projection] mode. This can be set to a non-zero value to ensure a reflection fits a rectangle-shaped room, while reducing the amount of objects that "get in the way" of the reflection. </member> <member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="ReflectionProbe.UpdateMode" default="0"> - Sets how frequently the probe is updated. Can be [constant UPDATE_ONCE] or [constant UPDATE_ALWAYS]. + Sets how frequently the [ReflectionProbe] is updated. Can be [constant UPDATE_ONCE] or [constant UPDATE_ALWAYS]. </member> </members> <constants> <constant name="UPDATE_ONCE" value="0" enum="UpdateMode"> - Update the probe once on the next frame. The corresponding radiance map will be generated over the following six frames. This is slower to update than [constant UPDATE_ALWAYS] but can result in higher quality reflections. + Update the probe once on the next frame (recommended for most objects). The corresponding radiance map will be generated over the following six frames. This takes more time to update than [constant UPDATE_ALWAYS], but it has a lower performance cost and can result in higher-quality reflections. The ReflectionProbe is updated when its transform changes, but not when nearby geometry changes. You can force a [ReflectionProbe] update by moving the [ReflectionProbe] slightly in any direction. </constant> <constant name="UPDATE_ALWAYS" value="1" enum="UpdateMode"> - Update the probe every frame. This is needed when you want to capture dynamic objects. However, it results in an increased render time. Use [constant UPDATE_ONCE] whenever possible. + Update the probe every frame. This provides better results for fast-moving dynamic objects (such as cars). However, it has a significant performance cost. Due to the cost, it's recommended to only use one ReflectionProbe with [constant UPDATE_ALWAYS] at most per scene. For all other use cases, use [constant UPDATE_ONCE]. </constant> <constant name="AMBIENT_DISABLED" value="0" enum="AmbientMode"> + Do not apply any ambient lighting inside the [ReflectionProbe]'s [member extents]. </constant> <constant name="AMBIENT_ENVIRONMENT" value="1" enum="AmbientMode"> + Apply automatically-sourced environment lighting inside the [ReflectionProbe]'s [member extents]. </constant> <constant name="AMBIENT_COLOR" value="2" enum="AmbientMode"> + Apply custom ambient lighting inside the [ReflectionProbe]'s [member extents]. See [member ambient_color] and [member ambient_color_energy]. </constant> </constants> </class> diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml index a74b0ed812..84956805c9 100644 --- a/doc/classes/RichTextLabel.xml +++ b/doc/classes/RichTextLabel.xml @@ -22,7 +22,7 @@ <argument index="1" name="width" type="int" default="0" /> <argument index="2" name="height" type="int" default="0" /> <argument index="3" name="color" type="Color" default="Color(1, 1, 1, 1)" /> - <argument index="4" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="4" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <description> Adds an image's opening and closing tags to the tag stack, optionally providing a [code]width[/code] and [code]height[/code] to resize the image and a [code]color[/code] to tint the image. If [code]width[/code] or [code]height[/code] is set to 0, the image size will be adjusted in order to keep the original aspect ratio. @@ -279,7 +279,7 @@ </method> <method name="push_paragraph"> <return type="void" /> - <argument index="0" name="align" type="int" enum="RichTextLabel.Align" /> + <argument index="0" name="alignment" type="int" enum="HorizontalAlignment" /> <argument index="1" name="base_direction" type="int" enum="Control.TextDirection" default="0" /> <argument index="2" name="language" type="String" default="""" /> <argument index="3" name="st_parser" type="int" enum="Control.StructuredTextParser" default="0" /> @@ -296,7 +296,7 @@ <method name="push_table"> <return type="void" /> <argument index="0" name="columns" type="int" /> - <argument index="1" name="inline_align" type="int" enum="InlineAlign" default="0" /> + <argument index="1" name="inline_align" type="int" enum="InlineAlignment" default="0" /> <description> Adds a [code][table=columns,inline_align][/code] tag to the tag stack. </description> @@ -451,18 +451,6 @@ </signal> </signals> <constants> - <constant name="ALIGN_LEFT" value="0" enum="Align"> - Makes text left aligned. - </constant> - <constant name="ALIGN_CENTER" value="1" enum="Align"> - Makes text centered. - </constant> - <constant name="ALIGN_RIGHT" value="2" enum="Align"> - Makes text right aligned. - </constant> - <constant name="ALIGN_FILL" value="3" enum="Align"> - Makes text fill width. - </constant> <constant name="LIST_NUMBERS" value="0" enum="ListType"> Each list item has a number marker. </constant> diff --git a/doc/classes/RigidDynamicBody2D.xml b/doc/classes/RigidDynamicBody2D.xml index b8680b99b3..b3644711a0 100644 --- a/doc/classes/RigidDynamicBody2D.xml +++ b/doc/classes/RigidDynamicBody2D.xml @@ -22,26 +22,36 @@ Allows you to read and safely modify the simulation state for the object. Use this instead of [method Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default, it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body. </description> </method> - <method name="add_central_force"> + <method name="add_constant_central_force"> <return type="void" /> <argument index="0" name="force" type="Vector2" /> <description> - Adds a constant directional force without affecting rotation. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]constant_force = Vector2(0, 0)[/code]. + This is equivalent to using [method add_constant_force] at the body's center of mass. </description> </method> - <method name="add_force"> + <method name="add_constant_force"> <return type="void" /> <argument index="0" name="force" type="Vector2" /> <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates. + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]constant_force = Vector2(0, 0)[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> - <method name="add_torque"> + <method name="add_constant_torque"> <return type="void" /> <argument index="0" name="torque" type="float" /> <description> - Adds a constant rotational force. + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]constant_torque = 0[/code]. + </description> + </method> + <method name="apply_central_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector2" /> + <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method apply_force] at the body's center of mass. </description> </method> <method name="apply_central_impulse"> @@ -49,6 +59,17 @@ <argument index="0" name="impulse" type="Vector2" default="Vector2(0, 0)" /> <description> Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method apply_impulse] at the body's center of mass. + </description> + </method> + <method name="apply_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector2" /> + <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="apply_impulse"> @@ -56,14 +77,24 @@ <argument index="0" name="impulse" type="Vector2" /> <argument index="1" name="position" type="Vector2" default="Vector2(0, 0)" /> <description> - Applies a positioned impulse to the body. An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The position uses the rotation of the global coordinate system, but is centered at the object's origin. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="apply_torque"> + <return type="void" /> + <argument index="0" name="torque" type="float" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="apply_torque_impulse"> <return type="void" /> <argument index="0" name="torque" type="float" /> <description> - Applies a rotational impulse to the body. + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). </description> </method> <method name="get_colliding_bodies" qualifiers="const"> @@ -90,13 +121,7 @@ Defines how [member angular_damp] is applied. See [enum DampMode] for possible values. </member> <member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity" default="0.0"> - The body's rotational velocity. - </member> - <member name="applied_force" type="Vector2" setter="set_applied_force" getter="get_applied_force" default="Vector2(0, 0)"> - The body's total applied force. - </member> - <member name="applied_torque" type="float" setter="set_applied_torque" getter="get_applied_torque" default="0.0"> - The body's total applied torque. + The body's rotational velocity in [i]radians[/i] per second. </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]. @@ -108,6 +133,14 @@ <member name="center_of_mass_mode" type="int" setter="set_center_of_mass_mode" getter="get_center_of_mass_mode" enum="RigidDynamicBody2D.CenterOfMassMode" default="0"> Defines the way the body's center of mass is set. See [enum CenterOfMassMode] for possible values. </member> + <member name="constant_force" type="Vector2" setter="set_constant_force" getter="get_constant_force" default="Vector2(0, 0)"> + The body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </member> + <member name="constant_torque" type="float" setter="set_constant_torque" getter="get_constant_torque" default="0.0"> + The body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. + </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 RigidDynamicBody2D. See also [member contacts_reported]. </member> @@ -146,7 +179,7 @@ Defines how [member linear_damp] is applied. See [enum DampMode] for possible values. </member> <member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2(0, 0)"> - The body's linear velocity. + The body's linear velocity in pixels per second. Can be used sporadically, but [b]don't set this every frame[/b], because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state. </member> <member name="lock_rotation" type="bool" setter="set_lock_rotation_enabled" getter="is_lock_rotation_enabled" default="false"> If [code]true[/code], the body cannot rotate. Gravity and forces only apply linear movement. @@ -159,7 +192,7 @@ If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. </member> <member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping" default="false"> - If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods. + If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method apply_force] methods. </member> </members> <signals> diff --git a/doc/classes/RigidDynamicBody3D.xml b/doc/classes/RigidDynamicBody3D.xml index c75055e0df..16fced737f 100644 --- a/doc/classes/RigidDynamicBody3D.xml +++ b/doc/classes/RigidDynamicBody3D.xml @@ -22,28 +22,36 @@ Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the [member custom_integrator] property allows you to disable the default behavior and do fully custom force integration for a body. </description> </method> - <method name="add_central_force"> + <method name="add_constant_central_force"> <return type="void" /> <argument index="0" name="force" type="Vector3" /> <description> - Adds a constant directional force (i.e. acceleration) without affecting rotation. - This is equivalent to [code]add_force(force, Vector3(0,0,0))[/code]. + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with [code]constant_force = Vector3(0, 0, 0)[/code]. + This is equivalent to using [method add_constant_force] at the body's center of mass. </description> </method> - <method name="add_force"> + <method name="add_constant_force"> <return type="void" /> <argument index="0" name="force" type="Vector3" /> <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Adds a constant directional force (i.e. acceleration). - The position uses the rotation of the global coordinate system, but is centered at the object's origin. + Adds a constant positioned force to the body that keeps being applied over time until cleared with [code]constant_force = Vector3(0, 0, 0)[/code]. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> - <method name="add_torque"> + <method name="add_constant_torque"> <return type="void" /> <argument index="0" name="torque" type="Vector3" /> <description> - Adds a constant rotational force (i.e. a motor) without affecting position. + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with [code]constant_torque = Vector3(0, 0, 0)[/code]. + </description> + </method> + <method name="apply_central_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector3" /> + <description> + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using [method apply_force] at the body's center of mass. </description> </method> <method name="apply_central_impulse"> @@ -51,7 +59,17 @@ <argument index="0" name="impulse" type="Vector3" /> <description> Applies a directional impulse without affecting rotation. - This is equivalent to [code]apply_impulse(Vector3(0,0,0), impulse)[/code]. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using [method apply_impulse] at the body's center of mass. + </description> + </method> + <method name="apply_force"> + <return type="void" /> + <argument index="0" name="force" type="Vector3" /> + <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> + <description> + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + [code]position[/code] is the offset from the body origin in global coordinates. </description> </method> <method name="apply_impulse"> @@ -59,14 +77,24 @@ <argument index="0" name="impulse" type="Vector3" /> <argument index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" /> <description> - Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin. + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + [code]position[/code] is the offset from the body origin in global coordinates. + </description> + </method> + <method name="apply_torque"> + <return type="void" /> + <argument index="0" name="torque" type="Vector3" /> + <description> + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. </description> </method> <method name="apply_torque_impulse"> <return type="void" /> <argument index="0" name="impulse" type="Vector3" /> <description> - 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. + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). </description> </method> <method name="get_colliding_bodies" qualifiers="const"> @@ -99,7 +127,7 @@ Defines how [member angular_damp] is applied. See [enum DampMode] for possible values. </member> <member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity" default="Vector3(0, 0, 0)"> - RigidDynamicBody3D's rotational velocity. + The RigidDynamicBody3D's rotational velocity in [i]radians[/i] per second. </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]. @@ -111,6 +139,14 @@ <member name="center_of_mass_mode" type="int" setter="set_center_of_mass_mode" getter="get_center_of_mass_mode" enum="RigidDynamicBody3D.CenterOfMassMode" default="0"> Defines the way the body's center of mass is set. See [enum CenterOfMassMode] for possible values. </member> + <member name="constant_force" type="Vector3" setter="set_constant_force" getter="get_constant_force" default="Vector3(0, 0, 0)"> + The body's total constant positional forces applied during each physics update. + See [method add_constant_force] and [method add_constant_central_force]. + </member> + <member name="constant_torque" type="Vector3" setter="set_constant_torque" getter="get_constant_torque" default="Vector3(0, 0, 0)"> + The body's total constant rotational forces applied during each physics update. + See [method add_constant_torque]. + </member> <member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false"> If [code]true[/code], the RigidDynamicBody3D will emit signals when it collides with another RigidDynamicBody3D. See also [member contacts_reported]. </member> @@ -149,7 +185,7 @@ Defines how [member linear_damp] is applied. See [enum DampMode] for possible values. </member> <member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3(0, 0, 0)"> - The body's linear velocity. Can be used sporadically, but [b]don't set this every frame[/b], because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state. + The body's linear velocity in units per second. Can be used sporadically, but [b]don't set this every frame[/b], because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state. </member> <member name="lock_rotation" type="bool" setter="set_lock_rotation_enabled" getter="is_lock_rotation_enabled" default="false"> If [code]true[/code], the body cannot rotate. Gravity and forces only apply linear movement. @@ -162,7 +198,7 @@ If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. </member> <member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping" default="false"> - If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods. + If [code]true[/code], the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method apply_force] methods. </member> </members> <signals> diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml index b0509a322e..80f0a54e70 100644 --- a/doc/classes/SceneTreeTimer.xml +++ b/doc/classes/SceneTreeTimer.xml @@ -22,12 +22,13 @@ } [/csharp] [/codeblocks] + The timer will be automatically freed after its time elapses. </description> <tutorials> </tutorials> <members> <member name="time_left" type="float" setter="set_time_left" getter="get_time_left"> - The time remaining. + The time remaining (in seconds). </member> </members> <signals> diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml index f0c739bfa3..676c62c93c 100644 --- a/doc/classes/ScrollContainer.xml +++ b/doc/classes/ScrollContainer.xml @@ -16,20 +16,26 @@ <argument index="0" name="control" type="Control" /> <description> Ensures the given [code]control[/code] is visible (must be a direct or indirect child of the ScrollContainer). Used by [member follow_focus]. + [b]Note:[/b] This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using [signal SceneTree.process_frame]: + [codeblock] + add_child(child_node) + await get_tree().process_frame + ensure_control_visible(child_node) + [/codeblock] </description> </method> <method name="get_h_scrollbar"> <return type="HScrollBar" /> <description> Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer]. - [b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to disable the horizontal scrollbar, use [member scroll_horizontal_enabled]. If you want to only hide it instead, use [member scroll_horizontal_visible]. + [b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use [member horizontal_scroll_mode]. </description> </method> <method name="get_v_scrollbar"> <return type="VScrollBar" /> <description> Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer]. - [b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to disable the vertical scrollbar, use [member scroll_vertical_enabled]. If you want to only hide it instead, use [member scroll_vertical_visible]. + [b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use [member vertical_scroll_mode]. </description> </method> </methods> @@ -37,26 +43,20 @@ <member name="follow_focus" type="bool" setter="set_follow_focus" getter="is_following_focus" default="false"> If [code]true[/code], the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible. </member> + <member name="horizontal_scroll_mode" type="int" setter="set_horizontal_scroll_mode" getter="get_horizontal_scroll_mode" enum="ScrollContainer.ScrollMode" default="1"> + Controls whether horizontal scrollbar can be used and when it should be visible. See [enum ScrollMode] for options. + </member> <member name="rect_clip_content" type="bool" setter="set_clip_contents" getter="is_clipping_contents" overrides="Control" default="true" /> <member name="scroll_deadzone" type="int" setter="set_deadzone" getter="get_deadzone" default="0"> </member> <member name="scroll_horizontal" type="int" setter="set_h_scroll" getter="get_h_scroll" default="0"> The current horizontal scroll value. </member> - <member name="scroll_horizontal_enabled" type="bool" setter="set_enable_h_scroll" getter="is_h_scroll_enabled" default="true"> - If [code]true[/code], enables horizontal scrolling. - </member> - <member name="scroll_horizontal_visible" type="bool" setter="set_h_scroll_visible" getter="is_h_scroll_visible" default="true"> - If [code]false[/code], hides the horizontal scrollbar. - </member> <member name="scroll_vertical" type="int" setter="set_v_scroll" getter="get_v_scroll" default="0"> The current vertical scroll value. </member> - <member name="scroll_vertical_enabled" type="bool" setter="set_enable_v_scroll" getter="is_v_scroll_enabled" default="true"> - If [code]true[/code], enables vertical scrolling. - </member> - <member name="scroll_vertical_visible" type="bool" setter="set_v_scroll_visible" getter="is_v_scroll_visible" default="true"> - If [code]false[/code], hides the vertical scrollbar. + <member name="vertical_scroll_mode" type="int" setter="set_vertical_scroll_mode" getter="get_vertical_scroll_mode" enum="ScrollContainer.ScrollMode" default="1"> + Controls whether vertical scrollbar can be used and when it should be visible. See [enum ScrollMode] for options. </member> </members> <signals> @@ -71,6 +71,20 @@ </description> </signal> </signals> + <constants> + <constant name="SCROLL_MODE_DISABLED" value="0" enum="ScrollMode"> + Scrolling disabled, scrollbar will be invisible. + </constant> + <constant name="SCROLL_MODE_AUTO" value="1" enum="ScrollMode"> + Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container. + </constant> + <constant name="SCROLL_MODE_SHOW_ALWAYS" value="2" enum="ScrollMode"> + Scrolling enabled, scrollbar will be always visible. + </constant> + <constant name="SCROLL_MODE_SHOW_NEVER" value="3" enum="ScrollMode"> + Scrolling enabled, scrollbar will be hidden. + </constant> + </constants> <theme_items> <theme_item name="bg" data_type="style" type="StyleBox"> The background [StyleBox] of the [ScrollContainer]. diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml index 9746519173..4c12ee36f6 100644 --- a/doc/classes/Shape2D.xml +++ b/doc/classes/Shape2D.xml @@ -65,7 +65,8 @@ </methods> <members> <member name="custom_solver_bias" type="float" setter="set_custom_solver_bias" getter="get_custom_solver_bias" default="0.0"> - The shape's custom solver bias. + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to [code]0[/code], the default value from [member ProjectSettings.physics/2d/solver/default_contact_bias] is used. </member> </members> </class> diff --git a/doc/classes/Shape3D.xml b/doc/classes/Shape3D.xml index 67af52768f..010b993327 100644 --- a/doc/classes/Shape3D.xml +++ b/doc/classes/Shape3D.xml @@ -18,6 +18,10 @@ </method> </methods> <members> + <member name="custom_solver_bias" type="float" setter="set_custom_solver_bias" getter="get_custom_solver_bias" default="0.0"> + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to [code]0[/code], the default value from [member ProjectSettings.physics/3d/solver/default_contact_bias] is used. + </member> <member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.04"> The collision margin for the shape. Used in Bullet Physics only. Collision margins allow collision detection to be more efficient by adding an extra shell around shapes. Collision algorithms are more expensive when objects overlap by more than their margin, so a higher value for margins is better for performance, at the cost of accuracy around edges as it makes them less sharp. diff --git a/doc/classes/SpinBox.xml b/doc/classes/SpinBox.xml index 615f5e3586..392d4d6a65 100644 --- a/doc/classes/SpinBox.xml +++ b/doc/classes/SpinBox.xml @@ -12,14 +12,14 @@ add_child(spin_box) var line_edit = spin_box.get_line_edit() line_edit.context_menu_enabled = false - spin_box.align = LineEdit.ALIGN_RIGHT + spin_box.horizontal_alignment = LineEdit.HORIZONTAL_ALIGNMENT_RIGHT [/gdscript] [csharp] var spinBox = new SpinBox(); AddChild(spinBox); var lineEdit = spinBox.GetLineEdit(); lineEdit.ContextMenuEnabled = false; - spinBox.Align = LineEdit.AlignEnum.Right; + spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right; [/csharp] [/codeblocks] The above code will create a [SpinBox], disable context menu on it and set the text alignment to right. @@ -44,8 +44,7 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_align" getter="get_align" enum="LineEdit.Align" default="0"> - Sets the text alignment of the [SpinBox]. + <member name="alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0"> </member> <member name="editable" type="bool" setter="set_editable" getter="is_editable" default="true"> If [code]true[/code], the [SpinBox] will be editable. Otherwise, it will be read only. diff --git a/doc/classes/TabBar.xml b/doc/classes/TabBar.xml index a9b09fb026..f97b3e08d1 100644 --- a/doc/classes/TabBar.xml +++ b/doc/classes/TabBar.xml @@ -209,8 +209,7 @@ <member name="scrolling_enabled" type="bool" setter="set_scrolling_enabled" getter="get_scrolling_enabled" default="true"> if [code]true[/code], the mouse's scroll wheel can be used to navigate the scroll view. </member> - <member name="tab_align" type="int" setter="set_tab_align" getter="get_tab_align" enum="TabBar.TabAlign" default="1"> - The alignment of all tabs. See [enum TabAlign] for details. + <member name="tab_alignment" type="int" setter="set_tab_alignment" getter="get_tab_alignment" enum="TabBar.AlignmentMode" default="1"> </member> <member name="tab_close_display_policy" type="int" setter="set_tab_close_display_policy" getter="get_tab_close_display_policy" enum="TabBar.CloseButtonDisplayPolicy" default="0"> Sets when the close button will appear on the tabs. See [enum CloseButtonDisplayPolicy] for details. @@ -264,17 +263,13 @@ </signal> </signals> <constants> - <constant name="ALIGN_LEFT" value="0" enum="TabAlign"> - Align the tabs to the left. + <constant name="ALIGNMENT_LEFT" value="0" enum="AlignmentMode"> </constant> - <constant name="ALIGN_CENTER" value="1" enum="TabAlign"> - Align the tabs to the center. + <constant name="ALIGNMENT_CENTER" value="1" enum="AlignmentMode"> </constant> - <constant name="ALIGN_RIGHT" value="2" enum="TabAlign"> - Align the tabs to the right. + <constant name="ALIGNMENT_RIGHT" value="2" enum="AlignmentMode"> </constant> - <constant name="ALIGN_MAX" value="3" enum="TabAlign"> - Represents the size of the [enum TabAlign] enum. + <constant name="ALIGNMENT_MAX" value="3" enum="AlignmentMode"> </constant> <constant name="CLOSE_BUTTON_SHOW_NEVER" value="0" enum="CloseButtonDisplayPolicy"> Never show the close buttons. diff --git a/doc/classes/TabContainer.xml b/doc/classes/TabContainer.xml index 2ac6549250..d6e1e13505 100644 --- a/doc/classes/TabContainer.xml +++ b/doc/classes/TabContainer.xml @@ -141,8 +141,7 @@ <member name="drag_to_rearrange_enabled" type="bool" setter="set_drag_to_rearrange_enabled" getter="get_drag_to_rearrange_enabled" default="false"> If [code]true[/code], tabs can be rearranged with mouse drag. </member> - <member name="tab_align" type="int" setter="set_tab_align" getter="get_tab_align" enum="TabContainer.TabAlign" default="1"> - The alignment of all tabs in the tab container. See the [enum TabAlign] constants for details. + <member name="tab_alignment" type="int" setter="set_tab_alignment" getter="get_tab_alignment" enum="TabContainer.AlignmentMode" default="1"> </member> <member name="tabs_visible" type="bool" setter="set_tabs_visible" getter="are_tabs_visible" default="true"> If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content and titles are hidden. @@ -171,14 +170,11 @@ </signal> </signals> <constants> - <constant name="ALIGN_LEFT" value="0" enum="TabAlign"> - Align the tabs to the left. + <constant name="ALIGNMENT_LEFT" value="0" enum="AlignmentMode"> </constant> - <constant name="ALIGN_CENTER" value="1" enum="TabAlign"> - Align the tabs to the center. + <constant name="ALIGNMENT_CENTER" value="1" enum="AlignmentMode"> </constant> - <constant name="ALIGN_RIGHT" value="2" enum="TabAlign"> - Align the tabs to the right. + <constant name="ALIGNMENT_RIGHT" value="2" enum="AlignmentMode"> </constant> </constants> <theme_items> diff --git a/doc/classes/TextLine.xml b/doc/classes/TextLine.xml index 598d0fb859..1eaccf4604 100644 --- a/doc/classes/TextLine.xml +++ b/doc/classes/TextLine.xml @@ -13,7 +13,7 @@ <return type="bool" /> <argument index="0" name="key" type="Variant" /> <argument index="1" name="size" type="Vector2" /> - <argument index="2" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="2" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <argument index="3" name="length" type="int" default="1" /> <description> Adds inline object to the text buffer, [code]key[/code] must be unique. In the text, object is represented as [code]length[/code] object replacement characters. @@ -122,7 +122,7 @@ <return type="bool" /> <argument index="0" name="key" type="Variant" /> <argument index="1" name="size" type="Vector2" /> - <argument index="2" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="2" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <description> Sets new size and alignment of embedded object. </description> @@ -144,8 +144,7 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_align" getter="get_align" enum="HAlign" default="0"> - Text horizontal alignment. + <member name="alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0"> </member> <member name="direction" type="int" setter="set_direction" getter="get_direction" enum="TextServer.Direction" default="0"> Text writing direction. diff --git a/doc/classes/TextParagraph.xml b/doc/classes/TextParagraph.xml index a7122b827e..6a510e4a74 100644 --- a/doc/classes/TextParagraph.xml +++ b/doc/classes/TextParagraph.xml @@ -13,7 +13,7 @@ <return type="bool" /> <argument index="0" name="key" type="Variant" /> <argument index="1" name="size" type="Vector2" /> - <argument index="2" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="2" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <argument index="3" name="length" type="int" default="1" /> <description> Adds inline object to the text buffer, [code]key[/code] must be unique. In the text, object is represented as [code]length[/code] object replacement characters. @@ -240,7 +240,7 @@ <return type="bool" /> <argument index="0" name="key" type="Variant" /> <argument index="1" name="size" type="Vector2" /> - <argument index="2" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="2" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <description> Sets new size and alignment of embedded object. </description> @@ -275,7 +275,7 @@ </method> </methods> <members> - <member name="align" type="int" setter="set_align" getter="get_align" enum="HAlign" default="0"> + <member name="alignment" type="int" setter="set_alignment" getter="get_alignment" enum="HorizontalAlignment" default="0"> Paragraph horizontal alignment. </member> <member name="custom_punctuation" type="String" setter="set_custom_punctuation" getter="get_custom_punctuation" default=""""> diff --git a/doc/classes/TextServer.xml b/doc/classes/TextServer.xml index 512078c56c..6da45fdd4a 100644 --- a/doc/classes/TextServer.xml +++ b/doc/classes/TextServer.xml @@ -886,7 +886,7 @@ <argument index="0" name="shaped" type="RID" /> <argument index="1" name="key" type="Variant" /> <argument index="2" name="size" type="Vector2" /> - <argument index="3" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="3" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <argument index="4" name="length" type="int" default="1" /> <description> Adds inline object to the text buffer, [code]key[/code] must be unique. In the text, object is represented as [code]length[/code] object replacement characters. @@ -1213,7 +1213,7 @@ <argument index="0" name="shaped" type="RID" /> <argument index="1" name="key" type="Variant" /> <argument index="2" name="size" type="Vector2" /> - <argument index="3" name="inline_align" type="int" enum="InlineAlign" default="5" /> + <argument index="3" name="inline_align" type="int" enum="InlineAlignment" default="5" /> <description> Sets new size and alignment of embedded object. </description> diff --git a/doc/classes/TextServerExtension.xml b/doc/classes/TextServerExtension.xml index 32f8107e0a..af558150e2 100644 --- a/doc/classes/TextServerExtension.xml +++ b/doc/classes/TextServerExtension.xml @@ -893,7 +893,7 @@ <argument index="0" name="shaped" type="RID" /> <argument index="1" name="key" type="Variant" /> <argument index="2" name="size" type="Vector2" /> - <argument index="3" name="inline_align" type="int" enum="InlineAlign" /> + <argument index="3" name="inline_align" type="int" enum="InlineAlignment" /> <argument index="4" name="length" type="int" /> <description> Adds inline object to the text buffer, [code]key[/code] must be unique. In the text, object is represented as [code]length[/code] object replacement characters. @@ -1222,7 +1222,7 @@ <argument index="0" name="shaped" type="RID" /> <argument index="1" name="key" type="Variant" /> <argument index="2" name="size" type="Vector2" /> - <argument index="3" name="inline_align" type="int" enum="InlineAlign" /> + <argument index="3" name="inline_align" type="int" enum="InlineAlignment" /> <description> Sets new size and alignment of embedded object. </description> diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml index b997d87ac0..7da98788bb 100644 --- a/doc/classes/TreeItem.xml +++ b/doc/classes/TreeItem.xml @@ -293,8 +293,8 @@ Returns the given column's text. </description> </method> - <method name="get_text_align" qualifiers="const"> - <return type="int" enum="TreeItem.TextAlign" /> + <method name="get_text_alignment" qualifiers="const"> + <return type="int" enum="HorizontalAlignment" /> <argument index="0" name="column" type="int" /> <description> Returns the given column's text alignment. @@ -623,12 +623,12 @@ Sets the given column's text value. </description> </method> - <method name="set_text_align"> + <method name="set_text_alignment"> <return type="void" /> <argument index="0" name="column" type="int" /> - <argument index="1" name="text_align" type="int" enum="TreeItem.TextAlign" /> + <argument index="1" name="text_alignment" type="int" enum="HorizontalAlignment" /> <description> - Sets the given column's text alignment. See [enum TextAlign] for possible values. + Sets the given column's text alignment. See [enum HorizontalAlignment] for possible values. </description> </method> <method name="set_text_direction"> @@ -679,14 +679,5 @@ </constant> <constant name="CELL_MODE_CUSTOM" value="4" enum="TreeCellMode"> </constant> - <constant name="ALIGN_LEFT" value="0" enum="TextAlign"> - Align text to the left. See [code]set_text_align()[/code]. - </constant> - <constant name="ALIGN_CENTER" value="1" enum="TextAlign"> - Center text. See [code]set_text_align()[/code]. - </constant> - <constant name="ALIGN_RIGHT" value="2" enum="TextAlign"> - Align text to the right. See [code]set_text_align()[/code]. - </constant> </constants> </class> diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index 15f7d2f9e3..f3c2d743b6 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -214,12 +214,24 @@ Returns the vector with a maximum length by limiting its length to [code]length[/code]. </description> </method> + <method name="max_axis_index" qualifiers="const"> + <return type="int" /> + <description> + Returns the axis of the vector's highest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. + </description> + </method> + <method name="min_axis_index" qualifiers="const"> + <return type="int" /> + <description> + Returns the axis of the vector's lowest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Y]. + </description> + </method> <method name="move_toward" qualifiers="const"> <return type="Vector2" /> <argument index="0" name="to" type="Vector2" /> <argument index="1" name="delta" type="float" /> <description> - Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. + Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value. </description> </method> <method name="normalized" qualifiers="const"> @@ -315,10 +327,10 @@ </members> <constants> <constant name="AXIS_X" value="0"> - Enumerated value for the X axis. + Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Y" value="1"> - Enumerated value for the Y axis. + Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="ZERO" value="Vector2(0, 0)"> Zero vector, a vector with all components set to [code]0[/code]. diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml index 62362409a5..a9334d924f 100644 --- a/doc/classes/Vector2i.xml +++ b/doc/classes/Vector2i.xml @@ -64,6 +64,18 @@ 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_index" qualifiers="const"> + <return type="int" /> + <description> + Returns the axis of the vector's highest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. + </description> + </method> + <method name="min_axis_index" qualifiers="const"> + <return type="int" /> + <description> + Returns the axis of the vector's lowest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Y]. + </description> + </method> <method name="sign" qualifiers="const"> <return type="Vector2i" /> <description> @@ -81,10 +93,10 @@ </members> <constants> <constant name="AXIS_X" value="0"> - Enumerated value for the X axis. + Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Y" value="1"> - Enumerated value for the Y axis. + Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="ZERO" value="Vector2i(0, 0)"> Zero vector, a vector with all components set to [code]0[/code]. diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index 6d87ce9ea8..da5e4f4f43 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -184,16 +184,16 @@ Returns the vector with a maximum length by limiting its length to [code]length[/code]. </description> </method> - <method name="max_axis" qualifiers="const"> + <method name="max_axis_index" qualifiers="const"> <return type="int" /> <description> - Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. + Returns the axis of the vector's highest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. </description> </method> - <method name="min_axis" qualifiers="const"> + <method name="min_axis_index" qualifiers="const"> <return type="int" /> <description> - Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. + Returns the axis of the vector's lowest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. </description> </method> <method name="move_toward" qualifiers="const"> @@ -201,7 +201,7 @@ <argument index="0" name="to" type="Vector3" /> <argument index="1" name="delta" type="float" /> <description> - Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] amount. + Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] amount. Will not go past the final value. </description> </method> <method name="normalized" qualifiers="const"> @@ -321,13 +321,13 @@ </members> <constants> <constant name="AXIS_X" value="0"> - Enumerated value for the X axis. Returned by [method max_axis] and [method min_axis]. + Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Y" value="1"> - Enumerated value for the Y axis. Returned by [method max_axis] and [method min_axis]. + Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Z" value="2"> - Enumerated value for the Z axis. Returned by [method max_axis] and [method min_axis]. + Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="ZERO" value="Vector3(0, 0, 0)"> Zero vector, a vector with all components set to [code]0[/code]. diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml index 17febdea83..9b952292b6 100644 --- a/doc/classes/Vector3i.xml +++ b/doc/classes/Vector3i.xml @@ -58,16 +58,16 @@ 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"> + <method name="max_axis_index" qualifiers="const"> <return type="int" /> <description> - Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. + Returns the axis of the vector's highest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. </description> </method> - <method name="min_axis" qualifiers="const"> + <method name="min_axis_index" qualifiers="const"> <return type="int" /> <description> - Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. + Returns the axis of the vector's lowest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. </description> </method> <method name="sign" qualifiers="const"> @@ -90,13 +90,13 @@ </members> <constants> <constant name="AXIS_X" value="0"> - Enumerated value for the X axis. + Enumerated value for the X axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Y" value="1"> - Enumerated value for the Y axis. + Enumerated value for the Y axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="AXIS_Z" value="2"> - Enumerated value for the Z axis. + Enumerated value for the Z axis. Returned by [method max_axis_index] and [method min_axis_index]. </constant> <constant name="ZERO" value="Vector3i(0, 0, 0)"> Zero vector, a vector with all components set to [code]0[/code]. diff --git a/doc/classes/VehicleWheel3D.xml b/doc/classes/VehicleWheel3D.xml index 951f4f8275..17a9e9f7da 100644 --- a/doc/classes/VehicleWheel3D.xml +++ b/doc/classes/VehicleWheel3D.xml @@ -11,6 +11,13 @@ <link title="3D Truck Town Demo">https://godotengine.org/asset-library/asset/524</link> </tutorials> <methods> + <method name="get_contact_body" qualifiers="const"> + <return type="Node3D" /> + <description> + Returns the contacting body node if valid in the tree, as [Node3D]. At the moment, [GridMap] is not supported so the node will be always of type [PhysicsBody3D]. + Returns [code]null[/code] if the wheel is not in contact with a surface, or the contact body is not a [PhysicsBody3D]. + </description> + </method> <method name="get_rpm" qualifiers="const"> <return type="float" /> <description> diff --git a/doc/classes/VideoStream.xml b/doc/classes/VideoStream.xml index 39fefa8d95..5978e73ac5 100644 --- a/doc/classes/VideoStream.xml +++ b/doc/classes/VideoStream.xml @@ -4,7 +4,7 @@ Base resource for video streams. </brief_description> <description> - Base resource type for all video streams. Classes that derive from [VideoStream] can all be used as resource types to play back videos in [VideoPlayer]. + Base resource type for all video streams. Classes that derive from [VideoStream] can all be used as resource types to play back videos in [VideoStreamPlayer]. </description> <tutorials> </tutorials> diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoStreamPlayer.xml index c8590988f5..3aa9a8a295 100644 --- a/doc/classes/VideoPlayer.xml +++ b/doc/classes/VideoStreamPlayer.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="VideoPlayer" inherits="Control" version="4.0"> +<class name="VideoStreamPlayer" inherits="Control" version="4.0"> <brief_description> Control for playing video streams. </brief_description> <description> Control node for playing video streams using [VideoStream] resources. Supported video formats are [url=https://www.theora.org/]Ogg Theora[/url] ([code].ogv[/code], [VideoStreamTheora]) and any format exposed via a GDNative plugin using [VideoStreamGDNative]. - [b]Note:[/b] Due to a bug, VideoPlayer does not support localization remapping yet. + [b]Note:[/b] Due to a bug, VideoStreamPlayer does not support localization remapping yet. [b]Warning:[/b] On HTML5, video playback [i]will[/i] perform poorly due to missing architecture-specific assembly optimizations. </description> <tutorials> diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml index 4a3f99696d..4708654f9f 100644 --- a/doc/classes/Viewport.xml +++ b/doc/classes/Viewport.xml @@ -216,6 +216,9 @@ <member name="handle_input_locally" type="bool" setter="set_handle_input_locally" getter="is_handling_input_locally" default="true"> </member> <member name="lod_threshold" type="float" setter="set_lod_threshold" getter="get_lod_threshold" default="1.0"> + The automatic LOD bias to use for meshes rendered within the [Viewport] (this is analogous to [member ReflectionProbe.lod_threshold]). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to [code]0.0[/code], automatic LOD is disabled. Increase [member lod_threshold] to improve performance at the cost of geometry detail. + To control this property on the root viewport, set the [member ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels] project setting. + [b]Note:[/b] [member lod_threshold] does not affect [GeometryInstance3D] visibility ranges (also known as "manual" LOD or hierarchical LOD). </member> <member name="msaa" type="int" setter="set_msaa" getter="get_msaa" enum="Viewport.MSAA" default="0"> The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 2 or 4 is best unless targeting very high-end systems. See also bilinear scaling 3d [member scaling_3d_mode] for supersampling, which provides higher quality but is much more expensive. diff --git a/doc/classes/VisualShaderNodeTextureUniform.xml b/doc/classes/VisualShaderNodeTextureUniform.xml index 26c72d2714..c2e66ccb96 100644 --- a/doc/classes/VisualShaderNodeTextureUniform.xml +++ b/doc/classes/VisualShaderNodeTextureUniform.xml @@ -26,8 +26,8 @@ <constant name="TYPE_NORMAL_MAP" value="2" enum="TextureType"> Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. </constant> - <constant name="TYPE_ANISO" value="3" enum="TextureType"> - Adds [code]hint_aniso[/code] as hint to the uniform declaration to use for a flowmap. + <constant name="TYPE_ANISOTROPY" value="3" enum="TextureType"> + Adds [code]hint_anisotropy[/code] as hint to the uniform declaration to use for a flowmap. </constant> <constant name="TYPE_MAX" value="4" enum="TextureType"> Represents the size of the [enum TextureType] enum. |