瀏覽代碼

classref: Sync with current master branch (fc99492)

Godot Organization 1 年之前
父節點
當前提交
e3a0347f34

+ 1 - 1
classes/class_animatablebody2d.rst

@@ -19,7 +19,7 @@ A 2D physics body that can't be moved by external forces. When moved manually, i
 Description
 -----------
 
-An animatable 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``ANIMATION_PROCESS_PHYSICS``), and :ref:`RemoteTransform2D<class_RemoteTransform2D>`.
+An animatable 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to :ref:`AnimationPlayer.ANIMATION_PROCESS_PHYSICS<class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS>`), and :ref:`RemoteTransform2D<class_RemoteTransform2D>`.
 
 When **AnimatableBody2D** is moved, its linear and angular velocity are estimated and used to affect other physics bodies in its path. This makes it useful for moving platforms, doors, and other moving objects.
 

+ 1 - 1
classes/class_animatablebody3d.rst

@@ -19,7 +19,7 @@ A 3D physics body that can't be moved by external forces. When moved manually, i
 Description
 -----------
 
-An animatable 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``ANIMATION_PROCESS_PHYSICS``), and :ref:`RemoteTransform3D<class_RemoteTransform3D>`.
+An animatable 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to :ref:`AnimationPlayer.ANIMATION_PROCESS_PHYSICS<class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS>`), and :ref:`RemoteTransform3D<class_RemoteTransform3D>`.
 
 When **AnimatableBody3D** is moved, its linear and angular velocity are estimated and used to affect other physics bodies in its path. This makes it useful for moving platforms, doors, and other moving objects.
 

+ 28 - 1
classes/class_basematerial3d.rst

@@ -111,6 +111,8 @@ Properties
    +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
    | :ref:`bool<class_bool>`                                         | :ref:`disable_ambient_light<class_BaseMaterial3D_property_disable_ambient_light>`                                 | ``false``             |
    +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                                         | :ref:`disable_fog<class_BaseMaterial3D_property_disable_fog>`                                                     | ``false``             |
+   +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
    | :ref:`bool<class_bool>`                                         | :ref:`disable_receive_shadows<class_BaseMaterial3D_property_disable_receive_shadows>`                             | ``false``             |
    +-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-----------------------+
    | :ref:`float<class_float>`                                       | :ref:`distance_fade_max_distance<class_BaseMaterial3D_property_distance_fade_max_distance>`                       | ``10.0``              |
@@ -1093,11 +1095,19 @@ Enables parts of the shader required for :ref:`GPUParticles3D<class_GPUParticles
 
 Enables multichannel signed distance field rendering shader.
 
+.. _class_BaseMaterial3D_constant_FLAG_DISABLE_FOG:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_DISABLE_FOG** = ``21``
+
+Disables receiving depth-based or volumetric fog.
+
 .. _class_BaseMaterial3D_constant_FLAG_MAX:
 
 .. rst-class:: classref-enumeration-constant
 
-:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_MAX** = ``21``
+:ref:`Flags<enum_BaseMaterial3D_Flags>` **FLAG_MAX** = ``22``
 
 Represents the size of the :ref:`Flags<enum_BaseMaterial3D_Flags>` enum.
 
@@ -1982,6 +1992,23 @@ If ``true``, the object receives no ambient light.
 
 ----
 
+.. _class_BaseMaterial3D_property_disable_fog:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **disable_fog** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag, :ref:`bool<class_bool>` enable **)**
+- :ref:`bool<class_bool>` **get_flag** **(** :ref:`Flags<enum_BaseMaterial3D_Flags>` flag **)** |const|
+
+If ``true``, the object will not be affected by fog (neither volumetric nor depth fog). This is useful for unshaded or transparent materials (e.g. particles), which without this setting will be affected even if fully transparent.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_BaseMaterial3D_property_disable_receive_shadows:
 
 .. rst-class:: classref-property

+ 2 - 2
classes/class_concavepolygonshape2d.rst

@@ -19,7 +19,7 @@ A 2D polyline shape used for physics collision.
 Description
 -----------
 
-A 2D polyline shape, intended for use in physics. Used internally in :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` when it's in ``BUILD_SEGMENTS`` mode.
+A 2D polyline shape, intended for use in physics. Used internally in :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` when it's in :ref:`CollisionPolygon2D.BUILD_SEGMENTS<class_CollisionPolygon2D_constant_BUILD_SEGMENTS>` mode.
 
 Being just a collection of interconnected line segments, **ConcavePolygonShape2D** is the most freely configurable single 2D shape. It can be used to form polygons of any nature, or even shapes that don't enclose an area. However, :ref:`ConvexPolygonShape2D<class_ConvexPolygonShape2D>` is *hollow* even if the interconnected line segments do enclose an area, which often makes it unsuitable for physics or detection.
 
@@ -27,7 +27,7 @@ Being just a collection of interconnected line segments, **ConcavePolygonShape2D
 
 \ **Warning:** Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. **ConcavePolygonShape2D** is hollow, so it won't detect a collision.
 
-\ **Performance:** Due to its complexity, **ConcavePolygonShape2D** is the slowest 2D collision shape to check collisions against. Its use should generally be limited to level geometry. If the polyline is closed, :ref:`CollisionPolygon2D<class_CollisionPolygon2D>`'s ``BUILD_SOLIDS`` mode can be used, which decomposes the polygon into convex ones; see :ref:`ConvexPolygonShape2D<class_ConvexPolygonShape2D>`'s documentation for instructions.
+\ **Performance:** Due to its complexity, **ConcavePolygonShape2D** is the slowest 2D collision shape to check collisions against. Its use should generally be limited to level geometry. If the polyline is closed, :ref:`CollisionPolygon2D<class_CollisionPolygon2D>`'s :ref:`CollisionPolygon2D.BUILD_SOLIDS<class_CollisionPolygon2D_constant_BUILD_SOLIDS>` mode can be used, which decomposes the polygon into convex ones; see :ref:`ConvexPolygonShape2D<class_ConvexPolygonShape2D>`'s documentation for instructions.
 
 .. rst-class:: classref-reftable-group
 

+ 1 - 1
classes/class_container.rst

@@ -12,7 +12,7 @@ Container
 
 **Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AspectRatioContainer<class_AspectRatioContainer>`, :ref:`BoxContainer<class_BoxContainer>`, :ref:`CenterContainer<class_CenterContainer>`, :ref:`EditorProperty<class_EditorProperty>`, :ref:`FlowContainer<class_FlowContainer>`, :ref:`GraphNode<class_GraphNode>`, :ref:`GridContainer<class_GridContainer>`, :ref:`MarginContainer<class_MarginContainer>`, :ref:`PanelContainer<class_PanelContainer>`, :ref:`ScrollContainer<class_ScrollContainer>`, :ref:`SplitContainer<class_SplitContainer>`, :ref:`SubViewportContainer<class_SubViewportContainer>`, :ref:`TabContainer<class_TabContainer>`
+**Inherited By:** :ref:`AspectRatioContainer<class_AspectRatioContainer>`, :ref:`BoxContainer<class_BoxContainer>`, :ref:`CenterContainer<class_CenterContainer>`, :ref:`EditorProperty<class_EditorProperty>`, :ref:`FlowContainer<class_FlowContainer>`, :ref:`GraphElement<class_GraphElement>`, :ref:`GridContainer<class_GridContainer>`, :ref:`MarginContainer<class_MarginContainer>`, :ref:`PanelContainer<class_PanelContainer>`, :ref:`ScrollContainer<class_ScrollContainer>`, :ref:`SplitContainer<class_SplitContainer>`, :ref:`SubViewportContainer<class_SubViewportContainer>`, :ref:`TabContainer<class_TabContainer>`
 
 Base class for all GUI containers.
 

+ 2 - 2
classes/class_convexpolygonshape2d.rst

@@ -19,11 +19,11 @@ A 2D convex polygon shape used for physics collision.
 Description
 -----------
 
-A 2D convex polygon shape, intended for use in physics. Used internally in :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` when it's in ``BUILD_SOLIDS`` mode.
+A 2D convex polygon shape, intended for use in physics. Used internally in :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` when it's in :ref:`CollisionPolygon2D.BUILD_SOLIDS<class_CollisionPolygon2D_constant_BUILD_SOLIDS>` mode.
 
 \ **ConvexPolygonShape2D** is *solid*, which means it detects collisions from objects that are fully inside it, unlike :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>` which is hollow. This makes it more suitable for both detection and physics.
 
-\ **Convex decomposition:** A concave polygon can be split up into several convex polygons. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several **ConvexPolygonShape2D** nodes or by using the :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` node in ``BUILD_SOLIDS`` mode. To generate a collision polygon from a sprite, select the :ref:`Sprite2D<class_Sprite2D>` node, go to the **Sprite2D** menu that appears above the viewport, and choose **Create Polygon2D Sibling**.
+\ **Convex decomposition:** A concave polygon can be split up into several convex polygons. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several **ConvexPolygonShape2D** nodes or by using the :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` node in :ref:`CollisionPolygon2D.BUILD_SOLIDS<class_CollisionPolygon2D_constant_BUILD_SOLIDS>` mode. To generate a collision polygon from a sprite, select the :ref:`Sprite2D<class_Sprite2D>` node, go to the **Sprite2D** menu that appears above the viewport, and choose **Create Polygon2D Sibling**.
 
 \ **Performance:** **ConvexPolygonShape2D** is faster to check collisions against compared to :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>`, but it is slower than primitive collision shapes such as :ref:`CircleShape2D<class_CircleShape2D>` and :ref:`RectangleShape2D<class_RectangleShape2D>`. Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes.
 

+ 1 - 1
classes/class_displayserver.rst

@@ -1712,7 +1712,7 @@ Returns index of the screen which contains specified rectangle.
 
 :ref:`bool<class_bool>` **get_swap_cancel_ok** **(** **)**
 
-Returns ``true`` if positions of **OK** and **Cancel** buttons are swapped in dialogs. This is enabled by default on Windows and UWP to follow interface conventions, and be toggled by changing :ref:`ProjectSettings.gui/common/swap_cancel_ok<class_ProjectSettings_property_gui/common/swap_cancel_ok>`.
+Returns ``true`` if positions of **OK** and **Cancel** buttons are swapped in dialogs. This is enabled by default on Windows to follow interface conventions, and be toggled by changing :ref:`ProjectSettings.gui/common/swap_cancel_ok<class_ProjectSettings_property_gui/common/swap_cancel_ok>`.
 
 \ **Note:** This doesn't affect native dialogs such as the ones spawned by :ref:`dialog_show<class_DisplayServer_method_dialog_show>`.
 

+ 29 - 0
classes/class_editorexportplatform.rst

@@ -32,6 +32,35 @@ Tutorials
 
 - `$DOCS_URL/tutorials/platform/consoles.html <Console support in Godot>`__
 
+.. rst-class:: classref-reftable-group
+
+Methods
+-------
+
+.. table::
+   :widths: auto
+
+   +-----------------------------+---------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`get_os_name<class_EditorExportPlatform_method_get_os_name>` **(** **)** |const| |
+   +-----------------------------+---------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Method Descriptions
+-------------------
+
+.. _class_EditorExportPlatform_method_get_os_name:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_os_name** **(** **)** |const|
+
+Returns the name of the export operating system handled by this **EditorExportPlatform** class, as a friendly string. Possible return values are ``Windows``, ``Linux``, ``macOS``, ``Android``, ``iOS``, and ``Web``.
+
 .. |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.)`

+ 4 - 2
classes/class_editorplugin.rst

@@ -21,6 +21,8 @@ Description
 
 Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also :ref:`EditorScript<class_EditorScript>` to add functions to the editor.
 
+\ **Note:** Some names in this class contain "left" or "right" (e.g. :ref:`DOCK_SLOT_LEFT_UL<class_EditorPlugin_constant_DOCK_SLOT_LEFT_UL>`). These APIs assume left-to-right layout, and would be backwards when using right-to-left layout. These names are kept for compatibility reasons.
+
 .. rst-class:: classref-introduction-group
 
 Tutorials
@@ -400,7 +402,7 @@ Dock slot, left side, bottom-right (in default layout includes FileSystem dock).
 
 :ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_UL** = ``4``
 
-Dock slot, right side, upper-left (empty in default layout).
+Dock slot, right side, upper-left (in default layout includes Inspector, Node, and History docks).
 
 .. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_BL:
 
@@ -416,7 +418,7 @@ Dock slot, right side, bottom-left (empty in default layout).
 
 :ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_UR** = ``6``
 
-Dock slot, right side, upper-right (in default layout includes Inspector, Node and History docks).
+Dock slot, right side, upper-right (empty in default layout).
 
 .. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_BR:
 

+ 1 - 1
classes/class_editorresourcetooltipplugin.rst

@@ -68,7 +68,7 @@ Return ``true`` if the plugin is going to handle the given :ref:`Resource<class_
 
 Create and return a tooltip that will be displayed when the user hovers a resource under the given ``path`` in filesystem dock.
 
-The ``metadata`` dictionary is provided by preview generator (see method EditorResourcePreviewGenerator._generate]).
+The ``metadata`` dictionary is provided by preview generator (see :ref:`EditorResourcePreviewGenerator._generate<class_EditorResourcePreviewGenerator_method__generate>`).
 
 \ ``base`` is the base default tooltip, which is a :ref:`VBoxContainer<class_VBoxContainer>` with a file name, type and size labels. If another plugin handled the same file type, ``base`` will be output from the previous plugin. For best result, make sure the base tooltip is part of the returned :ref:`Control<class_Control>`.
 

+ 14 - 0
classes/class_editorsettings.rst

@@ -467,6 +467,8 @@ Properties
    +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`       | :ref:`text_editor/completion/code_complete_enabled<class_EditorSettings_property_text_editor/completion/code_complete_enabled>`                                                     |
    +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`text_editor/completion/colorize_suggestions<class_EditorSettings_property_text_editor/completion/colorize_suggestions>`                                                       |
+   +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`       | :ref:`text_editor/completion/complete_file_paths<class_EditorSettings_property_text_editor/completion/complete_file_paths>`                                                         |
    +-------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`     | :ref:`text_editor/completion/idle_parse_delay<class_EditorSettings_property_text_editor/completion/idle_parse_delay>`                                                               |
@@ -3225,6 +3227,18 @@ If ``true``, code completion will be triggered automatically after :ref:`text_ed
 
 ----
 
+.. _class_EditorSettings_property_text_editor/completion/colorize_suggestions:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **text_editor/completion/colorize_suggestions**
+
+If ``true`` enables the coloring for some items in the autocompletion suggestions, like vector components.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_EditorSettings_property_text_editor/completion/complete_file_paths:
 
 .. rst-class:: classref-property

+ 15 - 15
classes/class_graphedit.rst

@@ -190,6 +190,18 @@ Emitted at the beginning of a GraphNode movement.
 
 ----
 
+.. _class_GraphEdit_signal_close_nodes_request:
+
+.. rst-class:: classref-signal
+
+**close_nodes_request** **(** :ref:`StringName[]<class_StringName>` nodes **)**
+
+Emitted when attempting to remove a GraphNode from the GraphEdit. Provides a list of node names to be removed (all selected nodes, excluding nodes without closing button).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_GraphEdit_signal_connection_drag_ended:
 
 .. rst-class:: classref-signal
@@ -262,18 +274,6 @@ Emitted when the user presses :kbd:`Ctrl + C`.
 
 ----
 
-.. _class_GraphEdit_signal_delete_nodes_request:
-
-.. rst-class:: classref-signal
-
-**delete_nodes_request** **(** :ref:`StringName[]<class_StringName>` nodes **)**
-
-Emitted when a GraphNode is attempted to be removed from the GraphEdit. Provides a list of node names to be removed (all selected nodes, excluding nodes without closing button).
-
-.. rst-class:: classref-item-separator
-
-----
-
 .. _class_GraphEdit_signal_disconnection_request:
 
 .. rst-class:: classref-signal
@@ -739,7 +739,7 @@ Virtual method which can be overridden to customize how connections are drawn.
 
 Returns whether the ``mouse_position`` is in the input hot zone.
 
-By default, a hot zone is a :ref:`Rect2<class_Rect2>` positioned such that its center is at ``in_node``.\ :ref:`GraphNode.get_connection_input_position<class_GraphNode_method_get_connection_input_position>`\ (``in_port``) (For output's case, call :ref:`GraphNode.get_connection_output_position<class_GraphNode_method_get_connection_output_position>` instead). The hot zone's width is twice the Theme Property ``port_grab_distance_horizontal``, and its height is twice the ``port_grab_distance_vertical``.
+By default, a hot zone is a :ref:`Rect2<class_Rect2>` positioned such that its center is at ``in_node``.\ :ref:`GraphNode.get_input_port_position<class_GraphNode_method_get_input_port_position>`\ (``in_port``) (For output's case, call :ref:`GraphNode.get_output_port_position<class_GraphNode_method_get_output_port_position>` instead). The hot zone's width is twice the Theme Property ``port_grab_distance_horizontal``, and its height is twice the ``port_grab_distance_vertical``.
 
 Below is a sample code to help get started:
 
@@ -747,7 +747,7 @@ Below is a sample code to help get started:
 
     func _is_in_input_hotzone(in_node, in_port, mouse_position):
         var port_size: Vector2 = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
-        var port_pos: Vector2 = in_node.get_position() + in_node.get_connection_input_position(in_port) - port_size / 2
+        var port_pos: Vector2 = in_node.get_position() + in_node.get_input_port_position(in_port) - port_size / 2
         var rect = Rect2(port_pos, port_size)
     
         return rect.has_point(mouse_position)
@@ -770,7 +770,7 @@ Below is a sample code to help get started:
 
     func _is_in_output_hotzone(in_node, in_port, mouse_position):
         var port_size: Vector2 = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
-        var port_pos: Vector2 = in_node.get_position() + in_node.get_connection_output_position(in_port) - port_size / 2
+        var port_pos: Vector2 = in_node.get_position() + in_node.get_output_port_position(in_port) - port_size / 2
         var rect = Rect2(port_pos, port_size)
     
         return rect.has_point(mouse_position)

+ 233 - 0
classes/class_graphelement.rst

@@ -0,0 +1,233 @@
+: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/doc/classes/GraphElement.xml.
+
+.. _class_GraphElement:
+
+GraphElement
+============
+
+**Inherits:** :ref:`Container<class_Container>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
+
+**Inherited By:** :ref:`GraphNode<class_GraphNode>`
+
+A container that represents a basic element that can be placed inside a :ref:`GraphEdit<class_GraphEdit>` control.
+
+.. rst-class:: classref-introduction-group
+
+Description
+-----------
+
+**GraphElement** allows to create custom elements for a :ref:`GraphEdit<class_GraphEdit>` graph. By default such elements can be selected, resized, and repositioned, but they cannot be connected. For a graph element that allows for connections see :ref:`GraphNode<class_GraphNode>`.
+
+.. rst-class:: classref-reftable-group
+
+Properties
+----------
+
+.. table::
+   :widths: auto
+
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`       | :ref:`draggable<class_GraphElement_property_draggable>`             | ``true``          |
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+   | :ref:`Vector2<class_Vector2>` | :ref:`position_offset<class_GraphElement_property_position_offset>` | ``Vector2(0, 0)`` |
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`       | :ref:`resizable<class_GraphElement_property_resizable>`             | ``false``         |
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`       | :ref:`selectable<class_GraphElement_property_selectable>`           | ``true``          |
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`       | :ref:`selected<class_GraphElement_property_selected>`               | ``false``         |
+   +-------------------------------+---------------------------------------------------------------------+-------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Signals
+-------
+
+.. _class_GraphElement_signal_close_request:
+
+.. rst-class:: classref-signal
+
+**close_request** **(** **)**
+
+Emitted when closing the GraphElement is requested.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_dragged:
+
+.. rst-class:: classref-signal
+
+**dragged** **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to **)**
+
+Emitted when the GraphElement is dragged.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_node_deselected:
+
+.. rst-class:: classref-signal
+
+**node_deselected** **(** **)**
+
+Emitted when the GraphElement is deselected.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_node_selected:
+
+.. rst-class:: classref-signal
+
+**node_selected** **(** **)**
+
+Emitted when the GraphElement is selected.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_position_offset_changed:
+
+.. rst-class:: classref-signal
+
+**position_offset_changed** **(** **)**
+
+Emitted when the GraphElement is moved.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_raise_request:
+
+.. rst-class:: classref-signal
+
+**raise_request** **(** **)**
+
+Emitted when displaying the GraphElement over other ones is requested. Happens on focusing (clicking into) the GraphElement.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_signal_resize_request:
+
+.. rst-class:: classref-signal
+
+**resize_request** **(** :ref:`Vector2<class_Vector2>` new_minsize **)**
+
+Emitted when resizing the GraphElement is requested. Happens on dragging the resizer handle (see :ref:`resizable<class_GraphElement_property_resizable>`).
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Property Descriptions
+---------------------
+
+.. _class_GraphElement_property_draggable:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **draggable** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_draggable** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_draggable** **(** **)**
+
+If ``true``, the user can drag the GraphElement.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_property_position_offset:
+
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **position_offset** = ``Vector2(0, 0)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_position_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_position_offset** **(** **)**
+
+The offset of the GraphElement, relative to the scroll offset of the :ref:`GraphEdit<class_GraphEdit>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_property_resizable:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **resizable** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_resizable** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_resizable** **(** **)**
+
+If ``true``, the user can resize the GraphElement.
+
+\ **Note:** Dragging the handle will only emit the :ref:`resize_request<class_GraphElement_signal_resize_request>` signal, the GraphElement needs to be resized manually.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_property_selectable:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **selectable** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_selectable** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_selectable** **(** **)**
+
+If ``true``, the user can select the GraphElement.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_GraphElement_property_selected:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **selected** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_selected** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_selected** **(** **)**
+
+If ``true``, the GraphElement is selected.
+
+.. |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.)`

文件差異過大導致無法顯示
+ 157 - 569
classes/class_graphnode.rst


+ 2 - 2
classes/class_input.rst

@@ -486,7 +486,7 @@ Returns the acceleration in m/s² of the device's accelerometer sensor, if the d
 
 Note this method returns an empty :ref:`Vector3<class_Vector3>` when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer.
 
-\ **Note:** This method only works on iOS, Android, and UWP. On other platforms, it always returns :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
+\ **Note:** This method only works on Android and iOS. On other platforms, it always returns :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
 
 .. rst-class:: classref-item-separator
 
@@ -692,7 +692,7 @@ Returns the last mouse velocity. To provide a precise and jitter-free velocity,
 
 Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
 
-\ **Note:** This method only works on Android, iOS and UWP. On other platforms, it always returns :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
+\ **Note:** This method only works on Android and iOS. On other platforms, it always returns :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
 
 .. rst-class:: classref-item-separator
 

+ 14 - 3
classes/class_int.rst

@@ -38,7 +38,7 @@ Likewise, :ref:`float<class_float>`\ s can be automatically converted into **int
  .. code-tab:: csharp
 
     int x = 1; // x is 1
-    x = 4.2; // x is 4, because 4.2 gets truncated
+    x = (int)4.2; // x is 4, because 4.2 gets truncated
     // We use long below, because GDScript's int is 64-bit while C#'s int is 32-bit.
     long maxLong = 9223372036854775807; // Biggest value a long can store
     maxLong++; // maxLong is now -9223372036854775808, because it wrapped around.
@@ -49,14 +49,25 @@ Likewise, :ref:`float<class_float>`\ s can be automatically converted into **int
 
 
 
-In GDScript, you can use the ``0b`` literal for binary representation, the ``0x`` literal for hexadecimal representation, and the ``_`` symbol to separate long numbers and improve readability.
+You can use the ``0b`` literal for binary representation, the ``0x`` literal for hexadecimal representation, and the ``_`` symbol to separate long numbers and improve readability.
 
-::
+
+.. tabs::
+
+ .. code-tab:: gdscript
 
     var x = 0b1001 # x is 9
     var y = 0xF5 # y is 245
     var z = 10_000_000 # z is 10000000
 
+ .. code-tab:: csharp
+
+    int x = 0b1001; // x is 9
+    int y = 0xF5; // y is 245
+    int z = 10_000_000; // z is 10000000
+
+
+
 .. rst-class:: classref-reftable-group
 
 Constructors

+ 2 - 2
classes/class_lineedit.rst

@@ -848,7 +848,7 @@ If ``true``, the **LineEdit** width will increase to stay longer than the :ref:`
 - void **set_flat** **(** :ref:`bool<class_bool>` value **)**
 - :ref:`bool<class_bool>` **is_flat** **(** **)**
 
-If ``true``, the **LineEdit** don't display decoration.
+If ``true``, the **LineEdit** doesn't display decoration.
 
 .. rst-class:: classref-item-separator
 
@@ -865,7 +865,7 @@ If ``true``, the **LineEdit** don't display decoration.
 - void **set_language** **(** :ref:`String<class_String>` value **)**
 - :ref:`String<class_String>` **get_language** **(** **)**
 
-Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
+Language code used for line-breaking and text shaping algorithms. If left empty, current locale is used instead.
 
 .. rst-class:: classref-item-separator
 

+ 1 - 1
classes/class_meshdatatool.rst

@@ -377,7 +377,7 @@ Returns the material assigned to the :ref:`Mesh<class_Mesh>`.
 
 :ref:`Vector3<class_Vector3>` **get_vertex** **(** :ref:`int<class_int>` idx **)** |const|
 
-Returns the vertex at given index.
+Returns the position of the given vertex.
 
 .. rst-class:: classref-item-separator
 

+ 406 - 9
classes/class_openxrinterface.rst

@@ -52,15 +52,29 @@ Methods
 .. table::
    :widths: auto
 
-   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Array<class_Array>` | :ref:`get_action_sets<class_OpenXRInterface_method_get_action_sets>` **(** **)** |const|                                                                      |
-   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Array<class_Array>` | :ref:`get_available_display_refresh_rates<class_OpenXRInterface_method_get_available_display_refresh_rates>` **(** **)** |const|                              |
-   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`   | :ref:`is_action_set_active<class_OpenXRInterface_method_is_action_set_active>` **(** :ref:`String<class_String>` name **)** |const|                           |
-   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | void                      | :ref:`set_action_set_active<class_OpenXRInterface_method_set_action_set_active>` **(** :ref:`String<class_String>` name, :ref:`bool<class_bool>` active **)** |
-   +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                    | :ref:`get_action_sets<class_OpenXRInterface_method_get_action_sets>` **(** **)** |const|                                                                                                                                       |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                    | :ref:`get_available_display_refresh_rates<class_OpenXRInterface_method_get_available_display_refresh_rates>` **(** **)** |const|                                                                                               |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_angular_velocity<class_OpenXRInterface_method_get_hand_joint_angular_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const| |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_linear_velocity<class_OpenXRInterface_method_get_hand_joint_linear_velocity>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|   |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                                | :ref:`get_hand_joint_position<class_OpenXRInterface_method_get_hand_joint_position>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                    | :ref:`get_hand_joint_radius<class_OpenXRInterface_method_get_hand_joint_radius>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                     |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Quaternion<class_Quaternion>`                          | :ref:`get_hand_joint_rotation<class_OpenXRInterface_method_get_hand_joint_rotation>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|                 |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` | :ref:`get_motion_range<class_OpenXRInterface_method_get_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand **)** |const|                                                                                         |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                      | :ref:`is_action_set_active<class_OpenXRInterface_method_is_action_set_active>` **(** :ref:`String<class_String>` name **)** |const|                                                                                            |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                         | :ref:`set_action_set_active<class_OpenXRInterface_method_set_action_set_active>` **(** :ref:`String<class_String>` name, :ref:`bool<class_bool>` active **)**                                                                  |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                         | :ref:`set_motion_range<class_OpenXRInterface_method_set_motion_range>` **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` motion_range **)**                      |
+   +--------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 .. rst-class:: classref-section-separator
 
@@ -133,6 +147,305 @@ Informs our OpenXR session is now visible (output is being sent to the HMD).
 
 .. rst-class:: classref-descriptions-group
 
+Enumerations
+------------
+
+.. _enum_OpenXRInterface_Hand:
+
+.. rst-class:: classref-enumeration
+
+enum **Hand**:
+
+.. _class_OpenXRInterface_constant_HAND_LEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_LEFT** = ``0``
+
+Left hand.
+
+.. _class_OpenXRInterface_constant_HAND_RIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_RIGHT** = ``1``
+
+Right hand.
+
+.. _class_OpenXRInterface_constant_HAND_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Hand<enum_OpenXRInterface_Hand>` **HAND_MAX** = ``2``
+
+Maximum value for the hand enum.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_OpenXRInterface_HandMotionRange:
+
+.. rst-class:: classref-enumeration
+
+enum **HandMotionRange**:
+
+.. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_UNOBSTRUCTED:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_UNOBSTRUCTED** = ``0``
+
+
+
+.. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_CONFORM_TO_CONTROLLER** = ``1``
+
+
+
+.. _class_OpenXRInterface_constant_HAND_MOTION_RANGE_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **HAND_MOTION_RANGE_MAX** = ``2``
+
+
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_OpenXRInterface_HandJoints:
+
+.. rst-class:: classref-enumeration
+
+enum **HandJoints**:
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_PALM:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_PALM** = ``0``
+
+Palm joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_WRIST:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_WRIST** = ``1``
+
+Wrist joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_METACARPAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_METACARPAL** = ``2``
+
+Thumb metacarpal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_PROXIMAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_PROXIMAL** = ``3``
+
+Thumb proximal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_DISTAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_DISTAL** = ``4``
+
+Thumb distal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_THUMB_TIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_THUMB_TIP** = ``5``
+
+Thumb tip joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_METACARPAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_METACARPAL** = ``6``
+
+Index metacarpal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_PROXIMAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_PROXIMAL** = ``7``
+
+Index proximal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_INTERMEDIATE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_INTERMEDIATE** = ``8``
+
+Index intermediate joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_DISTAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_DISTAL** = ``9``
+
+Index distal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_INDEX_TIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_INDEX_TIP** = ``10``
+
+Index tip joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_METACARPAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_METACARPAL** = ``11``
+
+Middle metacarpal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_PROXIMAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_PROXIMAL** = ``12``
+
+Middle proximal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_INTERMEDIATE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_INTERMEDIATE** = ``13``
+
+Middle intermediate joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_DISTAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_DISTAL** = ``14``
+
+Middle distal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MIDDLE_TIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MIDDLE_TIP** = ``15``
+
+Middle tip joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_RING_METACARPAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_METACARPAL** = ``16``
+
+Ring metacarpal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_RING_PROXIMAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_PROXIMAL** = ``17``
+
+Ring proximal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_RING_INTERMEDIATE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_INTERMEDIATE** = ``18``
+
+Ring intermediate joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_RING_DISTAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_DISTAL** = ``19``
+
+Ring distal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_RING_TIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_RING_TIP** = ``20``
+
+Ring tip joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_METACARPAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_METACARPAL** = ``21``
+
+Little metacarpal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_PROXIMAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_PROXIMAL** = ``22``
+
+Little proximal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_INTERMEDIATE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_INTERMEDIATE** = ``23``
+
+Little intermediate joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_DISTAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_DISTAL** = ``24``
+
+Little distal joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_LITTLE_TIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_LITTLE_TIP** = ``25``
+
+Little tip joint.
+
+.. _class_OpenXRInterface_constant_HAND_JOINT_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandJoints<enum_OpenXRInterface_HandJoints>` **HAND_JOINT_MAX** = ``26``
+
+Maximum value for the hand joint enum.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
@@ -199,6 +512,78 @@ Returns display refresh rates supported by the current HMD. Only returned if thi
 
 ----
 
+.. _class_OpenXRInterface_method_get_hand_joint_angular_velocity:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_hand_joint_angular_velocity** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns the angular velocity of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>`!
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_get_hand_joint_linear_velocity:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_hand_joint_linear_velocity** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns the linear velocity of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>` without worldscale applied!
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_get_hand_joint_position:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_hand_joint_position** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns the position of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is relative to :ref:`XROrigin3D<class_XROrigin3D>` without worldscale applied!
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_get_hand_joint_radius:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_hand_joint_radius** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns the radius of a joint (``joint``) of a hand (``hand``) as provided by OpenXR. This is without worldscale applied!
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_get_hand_joint_rotation:
+
+.. rst-class:: classref-method
+
+:ref:`Quaternion<class_Quaternion>` **get_hand_joint_rotation** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandJoints<enum_OpenXRInterface_HandJoints>` joint **)** |const|
+
+If handtracking is enabled, returns the rotation of a joint (``joint``) of a hand (``hand``) as provided by OpenXR.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_get_motion_range:
+
+.. rst-class:: classref-method
+
+:ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` **get_motion_range** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand **)** |const|
+
+If handtracking is enabled and motion range is supported, gets the currently configured motion range for ``hand``.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRInterface_method_is_action_set_active:
 
 .. rst-class:: classref-method
@@ -219,6 +604,18 @@ void **set_action_set_active** **(** :ref:`String<class_String>` name, :ref:`boo
 
 Sets the given action set as active or inactive.
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRInterface_method_set_motion_range:
+
+.. rst-class:: classref-method
+
+void **set_motion_range** **(** :ref:`Hand<enum_OpenXRInterface_Hand>` hand, :ref:`HandMotionRange<enum_OpenXRInterface_HandMotionRange>` motion_range **)**
+
+If handtracking is enabled and motion range is supported, sets the currently configured motion range for ``hand`` to ``motion_range``.
+
 .. |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.)`

+ 4 - 7
classes/class_os.rst

@@ -852,7 +852,7 @@ Returns the model name of the current device.
 
 Returns the name of the host OS.
 
-On Windows, this is ``"Windows"`` or ``"UWP"`` if exported on Universal Windows Platform.
+On Windows, this is ``"Windows"``.
 
 On macOS, this is ``"macOS"``.
 
@@ -874,7 +874,7 @@ On the web, this is ``"Web"``.
  .. code-tab:: gdscript
 
     match OS.get_name():
-        "Windows", "UWP":
+        "Windows":
             print("Windows")
         "macOS":
             print("macOS")
@@ -892,7 +892,6 @@ On the web, this is ``"Web"``.
     switch (OS.GetName())
     {
         case "Windows":
-        case "UWP":
             GD.Print("Windows");
             break;
         case "macOS":
@@ -956,7 +955,7 @@ Returns the number of *logical* CPU cores available on the host machine. On CPUs
 
 Returns the name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz").
 
-\ **Note:** This method is only implemented on Windows, macOS, Linux and iOS. On Android, Web and UWP, :ref:`get_processor_name<class_OS_method_get_processor_name>` returns an empty string.
+\ **Note:** This method is only implemented on Windows, macOS, Linux and iOS. On Android and Web, :ref:`get_processor_name<class_OS_method_get_processor_name>` returns an empty string.
 
 .. rst-class:: classref-item-separator
 
@@ -1090,7 +1089,7 @@ Returns a string that is unique to the device.
 
 \ **Note:** This string may change without notice if the user reinstalls/upgrades their operating system or changes their hardware. This means it should generally not be used to encrypt persistent data as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by :ref:`get_unique_id<class_OS_method_get_unique_id>` for security purposes.
 
-\ **Note:** Returns an empty string on Web and UWP, as this method isn't implemented on those platforms yet.
+\ **Note:** Returns an empty string on Web, as this method isn't implemented on this platform yet.
 
 .. rst-class:: classref-item-separator
 
@@ -1136,8 +1135,6 @@ For rolling distributions, such as Arch Linux, an empty string is returned.
 
 For macOS and iOS, the major and minor version are returned, as well as the patch number.
 
-For UWP, the device family version is returned.
-
 For Android, the SDK version and the incremental build number are returned. If it's a custom ROM, it attempts to return its version instead.
 
 \ **Note:** This method is not supported on the web platform. It returns an empty string.

+ 1 - 1
classes/class_projectsettings.rst

@@ -4284,7 +4284,7 @@ If ``true``, snaps :ref:`Control<class_Control>` node vertices to the nearest pi
 
 :ref:`bool<class_bool>` **gui/common/swap_cancel_ok**
 
-If ``true``, swaps **Cancel** and **OK** buttons in dialogs on Windows and UWP to follow interface conventions. :ref:`DisplayServer.get_swap_cancel_ok<class_DisplayServer_method_get_swap_cancel_ok>` can be used to query whether buttons are swapped at run-time.
+If ``true``, swaps **Cancel** and **OK** buttons in dialogs on Windows to follow interface conventions. :ref:`DisplayServer.get_swap_cancel_ok<class_DisplayServer_method_get_swap_cancel_ok>` can be used to query whether buttons are swapped at run-time.
 
 \ **Note:** This doesn't affect native dialogs such as the ones spawned by :ref:`DisplayServer.dialog_show<class_DisplayServer_method_dialog_show>`.
 

+ 1 - 15
classes/class_resource.rst

@@ -105,7 +105,7 @@ Emitted when the resource changes, usually when one of its properties is modifie
 
 **setup_local_to_scene_requested** **(** **)**
 
-Emitted when :ref:`setup_local_to_scene<class_Resource_method_setup_local_to_scene>` is called, usually by a newly duplicated resource with :ref:`resource_local_to_scene<class_Resource_property_resource_local_to_scene>` set to ``true``. Custom behavior can be defined by connecting this signal.
+Emitted by the newly duplicated resource with :ref:`resource_local_to_scene<class_Resource_property_resource_local_to_scene>` set to ``true``, when the scene is instantiated. Custom behavior can be defined by connecting this signal.
 
 .. rst-class:: classref-section-separator
 
@@ -262,20 +262,6 @@ Emits the :ref:`setup_local_to_scene_requested<class_Resource_signal_setup_local
 
 For most resources, this method performs no logic of its own. Custom behavior can be defined by connecting :ref:`setup_local_to_scene_requested<class_Resource_signal_setup_local_to_scene_requested>` from a script, **not** by overriding this method.
 
-\ **Example:** Assign a random value to ``health`` for every duplicated Resource from an instantiated scene, excluding the original.
-
-::
-
-    extends Resource
-    
-    var health = 0
-    
-    func _init():
-        setup_local_to_scene_requested.connect(randomize_health)
-    
-    func randomize_health():
-        health = randi_range(10, 40)
-
 .. rst-class:: classref-item-separator
 
 ----

+ 1 - 1
classes/class_springarm3d.rst

@@ -19,7 +19,7 @@ A 3D raycast that dynamically moves its children near the collision point.
 Description
 -----------
 
-**SpringArm3D** casts a ray or a shape along its Z axis and moves all its direct children to the collision point, with an optional margin. This is useful for 3rd person cameras that move closer to the player when inside a tight space (you may need to exclude the player's collider from the **SpringArm3D**'s collision check.
+**SpringArm3D** casts a ray or a shape along its Z axis and moves all its direct children to the collision point, with an optional margin. This is useful for 3rd person cameras that move closer to the player when inside a tight space (you may need to exclude the player's collider from the **SpringArm3D**'s collision check).
 
 .. rst-class:: classref-reftable-group
 

+ 1 - 1
classes/class_staticbody2d.rst

@@ -21,7 +21,7 @@ A 2D physics body that can't be moved by external forces. When moved manually, i
 Description
 -----------
 
-A static 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``ANIMATION_PROCESS_PHYSICS``), and :ref:`RemoteTransform2D<class_RemoteTransform2D>`.
+A static 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to :ref:`AnimationPlayer.ANIMATION_PROCESS_PHYSICS<class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS>`), and :ref:`RemoteTransform2D<class_RemoteTransform2D>`.
 
 When **StaticBody2D** is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use :ref:`AnimatableBody2D<class_AnimatableBody2D>` instead.
 

+ 1 - 1
classes/class_staticbody3d.rst

@@ -21,7 +21,7 @@ A 3D physics body that can't be moved by external forces. When moved manually, i
 Description
 -----------
 
-A static 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``ANIMATION_PROCESS_PHYSICS``), and :ref:`RemoteTransform3D<class_RemoteTransform3D>`.
+A static 3D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationPlayer<class_AnimationPlayer>`\ s (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to :ref:`AnimationPlayer.ANIMATION_PROCESS_PHYSICS<class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS>`), and :ref:`RemoteTransform3D<class_RemoteTransform3D>`.
 
 When **StaticBody3D** is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use :ref:`AnimatableBody3D<class_AnimatableBody3D>` instead.
 

+ 65 - 25
classes/class_tilemap.rst

@@ -21,6 +21,10 @@ Description
 
 Node for 2D tile-based maps. Tilemaps use a :ref:`TileSet<class_TileSet>` which contain a list of tiles which are used to create grid-based maps. A TileMap may have several layers, layouting tiles on top of each other.
 
+For performance reasons, all TileMap updates are batched at the end of a frame. Notably, this means that scene tiles from a :ref:`TileSetScenesCollectionSource<class_TileSetScenesCollectionSource>` may be initialized after their parent.
+
+To force an update earlier on, call :ref:`update_internals<class_TileMap_method_update_internals>`.
+
 .. rst-class:: classref-introduction-group
 
 Tutorials
@@ -48,8 +52,6 @@ Properties
 .. table::
    :widths: auto
 
-   +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
-   | :ref:`int<class_int>`                              | :ref:`cell_quadrant_size<class_TileMap_property_cell_quadrant_size>`                 | ``16``    |
    +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
    | :ref:`bool<class_bool>`                            | :ref:`collision_animatable<class_TileMap_property_collision_animatable>`             | ``false`` |
    +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
@@ -57,6 +59,8 @@ Properties
    +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
    | :ref:`VisibilityMode<enum_TileMap_VisibilityMode>` | :ref:`navigation_visibility_mode<class_TileMap_property_navigation_visibility_mode>` | ``0``     |
    +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
+   | :ref:`int<class_int>`                              | :ref:`rendering_quadrant_size<class_TileMap_property_rendering_quadrant_size>`       | ``16``    |
+   +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
    | :ref:`TileSet<class_TileSet>`                      | :ref:`tile_set<class_TileMap_property_tile_set>`                                     |           |
    +----------------------------------------------------+--------------------------------------------------------------------------------------+-----------+
 
@@ -135,6 +139,8 @@ Methods
    +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                        | :ref:`move_layer<class_TileMap_method_move_layer>` **(** :ref:`int<class_int>` layer, :ref:`int<class_int>` to_position **)**                                                                                                                                                           |
    +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                        | :ref:`notify_runtime_tile_data_update<class_TileMap_method_notify_runtime_tile_data_update>` **(** :ref:`int<class_int>` layer=-1 **)**                                                                                                                                                 |
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                        | :ref:`remove_layer<class_TileMap_method_remove_layer>` **(** :ref:`int<class_int>` layer **)**                                                                                                                                                                                          |
    +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                        | :ref:`set_cell<class_TileMap_method_set_cell>` **(** :ref:`int<class_int>` layer, :ref:`Vector2i<class_Vector2i>` coords, :ref:`int<class_int>` source_id=-1, :ref:`Vector2i<class_Vector2i>` atlas_coords=Vector2i(-1, -1), :ref:`int<class_int>` alternative_tile=0 **)**             |
@@ -161,6 +167,8 @@ Methods
    +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | void                                        | :ref:`set_pattern<class_TileMap_method_set_pattern>` **(** :ref:`int<class_int>` layer, :ref:`Vector2i<class_Vector2i>` position, :ref:`TileMapPattern<class_TileMapPattern>` pattern **)**                                                                                             |
    +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                        | :ref:`update_internals<class_TileMap_method_update_internals>` **(** **)**                                                                                                                                                                                                              |
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 .. rst-class:: classref-section-separator
 
@@ -227,23 +235,6 @@ Always show.
 Property Descriptions
 ---------------------
 
-.. _class_TileMap_property_cell_quadrant_size:
-
-.. rst-class:: classref-property
-
-:ref:`int<class_int>` **cell_quadrant_size** = ``16``
-
-.. rst-class:: classref-property-setget
-
-- void **set_quadrant_size** **(** :ref:`int<class_int>` value **)**
-- :ref:`int<class_int>` **get_quadrant_size** **(** **)**
-
-The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.
-
-.. rst-class:: classref-item-separator
-
-----
-
 .. _class_TileMap_property_collision_animatable:
 
 .. rst-class:: classref-property
@@ -297,6 +288,23 @@ Show or hide the TileMap's navigation meshes. If set to :ref:`VISIBILITY_MODE_DE
 
 ----
 
+.. _class_TileMap_property_rendering_quadrant_size:
+
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **rendering_quadrant_size** = ``16``
+
+.. rst-class:: classref-property-setget
+
+- void **set_rendering_quadrant_size** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_rendering_quadrant_size** **(** **)**
+
+The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TileMap_property_tile_set:
 
 .. rst-class:: classref-property
@@ -331,7 +339,7 @@ This method is only called if :ref:`_use_tile_data_runtime_update<class_TileMap_
 
 \ **Warning:** The ``tile_data`` object's sub-resources are the same as the one in the TileSet. Modifying them might impact the whole TileSet. Instead, make sure to duplicate those resources.
 
-\ **Note:** If the properties of ``tile_data`` object should change over time, use :ref:`force_update<class_TileMap_method_force_update>` to trigger a TileMap update.
+\ **Note:** If the properties of ``tile_data`` object should change over time, use :ref:`notify_runtime_tile_data_update<class_TileMap_method_notify_runtime_tile_data_update>` to notify the TileMap it needs an update.
 
 .. rst-class:: classref-item-separator
 
@@ -347,6 +355,8 @@ Should return ``true`` if the tile at coordinates ``coords`` on layer ``layer``
 
 \ **Warning:** Make sure this function only return ``true`` when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty.
 
+\ **Note:** If the result of this function should changed, use :ref:`notify_runtime_tile_data_update<class_TileMap_method_notify_runtime_tile_data_update>` to notify the TileMap it needs an update.
+
 .. rst-class:: classref-item-separator
 
 ----
@@ -421,11 +431,7 @@ Clears cells that do not exist in the tileset.
 
 void **force_update** **(** :ref:`int<class_int>` layer=-1 **)**
 
-Triggers an update of the TileMap. If ``layer`` is provided and is positive, only updates the given layer.
-
-\ **Note:** The TileMap node updates automatically when one of its properties is modified. A manual update is only needed if runtime modifications (implemented in :ref:`_tile_data_runtime_update<class_TileMap_method__tile_data_runtime_update>`) need to be applied.
-
-\ **Warning:** Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of updates and the tiles they impact (by placing frequently updated tiles in a dedicated layer for example).
+*Deprecated.* See :ref:`notify_runtime_tile_data_update<class_TileMap_method_notify_runtime_tile_data_update>` and :ref:`update_internals<class_TileMap_method_update_internals>`.
 
 .. rst-class:: classref-item-separator
 
@@ -783,6 +789,24 @@ Moves the layer at index ``layer`` to the given position ``to_position`` in the
 
 ----
 
+.. _class_TileMap_method_notify_runtime_tile_data_update:
+
+.. rst-class:: classref-method
+
+void **notify_runtime_tile_data_update** **(** :ref:`int<class_int>` layer=-1 **)**
+
+Notifies the TileMap node that calls to :ref:`_use_tile_data_runtime_update<class_TileMap_method__use_tile_data_runtime_update>` or :ref:`_tile_data_runtime_update<class_TileMap_method__tile_data_runtime_update>` will lead to different results. This will thus trigger a TileMap update.
+
+If ``layer`` is provided, only notifies changes for the given layer. Providing the ``layer`` argument (when applicable) is usually preferred for performance reasons.
+
+\ **Warning:** Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of calls to this function to avoid unnecessary update.
+
+\ **Note:** This does not trigger a direct update of the TileMap, the update will be done at the end of the frame as usual (unless you call :ref:`update_internals<class_TileMap_method_update_internals>`).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TileMap_method_remove_layer:
 
 .. rst-class:: classref-method
@@ -981,6 +1005,22 @@ Paste the given :ref:`TileMapPattern<class_TileMapPattern>` at the given ``posit
 
 If ``layer`` is negative, the layers are accessed from the last one.
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_TileMap_method_update_internals:
+
+.. rst-class:: classref-method
+
+void **update_internals** **(** **)**
+
+Triggers a direct update of the TileMap. Usually, calling this function is not needed, as TileMap node updates automatically when one of its properties or cells is modified.
+
+However, for performance reasons, those updates are batched and delayed to the end of the frame. Calling this function will force the TileMap to update right away instead.
+
+\ **Warning:** Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of updates and how many tiles they impact.
+
 .. |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.)`

+ 1 - 1
classes/class_viewporttexture.rst

@@ -23,7 +23,7 @@ Provides the content of a :ref:`Viewport<class_Viewport>` as a dynamic :ref:`Tex
 
 To create a **ViewportTexture** in code, use the :ref:`Viewport.get_texture<class_Viewport_method_get_texture>` method on the target viewport.
 
-\ **Note:** When local to scene, this texture uses :ref:`Resource.setup_local_to_scene<class_Resource_method_setup_local_to_scene>` to set the proxy texture and flags in the local viewport. Local to scene **ViewportTexture**\ s will return incorrect data until the scene root is ready (see :ref:`Node.ready<class_Node_signal_ready>`).
+\ **Note:** A **ViewportTexture** is always local to its scene (see :ref:`Resource.resource_local_to_scene<class_Resource_property_resource_local_to_scene>`). If the scene root is not ready, it may return incorrect data (see :ref:`Node.ready<class_Node_signal_ready>`).
 
 .. rst-class:: classref-introduction-group
 

+ 17 - 0
classes/class_xrnode3d.rst

@@ -68,6 +68,23 @@ Methods
 
 .. rst-class:: classref-descriptions-group
 
+Signals
+-------
+
+.. _class_XRNode3D_signal_tracking_changed:
+
+.. rst-class:: classref-signal
+
+**tracking_changed** **(** :ref:`bool<class_bool>` tracking **)**
+
+Emitted when the :ref:`tracker<class_XRNode3D_property_tracker>` starts or stops receiving updated tracking data for the :ref:`pose<class_XRNode3D_property_pose>` being tracked. The ``tracking`` argument indicates whether the tracker is getting updated tracking data.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 

+ 12 - 0
classes/class_xrpositionaltracker.rst

@@ -143,6 +143,18 @@ Emitted when the state of a pose tracked by this tracker changes.
 
 ----
 
+.. _class_XRPositionalTracker_signal_pose_lost_tracking:
+
+.. rst-class:: classref-signal
+
+**pose_lost_tracking** **(** :ref:`XRPose<class_XRPose>` pose **)**
+
+Emitted when a pose tracked by this tracker stops getting updated tracking data.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_XRPositionalTracker_signal_profile_changed:
 
 .. rst-class:: classref-signal

+ 1 - 0
classes/index.rst

@@ -116,6 +116,7 @@ Nodes
     class_gpuparticlescollisionsdf3d
     class_gpuparticlescollisionsphere3d
     class_graphedit
+    class_graphelement
     class_graphnode
     class_gridcontainer
     class_gridmap

部分文件因文件數量過多而無法顯示