Browse Source

Merge pull request #7870 from godotengine/classref/sync-80bfca2

Max Hilbrunner 1 year ago
parent
commit
b7db4dbcaa

+ 1 - 1
classes/[email protected]

@@ -625,7 +625,7 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_SUBGROUP<class_@GlobalScope_constant_
 
 **@icon** **(** :ref:`String<class_String>` icon_path **)**
 
-Add a custom icon to the current script. The script must be registered as a global class using the ``class_name`` keyword for this to have a visible effect. The icon specified at ``icon_path`` is displayed in the Scene dock for every node of that class, as well as in various editor dialogs.
+Add a custom icon to the current script. The icon specified at ``icon_path`` is displayed in the Scene dock for every node of that class, as well as in various editor dialogs.
 
 ::
 

+ 96 - 32
classes/[email protected]

@@ -135,12 +135,18 @@ Methods
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`acos<class_@GlobalScope_method_acos>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                            |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`acosh<class_@GlobalScope_method_acosh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                          |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`asin<class_@GlobalScope_method_asin>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                            |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`asinh<class_@GlobalScope_method_asinh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                          |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`atan<class_@GlobalScope_method_atan>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                            |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`atan2<class_@GlobalScope_method_atan2>` **(** :ref:`float<class_float>` y, :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                             |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`atanh<class_@GlobalScope_method_atanh>` **(** :ref:`float<class_float>` x **)**                                                                                                                                                                                                                                                                                          |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`bezier_derivative<class_@GlobalScope_method_bezier_derivative>` **(** :ref:`float<class_float>` start, :ref:`float<class_float>` control_1, :ref:`float<class_float>` control_2, :ref:`float<class_float>` end, :ref:`float<class_float>` t **)**                                                                                                                        |
    +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                       | :ref:`bezier_interpolate<class_@GlobalScope_method_bezier_interpolate>` **(** :ref:`float<class_float>` start, :ref:`float<class_float>` control_1, :ref:`float<class_float>` control_2, :ref:`float<class_float>` end, :ref:`float<class_float>` t **)**                                                                                                                      |
@@ -1685,6 +1691,38 @@ Launch Shortcut E key.
 
 Launch Shortcut F key.
 
+.. _class_@GlobalScope_constant_KEY_GLOBE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Key<enum_@GlobalScope_Key>` **KEY_GLOBE** = ``4194416``
+
+"Globe" key on Mac / iPad keyboard.
+
+.. _class_@GlobalScope_constant_KEY_KEYBOARD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Key<enum_@GlobalScope_Key>` **KEY_KEYBOARD** = ``4194417``
+
+"On-screen keyboard" key on iPad keyboard.
+
+.. _class_@GlobalScope_constant_KEY_JIS_EISU:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Key<enum_@GlobalScope_Key>` **KEY_JIS_EISU** = ``4194418``
+
+英数 key on Mac keyboard.
+
+.. _class_@GlobalScope_constant_KEY_JIS_KANA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Key<enum_@GlobalScope_Key>` **KEY_JIS_KANA** = ``4194419``
+
+かな key on Mac keyboard.
+
 .. _class_@GlobalScope_constant_KEY_UNKNOWN:
 
 .. rst-class:: classref-enumeration-constant
@@ -2261,38 +2299,6 @@ Z key.
 
 § key.
 
-.. _class_@GlobalScope_constant_KEY_GLOBE:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`Key<enum_@GlobalScope_Key>` **KEY_GLOBE** = ``4194416``
-
-"Globe" key on Mac / iPad keyboard.
-
-.. _class_@GlobalScope_constant_KEY_KEYBOARD:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`Key<enum_@GlobalScope_Key>` **KEY_KEYBOARD** = ``4194417``
-
-"On-screen keyboard" key iPad keyboard.
-
-.. _class_@GlobalScope_constant_KEY_JIS_EISU:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`Key<enum_@GlobalScope_Key>` **KEY_JIS_EISU** = ``4194418``
-
-英数 key on Mac keyboard.
-
-.. _class_@GlobalScope_constant_KEY_JIS_KANA:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`Key<enum_@GlobalScope_Key>` **KEY_JIS_KANA** = ``4194419``
-
-かな key on Mac keyboard.
-
 .. rst-class:: classref-item-separator
 
 ----
@@ -5219,6 +5225,25 @@ Returns the arc cosine of ``x`` in radians. Use to get the angle of cosine ``x``
 
 ----
 
+.. _class_@GlobalScope_method_acosh:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **acosh** **(** :ref:`float<class_float>` x **)**
+
+Returns the hyperbolic arc (also called inverse) cosine of ``x``, returning a value in radians. Use it to get the angle from an angle's cosine in hyperbolic space if ``x`` is larger or equal to 1. For values of ``x`` lower than 1, it will return 0, in order to prevent :ref:`acosh<class_@GlobalScope_method_acosh>` from returning :ref:`@GDScript.NAN<class_@GDScript_constant_NAN>`.
+
+::
+
+    var a = acosh(2) # Returns 1.31695789692482
+    cosh(a) # Returns 2
+    
+    var b = acosh(-1) # Returns 0
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_asin:
 
 .. rst-class:: classref-method
@@ -5236,6 +5261,23 @@ Returns the arc sine of ``x`` in radians. Use to get the angle of sine ``x``. ``
 
 ----
 
+.. _class_@GlobalScope_method_asinh:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **asinh** **(** :ref:`float<class_float>` x **)**
+
+Returns the hyperbolic arc (also called inverse) sine of ``x``, returning a value in radians. Use it to get the angle from an angle's sine in hyperbolic space.
+
+::
+
+    var a = asinh(0.9) # Returns 0.8088669356527824
+    sinh(a) # Returns 0.9
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_atan:
 
 .. rst-class:: classref-method
@@ -5274,6 +5316,28 @@ Important note: The Y coordinate comes first, by convention.
 
 ----
 
+.. _class_@GlobalScope_method_atanh:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **atanh** **(** :ref:`float<class_float>` x **)**
+
+Returns the hyperbolic arc (also called inverse) tangent of ``x``, returning a value in radians. Use it to get the angle from an angle's tangent in hyperbolic space if ``x`` is between -1 and 1 (non-inclusive).
+
+In mathematics, the inverse hyperbolic tangent is only defined for -1 < ``x`` < 1 in the real set, so values equal or lower to -1 for ``x`` return negative :ref:`@GDScript.INF<class_@GDScript_constant_INF>` and values equal or higher than 1 return positive :ref:`@GDScript.INF<class_@GDScript_constant_INF>` in order to prevent :ref:`atanh<class_@GlobalScope_method_atanh>` from returning :ref:`@GDScript.NAN<class_@GDScript_constant_NAN>`.
+
+::
+
+    var a = atanh(0.9) # Returns 1.47221948958322
+    tanh(a) # Returns 0.9
+    
+    var b = atanh(-2) # Returns -inf
+    tanh(b) # Returns -1
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_@GlobalScope_method_bezier_derivative:
 
 .. rst-class:: classref-method

+ 2 - 0
classes/class_callbacktweener.rst

@@ -21,6 +21,8 @@ Description
 
 **CallbackTweener** is used to call a method in a tweening sequence. See :ref:`Tween.tween_callback<class_Tween_method_tween_callback>` for more usage information.
 
+The tweener will finish automatically if the callback's target object is freed.
+
 \ **Note:** :ref:`Tween.tween_callback<class_Tween_method_tween_callback>` is the only correct way to create **CallbackTweener**. Any **CallbackTweener** created manually will not function correctly.
 
 .. rst-class:: classref-reftable-group

+ 2 - 2
classes/class_font.rst

@@ -56,7 +56,7 @@ Methods
    +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                      | :ref:`draw_string_outline<class_Font_method_draw_string_outline>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` pos, :ref:`String<class_String>` text, :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` alignment=0, :ref:`float<class_float>` width=-1, :ref:`int<class_int>` font_size=16, :ref:`int<class_int>` size=1, :ref:`Color<class_Color>` modulate=Color(1, 1, 1, 1), |bitfield|\<:ref:`JustificationFlag<enum_TextServer_JustificationFlag>`\> justification_flags=3, :ref:`Direction<enum_TextServer_Direction>` direction=0, :ref:`Orientation<enum_TextServer_Orientation>` orientation=0 **)** |const|                                                                                                                                        |
    +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`RID<class_RID>`                                     | :ref:`find_variation<class_Font_method_find_variation>` **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0) **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
+   | :ref:`RID<class_RID>`                                     | :ref:`find_variation<class_Font_method_find_variation>` **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0), :ref:`int<class_int>` spacing_top=0, :ref:`int<class_int>` spacing_bottom=0, :ref:`int<class_int>` spacing_space=0, :ref:`int<class_int>` spacing_glyph=0 **)** |const|                                                                                                                                                                                                                                                                                                                                             |
    +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                                 | :ref:`get_ascent<class_Font_method_get_ascent>` **(** :ref:`int<class_int>` font_size=16 **)** |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
    +-----------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -230,7 +230,7 @@ See also :ref:`CanvasItem.draw_string_outline<class_CanvasItem_method_draw_strin
 
 .. rst-class:: classref-method
 
-:ref:`RID<class_RID>` **find_variation** **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0) **)** |const|
+:ref:`RID<class_RID>` **find_variation** **(** :ref:`Dictionary<class_Dictionary>` variation_coordinates, :ref:`int<class_int>` face_index=0, :ref:`float<class_float>` strength=0.0, :ref:`Transform2D<class_Transform2D>` transform=Transform2D(1, 0, 0, 1, 0, 0), :ref:`int<class_int>` spacing_top=0, :ref:`int<class_int>` spacing_bottom=0, :ref:`int<class_int>` spacing_space=0, :ref:`int<class_int>` spacing_glyph=0 **)** |const|
 
 Returns :ref:`TextServer<class_TextServer>` RID of the font cache for specific variation.
 

+ 28 - 0
classes/class_fontfile.rst

@@ -137,6 +137,8 @@ Methods
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                         | :ref:`get_embolden<class_FontFile_method_get_embolden>` **(** :ref:`int<class_int>` cache_index **)** |const|                                                                                                                                          |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`get_extra_spacing<class_FontFile_method_get_extra_spacing>` **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                       |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`get_face_index<class_FontFile_method_get_face_index>` **(** :ref:`int<class_int>` cache_index **)** |const|                                                                                                                                      |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2<class_Vector2>`                     | :ref:`get_glyph_advance<class_FontFile_method_get_glyph_advance>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph **)** |const|                                                                       |
@@ -211,6 +213,8 @@ Methods
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                              | :ref:`set_embolden<class_FontFile_method_set_embolden>` **(** :ref:`int<class_int>` cache_index, :ref:`float<class_float>` strength **)**                                                                                                              |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_extra_spacing<class_FontFile_method_set_extra_spacing>` **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**                                                  |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                              | :ref:`set_face_index<class_FontFile_method_set_face_index>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` face_index **)**                                                                                                            |
    +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                              | :ref:`set_glyph_advance<class_FontFile_method_set_glyph_advance>` **(** :ref:`int<class_int>` cache_index, :ref:`int<class_int>` size, :ref:`int<class_int>` glyph, :ref:`Vector2<class_Vector2>` advance **)**                                        |
@@ -722,6 +726,18 @@ Returns embolden strength, if is not equal to zero, emboldens the font outlines.
 
 ----
 
+.. _class_FontFile_method_get_extra_spacing:
+
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_extra_spacing** **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|
+
+Returns spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) in pixels (not relative to the font size).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_FontFile_method_get_face_index:
 
 .. rst-class:: classref-method
@@ -1176,6 +1192,18 @@ Sets embolden strength, if is not equal to zero, emboldens the font outlines. Ne
 
 ----
 
+.. _class_FontFile_method_set_extra_spacing:
+
+.. rst-class:: classref-method
+
+void **set_extra_spacing** **(** :ref:`int<class_int>` cache_index, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
+
+Sets the spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_FontFile_method_set_face_index:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_fontvariation.rst

@@ -293,7 +293,7 @@ Method Descriptions
 
 void **set_spacing** **(** :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
 
-Sets the spacing for ``type`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
+Sets the spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 2 - 0
classes/class_gpuparticles3d.rst

@@ -351,6 +351,8 @@ Number of particles to emit.
 
 Particle draw order. Uses :ref:`DrawOrder<enum_GPUParticles3D_DrawOrder>` values.
 
+\ **Note:** :ref:`DRAW_ORDER_INDEX<class_GPUParticles3D_constant_DRAW_ORDER_INDEX>` is the only option that supports motion vectors for effects like TAA. It is suggested to use this draw order if the particles are opaque to fix ghosting artifacts.
+
 .. rst-class:: classref-item-separator
 
 ----

+ 0 - 14
classes/class_image.rst

@@ -133,8 +133,6 @@ Methods
    +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_bmp_from_buffer<class_Image_method_load_bmp_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
    +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_dds_from_buffer<class_Image_method_load_dds_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
-   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Image<class_Image>`                     | :ref:`load_from_file<class_Image_method_load_from_file>` **(** :ref:`String<class_String>` path **)** |static|                                                                                                                                                                |
    +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`load_jpg_from_buffer<class_Image_method_load_jpg_from_buffer>` **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**                                                                                                                                         |
@@ -1370,18 +1368,6 @@ Loads an image from the binary contents of a BMP file.
 
 ----
 
-.. _class_Image_method_load_dds_from_buffer:
-
-.. rst-class:: classref-method
-
-:ref:`Error<enum_@GlobalScope_Error>` **load_dds_from_buffer** **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**
-
-Loads an image from the binary contents of a DDS file.
-
-.. rst-class:: classref-item-separator
-
-----
-
 .. _class_Image_method_load_from_file:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_input.rst

@@ -768,7 +768,7 @@ If ``exact_match`` is ``false``, it ignores additional input modifiers for :ref:
 
 :ref:`bool<class_bool>` **is_action_pressed** **(** :ref:`StringName<class_StringName>` action, :ref:`bool<class_bool>` exact_match=false **)** |const|
 
-Returns ``true`` if you are pressing the action event. Note that if an action has multiple buttons assigned and more than one of them is pressed, releasing one button will release the action, even if some other button assigned to this action is still pressed.
+Returns ``true`` if you are pressing the action event.
 
 If ``exact_match`` is ``false``, it ignores additional input modifiers for :ref:`InputEventKey<class_InputEventKey>` and :ref:`InputEventMouseButton<class_InputEventMouseButton>` events, and the direction for :ref:`InputEventJoypadMotion<class_InputEventJoypadMotion>` events.
 

+ 34 - 32
classes/class_line2d.rst

@@ -12,14 +12,18 @@ Line2D
 
 **Inherits:** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
 
-A 2D line.
+A 2D polyline that can optionally be textured.
 
 .. rst-class:: classref-introduction-group
 
 Description
 -----------
 
-A line through several points in 2D space.
+This node draws a 2D polyline, i.e. a shape consisting of several points connected by segments. **Line2D** is not a mathematical polyline, i.e. the segments are not infinitely thin. It is intended for rendering and it can be colored and optionally textured.
+
+\ **Warning:** Certain configurations may be impossible to draw nicely, such as very sharp angles. In these situations, the node uses fallback drawing logic to look decent.
+
+\ **Note:** **Line2D** is drawn using a 2D mesh.
 
 .. rst-class:: classref-introduction-group
 
@@ -109,7 +113,7 @@ enum **LineJointMode**:
 
 :ref:`LineJointMode<enum_Line2D_LineJointMode>` **LINE_JOINT_SHARP** = ``0``
 
-The line's joints will be pointy. If ``sharp_limit`` is greater than the rotation of a joint, it becomes a bevel joint instead.
+Makes the polyline's joints pointy, connecting the sides of the two segments by extending them until they intersect. If the rotation of a joint is too big (based on :ref:`sharp_limit<class_Line2D_property_sharp_limit>`), the joint falls back to :ref:`LINE_JOINT_BEVEL<class_Line2D_constant_LINE_JOINT_BEVEL>` to prevent very long miters.
 
 .. _class_Line2D_constant_LINE_JOINT_BEVEL:
 
@@ -117,7 +121,7 @@ The line's joints will be pointy. If ``sharp_limit`` is greater than the rotatio
 
 :ref:`LineJointMode<enum_Line2D_LineJointMode>` **LINE_JOINT_BEVEL** = ``1``
 
-The line's joints will be bevelled/chamfered.
+Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line.
 
 .. _class_Line2D_constant_LINE_JOINT_ROUND:
 
@@ -125,7 +129,7 @@ The line's joints will be bevelled/chamfered.
 
 :ref:`LineJointMode<enum_Line2D_LineJointMode>` **LINE_JOINT_ROUND** = ``2``
 
-The line's joints will be rounded.
+Makes the polyline's joints rounded, connecting the sides of the two segments with an arc. The detail of this arc depends on :ref:`round_precision<class_Line2D_property_round_precision>`.
 
 .. rst-class:: classref-item-separator
 
@@ -143,7 +147,7 @@ enum **LineCapMode**:
 
 :ref:`LineCapMode<enum_Line2D_LineCapMode>` **LINE_CAP_NONE** = ``0``
 
-Don't draw a line cap.
+Draws no line cap.
 
 .. _class_Line2D_constant_LINE_CAP_BOX:
 
@@ -151,7 +155,7 @@ Don't draw a line cap.
 
 :ref:`LineCapMode<enum_Line2D_LineCapMode>` **LINE_CAP_BOX** = ``1``
 
-Draws the line cap as a box.
+Draws the line cap as a box, slightly extending the first/last segment.
 
 .. _class_Line2D_constant_LINE_CAP_ROUND:
 
@@ -159,7 +163,7 @@ Draws the line cap as a box.
 
 :ref:`LineCapMode<enum_Line2D_LineCapMode>` **LINE_CAP_ROUND** = ``2``
 
-Draws the line cap as a circle.
+Draws the line cap as a semicircle attached to the first/last segment.
 
 .. rst-class:: classref-item-separator
 
@@ -177,7 +181,7 @@ enum **LineTextureMode**:
 
 :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` **LINE_TEXTURE_NONE** = ``0``
 
-Takes the left pixels of the texture and renders it over the whole line.
+Takes the left pixels of the texture and renders them over the whole polyline.
 
 .. _class_Line2D_constant_LINE_TEXTURE_TILE:
 
@@ -185,7 +189,7 @@ Takes the left pixels of the texture and renders it over the whole line.
 
 :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` **LINE_TEXTURE_TILE** = ``1``
 
-Tiles the texture over the line. :ref:`CanvasItem.texture_repeat<class_CanvasItem_property_texture_repeat>` of the **Line2D** node must be :ref:`CanvasItem.TEXTURE_REPEAT_ENABLED<class_CanvasItem_constant_TEXTURE_REPEAT_ENABLED>` or :ref:`CanvasItem.TEXTURE_REPEAT_MIRROR<class_CanvasItem_constant_TEXTURE_REPEAT_MIRROR>` for it to work properly.
+Tiles the texture over the polyline. :ref:`CanvasItem.texture_repeat<class_CanvasItem_property_texture_repeat>` of the **Line2D** node must be :ref:`CanvasItem.TEXTURE_REPEAT_ENABLED<class_CanvasItem_constant_TEXTURE_REPEAT_ENABLED>` or :ref:`CanvasItem.TEXTURE_REPEAT_MIRROR<class_CanvasItem_constant_TEXTURE_REPEAT_MIRROR>` for it to work properly.
 
 .. _class_Line2D_constant_LINE_TEXTURE_STRETCH:
 
@@ -193,7 +197,7 @@ Tiles the texture over the line. :ref:`CanvasItem.texture_repeat<class_CanvasIte
 
 :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` **LINE_TEXTURE_STRETCH** = ``2``
 
-Stretches the texture across the line. :ref:`CanvasItem.texture_repeat<class_CanvasItem_property_texture_repeat>` of the **Line2D** node must be :ref:`CanvasItem.TEXTURE_REPEAT_DISABLED<class_CanvasItem_constant_TEXTURE_REPEAT_DISABLED>` for best results.
+Stretches the texture across the polyline. :ref:`CanvasItem.texture_repeat<class_CanvasItem_property_texture_repeat>` of the **Line2D** node must be :ref:`CanvasItem.TEXTURE_REPEAT_DISABLED<class_CanvasItem_constant_TEXTURE_REPEAT_DISABLED>` for best results.
 
 .. rst-class:: classref-section-separator
 
@@ -215,9 +219,9 @@ Property Descriptions
 - void **set_antialiased** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **get_antialiased** **(** **)**
 
-If ``true``, the line's border will be anti-aliased.
+If ``true``, the polyline's border will be anti-aliased.
 
-\ **Note:** Line2D is not accelerated by batching when being anti-aliased.
+\ **Note:** **Line2D** is not accelerated by batching when being anti-aliased.
 
 .. rst-class:: classref-item-separator
 
@@ -234,7 +238,7 @@ If ``true``, the line's border will be anti-aliased.
 - void **set_begin_cap_mode** **(** :ref:`LineCapMode<enum_Line2D_LineCapMode>` value **)**
 - :ref:`LineCapMode<enum_Line2D_LineCapMode>` **get_begin_cap_mode** **(** **)**
 
-Controls the style of the line's first point. Use :ref:`LineCapMode<enum_Line2D_LineCapMode>` constants.
+The style of the beginning of the polyline. Use :ref:`LineCapMode<enum_Line2D_LineCapMode>` constants.
 
 .. rst-class:: classref-item-separator
 
@@ -251,7 +255,7 @@ Controls the style of the line's first point. Use :ref:`LineCapMode<enum_Line2D_
 - void **set_default_color** **(** :ref:`Color<class_Color>` value **)**
 - :ref:`Color<class_Color>` **get_default_color** **(** **)**
 
-The line's color. Will not be used if a gradient is set.
+The color of the polyline. Will not be used if a gradient is set.
 
 .. rst-class:: classref-item-separator
 
@@ -268,7 +272,7 @@ The line's color. Will not be used if a gradient is set.
 - void **set_end_cap_mode** **(** :ref:`LineCapMode<enum_Line2D_LineCapMode>` value **)**
 - :ref:`LineCapMode<enum_Line2D_LineCapMode>` **get_end_cap_mode** **(** **)**
 
-Controls the style of the line's last point. Use :ref:`LineCapMode<enum_Line2D_LineCapMode>` constants.
+The style of the end of the polyline. Use :ref:`LineCapMode<enum_Line2D_LineCapMode>` constants.
 
 .. rst-class:: classref-item-separator
 
@@ -302,7 +306,7 @@ The gradient is drawn through the whole line from start to finish. The default c
 - void **set_joint_mode** **(** :ref:`LineJointMode<enum_Line2D_LineJointMode>` value **)**
 - :ref:`LineJointMode<enum_Line2D_LineJointMode>` **get_joint_mode** **(** **)**
 
-The style for the points between the start and the end.
+The style of the connections between segments of the polyline. Use :ref:`LineJointMode<enum_Line2D_LineJointMode>` constants.
 
 .. rst-class:: classref-item-separator
 
@@ -319,7 +323,7 @@ The style for the points between the start and the end.
 - void **set_points** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` value **)**
 - :ref:`PackedVector2Array<class_PackedVector2Array>` **get_points** **(** **)**
 
-The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.
+The points of the polyline, interpreted in local 2D coordinates. Segments are drawn between the adjacent points in this array.
 
 .. rst-class:: classref-item-separator
 
@@ -336,9 +340,7 @@ The points that form the lines. The line is drawn between every point set in thi
 - void **set_round_precision** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_round_precision** **(** **)**
 
-The smoothness of the rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. This is only used if a cap or joint is set as round.
-
-\ **Note:** The default value is tuned for lines with the default :ref:`width<class_Line2D_property_width>`. For thin lines, this value should be reduced to a number between ``2`` and ``4`` to improve performance.
+The smoothness used for rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update.
 
 .. rst-class:: classref-item-separator
 
@@ -355,7 +357,7 @@ The smoothness of the rounded joints and caps. Higher values result in smoother
 - void **set_sharp_limit** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_sharp_limit** **(** **)**
 
-The direction difference in radians between vector points. This value is only used if :ref:`joint_mode<class_Line2D_property_joint_mode>` is set to :ref:`LINE_JOINT_SHARP<class_Line2D_constant_LINE_JOINT_SHARP>`.
+Determines the miter limit of the polyline. Normally, when :ref:`joint_mode<class_Line2D_property_joint_mode>` is set to :ref:`LINE_JOINT_SHARP<class_Line2D_constant_LINE_JOINT_SHARP>`, sharp angles fall back to using the logic of :ref:`LINE_JOINT_BEVEL<class_Line2D_constant_LINE_JOINT_BEVEL>` joints to prevent very long miters. Higher values of this property mean that the fallback to a bevel joint will happen at sharper angles.
 
 .. rst-class:: classref-item-separator
 
@@ -372,7 +374,7 @@ The direction difference in radians between vector points. This value is only us
 - void **set_texture** **(** :ref:`Texture2D<class_Texture2D>` value **)**
 - :ref:`Texture2D<class_Texture2D>` **get_texture** **(** **)**
 
-The texture used for the line's texture. Uses ``texture_mode`` for drawing style.
+The texture used for the polyline. Uses ``texture_mode`` for drawing style.
 
 .. rst-class:: classref-item-separator
 
@@ -389,7 +391,7 @@ The texture used for the line's texture. Uses ``texture_mode`` for drawing style
 - void **set_texture_mode** **(** :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` value **)**
 - :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` **get_texture_mode** **(** **)**
 
-The style to render the ``texture`` on the line. Use :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` constants.
+The style to render the :ref:`texture<class_Line2D_property_texture>` of the polyline. Use :ref:`LineTextureMode<enum_Line2D_LineTextureMode>` constants.
 
 .. rst-class:: classref-item-separator
 
@@ -406,7 +408,7 @@ The style to render the ``texture`` on the line. Use :ref:`LineTextureMode<enum_
 - void **set_width** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_width** **(** **)**
 
-The line's width.
+The polyline's width
 
 .. rst-class:: classref-item-separator
 
@@ -423,7 +425,7 @@ The line's width.
 - void **set_curve** **(** :ref:`Curve<class_Curve>` value **)**
 - :ref:`Curve<class_Curve>` **get_curve** **(** **)**
 
-The line's width varies with the curve. The original width is simply multiply by the value of the Curve.
+The polyline's width curve. The width of the polyline over its length will be equivalent to the value of the width curve over its domain.
 
 .. rst-class:: classref-section-separator
 
@@ -440,9 +442,9 @@ Method Descriptions
 
 void **add_point** **(** :ref:`Vector2<class_Vector2>` position, :ref:`int<class_int>` index=-1 **)**
 
-Adds a point with the specified ``position`` relative to the line's own position. Appends the new point at the end of the point list.
+Adds a point with the specified ``position`` relative to the polyline's own position. If no ``index`` is provided, the new point will be added to the end of the points array.
 
-If ``index`` is given, the new point is inserted before the existing point identified by index ``index``. Every existing point starting from ``index`` is shifted further down the list of points. The index must be greater than or equal to ``0`` and must not exceed the number of existing points in the line. See :ref:`get_point_count<class_Line2D_method_get_point_count>`.
+If ``index`` is given, the new point is inserted before the existing point identified by index ``index``. The indices of the points after the new point get increased by 1. The provided ``index`` must not exceed the number of existing points in the polyline. See :ref:`get_point_count<class_Line2D_method_get_point_count>`.
 
 .. rst-class:: classref-item-separator
 
@@ -454,7 +456,7 @@ If ``index`` is given, the new point is inserted before the existing point ident
 
 void **clear_points** **(** **)**
 
-Removes all points from the line.
+Removes all points from the polyline, making it empty.
 
 .. rst-class:: classref-item-separator
 
@@ -466,7 +468,7 @@ Removes all points from the line.
 
 :ref:`int<class_int>` **get_point_count** **(** **)** |const|
 
-Returns the number of points in the line.
+Returns the number of points in the polyline.
 
 .. rst-class:: classref-item-separator
 
@@ -490,7 +492,7 @@ Returns the position of the point at index ``index``.
 
 void **remove_point** **(** :ref:`int<class_int>` index **)**
 
-Removes the point at index ``index`` from the line.
+Removes the point at index ``index`` from the polyline.
 
 .. rst-class:: classref-item-separator
 
@@ -502,7 +504,7 @@ Removes the point at index ``index`` from the line.
 
 void **set_point_position** **(** :ref:`int<class_int>` index, :ref:`Vector2<class_Vector2>` position **)**
 
-Overwrites the position of the point at index ``index`` with the supplied ``position``.
+Overwrites the position of the point at the given ``index`` with the supplied ``position``.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 20 - 1
classes/class_meshdatatool.rst

@@ -318,10 +318,29 @@ Calculates and returns the face normal of the given face.
 
 :ref:`int<class_int>` **get_face_vertex** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` vertex **)** |const|
 
-Returns the specified vertex of the given face.
+Returns the specified vertex index of the given face.
 
 Vertex argument must be either 0, 1, or 2 because faces contain three vertices.
 
+\ **Example:**\ 
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var index = mesh_data_tool.get_face_vertex(0, 1) # Gets the index of the second vertex of the first face.
+    var position = mesh_data_tool.get_vertex(index)
+    var normal = mesh_data_tool.get_vertex_normal(index)
+
+ .. code-tab:: csharp
+
+    int index = meshDataTool.GetFaceVertex(0, 1); // Gets the index of the second vertex of the first face.
+    Vector3 position = meshDataTool.GetVertex(index);
+    Vector3 normal = meshDataTool.GetVertexNormal(index);
+
+
+
 .. rst-class:: classref-item-separator
 
 ----

+ 2 - 0
classes/class_methodtweener.rst

@@ -21,6 +21,8 @@ Description
 
 **MethodTweener** is similar to a combination of :ref:`CallbackTweener<class_CallbackTweener>` and :ref:`PropertyTweener<class_PropertyTweener>`. It calls a method providing an interpolated value as a parameter. See :ref:`Tween.tween_method<class_Tween_method_tween_method>` for more usage information.
 
+The tweener will finish automatically if the callback's target object is freed.
+
 \ **Note:** :ref:`Tween.tween_method<class_Tween_method_tween_method>` is the only correct way to create **MethodTweener**. Any **MethodTweener** created manually will not function correctly.
 
 .. rst-class:: classref-reftable-group

+ 2 - 2
classes/class_navigationagent3d.rst

@@ -286,7 +286,7 @@ If ``true`` the agent is registered for an RVO avoidance callback on the :ref:`N
 - void **set_avoidance_layers** **(** :ref:`int<class_int>` value **)**
 - :ref:`int<class_int>` **get_avoidance_layers** **(** **)**
 
-A bitfield determining the avoidance layers for this NavigationAgent. Other agent's with a matching bit on the :ref:`avoidance_mask<class_NavigationAgent3D_property_avoidance_mask>` will avoid this agent.
+A bitfield determining the avoidance layers for this NavigationAgent. Other agents with a matching bit on the :ref:`avoidance_mask<class_NavigationAgent3D_property_avoidance_mask>` will avoid this agent.
 
 .. rst-class:: classref-item-separator
 
@@ -611,7 +611,7 @@ Does not affect normal pathfinding. To change an actor's pathfinding radius bake
 - void **set_target_desired_distance** **(** :ref:`float<class_float>` value **)**
 - :ref:`float<class_float>` **get_target_desired_distance** **(** **)**
 
-The distance threshold before the final target point is considered to be reached. This allows agents to not have to hit the point of the final target exactly, but only to reach its general. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot or undershoot the distance to the final target point on each physics frame update.
+The distance threshold before the final target point is considered to be reached. This allows agents to not have to hit the point of the final target exactly, but only to reach its general area. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot or undershoot the distance to the final target point on each physics frame update.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_nodepath.rst

@@ -17,7 +17,7 @@ A pre-parsed scene tree path.
 Description
 -----------
 
-A pre-parsed relative or absolute path in a scene tree, for use with :ref:`Node.get_node<class_Node_method_get_node>` and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For example, ``"Path2D/PathFollow2D/Sprite2D:texture:size"`` would refer to the ``size`` property of the ``texture`` resource on the node named ``"Sprite2D"`` which is a child of the other named nodes in the path.
+A pre-parsed relative or absolute path in a scene tree, for use with :ref:`Node.get_node<class_Node_method_get_node>` and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For example, ``"Path2D/PathFollow2D/Sprite2D:texture:size"`` would refer to the ``size`` property of the ``texture`` resource on the node named ``"Sprite2D"``, which is a child of the other named nodes in the path.
 
 You will usually just pass a string to :ref:`Node.get_node<class_Node_method_get_node>` and it will be automatically converted, but you may occasionally want to parse a path ahead of time with **NodePath** or the literal syntax ``^"path"``. Exporting a **NodePath** variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
 

File diff suppressed because it is too large
+ 0 - 0
classes/class_object.rst


+ 1 - 1
classes/class_openxrapiextension.rst

@@ -3,7 +3,7 @@
 .. DO NOT EDIT THIS FILE!!!
 .. Generated automatically from Godot engine sources.
 .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
-.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/OpenXRAPIExtension.xml.
+.. XML source: https://github.com/godotengine/godot/tree/master/modules/openxr/doc_classes/OpenXRAPIExtension.xml.
 
 .. _class_OpenXRAPIExtension:
 

+ 1 - 1
classes/class_openxrextensionwrapperextension.rst

@@ -3,7 +3,7 @@
 .. DO NOT EDIT THIS FILE!!!
 .. Generated automatically from Godot engine sources.
 .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
-.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/OpenXRExtensionWrapperExtension.xml.
+.. XML source: https://github.com/godotengine/godot/tree/master/modules/openxr/doc_classes/OpenXRExtensionWrapperExtension.xml.
 
 .. _class_OpenXRExtensionWrapperExtension:
 

+ 1 - 1
classes/class_openxrinteractionprofile.rst

@@ -19,7 +19,7 @@ Suggested bindings object for OpenXR.
 Description
 -----------
 
-This object stores suggested bindings for an interaction profile. Interaction profiles define the meta data for a tracked XR device such as an XR controller.
+This object stores suggested bindings for an interaction profile. Interaction profiles define the metadata for a tracked XR device such as an XR controller.
 
 For more information see the `interaction profiles info in the OpenXR specification <https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#semantic-path-interaction-profiles>`__.
 

+ 107 - 0
classes/class_openxrinteractionprofilemetadata.rst

@@ -0,0 +1,107 @@
+:github_url: hide
+
+.. DO NOT EDIT THIS FILE!!!
+.. Generated automatically from Godot engine sources.
+.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
+.. XML source: https://github.com/godotengine/godot/tree/master/modules/openxr/doc_classes/OpenXRInteractionProfileMetadata.xml.
+
+.. _class_OpenXRInteractionProfileMetadata:
+
+OpenXRInteractionProfileMetadata
+================================
+
+**Inherits:** :ref:`Object<class_Object>`
+
+Meta class registering supported devices in OpenXR.
+
+.. rst-class:: classref-introduction-group
+
+Description
+-----------
+
+This class allows OpenXR core and extensions to register metadata relating to supported interaction devices such as controllers, trackers, haptic devices, etc. It is primarily used by the action map editor and to sanitize any action map by removing extension-dependent entries when applicable.
+
+.. rst-class:: classref-reftable-group
+
+Methods
+-------
+
+.. table::
+   :widths: auto
+
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`register_interaction_profile<class_OpenXRInteractionProfileMetadata_method_register_interaction_profile>` **(** :ref:`String<class_String>` display_name, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name **)**                                                                                                                                  |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`register_io_path<class_OpenXRInteractionProfileMetadata_method_register_io_path>` **(** :ref:`String<class_String>` interaction_profile, :ref:`String<class_String>` display_name, :ref:`String<class_String>` toplevel_path, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name, :ref:`ActionType<enum_OpenXRAction_ActionType>` action_type **)** |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`register_profile_rename<class_OpenXRInteractionProfileMetadata_method_register_profile_rename>` **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**                                                                                                                                                                                                      |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`register_top_level_path<class_OpenXRInteractionProfileMetadata_method_register_top_level_path>` **(** :ref:`String<class_String>` display_name, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name **)**                                                                                                                                            |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Method Descriptions
+-------------------
+
+.. _class_OpenXRInteractionProfileMetadata_method_register_interaction_profile:
+
+.. rst-class:: classref-method
+
+void **register_interaction_profile** **(** :ref:`String<class_String>` display_name, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name **)**
+
+Registers an interaction profile using its OpenXR designation (e.g. ``/interaction_profiles/khr/simple_controller`` is the profile for OpenXR's simple controller profile).
+
+\ ``display_name`` is the description shown to the user. ``openxr_path`` is the interaction profile path being registered. ``openxr_extension_name`` optionally restricts this profile to the given extension being enabled/available. If the extension is not available, the profile and all related entries used in an action map are filtered out.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInteractionProfileMetadata_method_register_io_path:
+
+.. rst-class:: classref-method
+
+void **register_io_path** **(** :ref:`String<class_String>` interaction_profile, :ref:`String<class_String>` display_name, :ref:`String<class_String>` toplevel_path, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name, :ref:`ActionType<enum_OpenXRAction_ActionType>` action_type **)**
+
+Registers an input/output path for the given ``interaction_profile``. The profile should previously have been registered using :ref:`register_interaction_profile<class_OpenXRInteractionProfileMetadata_method_register_interaction_profile>`. ``display_name`` is the description shown to the user. ``toplevel_path`` specifies the bind path this input/output can be bound to (e.g. ``/user/hand/left`` or ``/user/hand/right``). ``openxr_path`` is the action input/output being registered (e.g. ``/user/hand/left/input/aim/pose``). ``openxr_extension_name`` restricts this input/output to an enabled/available extension, this doesn't need to repeat the extension on the profile but relates to overlapping extension (e.g. ``XR_EXT_palm_pose`` that introduces ``…/input/palm_ext/pose`` input paths). ``action_type`` defines the type of input or output provided by OpenXR.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInteractionProfileMetadata_method_register_profile_rename:
+
+.. rst-class:: classref-method
+
+void **register_profile_rename** **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
+
+Allows for renaming old interaction profile paths to new paths to maintain backwards compatibility with older action maps.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInteractionProfileMetadata_method_register_top_level_path:
+
+.. rst-class:: classref-method
+
+void **register_top_level_path** **(** :ref:`String<class_String>` display_name, :ref:`String<class_String>` openxr_path, :ref:`String<class_String>` openxr_extension_name **)**
+
+Registers a top level path to which profiles can be bound. For instance ``/user/hand/left`` refers to the bind point for the player's left hand. Extensions can register additional top level paths, for instance a haptic vest extension might register ``/user/body/vest``.
+
+\ ``display_name`` is the name shown to the user. ``openxr_path`` is the top level path being registered. ``openxr_extension_name`` is optional and ensures the top level path is only used if the specified extension is available/enabled.
+
+When a top level path ends up being bound by OpenXR, a :ref:`XRPositionalTracker<class_XRPositionalTracker>` is instantiated to manage the state of the device.
+
+.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
+.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
+.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
+.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
+.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`

+ 3 - 3
classes/class_raycast2d.rst

@@ -116,7 +116,7 @@ Property Descriptions
 - void **set_collide_with_areas** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_collide_with_areas_enabled** **(** **)**
 
-If ``true``, collision with :ref:`Area2D<class_Area2D>`\ s will be reported.
+If ``true``, collisions with :ref:`Area2D<class_Area2D>`\ s will be reported.
 
 .. rst-class:: classref-item-separator
 
@@ -133,7 +133,7 @@ If ``true``, collision with :ref:`Area2D<class_Area2D>`\ s will be reported.
 - void **set_collide_with_bodies** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_collide_with_bodies_enabled** **(** **)**
 
-If ``true``, collision with :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s will be reported.
+If ``true``, collisions with :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s will be reported.
 
 .. rst-class:: classref-item-separator
 
@@ -271,7 +271,7 @@ Removes all collision exceptions for this ray.
 
 void **force_raycast_update** **(** **)**
 
-Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the ray or its parent has changed state.
+Updates the collision information for the ray immediately, without waiting for the next ``_physics_process`` call. Use this method, for example, when the ray or its parent has changed state.
 
 \ **Note:** :ref:`enabled<class_RayCast2D_property_enabled>` does not need to be ``true`` for this to work.
 

+ 3 - 3
classes/class_raycast3d.rst

@@ -126,7 +126,7 @@ Property Descriptions
 - void **set_collide_with_areas** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_collide_with_areas_enabled** **(** **)**
 
-If ``true``, collision with :ref:`Area3D<class_Area3D>`\ s will be reported.
+If ``true``, collisions with :ref:`Area3D<class_Area3D>`\ s will be reported.
 
 .. rst-class:: classref-item-separator
 
@@ -143,7 +143,7 @@ If ``true``, collision with :ref:`Area3D<class_Area3D>`\ s will be reported.
 - void **set_collide_with_bodies** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_collide_with_bodies_enabled** **(** **)**
 
-If ``true``, collision with :ref:`PhysicsBody3D<class_PhysicsBody3D>`\ s will be reported.
+If ``true``, collisions with :ref:`PhysicsBody3D<class_PhysicsBody3D>`\ s will be reported.
 
 .. rst-class:: classref-item-separator
 
@@ -334,7 +334,7 @@ Removes all collision exceptions for this ray.
 
 void **force_raycast_update** **(** **)**
 
-Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next ``_physics_process`` call, for example if the ray or its parent has changed state.
+Updates the collision information for the ray immediately, without waiting for the next ``_physics_process`` call. Use this method, for example, when the ray or its parent has changed state.
 
 \ **Note:** :ref:`enabled<class_RayCast3D_property_enabled>` does not need to be ``true`` for this to work.
 

+ 25 - 21
classes/class_renderingdevice.rst

@@ -4345,9 +4345,17 @@ Puts a memory barrier in place. This is used for synchronization to avoid data r
 
 :ref:`Error<enum_@GlobalScope_Error>` **buffer_clear** **(** :ref:`RID<class_RID>` buffer, :ref:`int<class_int>` offset, :ref:`int<class_int>` size_bytes, |bitfield|\<:ref:`BarrierMask<enum_RenderingDevice_BarrierMask>`\> post_barrier=32767 **)**
 
-.. container:: contribute
+Clears the contents of the ``buffer``, clearing ``size_bytes`` bytes, starting at ``offset``. Always raises a memory barrier.
 
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Prints an error if:
+
+- the size isn't a multiple of four
+
+- the region specified by ``offset`` + ``size_bytes`` exceeds the buffer
+
+- a draw list is currently active (created by :ref:`draw_list_begin<class_RenderingDevice_method_draw_list_begin>`)
+
+- a compute list is currently active (created by :ref:`compute_list_begin<class_RenderingDevice_method_compute_list_begin>`)
 
 .. rst-class:: classref-item-separator
 
@@ -4371,9 +4379,15 @@ Returns a copy of the data of the specified ``buffer``, optionally ``offset_byte
 
 :ref:`Error<enum_@GlobalScope_Error>` **buffer_update** **(** :ref:`RID<class_RID>` buffer, :ref:`int<class_int>` offset, :ref:`int<class_int>` size_bytes, :ref:`PackedByteArray<class_PackedByteArray>` data, |bitfield|\<:ref:`BarrierMask<enum_RenderingDevice_BarrierMask>`\> post_barrier=32767 **)**
 
-.. container:: contribute
+Updates a region of ``size_bytes`` bytes, starting at ``offset``, in the buffer, with the specified ``data``. Raises a memory barrier except when ``post_barrier`` is set to :ref:`BARRIER_MASK_NO_BARRIER<class_RenderingDevice_constant_BARRIER_MASK_NO_BARRIER>`.
+
+Prints an error if:
+
+- the region specified by ``offset`` + ``size_bytes`` exceeds the buffer
+
+- a draw list is currently active (created by :ref:`draw_list_begin<class_RenderingDevice_method_draw_list_begin>`)
 
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+- a compute list is currently active (created by :ref:`compute_list_begin<class_RenderingDevice_method_compute_list_begin>`)
 
 .. rst-class:: classref-item-separator
 
@@ -4397,9 +4411,7 @@ Creates a timestamp marker with the specified ``name``. This is used for perform
 
 void **compute_list_add_barrier** **(** :ref:`int<class_int>` compute_list **)**
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Raises a Vulkan compute barrier in the specified ``compute_list``.
 
 .. rst-class:: classref-item-separator
 
@@ -4443,9 +4455,7 @@ A simple compute operation might look like this (code is not a complete example)
 
 void **compute_list_bind_compute_pipeline** **(** :ref:`int<class_int>` compute_list, :ref:`RID<class_RID>` compute_pipeline **)**
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Tells the GPU what compute pipeline to use when processing the compute list. If the shader has changed since the last time this function was called, Godot will unbind all descriptor sets and will re-bind them inside :ref:`compute_list_dispatch<class_RenderingDevice_method_compute_list_dispatch>`.
 
 .. rst-class:: classref-item-separator
 
@@ -4457,9 +4467,7 @@ void **compute_list_bind_compute_pipeline** **(** :ref:`int<class_int>` compute_
 
 void **compute_list_bind_uniform_set** **(** :ref:`int<class_int>` compute_list, :ref:`RID<class_RID>` uniform_set, :ref:`int<class_int>` set_index **)**
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Binds the ``uniform_set`` to this ``compute_list``. Godot ensures that all textures in the uniform set have the correct Vulkan access masks. If Godot had to change access masks of textures, it will raise a Vulkan image memory barrier.
 
 .. rst-class:: classref-item-separator
 
@@ -5282,9 +5290,7 @@ Create a placeholder RID by allocating an RID without initializing it for use in
 
 :ref:`int<class_int>` **shader_get_vertex_input_attribute_mask** **(** :ref:`RID<class_RID>` shader **)**
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Returns the internal vertex input mask. Internally, the vertex input mask is an unsigned integer consisting of the locations (specified in GLSL via. ``layout(location = ...)``) of the input variables (specified in GLSL by the ``in`` keyword).
 
 .. rst-class:: classref-item-separator
 
@@ -5556,7 +5562,7 @@ Updates texture data with new data, replacing the previous data in place. The up
 
 :ref:`RID<class_RID>` **uniform_buffer_create** **(** :ref:`int<class_int>` size_bytes, :ref:`PackedByteArray<class_PackedByteArray>` data=PackedByteArray() **)**
 
-It can be accessed with the RID that is returned.
+Creates a new uniform buffer. It can be accessed with the RID that is returned.
 
 Once finished with your RID, you will want to free the RID using the RenderingDevice's :ref:`free_rid<class_RenderingDevice_method_free_rid>` method.
 
@@ -5570,7 +5576,7 @@ Once finished with your RID, you will want to free the RID using the RenderingDe
 
 :ref:`RID<class_RID>` **uniform_set_create** **(** :ref:`RDUniform[]<class_RDUniform>` uniforms, :ref:`RID<class_RID>` shader, :ref:`int<class_int>` shader_set **)**
 
-It can be accessed with the RID that is returned.
+Creates a new uniform set. It can be accessed with the RID that is returned.
 
 Once finished with your RID, you will want to free the RID using the RenderingDevice's :ref:`free_rid<class_RenderingDevice_method_free_rid>` method.
 
@@ -5584,9 +5590,7 @@ Once finished with your RID, you will want to free the RID using the RenderingDe
 
 :ref:`bool<class_bool>` **uniform_set_is_valid** **(** :ref:`RID<class_RID>` uniform_set **)**
 
-.. container:: contribute
-
-	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Checks if the ``uniform_set`` is valid, i.e. is owned.
 
 .. rst-class:: classref-item-separator
 

+ 98 - 23
classes/class_scenereplicationconfig.rst

@@ -22,29 +22,72 @@ Methods
 .. table::
    :widths: auto
 
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                              | :ref:`add_property<class_SceneReplicationConfig_method_add_property>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`int<class_int>` index=-1 **)**              |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`NodePath[]<class_NodePath>` | :ref:`get_properties<class_SceneReplicationConfig_method_get_properties>` **(** **)** |const|                                                                       |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`           | :ref:`has_property<class_SceneReplicationConfig_method_has_property>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                      |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`int<class_int>`             | :ref:`property_get_index<class_SceneReplicationConfig_method_property_get_index>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                          |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`           | :ref:`property_get_spawn<class_SceneReplicationConfig_method_property_get_spawn>` **(** :ref:`NodePath<class_NodePath>` path **)**                                  |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`           | :ref:`property_get_sync<class_SceneReplicationConfig_method_property_get_sync>` **(** :ref:`NodePath<class_NodePath>` path **)**                                    |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`           | :ref:`property_get_watch<class_SceneReplicationConfig_method_property_get_watch>` **(** :ref:`NodePath<class_NodePath>` path **)**                                  |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                              | :ref:`property_set_spawn<class_SceneReplicationConfig_method_property_set_spawn>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)** |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                              | :ref:`property_set_sync<class_SceneReplicationConfig_method_property_set_sync>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**   |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                              | :ref:`property_set_watch<class_SceneReplicationConfig_method_property_set_watch>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)** |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                              | :ref:`remove_property<class_SceneReplicationConfig_method_remove_property>` **(** :ref:`NodePath<class_NodePath>` path **)**                                        |
-   +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`add_property<class_SceneReplicationConfig_method_add_property>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`int<class_int>` index=-1 **)**                                                                             |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`NodePath[]<class_NodePath>`                                   | :ref:`get_properties<class_SceneReplicationConfig_method_get_properties>` **(** **)** |const|                                                                                                                                      |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                             | :ref:`has_property<class_SceneReplicationConfig_method_has_property>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                     |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                               | :ref:`property_get_index<class_SceneReplicationConfig_method_property_get_index>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                         |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` | :ref:`property_get_replication_mode<class_SceneReplicationConfig_method_property_get_replication_mode>` **(** :ref:`NodePath<class_NodePath>` path **)**                                                                           |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                             | :ref:`property_get_spawn<class_SceneReplicationConfig_method_property_get_spawn>` **(** :ref:`NodePath<class_NodePath>` path **)**                                                                                                 |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                             | :ref:`property_get_sync<class_SceneReplicationConfig_method_property_get_sync>` **(** :ref:`NodePath<class_NodePath>` path **)**                                                                                                   |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                             | :ref:`property_get_watch<class_SceneReplicationConfig_method_property_get_watch>` **(** :ref:`NodePath<class_NodePath>` path **)**                                                                                                 |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`property_set_replication_mode<class_SceneReplicationConfig_method_property_set_replication_mode>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` mode **)** |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`property_set_spawn<class_SceneReplicationConfig_method_property_set_spawn>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**                                                                |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`property_set_sync<class_SceneReplicationConfig_method_property_set_sync>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**                                                                  |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`property_set_watch<class_SceneReplicationConfig_method_property_set_watch>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enabled **)**                                                                |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`remove_property<class_SceneReplicationConfig_method_remove_property>` **(** :ref:`NodePath<class_NodePath>` path **)**                                                                                                       |
+   +---------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Enumerations
+------------
+
+.. _enum_SceneReplicationConfig_ReplicationMode:
+
+.. rst-class:: classref-enumeration
+
+enum **ReplicationMode**:
+
+.. _class_SceneReplicationConfig_constant_REPLICATION_MODE_NEVER:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` **REPLICATION_MODE_NEVER** = ``0``
+
+Do not keep the given property synchronized.
+
+.. _class_SceneReplicationConfig_constant_REPLICATION_MODE_ALWAYS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` **REPLICATION_MODE_ALWAYS** = ``1``
+
+Replicate the given property on process by constantly sending updates using unreliable transfer mode.
+
+.. _class_SceneReplicationConfig_constant_REPLICATION_MODE_ON_CHANGE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` **REPLICATION_MODE_ON_CHANGE** = ``2``
+
+Replicate the given property on process by sending updates using reliable transfer mode when its value changes.
 
 .. rst-class:: classref-section-separator
 
@@ -105,6 +148,18 @@ Finds the index of the given ``path``.
 
 ----
 
+.. _class_SceneReplicationConfig_method_property_get_replication_mode:
+
+.. rst-class:: classref-method
+
+:ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` **property_get_replication_mode** **(** :ref:`NodePath<class_NodePath>` path **)**
+
+Returns the replication mode for the property identified by the given ``path``. See :ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_SceneReplicationConfig_method_property_get_spawn:
 
 .. rst-class:: classref-method
@@ -125,6 +180,8 @@ Returns whether the property identified by the given ``path`` is configured to b
 
 Returns whether the property identified by the given ``path`` is configured to be synchronized on process.
 
+\ *Deprecated.* Use :ref:`property_get_replication_mode<class_SceneReplicationConfig_method_property_get_replication_mode>` instead.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -137,6 +194,20 @@ Returns whether the property identified by the given ``path`` is configured to b
 
 Returns whether the property identified by the given ``path`` is configured to be reliably synchronized when changes are detected on process.
 
+\ *Deprecated.* Use :ref:`property_get_replication_mode<class_SceneReplicationConfig_method_property_get_replication_mode>` instead.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_SceneReplicationConfig_method_property_set_replication_mode:
+
+.. rst-class:: classref-method
+
+void **property_set_replication_mode** **(** :ref:`NodePath<class_NodePath>` path, :ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>` mode **)**
+
+Sets the synchronization mode for the property identified by the given ``path``. See :ref:`ReplicationMode<enum_SceneReplicationConfig_ReplicationMode>`.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -161,6 +232,8 @@ void **property_set_sync** **(** :ref:`NodePath<class_NodePath>` path, :ref:`boo
 
 Sets whether the property identified by the given ``path`` is configured to be synchronized on process.
 
+\ *Deprecated.* Use :ref:`property_set_replication_mode<class_SceneReplicationConfig_method_property_set_replication_mode>` with :ref:`REPLICATION_MODE_ALWAYS<class_SceneReplicationConfig_constant_REPLICATION_MODE_ALWAYS>` instead.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -173,6 +246,8 @@ void **property_set_watch** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bo
 
 Sets whether the property identified by the given ``path`` is configured to be reliably synchronized when changes are detected on process.
 
+\ *Deprecated.* Use :ref:`property_set_replication_mode<class_SceneReplicationConfig_method_property_set_replication_mode>` with :ref:`REPLICATION_MODE_ON_CHANGE<class_SceneReplicationConfig_constant_REPLICATION_MODE_ON_CHANGE>` instead.
+
 .. rst-class:: classref-item-separator
 
 ----

+ 2 - 0
classes/class_scenetree.rst

@@ -587,6 +587,8 @@ The timer will be automatically freed after its time elapses.
 
 Creates and returns a new :ref:`Tween<class_Tween>`. The Tween will start automatically on the next process frame or physics frame (depending on :ref:`TweenProcessMode<enum_Tween_TweenProcessMode>`).
 
+\ **Note:** When creating a :ref:`Tween<class_Tween>` using this method, the :ref:`Tween<class_Tween>` will not be tied to the :ref:`Node<class_Node>` that called it. It will continue to animate even if the :ref:`Node<class_Node>` is freed, but it will automatically finish if there's nothing left to animate. If you want the :ref:`Tween<class_Tween>` to be automatically killed when the :ref:`Node<class_Node>` is freed, use :ref:`Node.create_tween<class_Node_method_create_tween>` or :ref:`Tween.bind_node<class_Tween_method_bind_node>`.
+
 .. rst-class:: classref-item-separator
 
 ----

+ 16 - 0
classes/class_scriptextension.rst

@@ -31,6 +31,8 @@ Methods
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Script<class_Script>`                 | :ref:`_get_base_script<class_ScriptExtension_method__get_base_script>` **(** **)** |virtual| |const|                                                                    |
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                 | :ref:`_get_class_icon_path<class_ScriptExtension_method__get_class_icon_path>` **(** **)** |virtual| |const|                                                            |
+   +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Dictionary<class_Dictionary>`         | :ref:`_get_constants<class_ScriptExtension_method__get_constants>` **(** **)** |virtual| |const|                                                                        |
    +---------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Dictionary[]<class_Dictionary>`       | :ref:`_get_documentation<class_ScriptExtension_method__get_documentation>` **(** **)** |virtual| |const|                                                                |
@@ -141,6 +143,20 @@ Method Descriptions
 
 ----
 
+.. _class_ScriptExtension_method__get_class_icon_path:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **_get_class_icon_path** **(** **)** |virtual| |const|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ScriptExtension_method__get_constants:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_stylebox.rst

@@ -101,7 +101,7 @@ Property Descriptions
 
 The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom.
 
-If this value is negative, it is ignored and a child-specific margin is used instead. For example for :ref:`StyleBoxFlat<class_StyleBoxFlat>` the border thickness (if any) is used instead.
+If this value is negative, it is ignored and a child-specific margin is used instead. For example, for :ref:`StyleBoxFlat<class_StyleBoxFlat>`, the border thickness (if any) is used instead.
 
 It is up to the code using this style box to decide what these contents are: for example, a :ref:`Button<class_Button>` respects this content margin for the textual contents of the button.
 

+ 28 - 0
classes/class_textserver.rst

@@ -120,6 +120,8 @@ Methods
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2i[]<class_Vector2i>`                               | :ref:`font_get_size_cache_list<class_TextServer_method_font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                   |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                           | :ref:`font_get_spacing<class_TextServer_method_font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|                                                                                                                                                                                          |
+   +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                           | :ref:`font_get_stretch<class_TextServer_method_font_get_stretch>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                   |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\>       | :ref:`font_get_style<class_TextServer_method_font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |const|                                                                                                                                                                                                                                                       |
@@ -228,6 +230,8 @@ Methods
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`font_set_script_support_override<class_TextServer_method_font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)**                                                                                                                                                    |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                            | :ref:`font_set_spacing<class_TextServer_method_font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**                                                                                                                                                                     |
+   +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`font_set_stretch<class_TextServer_method_font_set_stretch>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` weight **)**                                                                                                                                                                                                                             |
    +-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`font_set_style<class_TextServer_method_font_set_style>` **(** :ref:`RID<class_RID>` font_rid, |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> style **)**                                                                                                                                                                                              |
@@ -2035,6 +2039,18 @@ Returns list of the font sizes in the cache. Each size is ``Vector2i`` with font
 
 ----
 
+.. _class_TextServer_method_font_get_spacing:
+
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **font_get_spacing** **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |const|
+
+Returns the spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) in pixels (not relative to the font size).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServer_method_font_get_stretch:
 
 .. rst-class:: classref-method
@@ -2693,6 +2709,18 @@ Adds override for :ref:`font_is_script_supported<class_TextServer_method_font_is
 
 ----
 
+.. _class_TextServer_method_font_set_spacing:
+
+.. rst-class:: classref-method
+
+void **font_set_spacing** **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)**
+
+Sets the spacing for ``spacing`` (see :ref:`SpacingType<enum_TextServer_SpacingType>`) to ``value`` in pixels (not relative to the font size).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServer_method_font_set_stretch:
 
 .. rst-class:: classref-method

+ 32 - 0
classes/class_textserverextension.rst

@@ -122,6 +122,8 @@ Methods
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2i[]<class_Vector2i>`                               | :ref:`_font_get_size_cache_list<class_TextServerExtension_method__font_get_size_cache_list>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                  |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                           | :ref:`_font_get_spacing<class_TextServerExtension_method__font_get_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |virtual| |const|                                                                                                                                                                         |
+   +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                           | :ref:`_font_get_stretch<class_TextServerExtension_method__font_get_stretch>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                                  |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\>       | :ref:`_font_get_style<class_TextServerExtension_method__font_get_style>` **(** :ref:`RID<class_RID>` font_rid **)** |virtual| |const|                                                                                                                                                                                                                                      |
@@ -232,6 +234,8 @@ Methods
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`_font_set_script_support_override<class_TextServerExtension_method__font_set_script_support_override>` **(** :ref:`RID<class_RID>` font_rid, :ref:`String<class_String>` script, :ref:`bool<class_bool>` supported **)** |virtual|                                                                                                                                   |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                            | :ref:`_font_set_spacing<class_TextServerExtension_method__font_set_spacing>` **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |virtual|                                                                                                                                                    |
+   +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`_font_set_stretch<class_TextServerExtension_method__font_set_stretch>` **(** :ref:`RID<class_RID>` font_rid, :ref:`int<class_int>` stretch **)** |virtual|                                                                                                                                                                                                           |
    +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                            | :ref:`_font_set_style<class_TextServerExtension_method__font_set_style>` **(** :ref:`RID<class_RID>` font_rid, |bitfield|\<:ref:`FontStyle<enum_TextServer_FontStyle>`\> style **)** |virtual|                                                                                                                                                                             |
@@ -1074,6 +1078,20 @@ void **_font_draw_glyph_outline** **(** :ref:`RID<class_RID>` font_rid, :ref:`RI
 
 ----
 
+.. _class_TextServerExtension_method__font_get_spacing:
+
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **_font_get_spacing** **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing **)** |virtual| |const|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServerExtension_method__font_get_stretch:
 
 .. rst-class:: classref-method
@@ -1844,6 +1862,20 @@ void **_font_set_script_support_override** **(** :ref:`RID<class_RID>` font_rid,
 
 ----
 
+.. _class_TextServerExtension_method__font_set_spacing:
+
+.. rst-class:: classref-method
+
+void **_font_set_spacing** **(** :ref:`RID<class_RID>` font_rid, :ref:`SpacingType<enum_TextServer_SpacingType>` spacing, :ref:`int<class_int>` value **)** |virtual|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TextServerExtension_method__font_set_stretch:
 
 .. rst-class:: classref-method

+ 4 - 4
classes/class_tileset.rst

@@ -21,13 +21,13 @@ Description
 
 A TileSet is a library of tiles for a :ref:`TileMap<class_TileMap>`. A TileSet handles a list of :ref:`TileSetSource<class_TileSetSource>`, each of them storing a set of tiles.
 
-Tiles can either be from a :ref:`TileSetAtlasSource<class_TileSetAtlasSource>`, that render tiles out of a texture with support for physics, navigation, etc... or from a :ref:`TileSetScenesCollectionSource<class_TileSetScenesCollectionSource>` which exposes scene-based tiles.
+Tiles can either be from a :ref:`TileSetAtlasSource<class_TileSetAtlasSource>`, which renders tiles out of a texture with support for physics, navigation, etc., or from a :ref:`TileSetScenesCollectionSource<class_TileSetScenesCollectionSource>`, which exposes scene-based tiles.
 
-Tiles are referenced by using three IDs: their source ID, their atlas coordinates ID and their alternative tile ID.
+Tiles are referenced by using three IDs: their source ID, their atlas coordinates ID, and their alternative tile ID.
 
-A TileSet can be configured so that its tiles expose more or less properties. To do so, the TileSet resources uses property layers, that you can add or remove depending on your needs.
+A TileSet can be configured so that its tiles expose more or fewer properties. To do so, the TileSet resources use property layers, which you can add or remove depending on your needs.
 
-For example, adding a physics layer allows giving collision shapes to your tiles. Each layer having dedicated properties (physics layer and mask), you may add several TileSet physics layers for each type of collision you need.
+For example, adding a physics layer allows giving collision shapes to your tiles. Each layer has dedicated properties (physics layer and mask), so you may add several TileSet physics layers for each type of collision you need.
 
 See the functions to add new layers for more information.
 

+ 28 - 0
classes/class_tilesetatlassource.rst

@@ -57,6 +57,8 @@ Methods
 .. table::
    :widths: auto
 
+   +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                | :ref:`clear_tiles_outside_texture<class_TileSetAtlasSource_method_clear_tiles_outside_texture>` **(** **)**                                                                                                                                                                                                                                                                          |
    +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                               | :ref:`create_alternative_tile<class_TileSetAtlasSource_method_create_alternative_tile>` **(** :ref:`Vector2i<class_Vector2i>` atlas_coords, :ref:`int<class_int>` alternative_id_override=-1 **)**                                                                                                                                                                                   |
    +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -96,6 +98,8 @@ Methods
    +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                                             | :ref:`has_room_for_tile<class_TileSetAtlasSource_method_has_room_for_tile>` **(** :ref:`Vector2i<class_Vector2i>` atlas_coords, :ref:`Vector2i<class_Vector2i>` size, :ref:`int<class_int>` animation_columns, :ref:`Vector2i<class_Vector2i>` animation_separation, :ref:`int<class_int>` frames_count, :ref:`Vector2i<class_Vector2i>` ignored_tile=Vector2i(-1, -1) **)** |const| |
    +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                             | :ref:`has_tiles_outside_texture<class_TileSetAtlasSource_method_has_tiles_outside_texture>` **(** **)** |const|                                                                                                                                                                                                                                                                      |
+   +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                | :ref:`move_tile_in_atlas<class_TileSetAtlasSource_method_move_tile_in_atlas>` **(** :ref:`Vector2i<class_Vector2i>` atlas_coords, :ref:`Vector2i<class_Vector2i>` new_atlas_coords=Vector2i(-1, -1), :ref:`Vector2i<class_Vector2i>` new_size=Vector2i(-1, -1) **)**                                                                                                                 |
    +---------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                                | :ref:`remove_alternative_tile<class_TileSetAtlasSource_method_remove_alternative_tile>` **(** :ref:`Vector2i<class_Vector2i>` atlas_coords, :ref:`int<class_int>` alternative_tile **)**                                                                                                                                                                                             |
@@ -257,6 +261,18 @@ Disabling this setting might lead a small performance improvement, as generating
 Method Descriptions
 -------------------
 
+.. _class_TileSetAtlasSource_method_clear_tiles_outside_texture:
+
+.. rst-class:: classref-method
+
+void **clear_tiles_outside_texture** **(** **)**
+
+Removes all tiles that don't fit the available texture area. This method iterates over all the source's tiles, so it's advised to use :ref:`has_tiles_outside_texture<class_TileSetAtlasSource_method_has_tiles_outside_texture>` beforehand.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TileSetAtlasSource_method_create_alternative_tile:
 
 .. rst-class:: classref-method
@@ -489,6 +505,18 @@ Returns whether there is enough room in an atlas to create/modify a tile with th
 
 ----
 
+.. _class_TileSetAtlasSource_method_has_tiles_outside_texture:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_tiles_outside_texture** **(** **)** |const|
+
+Checks if the source has any tiles that don't fit the texture area (either partially or completely).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TileSetAtlasSource_method_move_tile_in_atlas:
 
 .. rst-class:: classref-method

+ 1 - 1
classes/class_webrtcpeerconnection.rst

@@ -23,7 +23,7 @@ Description
 
 A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection.
 
-Setting up a WebRTC connection between two peers from now on) may not seem a trivial task, but it can be broken down into 3 main steps:
+Setting up a WebRTC connection between two peers may not seem a trivial task, but it can be broken down into 3 main steps:
 
 - The peer that wants to initiate the connection (``A`` from now on) creates an offer and send it to the other peer (``B`` from now on).
 

+ 14 - 0
classes/class_window.rst

@@ -192,6 +192,8 @@ Methods
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                             | :ref:`is_using_font_oversampling<class_Window_method_is_using_font_oversampling>` **(** **)** |const|                                                                                                                                              |
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`move_to_center<class_Window_method_move_to_center>` **(** **)**                                                                                                                                                                              |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                | :ref:`move_to_foreground<class_Window_method_move_to_foreground>` **(** **)**                                                                                                                                                                      |
    +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                                | :ref:`popup<class_Window_method_popup>` **(** :ref:`Rect2i<class_Rect2i>` rect=Rect2i(0, 0, 0, 0) **)**                                                                                                                                            |
@@ -2024,6 +2026,18 @@ Returns ``true`` if font oversampling is enabled. See :ref:`set_use_font_oversam
 
 ----
 
+.. _class_Window_method_move_to_center:
+
+.. rst-class:: classref-method
+
+void **move_to_center** **(** **)**
+
+Centers a native window on the current screen and an embedded window on its embedder :ref:`Viewport<class_Viewport>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Window_method_move_to_foreground:
 
 .. rst-class:: classref-method

+ 64 - 25
classes/class_xmlparser.rst

@@ -14,8 +14,6 @@ XMLParser
 
 Provides a low-level interface for creating parsers for XML files.
 
-Low-level class for creating parsers for `XML <https://en.wikipedia.org/wiki/XML>`__ files.
-
 .. rst-class:: classref-introduction-group
 
 Description
@@ -23,6 +21,45 @@ Description
 
 Provides a low-level interface for creating parsers for `XML <https://en.wikipedia.org/wiki/XML>`__ files. This class can serve as base to make custom XML parsers.
 
+To parse XML, you must open a file with the :ref:`open<class_XMLParser_method_open>` method or a buffer with the :ref:`open_buffer<class_XMLParser_method_open_buffer>` method. Then, the :ref:`read<class_XMLParser_method_read>` method must be called to parse the next nodes. Most of the methods take into consideration the currently parsed node.
+
+Here is an example of using **XMLParser** to parse a SVG file (which is based on XML), printing each element and its attributes as a dictionary:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var parser = XMLParser.new()
+    parser.open("path/to/file.svg")
+    while parser.read() != ERR_FILE_EOF:
+        if parser.get_node_type() == XMLParser.NODE_ELEMENT:
+            var node_name = parser.get_node_name()
+            var attributes_dict = {}
+            for idx in range(parser.get_attribute_count()):
+                attributes_dict[parser.get_attribute_name(idx)] = parser.get_attribute_value(idx)
+            print("The ", node_name, " element has the following attributes: ", attributes_dict)
+
+ .. code-tab:: csharp
+
+    var parser = new XmlParser();
+    parser.Open("path/to/file.svg");
+    while (parser.Read() != Error.FileEof)
+    {
+        if (parser.GetNodeType() == XmlParser.NodeType.Element)
+        {
+            var nodeName = parser.GetNodeName();
+            var attributesDict = new Godot.Collections.Dictionary();
+            for (int idx = 0; idx < parser.GetAttributeCount(); idx++)
+            {
+                attributesDict[parser.GetAttributeName(idx)] = parser.GetAttributeValue(idx);
+            }
+            GD.Print($"The {nodeName} element has the following attributes: {attributesDict}");
+        }
+    }
+
+
+
 .. rst-class:: classref-reftable-group
 
 Methods
@@ -96,7 +133,7 @@ There's no node (no file or buffer opened).
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_ELEMENT** = ``1``
 
-Element (tag).
+An element node type, also known as a tag, e.g. ``<title>``.
 
 .. _class_XMLParser_constant_NODE_ELEMENT_END:
 
@@ -104,7 +141,7 @@ Element (tag).
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_ELEMENT_END** = ``2``
 
-End of element.
+An end of element node type, e.g. ``</title>``.
 
 .. _class_XMLParser_constant_NODE_TEXT:
 
@@ -112,7 +149,7 @@ End of element.
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_TEXT** = ``3``
 
-Text node.
+A text node type, i.e. text that is not inside an element. This includes whitespace.
 
 .. _class_XMLParser_constant_NODE_COMMENT:
 
@@ -120,7 +157,7 @@ Text node.
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_COMMENT** = ``4``
 
-Comment node.
+A comment node type, e.g. ``<!--A comment-->``.
 
 .. _class_XMLParser_constant_NODE_CDATA:
 
@@ -128,7 +165,7 @@ Comment node.
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_CDATA** = ``5``
 
-CDATA content.
+A node type for CDATA (Character Data) sections, e.g. ``<![CDATA[CDATA section]]>``.
 
 .. _class_XMLParser_constant_NODE_UNKNOWN:
 
@@ -136,7 +173,7 @@ CDATA content.
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **NODE_UNKNOWN** = ``6``
 
-Unknown node.
+An unknown node type.
 
 .. rst-class:: classref-section-separator
 
@@ -153,7 +190,9 @@ Method Descriptions
 
 :ref:`int<class_int>` **get_attribute_count** **(** **)** |const|
 
-Gets the number of attributes in the current element.
+Returns the number of attributes in the currently parsed element.
+
+\ **Note:** If this method is used while the currently parsed node is not :ref:`NODE_ELEMENT<class_XMLParser_constant_NODE_ELEMENT>` or :ref:`NODE_ELEMENT_END<class_XMLParser_constant_NODE_ELEMENT_END>`, this count will not be updated and will still reflect the last element.
 
 .. rst-class:: classref-item-separator
 
@@ -165,7 +204,7 @@ Gets the number of attributes in the current element.
 
 :ref:`String<class_String>` **get_attribute_name** **(** :ref:`int<class_int>` idx **)** |const|
 
-Gets the name of the attribute specified by the ``idx`` index.
+Returns the name of an attribute of the currently parsed element, specified by the ``idx`` index.
 
 .. rst-class:: classref-item-separator
 
@@ -177,7 +216,7 @@ Gets the name of the attribute specified by the ``idx`` index.
 
 :ref:`String<class_String>` **get_attribute_value** **(** :ref:`int<class_int>` idx **)** |const|
 
-Gets the value of the attribute specified by the ``idx`` index.
+Returns the value of an attribute of the currently parsed element, specified by the ``idx`` index.
 
 .. rst-class:: classref-item-separator
 
@@ -189,7 +228,7 @@ Gets the value of the attribute specified by the ``idx`` index.
 
 :ref:`int<class_int>` **get_current_line** **(** **)** |const|
 
-Gets the current line in the parsed file, counting from 0.
+Returns the current line in the parsed file, counting from 0.
 
 .. rst-class:: classref-item-separator
 
@@ -201,7 +240,7 @@ Gets the current line in the parsed file, counting from 0.
 
 :ref:`String<class_String>` **get_named_attribute_value** **(** :ref:`String<class_String>` name **)** |const|
 
-Gets the value of a certain attribute of the current element by ``name``. This will raise an error if the element has no such attribute.
+Returns the value of an attribute of the currently parsed element, specified by its ``name``. This method will raise an error if the element has no such attribute.
 
 .. rst-class:: classref-item-separator
 
@@ -213,7 +252,7 @@ Gets the value of a certain attribute of the current element by ``name``. This w
 
 :ref:`String<class_String>` **get_named_attribute_value_safe** **(** :ref:`String<class_String>` name **)** |const|
 
-Gets the value of a certain attribute of the current element by ``name``. This will return an empty :ref:`String<class_String>` if the attribute is not found.
+Returns the value of an attribute of the currently parsed element, specified by its ``name``. This method will return an empty string if the element has no such attribute.
 
 .. rst-class:: classref-item-separator
 
@@ -225,7 +264,7 @@ Gets the value of a certain attribute of the current element by ``name``. This w
 
 :ref:`String<class_String>` **get_node_data** **(** **)** |const|
 
-Gets the contents of a text node. This will raise an error in any other type of node.
+Returns the contents of a text node. This method will raise an error if the current parsed node is of any other type.
 
 .. rst-class:: classref-item-separator
 
@@ -237,7 +276,7 @@ Gets the contents of a text node. This will raise an error in any other type of
 
 :ref:`String<class_String>` **get_node_name** **(** **)** |const|
 
-Gets the name of the current element node. This will raise an error if the current node type is neither :ref:`NODE_ELEMENT<class_XMLParser_constant_NODE_ELEMENT>` nor :ref:`NODE_ELEMENT_END<class_XMLParser_constant_NODE_ELEMENT_END>`.
+Returns the name of an element node. This method will raise an error if the currently parsed node is not of :ref:`NODE_ELEMENT<class_XMLParser_constant_NODE_ELEMENT>` or :ref:`NODE_ELEMENT_END<class_XMLParser_constant_NODE_ELEMENT_END>` type.
 
 .. rst-class:: classref-item-separator
 
@@ -249,7 +288,7 @@ Gets the name of the current element node. This will raise an error if the curre
 
 :ref:`int<class_int>` **get_node_offset** **(** **)** |const|
 
-Gets the byte offset of the current node since the beginning of the file or buffer.
+Returns the byte offset of the currently parsed node since the beginning of the file or buffer. This is usually equivalent to the number of characters before the read position.
 
 .. rst-class:: classref-item-separator
 
@@ -261,7 +300,7 @@ Gets the byte offset of the current node since the beginning of the file or buff
 
 :ref:`NodeType<enum_XMLParser_NodeType>` **get_node_type** **(** **)**
 
-Gets the type of the current node. Compare with :ref:`NodeType<enum_XMLParser_NodeType>` constants.
+Returns the type of the current node. Compare with :ref:`NodeType<enum_XMLParser_NodeType>` constants.
 
 .. rst-class:: classref-item-separator
 
@@ -273,7 +312,7 @@ Gets the type of the current node. Compare with :ref:`NodeType<enum_XMLParser_No
 
 :ref:`bool<class_bool>` **has_attribute** **(** :ref:`String<class_String>` name **)** |const|
 
-Check whether the current element has a certain attribute.
+Returns ``true`` if the currently parsed element has an attribute with the ``name``.
 
 .. rst-class:: classref-item-separator
 
@@ -285,7 +324,7 @@ Check whether the current element has a certain attribute.
 
 :ref:`bool<class_bool>` **is_empty** **(** **)** |const|
 
-Check whether the current element is empty (this only works for completely empty tags, e.g. ``<element />``).
+Returns ``true`` if the currently parsed element is empty, e.g. ``<element />``.
 
 .. rst-class:: classref-item-separator
 
@@ -297,7 +336,7 @@ Check whether the current element is empty (this only works for completely empty
 
 :ref:`Error<enum_@GlobalScope_Error>` **open** **(** :ref:`String<class_String>` file **)**
 
-Opens an XML ``file`` for parsing. This returns an error code.
+Opens an XML ``file`` for parsing. This method returns an error code.
 
 .. rst-class:: classref-item-separator
 
@@ -309,7 +348,7 @@ Opens an XML ``file`` for parsing. This returns an error code.
 
 :ref:`Error<enum_@GlobalScope_Error>` **open_buffer** **(** :ref:`PackedByteArray<class_PackedByteArray>` buffer **)**
 
-Opens an XML raw ``buffer`` for parsing. This returns an error code.
+Opens an XML raw ``buffer`` for parsing. This method returns an error code.
 
 .. rst-class:: classref-item-separator
 
@@ -321,7 +360,7 @@ Opens an XML raw ``buffer`` for parsing. This returns an error code.
 
 :ref:`Error<enum_@GlobalScope_Error>` **read** **(** **)**
 
-Reads the next node of the file. This returns an error code.
+Parses the next node in the file. This method returns an error code.
 
 .. rst-class:: classref-item-separator
 
@@ -333,7 +372,7 @@ Reads the next node of the file. This returns an error code.
 
 :ref:`Error<enum_@GlobalScope_Error>` **seek** **(** :ref:`int<class_int>` position **)**
 
-Moves the buffer cursor to a certain offset (since the beginning) and read the next node there. This returns an error code.
+Moves the buffer cursor to a certain offset (since the beginning) and reads the next node there. This method returns an error code.
 
 .. rst-class:: classref-item-separator
 
@@ -345,7 +384,7 @@ Moves the buffer cursor to a certain offset (since the beginning) and read the n
 
 void **skip_section** **(** **)**
 
-Skips the current section. If the node contains other elements, they will be ignored and the cursor will go to the closing of the current element.
+Skips the current section. If the currently parsed node contains more inner nodes, they will be ignored and the cursor will go to the closing of the current element.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 1 - 0
classes/index.rst

@@ -780,6 +780,7 @@ Other objects
     class_oggpacketsequenceplayback
     class_openxrapiextension
     class_openxrextensionwrapperextension
+    class_openxrinteractionprofilemetadata
     class_openxrinterface
     class_os
     class_packeddatacontainerref

Some files were not shown because too many files changed in this diff