Bläddra i källkod

classref: Sync with current master branch (f87858a8f)

Yuri Sizov 2 år sedan
förälder
incheckning
a7745c4cc4
100 ändrade filer med 16137 tillägg och 7524 borttagningar
  1. 285 80
      classes/[email protected]
  2. 4072 1508
      classes/[email protected]
  3. 313 149
      classes/class_aabb.rst
  4. 171 93
      classes/class_acceptdialog.rst
  5. 74 19
      classes/class_aescontext.rst
  6. 23 11
      classes/class_animatablebody2d.rst
  7. 25 11
      classes/class_animatablebody3d.rst
  8. 152 99
      classes/class_animatedsprite2d.rst
  9. 108 59
      classes/class_animatedsprite3d.rst
  10. 120 67
      classes/class_animatedtexture.rst
  11. 644 274
      classes/class_animation.rst
  12. 105 29
      classes/class_animationlibrary.rst
  13. 206 71
      classes/class_animationnode.rst
  14. 4 0
      classes/class_animationnodeadd2.rst
  15. 4 0
      classes/class_animationnodeadd3.rst
  16. 55 24
      classes/class_animationnodeanimation.rst
  17. 4 0
      classes/class_animationnodeblend2.rst
  18. 4 0
      classes/class_animationnodeblend3.rst
  19. 128 73
      classes/class_animationnodeblendspace1d.rst
  20. 222 120
      classes/class_animationnodeblendspace2d.rst
  21. 143 46
      classes/class_animationnodeblendtree.rst
  22. 99 64
      classes/class_animationnodeoneshot.rst
  23. 2 0
      classes/class_animationnodeoutput.rst
  24. 147 58
      classes/class_animationnodestatemachine.rst
  25. 78 28
      classes/class_animationnodestatemachineplayback.rst
  26. 133 84
      classes/class_animationnodestatemachinetransition.rst
  27. 21 11
      classes/class_animationnodesync.rst
  28. 4 0
      classes/class_animationnodetimescale.rst
  29. 4 0
      classes/class_animationnodetimeseek.rst
  30. 96 52
      classes/class_animationnodetransition.rst
  31. 427 218
      classes/class_animationplayer.rst
  32. 244 81
      classes/class_animationtree.rst
  33. 313 188
      classes/class_area2d.rst
  34. 390 258
      classes/class_area3d.rst
  35. 443 208
      classes/class_array.rst
  36. 197 94
      classes/class_arraymesh.rst
  37. 52 26
      classes/class_arrayoccluder3d.rst
  38. 108 51
      classes/class_aspectratiocontainer.rst
  39. 187 76
      classes/class_astar2d.rst
  40. 187 76
      classes/class_astar3d.rst
  41. 235 113
      classes/class_astargrid2d.rst
  42. 61 44
      classes/class_atlastexture.rst
  43. 2 0
      classes/class_audiobuslayout.rst
  44. 21 4
      classes/class_audioeffect.rst
  45. 25 11
      classes/class_audioeffectamplify.rst
  46. 4 0
      classes/class_audioeffectbandlimitfilter.rst
  47. 4 0
      classes/class_audioeffectbandpassfilter.rst
  48. 84 33
      classes/class_audioeffectcapture.rst
  49. 405 284
      classes/class_audioeffectchorus.rst
  50. 91 71
      classes/class_audioeffectcompressor.rst
  51. 157 131
      classes/class_audioeffectdelay.rst
  52. 107 61
      classes/class_audioeffectdistortion.rst
  53. 35 10
      classes/class_audioeffecteq.rst
  54. 4 0
      classes/class_audioeffecteq10.rst
  55. 4 0
      classes/class_audioeffecteq21.rst
  56. 4 0
      classes/class_audioeffecteq6.rst
  57. 87 46
      classes/class_audioeffectfilter.rst
  58. 4 0
      classes/class_audioeffecthighpassfilter.rst
  59. 4 0
      classes/class_audioeffecthighshelffilter.rst
  60. 24 7
      classes/class_audioeffectinstance.rst
  61. 58 41
      classes/class_audioeffectlimiter.rst
  62. 4 0
      classes/class_audioeffectlowpassfilter.rst
  63. 4 0
      classes/class_audioeffectlowshelffilter.rst
  64. 4 0
      classes/class_audioeffectnotchfilter.rst
  65. 25 11
      classes/class_audioeffectpanner.rst
  66. 69 51
      classes/class_audioeffectphaser.rst
  67. 87 39
      classes/class_audioeffectpitchshift.rst
  68. 56 21
      classes/class_audioeffectrecord.rst
  69. 102 81
      classes/class_audioeffectreverb.rst
  70. 87 39
      classes/class_audioeffectspectrumanalyzer.rst
  71. 36 7
      classes/class_audioeffectspectrumanalyzerinstance.rst
  72. 47 31
      classes/class_audioeffectstereoenhance.rst
  73. 39 16
      classes/class_audiolistener2d.rst
  74. 40 13
      classes/class_audiolistener3d.rst
  75. 381 167
      classes/class_audioserver.rst
  76. 77 28
      classes/class_audiostream.rst
  77. 36 21
      classes/class_audiostreamgenerator.rst
  78. 56 19
      classes/class_audiostreamgeneratorplayback.rst
  79. 5 1
      classes/class_audiostreammicrophone.rst
  80. 78 61
      classes/class_audiostreammp3.rst
  81. 76 59
      classes/class_audiostreamoggvorbis.rst
  82. 70 25
      classes/class_audiostreamplayback.rst
  83. 31 10
      classes/class_audiostreamplaybackresampled.rst
  84. 192 110
      classes/class_audiostreamplayer.rst
  85. 203 138
      classes/class_audiostreamplayer2d.rst
  86. 342 229
      classes/class_audiostreamplayer3d.rst
  87. 139 67
      classes/class_audiostreamrandomizer.rst
  88. 155 84
      classes/class_audiostreamwav.rst
  89. 58 25
      classes/class_backbuffercopy.rst
  90. 243 129
      classes/class_basebutton.rst
  91. 1017 475
      classes/class_basematerial3d.rst
  92. 315 127
      classes/class_basis.rst
  93. 103 40
      classes/class_bitmap.rst
  94. 110 45
      classes/class_bone2d.rst
  95. 107 49
      classes/class_boneattachment3d.rst
  96. 73 24
      classes/class_bonemap.rst
  97. 80 28
      classes/class_bool.rst
  98. 95 38
      classes/class_boxcontainer.rst
  99. 57 42
      classes/class_boxmesh.rst
  100. 24 12
      classes/class_boxoccluder3d.rst

+ 285 - 80
classes/[email protected]

@@ -12,6 +12,8 @@
 
 Built-in GDScript functions.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -19,75 +21,110 @@ A list of GDScript-specific utility functions accessed in any script.
 
 For the list of the global functions and constants see :ref:`@GlobalScope<class_@GlobalScope>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`GDScript exports <../tutorials/scripting/gdscript/gdscript_exports>`
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Color<class_Color>`           | :ref:`Color8<class_@GDScript_method_Color8>` **(** :ref:`int<class_int>` r8, :ref:`int<class_int>` g8, :ref:`int<class_int>` b8, :ref:`int<class_int>` a8=255 **)** |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`assert<class_@GDScript_method_assert>` **(** :ref:`bool<class_bool>` condition, :ref:`String<class_String>` message="" **)**                                  |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`         | :ref:`char<class_@GDScript_method_char>` **(** :ref:`int<class_int>` char **)**                                                                                     |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`       | :ref:`convert<class_@GDScript_method_convert>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` type **)**                                           |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Object<class_Object>`         | :ref:`dict_to_inst<class_@GDScript_method_dict_to_inst>` **(** :ref:`Dictionary<class_Dictionary>` dictionary **)**                                                 |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`           | :ref:`get_stack<class_@GDScript_method_get_stack>` **(** **)**                                                                                                      |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>` | :ref:`inst_to_dict<class_@GDScript_method_inst_to_dict>` **(** :ref:`Object<class_Object>` instance **)**                                                           |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`               | :ref:`len<class_@GDScript_method_len>` **(** :ref:`Variant<class_Variant>` var **)**                                                                                |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>`     | :ref:`load<class_@GDScript_method_load>` **(** :ref:`String<class_String>` path **)**                                                                               |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>`     | :ref:`preload<class_@GDScript_method_preload>` **(** :ref:`String<class_String>` path **)**                                                                         |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`print_debug<class_@GDScript_method_print_debug>` **(** ... **)** |vararg|                                                                                     |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`print_stack<class_@GDScript_method_print_stack>` **(** **)**                                                                                                  |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`           | :ref:`range<class_@GDScript_method_range>` **(** ... **)** |vararg|                                                                                                 |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`         | :ref:`str<class_@GDScript_method_str>` **(** ... **)** |vararg|                                                                                                     |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`             | :ref:`type_exists<class_@GDScript_method_type_exists>` **(** :ref:`StringName<class_StringName>` type **)**                                                         |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Color<class_Color>`           | :ref:`Color8<class_@GDScript_method_Color8>` **(** :ref:`int<class_int>` r8, :ref:`int<class_int>` g8, :ref:`int<class_int>` b8, :ref:`int<class_int>` a8=255 **)** |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`assert<class_@GDScript_method_assert>` **(** :ref:`bool<class_bool>` condition, :ref:`String<class_String>` message="" **)**                                  |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`         | :ref:`char<class_@GDScript_method_char>` **(** :ref:`int<class_int>` char **)**                                                                                     |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`       | :ref:`convert<class_@GDScript_method_convert>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` type **)**                                           |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Object<class_Object>`         | :ref:`dict_to_inst<class_@GDScript_method_dict_to_inst>` **(** :ref:`Dictionary<class_Dictionary>` dictionary **)**                                                 |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`           | :ref:`get_stack<class_@GDScript_method_get_stack>` **(** **)**                                                                                                      |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Dictionary<class_Dictionary>` | :ref:`inst_to_dict<class_@GDScript_method_inst_to_dict>` **(** :ref:`Object<class_Object>` instance **)**                                                           |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`               | :ref:`len<class_@GDScript_method_len>` **(** :ref:`Variant<class_Variant>` var **)**                                                                                |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Resource<class_Resource>`     | :ref:`load<class_@GDScript_method_load>` **(** :ref:`String<class_String>` path **)**                                                                               |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Resource<class_Resource>`     | :ref:`preload<class_@GDScript_method_preload>` **(** :ref:`String<class_String>` path **)**                                                                         |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`print_debug<class_@GDScript_method_print_debug>` **(** ... **)** |vararg|                                                                                     |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`print_stack<class_@GDScript_method_print_stack>` **(** **)**                                                                                                  |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`           | :ref:`range<class_@GDScript_method_range>` **(** ... **)** |vararg|                                                                                                 |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`         | :ref:`str<class_@GDScript_method_str>` **(** ... **)** |vararg|                                                                                                     |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`type_exists<class_@GDScript_method_type_exists>` **(** :ref:`StringName<class_StringName>` type **)**                                                         |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Constants
 ---------
 
 .. _class_@GDScript_constant_PI:
 
+.. rst-class:: classref-constant
+
+**PI** = ``3.14159265358979``
+
+Constant that represents how many times the diameter of a circle fits around its perimeter. This is equivalent to ``TAU / 2``, or 180 degrees in rotations.
+
 .. _class_@GDScript_constant_TAU:
 
-.. _class_@GDScript_constant_INF:
+.. rst-class:: classref-constant
 
-.. _class_@GDScript_constant_NAN:
+**TAU** = ``6.28318530717959``
+
+The circle constant, the circumference of the unit circle in radians. This is equivalent to ``PI * 2``, or 360 degrees in rotations.
+
+.. _class_@GDScript_constant_INF:
 
-- **PI** = **3.14159265358979** --- Constant that represents how many times the diameter of a circle fits around its perimeter. This is equivalent to ``TAU / 2``, or 180 degrees in rotations.
+.. rst-class:: classref-constant
 
-- **TAU** = **6.28318530717959** --- The circle constant, the circumference of the unit circle in radians. This is equivalent to ``PI * 2``, or 360 degrees in rotations.
+**INF** = ``inf``
 
-- **INF** = **inf** --- Positive floating-point infinity. This is the result of floating-point division when the divisor is ``0.0``. For negative infinity, use ``-INF``. Dividing by ``-0.0`` will result in negative infinity if the numerator is positive, so dividing by ``0.0`` is not the same as dividing by ``-0.0`` (despite ``0.0 == -0.0`` returning ``true``).
+Positive floating-point infinity. This is the result of floating-point division when the divisor is ``0.0``. For negative infinity, use ``-INF``. Dividing by ``-0.0`` will result in negative infinity if the numerator is positive, so dividing by ``0.0`` is not the same as dividing by ``-0.0`` (despite ``0.0 == -0.0`` returning ``true``).
 
 \ **Warning:** Numeric infinity is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer number by ``0`` will not result in :ref:`INF<class_@GDScript_constant_INF>` and will result in a run-time error instead.
 
-- **NAN** = **nan** --- "Not a Number", an invalid floating-point value. :ref:`NAN<class_@GDScript_constant_NAN>` has special properties, including that it is not equal to itself (``NAN == NAN`` returns ``false``). It is output by some invalid operations, such as dividing floating-point ``0.0`` by ``0.0``.
+.. _class_@GDScript_constant_NAN:
+
+.. rst-class:: classref-constant
+
+**NAN** = ``nan``
+
+"Not a Number", an invalid floating-point value. :ref:`NAN<class_@GDScript_constant_NAN>` has special properties, including that it is not equal to itself (``NAN == NAN`` returns ``false``). It is output by some invalid operations, such as dividing floating-point ``0.0`` by ``0.0``.
 
 \ **Warning:** "Not a Number" is only a concept with floating-point numbers, and has no equivalent for integers. Dividing an integer ``0`` by ``0`` will not result in :ref:`NAN<class_@GDScript_constant_NAN>` and will result in a run-time error instead.
 
+.. rst-class:: classref-section-separator
+
+----
+
 Annotations
 -----------
 
 .. _class_@GDScript_annotation_@export:
 
-- **@export** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export** **(** **)**
 
 Mark the following property as exported (editable in the Inspector dock and saved to disk). To control the type of the exported property use the type hint notation.
 
@@ -96,11 +133,15 @@ Mark the following property as exported (editable in the Inspector dock and save
     @export var int_number = 5
     @export var float_number: float = 5
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_category:
 
-- **@export_category** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-annotation
+
+**@export_category** **(** :ref:`String<class_String>` name **)**
 
 Define a new category for the following exported properties. This helps to organize properties in the Inspector dock.
 
@@ -114,11 +155,15 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_CATEGORY<class_@GlobalScope_constant_
 
 \ **Note:** Categories in the property list are supposed to indicate different base types, so the use of this annotation is not encouraged. See :ref:`@export_group<class_@GDScript_annotation_@export_group>` and :ref:`@export_subgroup<class_@GDScript_annotation_@export_subgroup>` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_color_no_alpha:
 
-- **@export_color_no_alpha** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_color_no_alpha** **(** **)**
 
 Export a :ref:`Color<class_Color>` property without transparency (its alpha fixed as ``1.0``).
 
@@ -128,11 +173,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_COLOR_NO_ALPHA<class_@GlobalScope_cons
 
     @export_color_no_alpha var modulate_color: Color
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_dir:
 
-- **@export_dir** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_dir** **(** **)**
 
 Export a :ref:`String<class_String>` property as a path to a directory. The path will be limited to the project folder and its subfolders. See :ref:`@export_global_dir<class_@GDScript_annotation_@export_global_dir>` to allow picking from the entire filesystem.
 
@@ -142,11 +191,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_DIR<class_@GlobalScope_constant_PROPER
 
     @export_dir var sprite_folder: String
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_enum:
 
-- **@export_enum** **(** :ref:`String<class_String>` names, ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_enum** **(** :ref:`String<class_String>` names, ... **)** |vararg|
 
 Export a :ref:`String<class_String>` or integer property as an enumerated list of options. If the property is an integer field, then the index of the value is stored, in the same order the values are provided. You can add specific identifiers for allowed values using a colon.
 
@@ -158,11 +211,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPE
     @export_enum("Warrior", "Magician", "Thief") var character_class: int
     @export_enum("Slow:30", "Average:60", "Very Fast:200") var character_speed: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_exp_easing:
 
-- **@export_exp_easing** **(** :ref:`String<class_String>` hints="", ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_exp_easing** **(** :ref:`String<class_String>` hints="", ... **)** |vararg|
 
 Export a floating-point property with an easing editor widget. Additional hints can be provided to adjust the behavior of the widget. ``"attenuation"`` flips the curve, which makes it more intuitive for editing attenuation properties. ``"positive_only"`` limits values to only be greater than or equal to zero.
 
@@ -174,11 +231,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_EXP_EASING<class_@GlobalScope_constant
     @export_exp_easing("attenuation") var fading_attenuation
     @export_exp_easing("positive_only") var effect_power
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_file:
 
-- **@export_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
 
 Export a :ref:`String<class_String>` property as a path to a file. The path will be limited to the project folder and its subfolders. See :ref:`@export_global_file<class_@GDScript_annotation_@export_global_file>` to allow picking from the entire filesystem.
 
@@ -191,11 +252,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_FILE<class_@GlobalScope_constant_PROPE
     @export_file var sound_effect_file: String
     @export_file("*.txt") var notes_file: String
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags:
 
-- **@export_flags** **(** :ref:`String<class_String>` names, ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_flags** **(** :ref:`String<class_String>` names, ... **)** |vararg|
 
 Export an integer property as a bit flag field. This allows to store several "checked" or ``true`` values with one property, and comfortably select them from the Inspector dock.
 
@@ -205,11 +270,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_FLAGS<class_@GlobalScope_constant_PROP
 
     @export_flags("Fire", "Water", "Earth", "Wind") var spell_elements = 0
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_2d_navigation:
 
-- **@export_flags_2d_navigation** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_2d_navigation** **(** **)**
 
 Export an integer property as a bit flag field for 2D navigation layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/2d_navigation/layer_1<class_ProjectSettings_property_layer_names/2d_navigation/layer_1>`.
 
@@ -219,11 +288,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_2D_NAVIGATION<class_@GlobalScop
 
     @export_flags_2d_navigation var navigation_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_2d_physics:
 
-- **@export_flags_2d_physics** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_2d_physics** **(** **)**
 
 Export an integer property as a bit flag field for 2D physics layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/2d_physics/layer_1<class_ProjectSettings_property_layer_names/2d_physics/layer_1>`.
 
@@ -233,11 +306,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_2D_PHYSICS<class_@GlobalScope_c
 
     @export_flags_2d_physics var physics_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_2d_render:
 
-- **@export_flags_2d_render** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_2d_render** **(** **)**
 
 Export an integer property as a bit flag field for 2D render layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/2d_render/layer_1<class_ProjectSettings_property_layer_names/2d_render/layer_1>`.
 
@@ -247,11 +324,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_2D_RENDER<class_@GlobalScope_co
 
     @export_flags_2d_render var render_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_3d_navigation:
 
-- **@export_flags_3d_navigation** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_3d_navigation** **(** **)**
 
 Export an integer property as a bit flag field for 3D navigation layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/3d_navigation/layer_1<class_ProjectSettings_property_layer_names/3d_navigation/layer_1>`.
 
@@ -261,11 +342,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_3D_NAVIGATION<class_@GlobalScop
 
     @export_flags_3d_navigation var navigation_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_3d_physics:
 
-- **@export_flags_3d_physics** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_3d_physics** **(** **)**
 
 Export an integer property as a bit flag field for 3D physics layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/3d_physics/layer_1<class_ProjectSettings_property_layer_names/3d_physics/layer_1>`.
 
@@ -275,11 +360,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_3D_PHYSICS<class_@GlobalScope_c
 
     @export_flags_3d_physics var physics_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_flags_3d_render:
 
-- **@export_flags_3d_render** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_flags_3d_render** **(** **)**
 
 Export an integer property as a bit flag field for 3D render layers. The widget in the Inspector dock will use the layer names defined in :ref:`ProjectSettings.layer_names/3d_render/layer_1<class_ProjectSettings_property_layer_names/3d_render/layer_1>`.
 
@@ -289,11 +378,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_LAYERS_3D_RENDER<class_@GlobalScope_co
 
     @export_flags_3d_render var render_layers: int
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_global_dir:
 
-- **@export_global_dir** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_global_dir** **(** **)**
 
 Export a :ref:`String<class_String>` property as a path to a directory. The path can be picked from the entire filesystem. See :ref:`@export_dir<class_@GDScript_annotation_@export_dir>` to limit it to the project folder and its subfolders.
 
@@ -303,11 +396,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_GLOBAL_DIR<class_@GlobalScope_constant
 
     @export_global_dir var sprite_folder: String
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_global_file:
 
-- **@export_global_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_global_file** **(** :ref:`String<class_String>` filter="", ... **)** |vararg|
 
 Export a :ref:`String<class_String>` property as a path to a file. The path can be picked from the entire filesystem. See :ref:`@export_file<class_@GDScript_annotation_@export_file>` to limit it to the project folder and its subfolders.
 
@@ -320,11 +417,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_GLOBAL_FILE<class_@GlobalScope_constan
     @export_global_file var sound_effect_file: String
     @export_global_file("*.txt") var notes_file: String
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_group:
 
-- **@export_group** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
+.. rst-class:: classref-annotation
+
+**@export_group** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
 
 Define a new group for the following exported properties. This helps to organize properties in the Inspector dock. Groups can be added with an optional ``prefix``, which would make group to only consider properties that have this prefix. The grouping will break on the first property that doesn't have a prefix. The prefix is also removed from the property's name in the Inspector dock.
 
@@ -347,11 +448,15 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_GROUP<class_@GlobalScope_constant_PRO
     @export_group("", "")
     @export var ungrouped_number = 3
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_multiline:
 
-- **@export_multiline** **(** **)**
+.. rst-class:: classref-annotation
+
+**@export_multiline** **(** **)**
 
 Export a :ref:`String<class_String>` property with a large :ref:`TextEdit<class_TextEdit>` widget instead of a :ref:`LineEdit<class_LineEdit>`. This adds support for multiline content and makes it easier to edit large amount of text stored in the property.
 
@@ -361,11 +466,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_MULTILINE_TEXT<class_@GlobalScope_cons
 
     @export_multiline var character_biography
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_node_path:
 
-- **@export_node_path** **(** :ref:`String<class_String>` type="", ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_node_path** **(** :ref:`String<class_String>` type="", ... **)** |vararg|
 
 Export a :ref:`NodePath<class_NodePath>` property with a filter for allowed node types.
 
@@ -375,11 +484,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_NODE_PATH_VALID_TYPES<class_@GlobalSco
 
     @export_node_path(Button, TouchScreenButton) var some_button
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_placeholder:
 
-- **@export_placeholder** **(** :ref:`String<class_String>` placeholder **)**
+.. rst-class:: classref-annotation
+
+**@export_placeholder** **(** :ref:`String<class_String>` placeholder **)**
 
 Export a :ref:`String<class_String>` property with a placeholder text displayed in the editor widget when no value is present.
 
@@ -389,11 +502,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_PLACEHOLDER_TEXT<class_@GlobalScope_co
 
     @export_placeholder("Name in lowercase") var character_id: String
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_range:
 
-- **@export_range** **(** :ref:`float<class_float>` min, :ref:`float<class_float>` max, :ref:`float<class_float>` step=1.0, :ref:`String<class_String>` extra_hints="", ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@export_range** **(** :ref:`float<class_float>` min, :ref:`float<class_float>` max, :ref:`float<class_float>` step=1.0, :ref:`String<class_String>` extra_hints="", ... **)** |vararg|
 
 Export a numeric property as a range value. The range must be defined by ``min`` and ``max``, as well as an optional ``step`` and a variety of extra hints. The ``step`` defaults to ``1`` for integer properties. For floating-point numbers this value depends on your ``EditorSettings.interface/inspector/default_float_step`` setting.
 
@@ -416,11 +533,15 @@ See also :ref:`@GlobalScope.PROPERTY_HINT_RANGE<class_@GlobalScope_constant_PROP
     @export_range(0, 360, 1, "degrees") var angle_degrees
     @export_range(-8, 8, 2, "suffix:px") var target_offset
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@export_subgroup:
 
-- **@export_subgroup** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
+.. rst-class:: classref-annotation
+
+**@export_subgroup** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` prefix="" **)**
 
 Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock. Subgroups work exactly like groups, except they need a parent group to exist. See :ref:`@export_group<class_@GDScript_annotation_@export_group>`.
 
@@ -438,13 +559,17 @@ See also :ref:`@GlobalScope.PROPERTY_USAGE_SUBGROUP<class_@GlobalScope_constant_
 
 \ **Note:** Subgroups cannot be nested, they only provide one extra level of depth. Just like the next group ends the previous group, so do the subsequent subgroups.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@icon:
 
-- **@icon** **(** :ref:`String<class_String>` icon_path **)**
+.. rst-class:: classref-annotation
 
-Add a custom icon to the current script. After loading an icon at ``icon_path``, the icon is displayed in the Scene dock for every node that the script is attached to. For named classes, the icon is also displayed in various editor dialogs.
+**@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.
 
 ::
 
@@ -452,11 +577,15 @@ Add a custom icon to the current script. After loading an icon at ``icon_path``,
 
 \ **Note:** Only the script can have a custom icon. Inner classes are not supported.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@onready:
 
-- **@onready** **(** **)**
+.. rst-class:: classref-annotation
+
+**@onready** **(** **)**
 
 Mark the following property as assigned on :ref:`Node<class_Node>`'s ready state change. Values for these properties are not assigned immediately upon the node's creation, and instead are computed and stored right before :ref:`Node._ready<class_Node_method__ready>`.
 
@@ -464,11 +593,15 @@ Mark the following property as assigned on :ref:`Node<class_Node>`'s ready state
 
     @onready var character_name: Label = $Label
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@rpc:
 
-- **@rpc** **(** :ref:`String<class_String>` mode="", :ref:`String<class_String>` sync="", :ref:`String<class_String>` transfer_mode="", :ref:`int<class_int>` transfer_channel=0, ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@rpc** **(** :ref:`String<class_String>` mode="", :ref:`String<class_String>` sync="", :ref:`String<class_String>` transfer_mode="", :ref:`int<class_int>` transfer_channel=0, ... **)** |vararg|
 
 Mark the following method for remote procedure calls. See :doc:`High-level multiplayer <../tutorials/networking/high_level_multiplayer>`.
 
@@ -476,11 +609,15 @@ Mark the following method for remote procedure calls. See :doc:`High-level multi
 
     @rpc()
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@tool:
 
-- **@tool** **(** **)**
+.. rst-class:: classref-annotation
+
+**@tool** **(** **)**
 
 Mark the current script as a tool script, allowing it to be loaded and executed by the editor. See :doc:`Running code in the editor <../tutorials/plugins/running_code_in_the_editor>`.
 
@@ -489,11 +626,15 @@ Mark the current script as a tool script, allowing it to be loaded and executed
     @tool
     extends Node
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_annotation_@warning_ignore:
 
-- **@warning_ignore** **(** :ref:`String<class_String>` warning, ... **)** |vararg|
+.. rst-class:: classref-annotation
+
+**@warning_ignore** **(** :ref:`String<class_String>` warning, ... **)** |vararg|
 
 Mark the following statement to ignore the specified ``warning``. See :doc:`GDScript warning system <../tutorials/scripting/gdscript/warning_system>`.
 
@@ -505,12 +646,20 @@ Mark the following statement to ignore the specified ``warning``. See :doc:`GDSc
         @warning_ignore("unreachable_code")
         print("unreachable")
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_@GDScript_method_Color8:
 
-- :ref:`Color<class_Color>` **Color8** **(** :ref:`int<class_int>` r8, :ref:`int<class_int>` g8, :ref:`int<class_int>` b8, :ref:`int<class_int>` a8=255 **)**
+.. rst-class:: classref-method
+
+:ref:`Color<class_Color>` **Color8** **(** :ref:`int<class_int>` r8, :ref:`int<class_int>` g8, :ref:`int<class_int>` b8, :ref:`int<class_int>` a8=255 **)**
 
 Returns a :ref:`Color<class_Color>` constructed from red (``r8``), green (``g8``), blue (``b8``), and optionally alpha (``a8``) integer channels, each divided by ``255.0`` for their final value.
 
@@ -520,11 +669,15 @@ Returns a :ref:`Color<class_Color>` constructed from red (``r8``), green (``g8``
     var dark_blue = Color8(0, 0, 51)        # Same as Color(0, 0, 0.2).
     var my_color = Color8(306, 255, 0, 102) # Same as Color(1.2, 1, 0, 0.4).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_assert:
 
-- void **assert** **(** :ref:`bool<class_bool>` condition, :ref:`String<class_String>` message="" **)**
+.. rst-class:: classref-method
+
+void **assert** **(** :ref:`bool<class_bool>` condition, :ref:`String<class_String>` message="" **)**
 
 Asserts that the ``condition`` is ``true``. If the ``condition`` is ``false``, an error is generated. When running from the editor, the running project will also be paused until you resume it. This can be used as a stronger form of :ref:`@GlobalScope.push_error<class_@GlobalScope_method_push_error>` for reporting errors to project developers or add-on users.
 
@@ -541,11 +694,15 @@ An optional ``message`` can be shown in addition to the generic "Assertion faile
     assert(speed >= 0 and speed < 20) # You can also combine the two conditional statements in one check
     assert(speed < 20, "the speed limit is 20") # Show a message
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_char:
 
-- :ref:`String<class_String>` **char** **(** :ref:`int<class_int>` char **)**
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **char** **(** :ref:`int<class_int>` char **)**
 
 Returns a single character (as a :ref:`String<class_String>`) of the given Unicode code point (which is compatible with ASCII code).
 
@@ -555,11 +712,15 @@ Returns a single character (as a :ref:`String<class_String>`) of the given Unico
     a = char(65 + 32) # a is "a"
     a = char(8364)    # a is "€"
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_convert:
 
-- :ref:`Variant<class_Variant>` **convert** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` type **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **convert** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` type **)**
 
 Converts ``what`` to ``type`` in the best way possible. The ``type`` uses the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` values.
 
@@ -572,19 +733,27 @@ Converts ``what`` to ``type`` in the best way possible. The ``type`` uses the :r
     print(b)          # Prints [4, 2, 1]
     print(b is Array) # Prints false
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_dict_to_inst:
 
-- :ref:`Object<class_Object>` **dict_to_inst** **(** :ref:`Dictionary<class_Dictionary>` dictionary **)**
+.. rst-class:: classref-method
+
+:ref:`Object<class_Object>` **dict_to_inst** **(** :ref:`Dictionary<class_Dictionary>` dictionary **)**
 
 Converts a ``dictionary`` (created with :ref:`inst_to_dict<class_@GDScript_method_inst_to_dict>`) back to an Object instance. Can be useful for deserializing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_get_stack:
 
-- :ref:`Array<class_Array>` **get_stack** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_stack** **(** **)**
 
 Returns an array of dictionaries representing the current call stack. See also :ref:`print_stack<class_@GDScript_method_print_stack>`.
 
@@ -609,11 +778,15 @@ Starting from ``_ready()``, ``bar()`` would print:
 
 \ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will return an empty array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_inst_to_dict:
 
-- :ref:`Dictionary<class_Dictionary>` **inst_to_dict** **(** :ref:`Object<class_Object>` instance **)**
+.. rst-class:: classref-method
+
+:ref:`Dictionary<class_Dictionary>` **inst_to_dict** **(** :ref:`Object<class_Object>` instance **)**
 
 Returns the passed ``instance`` converted to a Dictionary. Can be useful for serializing.
 
@@ -632,11 +805,15 @@ Prints out:
     [@subpath, @path, foo]
     [, res://test.gd, bar]
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_len:
 
-- :ref:`int<class_int>` **len** **(** :ref:`Variant<class_Variant>` var **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **len** **(** :ref:`Variant<class_Variant>` var **)**
 
 Returns the length of the given Variant ``var``. The length can be the character count of a :ref:`String<class_String>`, the element count of any array type or the size of a :ref:`Dictionary<class_Dictionary>`. For every other Variant type, a run-time error is generated and execution is stopped.
 
@@ -648,11 +825,15 @@ Returns the length of the given Variant ``var``. The length can be the character
     b = "Hello!"
     len(b) # Returns 6
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_load:
 
-- :ref:`Resource<class_Resource>` **load** **(** :ref:`String<class_String>` path **)**
+.. rst-class:: classref-method
+
+:ref:`Resource<class_Resource>` **load** **(** :ref:`String<class_String>` path **)**
 
 Returns a :ref:`Resource<class_Resource>` from the filesystem located at the absolute ``path``. Unless it's already referenced elsewhere (such as in another script or in the scene), the resource is loaded from disk on function call, which might cause a slight delay, especially when loading large scenes. To avoid unnecessary delays when loading something multiple times, either store the resource in a variable or use :ref:`preload<class_@GDScript_method_preload>`.
 
@@ -669,11 +850,15 @@ This function is a simplified version of :ref:`ResourceLoader.load<class_Resourc
 
 \ **Note:** Files have to be imported into the engine first to load them using this function. If you want to load :ref:`Image<class_Image>`\ s at run-time, you may use :ref:`Image.load<class_Image_method_load>`. If you want to import audio files, you can use the snippet described in :ref:`AudioStreamMP3.data<class_AudioStreamMP3_property_data>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_preload:
 
-- :ref:`Resource<class_Resource>` **preload** **(** :ref:`String<class_String>` path **)**
+.. rst-class:: classref-method
+
+:ref:`Resource<class_Resource>` **preload** **(** :ref:`String<class_String>` path **)**
 
 Returns a :ref:`Resource<class_Resource>` from the filesystem located at ``path``. During run-time, the resource is loaded when the script is being parsed. This function effectively acts as a reference to that resource. Note that this function requires ``path`` to be a constant :ref:`String<class_String>`. If you want to load a resource from a dynamic/variable path, use :ref:`load<class_@GDScript_method_load>`.
 
@@ -684,11 +869,15 @@ Returns a :ref:`Resource<class_Resource>` from the filesystem located at ``path`
     # Create instance of a scene.
     var diamond = preload("res://diamond.tscn").instantiate()
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_print_debug:
 
-- void **print_debug** **(** ... **)** |vararg|
+.. rst-class:: classref-method
+
+void **print_debug** **(** ... **)** |vararg|
 
 Like :ref:`@GlobalScope.print<class_@GlobalScope_method_print>`, but includes the current stack frame when running with the debugger turned on.
 
@@ -701,11 +890,15 @@ The output in the console may look like the following:
 
 \ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will instead print the thread ID.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_print_stack:
 
-- void **print_stack** **(** **)**
+.. rst-class:: classref-method
+
+void **print_stack** **(** **)**
 
 Prints a stack trace at the current code location. See also :ref:`get_stack<class_@GDScript_method_get_stack>`.
 
@@ -719,11 +912,15 @@ The output in the console may look like the following:
 
 \ **Note:** Calling this function from a :ref:`Thread<class_Thread>` is not supported. Doing so will instead print the thread ID.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_range:
 
-- :ref:`Array<class_Array>` **range** **(** ... **)** |vararg|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **range** **(** ... **)** |vararg|
 
 Returns an array with the given range. :ref:`range<class_@GDScript_method_range>` can be called in three ways:
 
@@ -777,11 +974,15 @@ Output:
     0.2
     0.1
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_str:
 
-- :ref:`String<class_String>` **str** **(** ... **)** |vararg|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **str** **(** ... **)** |vararg|
 
 Converts one or more arguments to a :ref:`String<class_String>` in the best way possible.
 
@@ -792,11 +993,15 @@ Converts one or more arguments to a :ref:`String<class_String>` in the best way
     len(a) # Returns 3
     len(b) # Returns 12
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GDScript_method_type_exists:
 
-- :ref:`bool<class_bool>` **type_exists** **(** :ref:`StringName<class_StringName>` type **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **type_exists** **(** :ref:`StringName<class_StringName>` type **)**
 
 Returns ``true`` if the given :ref:`Object<class_Object>`-derived class exists in :ref:`ClassDB<class_ClassDB>`. Note that :ref:`Variant<class_Variant>` data types are not registered in :ref:`ClassDB<class_ClassDB>`.
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 4072 - 1508
classes/[email protected]


+ 313 - 149
classes/class_aabb.rst

@@ -12,16 +12,20 @@ AABB
 
 Axis-Aligned Bounding Box.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AABB`` consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
+**AABB** consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
 
-It uses floating-point coordinates. The 2D counterpart to ``AABB`` is :ref:`Rect2<class_Rect2>`.
+It uses floating-point coordinates. The 2D counterpart to **AABB** is :ref:`Rect2<class_Rect2>`.
 
 Negative values for :ref:`size<class_AABB_property_size>` are not supported and will not work for most methods. Use :ref:`abs<class_AABB_method_abs>` to get an AABB with a positive size.
 
-\ **Note:** Unlike :ref:`Rect2<class_Rect2>`, ``AABB`` does not have a variant that uses integer coordinates.
+\ **Note:** Unlike :ref:`Rect2<class_Rect2>`, **AABB** does not have a variant that uses integer coordinates.
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
@@ -32,178 +36,234 @@ Tutorials
 
 - :doc:`Advanced vector math <../tutorials/math/vectors_advanced>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------+-----------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`end<class_AABB_property_end>`           | ``Vector3(0, 0, 0)`` |
-+-------------------------------+-----------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`position<class_AABB_property_position>` | ``Vector3(0, 0, 0)`` |
-+-------------------------------+-----------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`size<class_AABB_property_size>`         | ``Vector3(0, 0, 0)`` |
-+-------------------------------+-----------------------------------------------+----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+-----------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`end<class_AABB_property_end>`           | ``Vector3(0, 0, 0)`` |
+   +-------------------------------+-----------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`position<class_AABB_property_position>` | ``Vector3(0, 0, 0)`` |
+   +-------------------------------+-----------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`size<class_AABB_property_size>`         | ``Vector3(0, 0, 0)`` |
+   +-------------------------------+-----------------------------------------------+----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Constructors
 ------------
 
-+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** **)**                                                                            |
-+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** :ref:`AABB<class_AABB>` from **)**                                               |
-+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)** |
-+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** **)**                                                                            |
+   +-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** :ref:`AABB<class_AABB>` from **)**                                               |
+   +-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>` | :ref:`AABB<class_AABB_constructor_AABB>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)** |
+   +-------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`abs<class_AABB_method_abs>` **(** **)** |const|                                                                                                    |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`encloses<class_AABB_method_encloses>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                             |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`expand<class_AABB_method_expand>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                       |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_center<class_AABB_method_get_center>` **(** **)** |const|                                                                                      |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_endpoint<class_AABB_method_get_endpoint>` **(** :ref:`int<class_int>` idx **)** |const|                                                        |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_longest_axis<class_AABB_method_get_longest_axis>` **(** **)** |const|                                                                          |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_longest_axis_index<class_AABB_method_get_longest_axis_index>` **(** **)** |const|                                                              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_longest_axis_size<class_AABB_method_get_longest_axis_size>` **(** **)** |const|                                                                |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>` **(** **)** |const|                                                                        |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_shortest_axis_index<class_AABB_method_get_shortest_axis_index>` **(** **)** |const|                                                            |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_shortest_axis_size<class_AABB_method_get_shortest_axis_size>` **(** **)** |const|                                                              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_support<class_AABB_method_get_support>` **(** :ref:`Vector3<class_Vector3>` dir **)** |const|                                                  |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_volume<class_AABB_method_get_volume>` **(** **)** |const|                                                                                      |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`grow<class_AABB_method_grow>` **(** :ref:`float<class_float>` by **)** |const|                                                                     |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_point<class_AABB_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point **)** |const|                                                    |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_surface<class_AABB_method_has_surface>` **(** **)** |const|                                                                                    |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_volume<class_AABB_method_has_volume>` **(** **)** |const|                                                                                      |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`intersection<class_AABB_method_intersection>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                     |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`intersects<class_AABB_method_intersects>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                         |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`intersects_plane<class_AABB_method_intersects_plane>` **(** :ref:`Plane<class_Plane>` plane **)** |const|                                          |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`intersects_ray<class_AABB_method_intersects_ray>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|        |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`intersects_segment<class_AABB_method_intersects_segment>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` **(** :ref:`AABB<class_AABB>` aabb **)** |const|                                               |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`is_finite<class_AABB_method_is_finite>` **(** **)** |const|                                                                                        |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`merge<class_AABB_method_merge>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                                   |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`abs<class_AABB_method_abs>` **(** **)** |const|                                                                                                    |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`encloses<class_AABB_method_encloses>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                             |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`expand<class_AABB_method_expand>` **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|                                                       |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_center<class_AABB_method_get_center>` **(** **)** |const|                                                                                      |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_endpoint<class_AABB_method_get_endpoint>` **(** :ref:`int<class_int>` idx **)** |const|                                                        |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_longest_axis<class_AABB_method_get_longest_axis>` **(** **)** |const|                                                                          |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`get_longest_axis_index<class_AABB_method_get_longest_axis_index>` **(** **)** |const|                                                              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_longest_axis_size<class_AABB_method_get_longest_axis_size>` **(** **)** |const|                                                                |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>` **(** **)** |const|                                                                        |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`get_shortest_axis_index<class_AABB_method_get_shortest_axis_index>` **(** **)** |const|                                                            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_shortest_axis_size<class_AABB_method_get_shortest_axis_size>` **(** **)** |const|                                                              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_support<class_AABB_method_get_support>` **(** :ref:`Vector3<class_Vector3>` dir **)** |const|                                                  |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_volume<class_AABB_method_get_volume>` **(** **)** |const|                                                                                      |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`grow<class_AABB_method_grow>` **(** :ref:`float<class_float>` by **)** |const|                                                                     |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_point<class_AABB_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point **)** |const|                                                    |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_surface<class_AABB_method_has_surface>` **(** **)** |const|                                                                                    |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_volume<class_AABB_method_has_volume>` **(** **)** |const|                                                                                      |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`intersection<class_AABB_method_intersection>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                     |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`intersects<class_AABB_method_intersects>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                         |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`intersects_plane<class_AABB_method_intersects_plane>` **(** :ref:`Plane<class_Plane>` plane **)** |const|                                          |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`intersects_ray<class_AABB_method_intersects_ray>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|        |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`intersects_segment<class_AABB_method_intersects_segment>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` **(** :ref:`AABB<class_AABB>` aabb **)** |const|                                               |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`is_finite<class_AABB_method_is_finite>` **(** **)** |const|                                                                                        |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`merge<class_AABB_method_merge>` **(** :ref:`AABB<class_AABB>` with **)** |const|                                                                   |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Operators
 ---------
 
-+-------------------------+---------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator !=<class_AABB_operator_neq_bool>` **(** :ref:`AABB<class_AABB>` right **)**              |
-+-------------------------+---------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>` | :ref:`operator *<class_AABB_operator_mul_AABB>` **(** :ref:`Transform3D<class_Transform3D>` right **)** |
-+-------------------------+---------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator ==<class_AABB_operator_eq_bool>` **(** :ref:`AABB<class_AABB>` right **)**               |
-+-------------------------+---------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+----------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator !=<class_AABB_operator_neq_AABB>` **(** :ref:`AABB<class_AABB>` right **)**                     |
+   +-------------------------+----------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>` | :ref:`operator *<class_AABB_operator_mul_Transform3D>` **(** :ref:`Transform3D<class_Transform3D>` right **)** |
+   +-------------------------+----------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator ==<class_AABB_operator_eq_AABB>` **(** :ref:`AABB<class_AABB>` right **)**                      |
+   +-------------------------+----------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AABB_property_end:
 
-- :ref:`Vector3<class_Vector3>` **end**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(0, 0, 0)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **end** = ``Vector3(0, 0, 0)``
 
 Ending corner. This is calculated as ``position + size``. Setting this value will change the size.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_property_position:
 
-- :ref:`Vector3<class_Vector3>` **position**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(0, 0, 0)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **position** = ``Vector3(0, 0, 0)``
 
 Beginning corner. Typically has values lower than :ref:`end<class_AABB_property_end>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_property_size:
 
-- :ref:`Vector3<class_Vector3>` **size**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(0, 0, 0)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **size** = ``Vector3(0, 0, 0)``
 
 Size from :ref:`position<class_AABB_property_position>` to :ref:`end<class_AABB_property_end>`. Typically, all components are positive.
 
 If the size is negative, you can use :ref:`abs<class_AABB_method_abs>` to fix it.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Constructor Descriptions
 ------------------------
 
 .. _class_AABB_constructor_AABB:
 
-- :ref:`AABB<class_AABB>` **AABB** **(** **)**
+.. rst-class:: classref-constructor
+
+:ref:`AABB<class_AABB>` **AABB** **(** **)**
+
+Constructs a default-initialized **AABB** with default (zero) values of :ref:`position<class_AABB_property_position>` and :ref:`size<class_AABB_property_size>`.
 
-Constructs a default-initialized ``AABB`` with default (zero) values of :ref:`position<class_AABB_property_position>` and :ref:`size<class_AABB_property_size>`.
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`AABB<class_AABB>` **AABB** **(** :ref:`AABB<class_AABB>` from **)**
+.. rst-class:: classref-constructor
+
+:ref:`AABB<class_AABB>` **AABB** **(** :ref:`AABB<class_AABB>` from **)**
+
+Constructs an **AABB** as a copy of the given **AABB**.
 
-Constructs an ``AABB`` as a copy of the given ``AABB``.
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`AABB<class_AABB>` **AABB** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**
+.. rst-class:: classref-constructor
 
-Constructs an ``AABB`` from a position and size.
+:ref:`AABB<class_AABB>` **AABB** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**
+
+Constructs an **AABB** from a position and size.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AABB_method_abs:
 
-- :ref:`AABB<class_AABB>` **abs** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **abs** **(** **)** |const|
 
 Returns an AABB with equivalent position and size, modified so that the most-negative corner is the origin and the size is positive.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_method_encloses:
 
-- :ref:`bool<class_bool>` **encloses** **(** :ref:`AABB<class_AABB>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **encloses** **(** :ref:`AABB<class_AABB>` with **)** |const|
+
+Returns ``true`` if this **AABB** completely encloses another one.
 
-Returns ``true`` if this ``AABB`` completely encloses another one.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_expand:
 
-- :ref:`AABB<class_AABB>` **expand** **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|
+.. rst-class:: classref-method
 
-Returns a copy of this ``AABB`` expanded to include a given point.
+:ref:`AABB<class_AABB>` **expand** **(** :ref:`Vector3<class_Vector3>` to_point **)** |const|
+
+Returns a copy of this **AABB** expanded to include a given point.
 
 \ **Example:**\ 
 
@@ -226,208 +286,312 @@ Returns a copy of this ``AABB`` expanded to include a given point.
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_method_get_center:
 
-- :ref:`Vector3<class_Vector3>` **get_center** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns the center of the ``AABB``, which is equal to :ref:`position<class_AABB_property_position>` + (:ref:`size<class_AABB_property_size>` / 2).
+:ref:`Vector3<class_Vector3>` **get_center** **(** **)** |const|
+
+Returns the center of the **AABB**, which is equal to :ref:`position<class_AABB_property_position>` + (:ref:`size<class_AABB_property_size>` / 2).
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_endpoint:
 
-- :ref:`Vector3<class_Vector3>` **get_endpoint** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_endpoint** **(** :ref:`int<class_int>` idx **)** |const|
 
-Gets the position of the 8 endpoints of the ``AABB`` in space.
+Gets the position of the 8 endpoints of the **AABB** in space.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_longest_axis:
 
-- :ref:`Vector3<class_Vector3>` **get_longest_axis** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_longest_axis** **(** **)** |const|
 
-Returns the normalized longest axis of the ``AABB``.
+Returns the normalized longest axis of the **AABB**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_longest_axis_index:
 
-- :ref:`int<class_int>` **get_longest_axis_index** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_longest_axis_index** **(** **)** |const|
+
+Returns the index of the longest axis of the **AABB** (according to :ref:`Vector3<class_Vector3>`'s ``AXIS_*`` constants).
 
-Returns the index of the longest axis of the ``AABB`` (according to :ref:`Vector3<class_Vector3>`'s ``AXIS_*`` constants).
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_longest_axis_size:
 
-- :ref:`float<class_float>` **get_longest_axis_size** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_longest_axis_size** **(** **)** |const|
+
+Returns the scalar length of the longest axis of the **AABB**.
 
-Returns the scalar length of the longest axis of the ``AABB``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_shortest_axis:
 
-- :ref:`Vector3<class_Vector3>` **get_shortest_axis** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns the normalized shortest axis of the ``AABB``.
+:ref:`Vector3<class_Vector3>` **get_shortest_axis** **(** **)** |const|
+
+Returns the normalized shortest axis of the **AABB**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_shortest_axis_index:
 
-- :ref:`int<class_int>` **get_shortest_axis_index** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_shortest_axis_index** **(** **)** |const|
 
-Returns the index of the shortest axis of the ``AABB`` (according to :ref:`Vector3<class_Vector3>`::AXIS\* enum).
+Returns the index of the shortest axis of the **AABB** (according to :ref:`Vector3<class_Vector3>`::AXIS\* enum).
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_shortest_axis_size:
 
-- :ref:`float<class_float>` **get_shortest_axis_size** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_shortest_axis_size** **(** **)** |const|
+
+Returns the scalar length of the shortest axis of the **AABB**.
 
-Returns the scalar length of the shortest axis of the ``AABB``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_support:
 
-- :ref:`Vector3<class_Vector3>` **get_support** **(** :ref:`Vector3<class_Vector3>` dir **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_support** **(** :ref:`Vector3<class_Vector3>` dir **)** |const|
 
 Returns the support point in a given direction. This is useful for collision detection algorithms.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_method_get_volume:
 
-- :ref:`float<class_float>` **get_volume** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_volume** **(** **)** |const|
 
-Returns the volume of the ``AABB``.
+Returns the volume of the **AABB**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_grow:
 
-- :ref:`AABB<class_AABB>` **grow** **(** :ref:`float<class_float>` by **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **grow** **(** :ref:`float<class_float>` by **)** |const|
 
-Returns a copy of the ``AABB`` grown a given number of units towards all the sides.
+Returns a copy of the **AABB** grown a given number of units towards all the sides.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_point:
 
-- :ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point **)** |const|
+
+Returns ``true`` if the **AABB** contains a point. Points on the faces of the AABB are considered included, though float-point precision errors may impact the accuracy of such checks.
 
-Returns ``true`` if the ``AABB`` contains a point. Points on the faces of the AABB are considered included, though float-point precision errors may impact the accuracy of such checks.
+\ **Note:** This method is not reliable for **AABB** with a *negative size*. Use :ref:`abs<class_AABB_method_abs>` to get a positive sized equivalent **AABB** to check for contained points.
 
-\ **Note:** This method is not reliable for ``AABB`` with a *negative size*. Use :ref:`abs<class_AABB_method_abs>` to get a positive sized equivalent ``AABB`` to check for contained points.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_surface:
 
-- :ref:`bool<class_bool>` **has_surface** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_surface** **(** **)** |const|
+
+Returns ``true`` if the **AABB** has a surface or a length, and ``false`` if the **AABB** is empty (all components of :ref:`size<class_AABB_property_size>` are zero or negative).
 
-Returns ``true`` if the ``AABB`` has a surface or a length, and ``false`` if the ``AABB`` is empty (all components of :ref:`size<class_AABB_property_size>` are zero or negative).
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_volume:
 
-- :ref:`bool<class_bool>` **has_volume** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if the ``AABB`` has a volume, and ``false`` if the ``AABB`` is flat, empty, or has a negative :ref:`size<class_AABB_property_size>`.
+:ref:`bool<class_bool>` **has_volume** **(** **)** |const|
+
+Returns ``true`` if the **AABB** has a volume, and ``false`` if the **AABB** is flat, empty, or has a negative :ref:`size<class_AABB_property_size>`.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersection:
 
-- :ref:`AABB<class_AABB>` **intersection** **(** :ref:`AABB<class_AABB>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **intersection** **(** :ref:`AABB<class_AABB>` with **)** |const|
 
-Returns the intersection between two ``AABB``. An empty AABB (size ``(0, 0, 0)``) is returned on failure.
+Returns the intersection between two **AABB**. An empty AABB (size ``(0, 0, 0)``) is returned on failure.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersects:
 
-- :ref:`bool<class_bool>` **intersects** **(** :ref:`AABB<class_AABB>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **intersects** **(** :ref:`AABB<class_AABB>` with **)** |const|
 
-Returns ``true`` if the ``AABB`` overlaps with another.
+Returns ``true`` if the **AABB** overlaps with another.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersects_plane:
 
-- :ref:`bool<class_bool>` **intersects_plane** **(** :ref:`Plane<class_Plane>` plane **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **intersects_plane** **(** :ref:`Plane<class_Plane>` plane **)** |const|
+
+Returns ``true`` if the **AABB** is on both sides of a plane.
 
-Returns ``true`` if the ``AABB`` is on both sides of a plane.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersects_ray:
 
-- :ref:`Variant<class_Variant>` **intersects_ray** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if the given ray intersects with this ``AABB``. Ray length is infinite.
+:ref:`Variant<class_Variant>` **intersects_ray** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` dir **)** |const|
+
+Returns ``true`` if the given ray intersects with this **AABB**. Ray length is infinite.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersects_segment:
 
-- :ref:`Variant<class_Variant>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |const|
 
-Returns ``true`` if the ``AABB`` intersects the line segment between ``from`` and ``to``.
+Returns ``true`` if the **AABB** intersects the line segment between ``from`` and ``to``.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_is_equal_approx:
 
-- :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`AABB<class_AABB>` aabb **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`AABB<class_AABB>` aabb **)** |const|
+
+Returns ``true`` if this **AABB** and ``aabb`` are approximately equal, by calling :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
 
-Returns ``true`` if this ``AABB`` and ``aabb`` are approximately equal, by calling :ref:`@GlobalScope.is_equal_approx<class_@GlobalScope_method_is_equal_approx>` on each component.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_is_finite:
 
-- :ref:`bool<class_bool>` **is_finite** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_finite** **(** **)** |const|
+
+Returns ``true`` if this **AABB** is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
 
-Returns ``true`` if this ``AABB`` is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_merge:
 
-- :ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)** |const|
+.. rst-class:: classref-method
 
-Returns a larger ``AABB`` that contains both this ``AABB`` and ``with``.
+:ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)** |const|
+
+Returns a larger **AABB** that contains both this **AABB** and ``with``.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Operator Descriptions
 ---------------------
 
-.. _class_AABB_operator_neq_bool:
+.. _class_AABB_operator_neq_AABB:
 
-- :ref:`bool<class_bool>` **operator !=** **(** :ref:`AABB<class_AABB>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`bool<class_bool>` **operator !=** **(** :ref:`AABB<class_AABB>` right **)**
 
 Returns ``true`` if the vectors are not equal.
 
 \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` instead, which is more reliable.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-.. _class_AABB_operator_mul_AABB:
+.. _class_AABB_operator_mul_Transform3D:
+
+.. rst-class:: classref-operator
 
-- :ref:`AABB<class_AABB>` **operator *** **(** :ref:`Transform3D<class_Transform3D>` right **)**
+:ref:`AABB<class_AABB>` **operator *** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
-Inversely transforms (multiplies) the ``AABB`` by the given :ref:`Transform3D<class_Transform3D>` transformation matrix.
+Inversely transforms (multiplies) the **AABB** by the given :ref:`Transform3D<class_Transform3D>` transformation matrix.
+
+.. rst-class:: classref-item-separator
 
 ----
 
-.. _class_AABB_operator_eq_bool:
+.. _class_AABB_operator_eq_AABB:
+
+.. rst-class:: classref-operator
 
-- :ref:`bool<class_bool>` **operator ==** **(** :ref:`AABB<class_AABB>` right **)**
+:ref:`bool<class_bool>` **operator ==** **(** :ref:`AABB<class_AABB>` right **)**
 
 Returns ``true`` if the AABBs are exactly equal.
 

+ 171 - 93
classes/class_acceptdialog.rst

@@ -16,176 +16,226 @@ AcceptDialog
 
 Base dialog for user notification.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 This dialog is useful for small notifications to the user about an event. It can only be accepted or closed, with the same result.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | :ref:`dialog_autowrap<class_AcceptDialog_property_dialog_autowrap>`               | ``false``                                                               |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | :ref:`dialog_close_on_escape<class_AcceptDialog_property_dialog_close_on_escape>` | ``true``                                                                |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | :ref:`dialog_hide_on_ok<class_AcceptDialog_property_dialog_hide_on_ok>`           | ``true``                                                                |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`dialog_text<class_AcceptDialog_property_dialog_text>`                       | ``""``                                                                  |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | exclusive                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_exclusive>`)     |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`ok_button_text<class_AcceptDialog_property_ok_button_text>`                 | ``"OK"``                                                                |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`String<class_String>` | title                                                                             | ``"Alert!"`` (overrides :ref:`Window<class_Window_property_title>`)     |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | transient                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_transient>`)     |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | visible                                                                           | ``false`` (overrides :ref:`Window<class_Window_property_visible>`)      |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | wrap_controls                                                                     | ``true`` (overrides :ref:`Window<class_Window_property_wrap_controls>`) |
-+-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_autowrap<class_AcceptDialog_property_dialog_autowrap>`               | ``false``                                                               |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_close_on_escape<class_AcceptDialog_property_dialog_close_on_escape>` | ``true``                                                                |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_hide_on_ok<class_AcceptDialog_property_dialog_hide_on_ok>`           | ``true``                                                                |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`dialog_text<class_AcceptDialog_property_dialog_text>`                       | ``""``                                                                  |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | exclusive                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_exclusive>`)     |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`ok_button_text<class_AcceptDialog_property_ok_button_text>`                 | ``"OK"``                                                                |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | title                                                                             | ``"Alert!"`` (overrides :ref:`Window<class_Window_property_title>`)     |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | transient                                                                         | ``true`` (overrides :ref:`Window<class_Window_property_transient>`)     |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | visible                                                                           | ``false`` (overrides :ref:`Window<class_Window_property_visible>`)      |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | wrap_controls                                                                     | ``true`` (overrides :ref:`Window<class_Window_property_wrap_controls>`) |
+   +-----------------------------+-----------------------------------------------------------------------------------+-------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Button<class_Button>` | :ref:`add_button<class_AcceptDialog_method_add_button>` **(** :ref:`String<class_String>` text, :ref:`bool<class_bool>` right=false, :ref:`String<class_String>` action="" **)** |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Button<class_Button>` | :ref:`add_cancel_button<class_AcceptDialog_method_add_cancel_button>` **(** :ref:`String<class_String>` name **)**                                                               |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Label<class_Label>`   | :ref:`get_label<class_AcceptDialog_method_get_label>` **(** **)**                                                                                                                |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Button<class_Button>` | :ref:`get_ok_button<class_AcceptDialog_method_get_ok_button>` **(** **)**                                                                                                        |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`register_text_enter<class_AcceptDialog_method_register_text_enter>` **(** :ref:`Control<class_Control>` line_edit **)**                                                    |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`remove_button<class_AcceptDialog_method_remove_button>` **(** :ref:`Control<class_Control>` button **)**                                                                   |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Button<class_Button>` | :ref:`add_button<class_AcceptDialog_method_add_button>` **(** :ref:`String<class_String>` text, :ref:`bool<class_bool>` right=false, :ref:`String<class_String>` action="" **)** |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Button<class_Button>` | :ref:`add_cancel_button<class_AcceptDialog_method_add_cancel_button>` **(** :ref:`String<class_String>` name **)**                                                               |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Label<class_Label>`   | :ref:`get_label<class_AcceptDialog_method_get_label>` **(** **)**                                                                                                                |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Button<class_Button>` | :ref:`get_ok_button<class_AcceptDialog_method_get_ok_button>` **(** **)**                                                                                                        |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`register_text_enter<class_AcceptDialog_method_register_text_enter>` **(** :ref:`Control<class_Control>` line_edit **)**                                                    |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`remove_button<class_AcceptDialog_method_remove_button>` **(** :ref:`Control<class_Control>` button **)**                                                                   |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Theme Properties
 ----------------
 
-+---------------------------------+---------------------------------------------------------------------------------+--------+
-| :ref:`int<class_int>`           | :ref:`buttons_separation<class_AcceptDialog_theme_constant_buttons_separation>` | ``10`` |
-+---------------------------------+---------------------------------------------------------------------------------+--------+
-| :ref:`StyleBox<class_StyleBox>` | :ref:`panel<class_AcceptDialog_theme_style_panel>`                              |        |
-+---------------------------------+---------------------------------------------------------------------------------+--------+
+.. table::
+   :widths: auto
+
+   +---------------------------------+---------------------------------------------------------------------------------+--------+
+   | :ref:`int<class_int>`           | :ref:`buttons_separation<class_AcceptDialog_theme_constant_buttons_separation>` | ``10`` |
+   +---------------------------------+---------------------------------------------------------------------------------+--------+
+   | :ref:`StyleBox<class_StyleBox>` | :ref:`panel<class_AcceptDialog_theme_style_panel>`                              |        |
+   +---------------------------------+---------------------------------------------------------------------------------+--------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AcceptDialog_signal_cancelled:
 
-- **cancelled** **(** **)**
+.. rst-class:: classref-signal
+
+**cancelled** **(** **)**
 
 Emitted when the dialog is closed or the button created with :ref:`add_cancel_button<class_AcceptDialog_method_add_cancel_button>` is pressed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_signal_confirmed:
 
-- **confirmed** **(** **)**
+.. rst-class:: classref-signal
+
+**confirmed** **(** **)**
 
 Emitted when the dialog is accepted, i.e. the OK button is pressed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_signal_custom_action:
 
-- **custom_action** **(** :ref:`StringName<class_StringName>` action **)**
+.. rst-class:: classref-signal
+
+**custom_action** **(** :ref:`StringName<class_StringName>` action **)**
 
 Emitted when a custom button is pressed. See :ref:`add_button<class_AcceptDialog_method_add_button>`.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AcceptDialog_property_dialog_autowrap:
 
-- :ref:`bool<class_bool>` **dialog_autowrap**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **dialog_autowrap** = ``false``
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_autowrap(value) |
-+-----------+---------------------+
-| *Getter*  | has_autowrap()      |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_autowrap** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_autowrap** **(** **)**
 
 Sets autowrapping for the text in the dialog.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_property_dialog_close_on_escape:
 
-- :ref:`bool<class_bool>` **dialog_close_on_escape**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **dialog_close_on_escape** = ``true``
 
-+-----------+----------------------------+
-| *Default* | ``true``                   |
-+-----------+----------------------------+
-| *Setter*  | set_close_on_escape(value) |
-+-----------+----------------------------+
-| *Getter*  | get_close_on_escape()      |
-+-----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_close_on_escape** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_close_on_escape** **(** **)**
 
 If ``true``, the dialog will be hidden when the escape key (:ref:`@GlobalScope.KEY_ESCAPE<class_@GlobalScope_constant_KEY_ESCAPE>`) is pressed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_property_dialog_hide_on_ok:
 
-- :ref:`bool<class_bool>` **dialog_hide_on_ok**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **dialog_hide_on_ok** = ``true``
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_hide_on_ok(value) |
-+-----------+-----------------------+
-| *Getter*  | get_hide_on_ok()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_hide_on_ok** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_hide_on_ok** **(** **)**
 
 If ``true``, the dialog is hidden when the OK button is pressed. You can set it to ``false`` if you want to do e.g. input validation when receiving the :ref:`confirmed<class_AcceptDialog_signal_confirmed>` signal, and handle hiding the dialog in your own logic.
 
 \ **Note:** Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example :ref:`FileDialog<class_FileDialog>` defaults to ``false``, and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in :ref:`FileDialog<class_FileDialog>` to disable hiding the dialog when pressing OK.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_property_dialog_text:
 
-- :ref:`String<class_String>` **dialog_text**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **dialog_text** = ``""``
 
-+-----------+-----------------+
-| *Default* | ``""``          |
-+-----------+-----------------+
-| *Setter*  | set_text(value) |
-+-----------+-----------------+
-| *Getter*  | get_text()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_text** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_text** **(** **)**
 
 The text displayed by the dialog.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_property_ok_button_text:
 
-- :ref:`String<class_String>` **ok_button_text**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **ok_button_text** = ``"OK"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``"OK"``                  |
-+-----------+---------------------------+
-| *Setter*  | set_ok_button_text(value) |
-+-----------+---------------------------+
-| *Getter*  | get_ok_button_text()      |
-+-----------+---------------------------+
+- void **set_ok_button_text** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_ok_button_text** **(** **)**
 
 The text displayed by the OK button (see :ref:`get_ok_button<class_AcceptDialog_method_get_ok_button>`).
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AcceptDialog_method_add_button:
 
-- :ref:`Button<class_Button>` **add_button** **(** :ref:`String<class_String>` text, :ref:`bool<class_bool>` right=false, :ref:`String<class_String>` action="" **)**
+.. rst-class:: classref-method
+
+:ref:`Button<class_Button>` **add_button** **(** :ref:`String<class_String>` text, :ref:`bool<class_bool>` right=false, :ref:`String<class_String>` action="" **)**
 
 Adds a button with label ``text`` and a custom ``action`` to the dialog and returns the created button. ``action`` will be passed to the :ref:`custom_action<class_AcceptDialog_signal_custom_action>` signal when pressed.
 
@@ -193,70 +243,98 @@ If ``true``, ``right`` will place the button to the right of any sibling buttons
 
 You can use :ref:`remove_button<class_AcceptDialog_method_remove_button>` method to remove a button created with this method from the dialog.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_method_add_cancel_button:
 
-- :ref:`Button<class_Button>` **add_cancel_button** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+:ref:`Button<class_Button>` **add_cancel_button** **(** :ref:`String<class_String>` name **)**
 
 Adds a button with label ``name`` and a cancel action to the dialog and returns the created button.
 
 You can use :ref:`remove_button<class_AcceptDialog_method_remove_button>` method to remove a button created with this method from the dialog.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_method_get_label:
 
-- :ref:`Label<class_Label>` **get_label** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Label<class_Label>` **get_label** **(** **)**
 
 Returns the label used for built-in text.
 
 \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_method_get_ok_button:
 
-- :ref:`Button<class_Button>` **get_ok_button** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Button<class_Button>` **get_ok_button** **(** **)**
 
 Returns the OK :ref:`Button<class_Button>` instance.
 
 \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_method_register_text_enter:
 
-- void **register_text_enter** **(** :ref:`Control<class_Control>` line_edit **)**
+.. rst-class:: classref-method
+
+void **register_text_enter** **(** :ref:`Control<class_Control>` line_edit **)**
 
 Registers a :ref:`LineEdit<class_LineEdit>` in the dialog. When the enter key is pressed, the dialog will be accepted.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_method_remove_button:
 
-- void **remove_button** **(** :ref:`Control<class_Control>` button **)**
+.. rst-class:: classref-method
+
+void **remove_button** **(** :ref:`Control<class_Control>` button **)**
 
 Removes the ``button`` from the dialog. Does NOT free the ``button``. The ``button`` must be a :ref:`Button<class_Button>` added with :ref:`add_button<class_AcceptDialog_method_add_button>` or :ref:`add_cancel_button<class_AcceptDialog_method_add_cancel_button>` method. After removal, pressing the ``button`` will no longer emit this dialog's :ref:`custom_action<class_AcceptDialog_signal_custom_action>` or :ref:`cancelled<class_AcceptDialog_signal_cancelled>` signals.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Theme Property Descriptions
 ---------------------------
 
 .. _class_AcceptDialog_theme_constant_buttons_separation:
 
-- :ref:`int<class_int>` **buttons_separation**
+.. rst-class:: classref-themeproperty
 
-+-----------+--------+
-| *Default* | ``10`` |
-+-----------+--------+
+:ref:`int<class_int>` **buttons_separation** = ``10``
 
 The size of the vertical space between the dialog's content and the button row.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AcceptDialog_theme_style_panel:
 
-- :ref:`StyleBox<class_StyleBox>` **panel**
+.. rst-class:: classref-themeproperty
+
+:ref:`StyleBox<class_StyleBox>` **panel**
 
 The panel that fills the background of the window.
 

+ 74 - 19
classes/class_aescontext.rst

@@ -14,6 +14,8 @@ AESContext
 
 Interface to low level AES encryption features.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -95,78 +97,131 @@ This class provides access to AES encryption/decryption of raw data. Both AES-EC
 
 
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`finish<class_AESContext_method_finish>` **(** **)**                                                                                                                                                             |
-+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`get_iv_state<class_AESContext_method_get_iv_state>` **(** **)**                                                                                                                                                 |
-+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`start<class_AESContext_method_start>` **(** :ref:`Mode<enum_AESContext_Mode>` mode, :ref:`PackedByteArray<class_PackedByteArray>` key, :ref:`PackedByteArray<class_PackedByteArray>` iv=PackedByteArray() **)** |
-+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`update<class_AESContext_method_update>` **(** :ref:`PackedByteArray<class_PackedByteArray>` src **)**                                                                                                           |
-+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`finish<class_AESContext_method_finish>` **(** **)**                                                                                                                                                             |
+   +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`get_iv_state<class_AESContext_method_get_iv_state>` **(** **)**                                                                                                                                                 |
+   +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`start<class_AESContext_method_start>` **(** :ref:`Mode<enum_AESContext_Mode>` mode, :ref:`PackedByteArray<class_PackedByteArray>` key, :ref:`PackedByteArray<class_PackedByteArray>` iv=PackedByteArray() **)** |
+   +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`update<class_AESContext_method_update>` **(** :ref:`PackedByteArray<class_PackedByteArray>` src **)**                                                                                                           |
+   +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AESContext_Mode:
 
+.. rst-class:: classref-enumeration
+
+enum **Mode**:
+
 .. _class_AESContext_constant_MODE_ECB_ENCRYPT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AESContext_Mode>` **MODE_ECB_ENCRYPT** = ``0``
+
+AES electronic codebook encryption mode.
+
 .. _class_AESContext_constant_MODE_ECB_DECRYPT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AESContext_Mode>` **MODE_ECB_DECRYPT** = ``1``
+
+AES electronic codebook decryption mode.
+
 .. _class_AESContext_constant_MODE_CBC_ENCRYPT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AESContext_Mode>` **MODE_CBC_ENCRYPT** = ``2``
+
+AES cipher blocker chaining encryption mode.
+
 .. _class_AESContext_constant_MODE_CBC_DECRYPT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AESContext_Mode>` **MODE_CBC_DECRYPT** = ``3``
+
+AES cipher blocker chaining decryption mode.
+
 .. _class_AESContext_constant_MODE_MAX:
 
-enum **Mode**:
+.. rst-class:: classref-enumeration-constant
 
-- **MODE_ECB_ENCRYPT** = **0** --- AES electronic codebook encryption mode.
+:ref:`Mode<enum_AESContext_Mode>` **MODE_MAX** = ``4``
 
-- **MODE_ECB_DECRYPT** = **1** --- AES electronic codebook decryption mode.
+Maximum value for the mode enum.
 
-- **MODE_CBC_ENCRYPT** = **2** --- AES cipher blocker chaining encryption mode.
+.. rst-class:: classref-section-separator
 
-- **MODE_CBC_DECRYPT** = **3** --- AES cipher blocker chaining decryption mode.
+----
 
-- **MODE_MAX** = **4** --- Maximum value for the mode enum.
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AESContext_method_finish:
 
-- void **finish** **(** **)**
+.. rst-class:: classref-method
+
+void **finish** **(** **)**
 
 Close this AES context so it can be started again. See :ref:`start<class_AESContext_method_start>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AESContext_method_get_iv_state:
 
-- :ref:`PackedByteArray<class_PackedByteArray>` **get_iv_state** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedByteArray<class_PackedByteArray>` **get_iv_state** **(** **)**
 
 Get the current IV state for this context (IV gets updated when calling :ref:`update<class_AESContext_method_update>`). You normally don't need this function.
 
 \ **Note:** This function only makes sense when the context is started with :ref:`MODE_CBC_ENCRYPT<class_AESContext_constant_MODE_CBC_ENCRYPT>` or :ref:`MODE_CBC_DECRYPT<class_AESContext_constant_MODE_CBC_DECRYPT>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AESContext_method_start:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`Mode<enum_AESContext_Mode>` mode, :ref:`PackedByteArray<class_PackedByteArray>` key, :ref:`PackedByteArray<class_PackedByteArray>` iv=PackedByteArray() **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`Mode<enum_AESContext_Mode>` mode, :ref:`PackedByteArray<class_PackedByteArray>` key, :ref:`PackedByteArray<class_PackedByteArray>` iv=PackedByteArray() **)**
 
 Start the AES context in the given ``mode``. A ``key`` of either 16 or 32 bytes must always be provided, while an ``iv`` (initialization vector) of exactly 16 bytes, is only needed when ``mode`` is either :ref:`MODE_CBC_ENCRYPT<class_AESContext_constant_MODE_CBC_ENCRYPT>` or :ref:`MODE_CBC_DECRYPT<class_AESContext_constant_MODE_CBC_DECRYPT>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AESContext_method_update:
 
-- :ref:`PackedByteArray<class_PackedByteArray>` **update** **(** :ref:`PackedByteArray<class_PackedByteArray>` src **)**
+.. rst-class:: classref-method
+
+:ref:`PackedByteArray<class_PackedByteArray>` **update** **(** :ref:`PackedByteArray<class_PackedByteArray>` src **)**
 
 Run the desired operation for this AES context. Will return a :ref:`PackedByteArray<class_PackedByteArray>` containing the result of encrypting (or decrypting) the given ``src``. See :ref:`start<class_AESContext_method_start>` for mode of operation.
 

+ 23 - 11
classes/class_animatablebody2d.rst

@@ -14,6 +14,8 @@ AnimatableBody2D
 
 Physics body for 2D physics which moves only by script or animation. Useful for moving platforms and doors.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,27 +25,37 @@ An animatable body can't be moved by external forces or contacts, but can be mov
 
 When the body is moved manually, either from code or from an :ref:`AnimationPlayer<class_AnimationPlayer>` (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``physics``), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+-------------------------------------------------------------------------+----------+
-| :ref:`bool<class_bool>` | :ref:`sync_to_physics<class_AnimatableBody2D_property_sync_to_physics>` | ``true`` |
-+-------------------------+-------------------------------------------------------------------------+----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+-------------------------------------------------------------------------+----------+
+   | :ref:`bool<class_bool>` | :ref:`sync_to_physics<class_AnimatableBody2D_property_sync_to_physics>` | ``true`` |
+   +-------------------------+-------------------------------------------------------------------------+----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimatableBody2D_property_sync_to_physics:
 
-- :ref:`bool<class_bool>` **sync_to_physics**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync_to_physics** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``true``                     |
-+-----------+------------------------------+
-| *Setter*  | set_sync_to_physics(value)   |
-+-----------+------------------------------+
-| *Getter*  | is_sync_to_physics_enabled() |
-+-----------+------------------------------+
+- void **set_sync_to_physics** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_sync_to_physics_enabled** **(** **)**
 
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody2D.move_and_collide<class_PhysicsBody2D_method_move_and_collide>`.
 

+ 25 - 11
classes/class_animatablebody3d.rst

@@ -14,6 +14,8 @@ AnimatableBody3D
 
 Physics body for 3D physics which moves only by script or animation. Useful for moving platforms and doors.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ An animatable body can't be moved by external forces or contacts, but can be mov
 
 When the body is moved manually, either from code or from an :ref:`AnimationPlayer<class_AnimationPlayer>` (with :ref:`AnimationPlayer.playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` set to ``physics``), the physics will automatically compute an estimate of their linear and angular velocity. This makes them very useful for moving platforms or other AnimationPlayer-controlled objects (like a door, a bridge that opens, etc).
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -32,27 +36,37 @@ Tutorials
 
 - `3D Voxel Demo <https://godotengine.org/asset-library/asset/676>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+-------------------------------------------------------------------------+----------+
-| :ref:`bool<class_bool>` | :ref:`sync_to_physics<class_AnimatableBody3D_property_sync_to_physics>` | ``true`` |
-+-------------------------+-------------------------------------------------------------------------+----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+-------------------------------------------------------------------------+----------+
+   | :ref:`bool<class_bool>` | :ref:`sync_to_physics<class_AnimatableBody3D_property_sync_to_physics>` | ``true`` |
+   +-------------------------+-------------------------------------------------------------------------+----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimatableBody3D_property_sync_to_physics:
 
-- :ref:`bool<class_bool>` **sync_to_physics**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync_to_physics** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``true``                     |
-+-----------+------------------------------+
-| *Setter*  | set_sync_to_physics(value)   |
-+-----------+------------------------------+
-| *Getter*  | is_sync_to_physics_enabled() |
-+-----------+------------------------------+
+- void **set_sync_to_physics** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_sync_to_physics_enabled** **(** **)**
 
 If ``true``, the body's movement will be synchronized to the physics frame. This is useful when animating movement via :ref:`AnimationPlayer<class_AnimationPlayer>`, for example on moving platforms. Do **not** use together with :ref:`PhysicsBody3D.move_and_collide<class_PhysicsBody3D_method_move_and_collide>`.
 

+ 152 - 99
classes/class_animatedsprite2d.rst

@@ -14,10 +14,12 @@ AnimatedSprite2D
 
 Sprite node that contains multiple textures as frames to play for animation.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AnimatedSprite2D`` is similar to the :ref:`Sprite2D<class_Sprite2D>` node, except it carries multiple textures as animation frames. Animations are created using a :ref:`SpriteFrames<class_SpriteFrames>` resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The :ref:`SpriteFrames<class_SpriteFrames>` resource can be configured in the editor via the SpriteFrames bottom panel.
+**AnimatedSprite2D** is similar to the :ref:`Sprite2D<class_Sprite2D>` node, except it carries multiple textures as animation frames. Animations are created using a :ref:`SpriteFrames<class_SpriteFrames>` resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The :ref:`SpriteFrames<class_SpriteFrames>` resource can be configured in the editor via the SpriteFrames bottom panel.
 
 After setting up :ref:`frames<class_AnimatedSprite2D_property_frames>`, :ref:`play<class_AnimatedSprite2D_method_play>` may be called. It's also possible to select an :ref:`animation<class_AnimatedSprite2D_property_animation>` and toggle :ref:`playing<class_AnimatedSprite2D_property_playing>`, even within the editor.
 
@@ -25,6 +27,8 @@ To pause the current animation, call :ref:`stop<class_AnimatedSprite2D_method_st
 
 \ **Note:** You can associate a set of normal or specular maps by creating additional :ref:`SpriteFrames<class_SpriteFrames>` resources with a ``_normal`` or ``_specular`` suffix. For example, having 3 :ref:`SpriteFrames<class_SpriteFrames>` resources ``run``, ``run_normal``, and ``run_specular`` will make it so the ``run`` animation uses normal and specular maps.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -32,212 +36,261 @@ Tutorials
 
 - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`StringName<class_StringName>`     | :ref:`animation<class_AnimatedSprite2D_property_animation>`     | ``&"default"``    |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                 | :ref:`centered<class_AnimatedSprite2D_property_centered>`       | ``true``          |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                 | :ref:`flip_h<class_AnimatedSprite2D_property_flip_h>`           | ``false``         |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                 | :ref:`flip_v<class_AnimatedSprite2D_property_flip_v>`           | ``false``         |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite2D_property_frame>`             | ``0``             |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite2D_property_frames>`           |                   |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>`           | :ref:`offset<class_AnimatedSprite2D_property_offset>`           | ``Vector2(0, 0)`` |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite2D_property_playing>`         | ``false``         |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite2D_property_speed_scale>` | ``1.0``           |
-+-----------------------------------------+-----------------------------------------------------------------+-------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`StringName<class_StringName>`     | :ref:`animation<class_AnimatedSprite2D_property_animation>`     | ``&"default"``    |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`centered<class_AnimatedSprite2D_property_centered>`       | ``true``          |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`flip_h<class_AnimatedSprite2D_property_flip_h>`           | ``false``         |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`flip_v<class_AnimatedSprite2D_property_flip_v>`           | ``false``         |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite2D_property_frame>`             | ``0``             |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite2D_property_frames>`           |                   |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`Vector2<class_Vector2>`           | :ref:`offset<class_AnimatedSprite2D_property_offset>`           | ``Vector2(0, 0)`` |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite2D_property_playing>`         | ``false``         |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite2D_property_speed_scale>` | ``1.0``           |
+   +-----------------------------------------+-----------------------------------------------------------------+-------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`play<class_AnimatedSprite2D_method_play>` **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)** |
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`stop<class_AnimatedSprite2D_method_stop>` **(** **)**                                                                                       |
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`play<class_AnimatedSprite2D_method_play>` **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)** |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`stop<class_AnimatedSprite2D_method_stop>` **(** **)**                                                                                       |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimatedSprite2D_signal_animation_finished:
 
-- **animation_finished** **(** **)**
+.. rst-class:: classref-signal
+
+**animation_finished** **(** **)**
 
 Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_signal_frame_changed:
 
-- **frame_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**frame_changed** **(** **)**
 
 Emitted when :ref:`frame<class_AnimatedSprite2D_property_frame>` changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AnimatedSprite2D_property_animation:
 
-- :ref:`StringName<class_StringName>` **animation**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``&"default"``       |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+:ref:`StringName<class_StringName>` **animation** = ``&"default"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_animation** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_animation** **(** **)**
 
 The current animation from the :ref:`frames<class_AnimatedSprite2D_property_frames>` resource. If this value changes, the ``frame`` counter is reset.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_centered:
 
-- :ref:`bool<class_bool>` **centered**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``true``            |
-+-----------+---------------------+
-| *Setter*  | set_centered(value) |
-+-----------+---------------------+
-| *Getter*  | is_centered()       |
-+-----------+---------------------+
+:ref:`bool<class_bool>` **centered** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_centered** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_centered** **(** **)**
 
 If ``true``, texture will be centered.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_flip_h:
 
-- :ref:`bool<class_bool>` **flip_h**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``false``         |
-+-----------+-------------------+
-| *Setter*  | set_flip_h(value) |
-+-----------+-------------------+
-| *Getter*  | is_flipped_h()    |
-+-----------+-------------------+
+:ref:`bool<class_bool>` **flip_h** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_flip_h** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_flipped_h** **(** **)**
 
 If ``true``, texture is flipped horizontally.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_flip_v:
 
-- :ref:`bool<class_bool>` **flip_v**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``false``         |
-+-----------+-------------------+
-| *Setter*  | set_flip_v(value) |
-+-----------+-------------------+
-| *Getter*  | is_flipped_v()    |
-+-----------+-------------------+
+:ref:`bool<class_bool>` **flip_v** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_flip_v** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_flipped_v** **(** **)**
 
 If ``true``, texture is flipped vertically.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_frame:
 
-- :ref:`int<class_int>` **frame**
+.. rst-class:: classref-property
 
-+-----------+------------------+
-| *Default* | ``0``            |
-+-----------+------------------+
-| *Setter*  | set_frame(value) |
-+-----------+------------------+
-| *Getter*  | get_frame()      |
-+-----------+------------------+
+:ref:`int<class_int>` **frame** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_frame** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_frame** **(** **)**
 
 The displayed animation frame's index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_frames:
 
-- :ref:`SpriteFrames<class_SpriteFrames>` **frames**
+.. rst-class:: classref-property
 
-+----------+--------------------------+
-| *Setter* | set_sprite_frames(value) |
-+----------+--------------------------+
-| *Getter* | get_sprite_frames()      |
-+----------+--------------------------+
+:ref:`SpriteFrames<class_SpriteFrames>` **frames**
+
+.. rst-class:: classref-property-setget
+
+- void **set_sprite_frames** **(** :ref:`SpriteFrames<class_SpriteFrames>` value **)**
+- :ref:`SpriteFrames<class_SpriteFrames>` **get_sprite_frames** **(** **)**
 
 The :ref:`SpriteFrames<class_SpriteFrames>` resource containing the animation(s). Allows you the option to load, edit, clear, make unique and save the states of the :ref:`SpriteFrames<class_SpriteFrames>` resource.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_offset:
 
-- :ref:`Vector2<class_Vector2>` **offset**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``Vector2(0, 0)`` |
-+-----------+-------------------+
-| *Setter*  | set_offset(value) |
-+-----------+-------------------+
-| *Getter*  | get_offset()      |
-+-----------+-------------------+
+:ref:`Vector2<class_Vector2>` **offset** = ``Vector2(0, 0)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_offset** **(** **)**
 
 The texture's drawing offset.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
 
-+-----------+--------------------+
-| *Default* | ``false``          |
-+-----------+--------------------+
-| *Setter*  | set_playing(value) |
-+-----------+--------------------+
-| *Getter*  | is_playing()       |
-+-----------+--------------------+
+:ref:`bool<class_bool>` **playing** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_playing** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
 If ``true``, the :ref:`animation<class_AnimatedSprite2D_property_animation>` is currently playing. Setting this property to ``false`` is the equivalent of calling :ref:`stop<class_AnimatedSprite2D_method_stop>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_property_speed_scale:
 
-- :ref:`float<class_float>` **speed_scale**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_speed_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_speed_scale()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **speed_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_speed_scale** **(** **)**
 
 The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. If set to ``0``, the animation is paused, preserving the current frame's elapsed time.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedSprite2D_method_play:
 
-- void **play** **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)**
 
 Plays the animation named ``anim``. If no ``anim`` is provided, the current animation is played. If ``backwards`` is ``true``, the animation is played in reverse.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite2D_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the current :ref:`animation<class_AnimatedSprite2D_property_animation>` at the current :ref:`frame<class_AnimatedSprite2D_property_frame>`.
 

+ 108 - 59
classes/class_animatedsprite3d.rst

@@ -14,154 +14,203 @@ AnimatedSprite3D
 
 2D sprite node in 3D world, that can use multiple 2D textures for animation.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AnimatedSprite3D`` is similar to the :ref:`Sprite3D<class_Sprite3D>` node, except it carries multiple textures as animation :ref:`frames<class_AnimatedSprite3D_property_frames>`. Animations are created using a :ref:`SpriteFrames<class_SpriteFrames>` resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The :ref:`SpriteFrames<class_SpriteFrames>` resource can be configured in the editor via the SpriteFrames bottom panel.
+**AnimatedSprite3D** is similar to the :ref:`Sprite3D<class_Sprite3D>` node, except it carries multiple textures as animation :ref:`frames<class_AnimatedSprite3D_property_frames>`. Animations are created using a :ref:`SpriteFrames<class_SpriteFrames>` resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The :ref:`SpriteFrames<class_SpriteFrames>` resource can be configured in the editor via the SpriteFrames bottom panel.
 
 After setting up :ref:`frames<class_AnimatedSprite3D_property_frames>`, :ref:`play<class_AnimatedSprite3D_method_play>` may be called. It's also possible to select an :ref:`animation<class_AnimatedSprite3D_property_animation>` and toggle :ref:`playing<class_AnimatedSprite3D_property_playing>`, even within the editor.
 
 To pause the current animation, call :ref:`stop<class_AnimatedSprite3D_method_stop>` or set :ref:`playing<class_AnimatedSprite3D_property_playing>` to ``false``. Alternatively, setting :ref:`speed_scale<class_AnimatedSprite3D_property_speed_scale>` to ``0`` also preserves the current frame's elapsed time.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`2D Sprite animation (also applies to 3D) <../tutorials/2d/2d_sprite_animation>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
-| :ref:`StringName<class_StringName>`     | :ref:`animation<class_AnimatedSprite3D_property_animation>`     | ``&"default"`` |
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
-| :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite3D_property_frame>`             | ``0``          |
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
-| :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite3D_property_frames>`           |                |
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
-| :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite3D_property_playing>`         | ``false``      |
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
-| :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite3D_property_speed_scale>` | ``1.0``        |
-+-----------------------------------------+-----------------------------------------------------------------+----------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+   | :ref:`StringName<class_StringName>`     | :ref:`animation<class_AnimatedSprite3D_property_animation>`     | ``&"default"`` |
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+   | :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite3D_property_frame>`             | ``0``          |
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+   | :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite3D_property_frames>`           |                |
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+   | :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite3D_property_playing>`         | ``false``      |
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+   | :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite3D_property_speed_scale>` | ``1.0``        |
+   +-----------------------------------------+-----------------------------------------------------------------+----------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`play<class_AnimatedSprite3D_method_play>` **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)** |
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`stop<class_AnimatedSprite3D_method_stop>` **(** **)**                                                                                       |
-+------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`play<class_AnimatedSprite3D_method_play>` **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)** |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`stop<class_AnimatedSprite3D_method_stop>` **(** **)**                                                                                       |
+   +------+---------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimatedSprite3D_signal_animation_finished:
 
-- **animation_finished** **(** **)**
+.. rst-class:: classref-signal
+
+**animation_finished** **(** **)**
 
 Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_signal_frame_changed:
 
-- **frame_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**frame_changed** **(** **)**
 
 Emitted when :ref:`frame<class_AnimatedSprite3D_property_frame>` changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AnimatedSprite3D_property_animation:
 
-- :ref:`StringName<class_StringName>` **animation**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **animation** = ``&"default"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``&"default"``       |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+- void **set_animation** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_animation** **(** **)**
 
 The current animation from the ``frames`` resource. If this value changes, the ``frame`` counter is reset.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_property_frame:
 
-- :ref:`int<class_int>` **frame**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **frame** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------+
-| *Default* | ``0``            |
-+-----------+------------------+
-| *Setter*  | set_frame(value) |
-+-----------+------------------+
-| *Getter*  | get_frame()      |
-+-----------+------------------+
+- void **set_frame** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_frame** **(** **)**
 
 The displayed animation frame's index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_property_frames:
 
-- :ref:`SpriteFrames<class_SpriteFrames>` **frames**
+.. rst-class:: classref-property
+
+:ref:`SpriteFrames<class_SpriteFrames>` **frames**
 
-+----------+--------------------------+
-| *Setter* | set_sprite_frames(value) |
-+----------+--------------------------+
-| *Getter* | get_sprite_frames()      |
-+----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_sprite_frames** **(** :ref:`SpriteFrames<class_SpriteFrames>` value **)**
+- :ref:`SpriteFrames<class_SpriteFrames>` **get_sprite_frames** **(** **)**
 
 The :ref:`SpriteFrames<class_SpriteFrames>` resource containing the animation(s).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **playing** = ``false``
 
-+-----------+--------------------+
-| *Default* | ``false``          |
-+-----------+--------------------+
-| *Setter*  | set_playing(value) |
-+-----------+--------------------+
-| *Getter*  | is_playing()       |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_playing** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
 If ``true``, the :ref:`animation<class_AnimatedSprite3D_property_animation>` is currently playing. Setting this property to ``false`` is the equivalent of calling :ref:`stop<class_AnimatedSprite3D_method_stop>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_property_speed_scale:
 
-- :ref:`float<class_float>` **speed_scale**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_speed_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_speed_scale()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **speed_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_speed_scale** **(** **)**
 
 The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. If set to ``0``, the animation is paused, preserving the current frame's elapsed time.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedSprite3D_method_play:
 
-- void **play** **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`StringName<class_StringName>` anim=&"", :ref:`bool<class_bool>` backwards=false **)**
 
 Plays the animation named ``anim``. If no ``anim`` is provided, the current animation is played. If ``backwards`` is ``true``, the animation is played in reverse.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the current :ref:`animation<class_AnimatedSprite3D_property_animation>` at the current :ref:`frame<class_AnimatedSprite3D_property_frame>`.
 

+ 120 - 67
classes/class_animatedtexture.rst

@@ -14,163 +14,216 @@ AnimatedTexture
 
 Proxy texture for simple frame-based animations.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AnimatedTexture`` is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimatedSprite2D<class_AnimatedSprite2D>`, it isn't a :ref:`Node<class_Node>`, but has the advantage of being usable anywhere a :ref:`Texture2D<class_Texture2D>` resource can be used, e.g. in a :ref:`TileSet<class_TileSet>`.
+**AnimatedTexture** is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimatedSprite2D<class_AnimatedSprite2D>`, it isn't a :ref:`Node<class_Node>`, but has the advantage of being usable anywhere a :ref:`Texture2D<class_Texture2D>` resource can be used, e.g. in a :ref:`TileSet<class_TileSet>`.
 
 The playback of the animation is controlled by the :ref:`speed_scale<class_AnimatedTexture_property_speed_scale>` property, as well as each frame's duration (see :ref:`set_frame_duration<class_AnimatedTexture_method_set_frame_duration>`). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame.
 
-\ ``AnimatedTexture`` currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one.
+\ **AnimatedTexture** currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one.
 
 \ **Note:** AnimatedTexture doesn't support using :ref:`AtlasTexture<class_AtlasTexture>`\ s. Each frame needs to be a separate :ref:`Texture2D<class_Texture2D>`.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`current_frame<class_AnimatedTexture_property_current_frame>` |                                                                                        |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`frames<class_AnimatedTexture_property_frames>`               | ``1``                                                                                  |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`one_shot<class_AnimatedTexture_property_one_shot>`           | ``false``                                                                              |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`pause<class_AnimatedTexture_property_pause>`                 | ``false``                                                                              |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | resource_local_to_scene                                            | ``false`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`speed_scale<class_AnimatedTexture_property_speed_scale>`     | ``1.0``                                                                                |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`current_frame<class_AnimatedTexture_property_current_frame>` |                                                                                        |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`frames<class_AnimatedTexture_property_frames>`               | ``1``                                                                                  |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`one_shot<class_AnimatedTexture_property_one_shot>`           | ``false``                                                                              |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`pause<class_AnimatedTexture_property_pause>`                 | ``false``                                                                              |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | resource_local_to_scene                                            | ``false`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`speed_scale<class_AnimatedTexture_property_speed_scale>`     | ``1.0``                                                                                |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`         | :ref:`get_frame_duration<class_AnimatedTexture_method_get_frame_duration>` **(** :ref:`int<class_int>` frame **)** |const|                                  |
-+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`get_frame_texture<class_AnimatedTexture_method_get_frame_texture>` **(** :ref:`int<class_int>` frame **)** |const|                                    |
-+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`set_frame_duration<class_AnimatedTexture_method_set_frame_duration>` **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` duration **)**      |
-+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                              | :ref:`set_frame_texture<class_AnimatedTexture_method_set_frame_texture>` **(** :ref:`int<class_int>` frame, :ref:`Texture2D<class_Texture2D>` texture **)** |
-+-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`         | :ref:`get_frame_duration<class_AnimatedTexture_method_get_frame_duration>` **(** :ref:`int<class_int>` frame **)** |const|                                  |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Texture2D<class_Texture2D>` | :ref:`get_frame_texture<class_AnimatedTexture_method_get_frame_texture>` **(** :ref:`int<class_int>` frame **)** |const|                                    |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                              | :ref:`set_frame_duration<class_AnimatedTexture_method_set_frame_duration>` **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` duration **)**      |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                              | :ref:`set_frame_texture<class_AnimatedTexture_method_set_frame_texture>` **(** :ref:`int<class_int>` frame, :ref:`Texture2D<class_Texture2D>` texture **)** |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Constants
 ---------
 
 .. _class_AnimatedTexture_constant_MAX_FRAMES:
 
-- **MAX_FRAMES** = **256** --- The maximum number of frames supported by ``AnimatedTexture``. If you need more frames in your animation, use :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimatedSprite2D<class_AnimatedSprite2D>`.
+.. rst-class:: classref-constant
+
+**MAX_FRAMES** = ``256``
+
+The maximum number of frames supported by **AnimatedTexture**. If you need more frames in your animation, use :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimatedSprite2D<class_AnimatedSprite2D>`.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimatedTexture_property_current_frame:
 
-- :ref:`int<class_int>` **current_frame**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **current_frame**
+
+.. rst-class:: classref-property-setget
 
-+----------+--------------------------+
-| *Setter* | set_current_frame(value) |
-+----------+--------------------------+
-| *Getter* | get_current_frame()      |
-+----------+--------------------------+
+- void **set_current_frame** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_current_frame** **(** **)**
 
 Sets the currently visible frame of the texture.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_property_frames:
 
-- :ref:`int<class_int>` **frames**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **frames** = ``1``
 
-+-----------+-------------------+
-| *Default* | ``1``             |
-+-----------+-------------------+
-| *Setter*  | set_frames(value) |
-+-----------+-------------------+
-| *Getter*  | get_frames()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_frames** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_frames** **(** **)**
 
 Number of frames to use in the animation. While you can create the frames independently with :ref:`set_frame_texture<class_AnimatedTexture_method_set_frame_texture>`, you need to set this value for the animation to take new frames into account. The maximum number of frames is :ref:`MAX_FRAMES<class_AnimatedTexture_constant_MAX_FRAMES>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_property_one_shot:
 
-- :ref:`bool<class_bool>` **one_shot**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_one_shot(value) |
-+-----------+---------------------+
-| *Getter*  | get_one_shot()      |
-+-----------+---------------------+
+:ref:`bool<class_bool>` **one_shot** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_one_shot** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_one_shot** **(** **)**
 
 If ``true``, the animation will only play once and will not loop back to the first frame after reaching the end. Note that reaching the end will not set :ref:`pause<class_AnimatedTexture_property_pause>` to ``true``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_property_pause:
 
-- :ref:`bool<class_bool>` **pause**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **pause** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------+
-| *Default* | ``false``        |
-+-----------+------------------+
-| *Setter*  | set_pause(value) |
-+-----------+------------------+
-| *Getter*  | get_pause()      |
-+-----------+------------------+
+- void **set_pause** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_pause** **(** **)**
 
 If ``true``, the animation will pause where it currently is (i.e. at :ref:`current_frame<class_AnimatedTexture_property_current_frame>`). The animation will continue from where it was paused when changing this property to ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_property_speed_scale:
 
-- :ref:`float<class_float>` **speed_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **speed_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_speed_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_speed_scale()      |
-+-----------+------------------------+
+- void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_speed_scale** **(** **)**
 
 The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedTexture_method_get_frame_duration:
 
-- :ref:`float<class_float>` **get_frame_duration** **(** :ref:`int<class_int>` frame **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_frame_duration** **(** :ref:`int<class_int>` frame **)** |const|
 
 Returns the given ``frame``'s duration, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_get_frame_texture:
 
-- :ref:`Texture2D<class_Texture2D>` **get_frame_texture** **(** :ref:`int<class_int>` frame **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Texture2D<class_Texture2D>` **get_frame_texture** **(** :ref:`int<class_int>` frame **)** |const|
 
 Returns the given frame's :ref:`Texture2D<class_Texture2D>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_set_frame_duration:
 
-- void **set_frame_duration** **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` duration **)**
+.. rst-class:: classref-method
+
+void **set_frame_duration** **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` duration **)**
 
 Sets the duration of any given ``frame``. The final duration is affected by the :ref:`speed_scale<class_AnimatedTexture_property_speed_scale>`. If set to ``0``, the frame is skipped during playback.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_set_frame_texture:
 
-- void **set_frame_texture** **(** :ref:`int<class_int>` frame, :ref:`Texture2D<class_Texture2D>` texture **)**
+.. rst-class:: classref-method
+
+void **set_frame_texture** **(** :ref:`int<class_int>` frame, :ref:`Texture2D<class_Texture2D>` texture **)**
 
 Assigns a :ref:`Texture2D<class_Texture2D>` to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID :ref:`frames<class_AnimatedTexture_property_frames>` - 1.
 

+ 644 - 274
classes/class_animation.rst

@@ -14,6 +14,8 @@ Animation
 
 Contains data used to animate everything in the engine.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -48,840 +50,1208 @@ Animations are just data containers, and must be added to nodes such as an :ref:
 
 \ **Note:** For 3D position/rotation/scale, using the dedicated :ref:`TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` and :ref:`TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` track types instead of :ref:`TYPE_VALUE<class_Animation_constant_TYPE_VALUE>` is recommended for performance reasons.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Animation documentation index <../tutorials/animation/index>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------+------------------------------------------------------+---------+
-| :ref:`float<class_float>`                | :ref:`length<class_Animation_property_length>`       | ``1.0`` |
-+------------------------------------------+------------------------------------------------------+---------+
-| :ref:`LoopMode<enum_Animation_LoopMode>` | :ref:`loop_mode<class_Animation_property_loop_mode>` | ``0``   |
-+------------------------------------------+------------------------------------------------------+---------+
-| :ref:`float<class_float>`                | :ref:`step<class_Animation_property_step>`           | ``0.1`` |
-+------------------------------------------+------------------------------------------------------+---------+
-
-Methods
--------
+.. table::
+   :widths: auto
 
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`add_track<class_Animation_method_add_track>` **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                        | :ref:`animation_track_get_key_animation<class_Animation_method_animation_track_get_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`animation_track_insert_key<class_Animation_method_animation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`animation_track_set_key_animation<class_Animation_method_animation_track_set_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_end_offset<class_Animation_method_audio_track_get_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_start_offset<class_Animation_method_audio_track_get_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                        |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>`                            | :ref:`audio_track_get_key_stream<class_Animation_method_audio_track_get_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`audio_track_insert_key<class_Animation_method_audio_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_end_offset<class_Animation_method_audio_track_set_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                                  |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_start_offset<class_Animation_method_audio_track_set_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_stream<class_Animation_method_audio_track_set_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_in_handle<class_Animation_method_bezier_track_get_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_out_handle<class_Animation_method_bezier_track_get_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bezier_track_get_key_value<class_Animation_method_bezier_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`bezier_track_insert_key<class_Animation_method_bezier_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)** |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bezier_track_interpolate<class_Animation_method_bezier_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_in_handle<class_Animation_method_bezier_track_set_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                                  |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_out_handle<class_Animation_method_bezier_track_set_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_value<class_Animation_method_bezier_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`blend_shape_track_insert_key<class_Animation_method_blend_shape_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`compress<class_Animation_method_compress>` **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`copy_track<class_Animation_method_copy_track>` **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`find_track<class_Animation_method_find_track>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|                                                                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`method_track_get_key_indices<class_Animation_method_method_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                        | :ref:`method_track_get_name<class_Animation_method_method_track_get_name>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                  | :ref:`method_track_get_params<class_Animation_method_method_track_get_params>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`position_track_insert_key<class_Animation_method_position_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`rotation_track_insert_key<class_Animation_method_rotation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`scale_track_insert_key<class_Animation_method_scale_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**                                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`track_find_key<class_Animation_method_track_find_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_get_interpolation_loop_wrap<class_Animation_method_track_get_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`InterpolationType<enum_Animation_InterpolationType>` | :ref:`track_get_interpolation_type<class_Animation_method_track_get_interpolation_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`track_get_key_count<class_Animation_method_track_get_key_count>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`track_get_key_time<class_Animation_method_track_get_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`track_get_key_transition<class_Animation_method_track_get_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                        |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                              | :ref:`track_get_key_value<class_Animation_method_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                  |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`NodePath<class_NodePath>`                            | :ref:`track_get_path<class_Animation_method_track_get_path>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TrackType<enum_Animation_TrackType>`                 | :ref:`track_get_type<class_Animation_method_track_get_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`track_insert_key<class_Animation_method_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_enabled<class_Animation_method_track_is_enabled>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_imported<class_Animation_method_track_is_imported>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_down<class_Animation_method_track_move_down>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_to<class_Animation_method_track_move_to>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_up<class_Animation_method_track_move_up>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_remove_key<class_Animation_method_track_remove_key>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**                                                                                                                                                                |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_remove_key_at_time<class_Animation_method_track_remove_key_at_time>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**                                                                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_enabled<class_Animation_method_track_set_enabled>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_imported<class_Animation_method_track_set_imported>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**                                                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_interpolation_loop_wrap<class_Animation_method_track_set_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_interpolation_type<class_Animation_method_track_set_interpolation_type>` **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_time<class_Animation_method_track_set_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_transition<class_Animation_method_track_set_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_value<class_Animation_method_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_path<class_Animation_method_track_set_path>` **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**                                                                                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_swap<class_Animation_method_track_swap>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`value_track_get_key_indices<class_Animation_method_value_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`UpdateMode<enum_Animation_UpdateMode>`               | :ref:`value_track_get_update_mode<class_Animation_method_value_track_get_update_mode>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                              | :ref:`value_track_interpolate<class_Animation_method_value_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`value_track_set_update_mode<class_Animation_method_value_track_set_update_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-
-Signals
--------
+   +------------------------------------------+------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                | :ref:`length<class_Animation_property_length>`       | ``1.0`` |
+   +------------------------------------------+------------------------------------------------------+---------+
+   | :ref:`LoopMode<enum_Animation_LoopMode>` | :ref:`loop_mode<class_Animation_property_loop_mode>` | ``0``   |
+   +------------------------------------------+------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                | :ref:`step<class_Animation_property_step>`           | ``0.1`` |
+   +------------------------------------------+------------------------------------------------------+---------+
 
-.. _class_Animation_signal_tracks_changed:
+.. rst-class:: classref-reftable-group
 
-- **tracks_changed** **(** **)**
+Methods
+-------
 
-Emitted when there's a change in the list of tracks, e.g. tracks are added, moved or have changed paths.
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`add_track<class_Animation_method_add_track>` **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**                                                                                                                                                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                        | :ref:`animation_track_get_key_animation<class_Animation_method_animation_track_get_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                      |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`animation_track_insert_key<class_Animation_method_animation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`animation_track_set_key_animation<class_Animation_method_animation_track_set_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**                                                                               |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_end_offset<class_Animation_method_audio_track_get_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_start_offset<class_Animation_method_audio_track_get_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                        |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Resource<class_Resource>`                            | :ref:`audio_track_get_key_stream<class_Animation_method_audio_track_get_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`audio_track_insert_key<class_Animation_method_audio_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**                         |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`audio_track_set_key_end_offset<class_Animation_method_audio_track_set_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                                  |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`audio_track_set_key_start_offset<class_Animation_method_audio_track_set_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                              |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`audio_track_set_key_stream<class_Animation_method_audio_track_set_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**                                                                                                    |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_in_handle<class_Animation_method_bezier_track_get_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_out_handle<class_Animation_method_bezier_track_get_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                          |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`bezier_track_get_key_value<class_Animation_method_bezier_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`bezier_track_insert_key<class_Animation_method_bezier_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)** |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`bezier_track_interpolate<class_Animation_method_bezier_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|                                                                                                                                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`bezier_track_set_key_in_handle<class_Animation_method_bezier_track_set_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                                  |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`bezier_track_set_key_out_handle<class_Animation_method_bezier_track_set_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                               |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`bezier_track_set_key_value<class_Animation_method_bezier_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**                                                                                                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`blend_shape_track_insert_key<class_Animation_method_blend_shape_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`compress<class_Animation_method_compress>` **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**                                                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`copy_track<class_Animation_method_copy_track>` **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**                                                                                                                                                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`find_track<class_Animation_method_find_track>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|                                                                                                                                             |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                         |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                        | :ref:`method_track_get_name<class_Animation_method_method_track_get_name>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                              |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                  | :ref:`method_track_get_params<class_Animation_method_method_track_get_params>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                          |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`position_track_insert_key<class_Animation_method_position_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`rotation_track_insert_key<class_Animation_method_rotation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**                                                                                               |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`scale_track_insert_key<class_Animation_method_scale_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**                                                                                                              |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`track_find_key<class_Animation_method_track_find_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|                                                                                                                      |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`track_get_interpolation_loop_wrap<class_Animation_method_track_get_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`InterpolationType<enum_Animation_InterpolationType>` | :ref:`track_get_interpolation_type<class_Animation_method_track_get_interpolation_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                               |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`track_get_key_count<class_Animation_method_track_get_key_count>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`track_get_key_time<class_Animation_method_track_get_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                    |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`track_get_key_transition<class_Animation_method_track_get_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                        |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`                              | :ref:`track_get_key_value<class_Animation_method_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                  |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`NodePath<class_NodePath>`                            | :ref:`track_get_path<class_Animation_method_track_get_path>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`TrackType<enum_Animation_TrackType>`                 | :ref:`track_get_type<class_Animation_method_track_get_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`track_insert_key<class_Animation_method_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**                                                                                    |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`track_is_enabled<class_Animation_method_track_is_enabled>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`track_is_imported<class_Animation_method_track_is_imported>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_move_down<class_Animation_method_track_move_down>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                 |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_move_to<class_Animation_method_track_move_to>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**                                                                                                                                                                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_move_up<class_Animation_method_track_move_up>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_remove_key<class_Animation_method_track_remove_key>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**                                                                                                                                                                |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_remove_key_at_time<class_Animation_method_track_remove_key_at_time>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**                                                                                                                                               |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_enabled<class_Animation_method_track_set_enabled>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_imported<class_Animation_method_track_set_imported>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**                                                                                                                                                         |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_interpolation_loop_wrap<class_Animation_method_track_set_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**                                                                                                                      |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_interpolation_type<class_Animation_method_track_set_interpolation_type>` **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**                                                                                             |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_key_time<class_Animation_method_track_set_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**                                                                                                                            |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_key_transition<class_Animation_method_track_set_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**                                                                                                          |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_key_value<class_Animation_method_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**                                                                                                                         |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_set_path<class_Animation_method_track_set_path>` **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**                                                                                                                                                             |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`track_swap<class_Animation_method_track_swap>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**                                                                                                                                                                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`UpdateMode<enum_Animation_UpdateMode>`               | :ref:`value_track_get_update_mode<class_Animation_method_value_track_get_update_mode>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                 |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`                              | :ref:`value_track_interpolate<class_Animation_method_value_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`value_track_set_update_mode<class_Animation_method_value_track_set_update_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**                                                                                                                      |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_Animation_TrackType:
 
+.. rst-class:: classref-enumeration
+
+enum **TrackType**:
+
 .. _class_Animation_constant_TYPE_VALUE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_VALUE** = ``0``
+
+Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated :ref:`TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` and :ref:`TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` track types instead of :ref:`TYPE_VALUE<class_Animation_constant_TYPE_VALUE>` is recommended for performance reasons.
+
 .. _class_Animation_constant_TYPE_POSITION_3D:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_POSITION_3D** = ``1``
+
+3D position track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
+
 .. _class_Animation_constant_TYPE_ROTATION_3D:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_ROTATION_3D** = ``2``
+
+3D rotation track (values are stored in :ref:`Quaternion<class_Quaternion>`\ s).
+
 .. _class_Animation_constant_TYPE_SCALE_3D:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_SCALE_3D** = ``3``
+
+3D scale track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
+
 .. _class_Animation_constant_TYPE_BLEND_SHAPE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_BLEND_SHAPE** = ``4``
+
+Blend shape track.
+
 .. _class_Animation_constant_TYPE_METHOD:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_METHOD** = ``5``
+
+Method tracks call functions with given arguments per key.
+
 .. _class_Animation_constant_TYPE_BEZIER:
 
-.. _class_Animation_constant_TYPE_AUDIO:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_Animation_constant_TYPE_ANIMATION:
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_BEZIER** = ``6``
 
-enum **TrackType**:
+Bezier tracks are used to interpolate a value using custom curves. They can also be used to animate sub-properties of vectors and colors (e.g. alpha value of a :ref:`Color<class_Color>`).
 
-- **TYPE_VALUE** = **0** --- Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated :ref:`TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` and :ref:`TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` track types instead of :ref:`TYPE_VALUE<class_Animation_constant_TYPE_VALUE>` is recommended for performance reasons.
+.. _class_Animation_constant_TYPE_AUDIO:
 
-- **TYPE_POSITION_3D** = **1** --- 3D position track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_ROTATION_3D** = **2** --- 3D rotation track (values are stored in :ref:`Quaternion<class_Quaternion>`\ s).
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_AUDIO** = ``7``
 
-- **TYPE_SCALE_3D** = **3** --- 3D scale track (values are stored in :ref:`Vector3<class_Vector3>`\ s).
+Audio tracks are used to play an audio stream with either type of :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`. The stream can be trimmed and previewed in the animation.
 
-- **TYPE_BLEND_SHAPE** = **4** --- Blend shape track.
+.. _class_Animation_constant_TYPE_ANIMATION:
 
-- **TYPE_METHOD** = **5** --- Method tracks call functions with given arguments per key.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_BEZIER** = **6** --- Bezier tracks are used to interpolate a value using custom curves. They can also be used to animate sub-properties of vectors and colors (e.g. alpha value of a :ref:`Color<class_Color>`).
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_ANIMATION** = ``8``
 
-- **TYPE_AUDIO** = **7** --- Audio tracks are used to play an audio stream with either type of :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`. The stream can be trimmed and previewed in the animation.
+Animation tracks play animations in other :ref:`AnimationPlayer<class_AnimationPlayer>` nodes.
 
-- **TYPE_ANIMATION** = **8** --- Animation tracks play animations in other :ref:`AnimationPlayer<class_AnimationPlayer>` nodes.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_Animation_InterpolationType:
 
+.. rst-class:: classref-enumeration
+
+enum **InterpolationType**:
+
 .. _class_Animation_constant_INTERPOLATION_NEAREST:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_NEAREST** = ``0``
+
+No interpolation (nearest value).
+
 .. _class_Animation_constant_INTERPOLATION_LINEAR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_LINEAR** = ``1``
+
+Linear interpolation.
+
 .. _class_Animation_constant_INTERPOLATION_CUBIC:
 
-.. _class_Animation_constant_INTERPOLATION_LINEAR_ANGLE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_Animation_constant_INTERPOLATION_CUBIC_ANGLE:
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_CUBIC** = ``2``
 
-enum **InterpolationType**:
+Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to :ref:`INTERPOLATION_LINEAR<class_Animation_constant_INTERPOLATION_LINEAR>` for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return.
 
-- **INTERPOLATION_NEAREST** = **0** --- No interpolation (nearest value).
+.. _class_Animation_constant_INTERPOLATION_LINEAR_ANGLE:
 
-- **INTERPOLATION_LINEAR** = **1** --- Linear interpolation.
+.. rst-class:: classref-enumeration-constant
 
-- **INTERPOLATION_CUBIC** = **2** --- Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to :ref:`INTERPOLATION_LINEAR<class_Animation_constant_INTERPOLATION_LINEAR>` for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return.
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_LINEAR_ANGLE** = ``3``
 
-- **INTERPOLATION_LINEAR_ANGLE** = **3** --- Linear interpolation with shortest path rotation.
+Linear interpolation with shortest path rotation.
 
 \ **Note:** The result value is always normalized and may not match the key value.
 
-- **INTERPOLATION_CUBIC_ANGLE** = **4** --- Cubic interpolation with shortest path rotation.
+.. _class_Animation_constant_INTERPOLATION_CUBIC_ANGLE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_CUBIC_ANGLE** = ``4``
+
+Cubic interpolation with shortest path rotation.
 
 \ **Note:** The result value is always normalized and may not match the key value.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _enum_Animation_UpdateMode:
 
+.. rst-class:: classref-enumeration
+
+enum **UpdateMode**:
+
 .. _class_Animation_constant_UPDATE_CONTINUOUS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_CONTINUOUS** = ``0``
+
+Update between keyframes and hold the value.
+
 .. _class_Animation_constant_UPDATE_DISCRETE:
 
-.. _class_Animation_constant_UPDATE_TRIGGER:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_Animation_constant_UPDATE_CAPTURE:
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_DISCRETE** = ``1``
 
-enum **UpdateMode**:
+Update at the keyframes.
+
+.. _class_Animation_constant_UPDATE_CAPTURE:
 
-- **UPDATE_CONTINUOUS** = **0** --- Update between keyframes.
+.. rst-class:: classref-enumeration-constant
 
-- **UPDATE_DISCRETE** = **1** --- Update at the keyframes and hold the value.
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_CAPTURE** = ``2``
 
-- **UPDATE_TRIGGER** = **2** --- Update at the keyframes.
+Same as linear interpolation, but also interpolates from the current value (i.e. dynamically at runtime) if the first key isn't at 0 seconds.
 
-- **UPDATE_CAPTURE** = **3** --- Same as linear interpolation, but also interpolates from the current value (i.e. dynamically at runtime) if the first key isn't at 0 seconds.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_Animation_LoopMode:
 
+.. rst-class:: classref-enumeration
+
+enum **LoopMode**:
+
 .. _class_Animation_constant_LOOP_NONE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_Animation_LoopMode>` **LOOP_NONE** = ``0``
+
+At both ends of the animation, the animation will stop playing.
+
 .. _class_Animation_constant_LOOP_LINEAR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_Animation_LoopMode>` **LOOP_LINEAR** = ``1``
+
+At both ends of the animation, the animation will be repeated without changing the playback direction.
+
 .. _class_Animation_constant_LOOP_PINGPONG:
 
-enum **LoopMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_Animation_LoopMode>` **LOOP_PINGPONG** = ``2``
+
+Repeats playback and reverse playback at both ends of the animation.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_Animation_LoopedFlag:
+
+.. rst-class:: classref-enumeration
+
+enum **LoopedFlag**:
+
+.. _class_Animation_constant_LOOPED_FLAG_NONE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopedFlag<enum_Animation_LoopedFlag>` **LOOPED_FLAG_NONE** = ``0``
+
+This flag indicates that the animation proceeds without any looping.
+
+.. _class_Animation_constant_LOOPED_FLAG_END:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopedFlag<enum_Animation_LoopedFlag>` **LOOPED_FLAG_END** = ``1``
 
-- **LOOP_NONE** = **0** --- At both ends of the animation, the animation will stop playing.
+This flag indicates that the animation has reached the end of the animation and just after loop processed.
 
-- **LOOP_LINEAR** = **1** --- At both ends of the animation, the animation will be repeated without changing the playback direction.
+.. _class_Animation_constant_LOOPED_FLAG_START:
 
-- **LOOP_PINGPONG** = **2** --- Repeats playback and reverse playback at both ends of the animation.
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopedFlag<enum_Animation_LoopedFlag>` **LOOPED_FLAG_START** = ``2``
+
+This flag indicates that the animation has reached the start of the animation and just after loop processed.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Animation_property_length:
 
-- :ref:`float<class_float>` **length**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **length** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------+
-| *Default* | ``1.0``           |
-+-----------+-------------------+
-| *Setter*  | set_length(value) |
-+-----------+-------------------+
-| *Getter*  | get_length()      |
-+-----------+-------------------+
+- void **set_length** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_length** **(** **)**
 
 The total length of the animation (in seconds).
 
 \ **Note:** Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_property_loop_mode:
 
-- :ref:`LoopMode<enum_Animation_LoopMode>` **loop_mode**
+.. rst-class:: classref-property
+
+:ref:`LoopMode<enum_Animation_LoopMode>` **loop_mode** = ``0``
 
-+-----------+----------------------+
-| *Default* | ``0``                |
-+-----------+----------------------+
-| *Setter*  | set_loop_mode(value) |
-+-----------+----------------------+
-| *Getter*  | get_loop_mode()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_loop_mode** **(** :ref:`LoopMode<enum_Animation_LoopMode>` value **)**
+- :ref:`LoopMode<enum_Animation_LoopMode>` **get_loop_mode** **(** **)**
 
 Determines the behavior of both ends of the animation timeline during animation playback. This is used for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_property_step:
 
-- :ref:`float<class_float>` **step**
+.. rst-class:: classref-property
 
-+-----------+-----------------+
-| *Default* | ``0.1``         |
-+-----------+-----------------+
-| *Setter*  | set_step(value) |
-+-----------+-----------------+
-| *Getter*  | get_step()      |
-+-----------+-----------------+
+:ref:`float<class_float>` **step** = ``0.1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_step** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_step** **(** **)**
 
 The animation step value.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Animation_method_add_track:
 
-- :ref:`int<class_int>` **add_track** **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **add_track** **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**
 
 Adds a track to the Animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_animation_track_get_key_animation:
 
-- :ref:`StringName<class_StringName>` **animation_track_get_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **animation_track_get_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the animation name at the key identified by ``key_idx``. The ``track_idx`` must be the index of an Animation Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_animation_track_insert_key:
 
-- :ref:`int<class_int>` **animation_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **animation_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**
 
 Inserts a key with value ``animation`` at the given ``time`` (in seconds). The ``track_idx`` must be the index of an Animation Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_animation_track_set_key_animation:
 
-- void **animation_track_set_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**
+.. rst-class:: classref-method
+
+void **animation_track_set_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**
 
 Sets the key identified by ``key_idx`` to value ``animation``. The ``track_idx`` must be the index of an Animation Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_get_key_end_offset:
 
-- :ref:`float<class_float>` **audio_track_get_key_end_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **audio_track_get_key_end_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the end offset of the key identified by ``key_idx``. The ``track_idx`` must be the index of an Audio Track.
 
 End offset is the number of seconds cut off at the ending of the audio stream.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_get_key_start_offset:
 
-- :ref:`float<class_float>` **audio_track_get_key_start_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **audio_track_get_key_start_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the start offset of the key identified by ``key_idx``. The ``track_idx`` must be the index of an Audio Track.
 
 Start offset is the number of seconds cut off at the beginning of the audio stream.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_get_key_stream:
 
-- :ref:`Resource<class_Resource>` **audio_track_get_key_stream** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Resource<class_Resource>` **audio_track_get_key_stream** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the audio stream of the key identified by ``key_idx``. The ``track_idx`` must be the index of an Audio Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_insert_key:
 
-- :ref:`int<class_int>` **audio_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **audio_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**
 
 Inserts an Audio Track key at the given ``time`` in seconds. The ``track_idx`` must be the index of an Audio Track.
 
 \ ``stream`` is the :ref:`AudioStream<class_AudioStream>` resource to play. ``start_offset`` is the number of seconds cut off at the beginning of the audio stream, while ``end_offset`` is at the ending.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_set_key_end_offset:
 
-- void **audio_track_set_key_end_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
+.. rst-class:: classref-method
+
+void **audio_track_set_key_end_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
 
 Sets the end offset of the key identified by ``key_idx`` to value ``offset``. The ``track_idx`` must be the index of an Audio Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_set_key_start_offset:
 
-- void **audio_track_set_key_start_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
+.. rst-class:: classref-method
+
+void **audio_track_set_key_start_offset** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
 
 Sets the start offset of the key identified by ``key_idx`` to value ``offset``. The ``track_idx`` must be the index of an Audio Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_audio_track_set_key_stream:
 
-- void **audio_track_set_key_stream** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**
+.. rst-class:: classref-method
+
+void **audio_track_set_key_stream** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**
 
 Sets the stream of the key identified by ``key_idx`` to value ``stream``. The ``track_idx`` must be the index of an Audio Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_get_key_in_handle:
 
-- :ref:`Vector2<class_Vector2>` **bezier_track_get_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **bezier_track_get_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the in handle of the key identified by ``key_idx``. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_get_key_out_handle:
 
-- :ref:`Vector2<class_Vector2>` **bezier_track_get_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **bezier_track_get_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the out handle of the key identified by ``key_idx``. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_get_key_value:
 
-- :ref:`float<class_float>` **bezier_track_get_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **bezier_track_get_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the value of the key identified by ``key_idx``. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_insert_key:
 
-- :ref:`int<class_int>` **bezier_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **bezier_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)**
 
 Inserts a Bezier Track key at the given ``time`` in seconds. The ``track_idx`` must be the index of a Bezier Track.
 
 \ ``in_handle`` is the left-side weight of the added Bezier curve point, ``out_handle`` is the right-side one, while ``value`` is the actual value at this point.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_interpolate:
 
-- :ref:`float<class_float>` **bezier_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **bezier_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|
 
 Returns the interpolated value at the given ``time`` (in seconds). The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_set_key_in_handle:
 
-- void **bezier_track_set_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
+.. rst-class:: classref-method
+
+void **bezier_track_set_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
 
 Sets the in handle of the key identified by ``key_idx`` to value ``in_handle``. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_set_key_out_handle:
 
-- void **bezier_track_set_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
+.. rst-class:: classref-method
+
+void **bezier_track_set_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
 
 Sets the out handle of the key identified by ``key_idx`` to value ``out_handle``. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_bezier_track_set_key_value:
 
-- void **bezier_track_set_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**
+.. rst-class:: classref-method
+
+void **bezier_track_set_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**
 
 Sets the value of the key identified by ``key_idx`` to the given value. The ``track_idx`` must be the index of a Bezier Track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_blend_shape_track_insert_key:
 
-- :ref:`int<class_int>` **blend_shape_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **blend_shape_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**
 
 Inserts a key in a given blend shape track. Returns the key index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clear the animation (clear all tracks and reset all).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_compress:
 
-- void **compress** **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**
+.. rst-class:: classref-method
 
-Compress the animation and all its tracks in-place. This will make :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` return ``true`` once called on this ``Animation``. Compressed tracks require less memory to be played, and are designed to be used for complex 3D animations (such as cutscenes) imported from external 3D software. Compression is lossy, but the difference is usually not noticeable in real world conditions.
+void **compress** **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**
+
+Compress the animation and all its tracks in-place. This will make :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` return ``true`` once called on this **Animation**. Compressed tracks require less memory to be played, and are designed to be used for complex 3D animations (such as cutscenes) imported from external 3D software. Compression is lossy, but the difference is usually not noticeable in real world conditions.
 
 \ **Note:** Compressed tracks have various limitations (such as not being editable from the editor), so only use compressed animations if you actually need them.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_copy_track:
 
-- void **copy_track** **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**
+.. rst-class:: classref-method
+
+void **copy_track** **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**
 
 Adds a new track that is a copy of the given track from ``to_animation``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_find_track:
 
-- :ref:`int<class_int>` **find_track** **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **find_track** **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|
 
 Returns the index of the specified track. If the track is not found, return -1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_get_track_count:
 
-- :ref:`int<class_int>` **get_track_count** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns the amount of tracks in the animation.
-
-----
-
-.. _class_Animation_method_method_track_get_key_indices:
+:ref:`int<class_int>` **get_track_count** **(** **)** |const|
 
-- :ref:`PackedInt32Array<class_PackedInt32Array>` **method_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
+Returns the amount of tracks in the animation.
 
-Returns all the key indices of a method track, given a position and delta time.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_Animation_method_method_track_get_name:
 
-- :ref:`StringName<class_StringName>` **method_track_get_name** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **method_track_get_name** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the method name of a method track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_method_track_get_params:
 
-- :ref:`Array<class_Array>` **method_track_get_params** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **method_track_get_params** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the arguments values to be called on a method track for a given key in a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_position_track_insert_key:
 
-- :ref:`int<class_int>` **position_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **position_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**
 
 Inserts a key in a given 3D position track. Returns the key index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_remove_track:
 
-- void **remove_track** **(** :ref:`int<class_int>` track_idx **)**
+.. rst-class:: classref-method
+
+void **remove_track** **(** :ref:`int<class_int>` track_idx **)**
 
 Removes a track by specifying the track index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_rotation_track_insert_key:
 
-- :ref:`int<class_int>` **rotation_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **rotation_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**
 
 Inserts a key in a given 3D rotation track. Returns the key index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_scale_track_insert_key:
 
-- :ref:`int<class_int>` **scale_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **scale_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**
 
 Inserts a key in a given 3D scale track. Returns the key index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_find_key:
 
-- :ref:`int<class_int>` **track_find_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **track_find_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|
 
 Finds the key index by time in a given track. Optionally, only find it if the exact time is given.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_interpolation_loop_wrap:
 
-- :ref:`bool<class_bool>` **track_get_interpolation_loop_wrap** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **track_get_interpolation_loop_wrap** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns ``true`` if the track at ``track_idx`` wraps the interpolation loop. New tracks wrap the interpolation loop by default.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_interpolation_type:
 
-- :ref:`InterpolationType<enum_Animation_InterpolationType>` **track_get_interpolation_type** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **track_get_interpolation_type** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns the interpolation type of a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_key_count:
 
-- :ref:`int<class_int>` **track_get_key_count** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **track_get_key_count** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns the number of keys in a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_key_time:
 
-- :ref:`float<class_float>` **track_get_key_time** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **track_get_key_time** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the time at which the key is located.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_key_transition:
 
-- :ref:`float<class_float>` **track_get_key_transition** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **track_get_key_transition** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the transition curve (easing) for a specific key (see the built-in math function :ref:`@GlobalScope.ease<class_@GlobalScope_method_ease>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_key_value:
 
-- :ref:`Variant<class_Variant>` **track_get_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **track_get_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
 
 Returns the value of a given key in a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_path:
 
-- :ref:`NodePath<class_NodePath>` **track_get_path** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`NodePath<class_NodePath>` **track_get_path** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Gets the path of a track. For more information on the path format, see :ref:`track_set_path<class_Animation_method_track_set_path>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_get_type:
 
-- :ref:`TrackType<enum_Animation_TrackType>` **track_get_type** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`TrackType<enum_Animation_TrackType>` **track_get_type** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Gets the type of a track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_insert_key:
 
-- :ref:`int<class_int>` **track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**
 
 Inserts a generic key in a given track. Returns the key index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_is_compressed:
 
-- :ref:`bool<class_bool>` **track_is_compressed** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **track_is_compressed** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns ``true`` if the track is compressed, ``false`` otherwise. See also :ref:`compress<class_Animation_method_compress>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_is_enabled:
 
-- :ref:`bool<class_bool>` **track_is_enabled** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **track_is_enabled** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns ``true`` if the track at index ``track_idx`` is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_is_imported:
 
-- :ref:`bool<class_bool>` **track_is_imported** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **track_is_imported** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns ``true`` if the given track is imported. Else, return ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_move_down:
 
-- void **track_move_down** **(** :ref:`int<class_int>` track_idx **)**
+.. rst-class:: classref-method
+
+void **track_move_down** **(** :ref:`int<class_int>` track_idx **)**
 
 Moves a track down.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_move_to:
 
-- void **track_move_to** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**
+.. rst-class:: classref-method
+
+void **track_move_to** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**
 
 Changes the index position of track ``track_idx`` to the one defined in ``to_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_move_up:
 
-- void **track_move_up** **(** :ref:`int<class_int>` track_idx **)**
+.. rst-class:: classref-method
+
+void **track_move_up** **(** :ref:`int<class_int>` track_idx **)**
 
 Moves a track up.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_remove_key:
 
-- void **track_remove_key** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**
+.. rst-class:: classref-method
+
+void **track_remove_key** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**
 
 Removes a key by index in a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_remove_key_at_time:
 
-- void **track_remove_key_at_time** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**
+.. rst-class:: classref-method
+
+void **track_remove_key_at_time** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**
 
 Removes a key at ``time`` in a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_enabled:
 
-- void **track_set_enabled** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**
+.. rst-class:: classref-method
+
+void **track_set_enabled** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**
 
 Enables/disables the given track. Tracks are enabled by default.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_imported:
 
-- void **track_set_imported** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**
+.. rst-class:: classref-method
+
+void **track_set_imported** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**
 
 Sets the given track as imported or not.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_interpolation_loop_wrap:
 
-- void **track_set_interpolation_loop_wrap** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**
+.. rst-class:: classref-method
+
+void **track_set_interpolation_loop_wrap** **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**
 
 If ``true``, the track at ``track_idx`` wraps the interpolation loop.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_interpolation_type:
 
-- void **track_set_interpolation_type** **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**
+.. rst-class:: classref-method
+
+void **track_set_interpolation_type** **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**
 
 Sets the interpolation type of a given track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_key_time:
 
-- void **track_set_key_time** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**
+.. rst-class:: classref-method
+
+void **track_set_key_time** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**
 
 Sets the time of an existing key.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_key_transition:
 
-- void **track_set_key_transition** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**
+.. rst-class:: classref-method
+
+void **track_set_key_transition** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**
 
 Sets the transition curve (easing) for a specific key (see the built-in math function :ref:`@GlobalScope.ease<class_@GlobalScope_method_ease>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_key_value:
 
-- void **track_set_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **track_set_key_value** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**
 
 Sets the value of an existing key.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_set_path:
 
-- void **track_set_path** **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**
+.. rst-class:: classref-method
+
+void **track_set_path** **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**
 
 Sets the path of a track. Paths must be valid scene-tree paths to a node and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ``":"``.
 
 For example, ``"character/skeleton:ankle"`` or ``"character/mesh:transform/local"``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_track_swap:
 
-- void **track_swap** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**
-
-Swaps the track ``track_idx``'s index position with the track ``with_idx``.
-
-----
+.. rst-class:: classref-method
 
-.. _class_Animation_method_value_track_get_key_indices:
+void **track_swap** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**
 
-- :ref:`PackedInt32Array<class_PackedInt32Array>` **value_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
+Swaps the track ``track_idx``'s index position with the track ``with_idx``.
 
-Returns all the key indices of a value track, given a position and delta time.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_Animation_method_value_track_get_update_mode:
 
-- :ref:`UpdateMode<enum_Animation_UpdateMode>` **value_track_get_update_mode** **(** :ref:`int<class_int>` track_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **value_track_get_update_mode** **(** :ref:`int<class_int>` track_idx **)** |const|
 
 Returns the update mode of a value track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_value_track_interpolate:
 
-- :ref:`Variant<class_Variant>` **value_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **value_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|
 
 Returns the interpolated value at the given time (in seconds). The ``track_idx`` must be the index of a value track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_value_track_set_update_mode:
 
-- void **value_track_set_update_mode** **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**
+.. rst-class:: classref-method
+
+void **value_track_set_update_mode** **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**
 
 Sets the update mode (see :ref:`UpdateMode<enum_Animation_UpdateMode>`) of a value track.
 

+ 105 - 29
classes/class_animationlibrary.rst

@@ -14,126 +14,202 @@ AnimationLibrary
 
 Container for :ref:`Animation<class_Animation>` resources.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 An animation library stores a set of animations accessible through :ref:`StringName<class_StringName>` keys, for use with :ref:`AnimationPlayer<class_AnimationPlayer>` nodes.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Animation tutorial index <../tutorials/animation/index>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------+-----------------------------------------------------+--------+
-| :ref:`Dictionary<class_Dictionary>` | :ref:`_data<class_AnimationLibrary_property__data>` | ``{}`` |
-+-------------------------------------+-----------------------------------------------------+--------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+-----------------------------------------------------+--------+
+   | :ref:`Dictionary<class_Dictionary>` | :ref:`_data<class_AnimationLibrary_property__data>` | ``{}`` |
+   +-------------------------------------+-----------------------------------------------------+--------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`add_animation<class_AnimationLibrary_method_add_animation>` **(** :ref:`StringName<class_StringName>` name, :ref:`Animation<class_Animation>` animation **)**       |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Animation<class_Animation>`     | :ref:`get_animation<class_AnimationLibrary_method_get_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                            |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName[]<class_StringName>` | :ref:`get_animation_list<class_AnimationLibrary_method_get_animation_list>` **(** **)** |const|                                                                           |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`has_animation<class_AnimationLibrary_method_has_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                            |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`remove_animation<class_AnimationLibrary_method_remove_animation>` **(** :ref:`StringName<class_StringName>` name **)**                                              |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`rename_animation<class_AnimationLibrary_method_rename_animation>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)** |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`add_animation<class_AnimationLibrary_method_add_animation>` **(** :ref:`StringName<class_StringName>` name, :ref:`Animation<class_Animation>` animation **)**       |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Animation<class_Animation>`     | :ref:`get_animation<class_AnimationLibrary_method_get_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                            |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName[]<class_StringName>` | :ref:`get_animation_list<class_AnimationLibrary_method_get_animation_list>` **(** **)** |const|                                                                           |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`has_animation<class_AnimationLibrary_method_has_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                            |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`remove_animation<class_AnimationLibrary_method_remove_animation>` **(** :ref:`StringName<class_StringName>` name **)**                                              |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`rename_animation<class_AnimationLibrary_method_rename_animation>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)** |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationLibrary_signal_animation_added:
 
-- **animation_added** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-signal
+
+**animation_added** **(** :ref:`StringName<class_StringName>` name **)**
 
 Emitted when an :ref:`Animation<class_Animation>` is added, under the key ``name``.
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AnimationLibrary_signal_animation_changed:
+
+.. rst-class:: classref-signal
+
+**animation_changed** **(** :ref:`StringName<class_StringName>` name **)**
+
+Emitted when there's a change in one of the animations, e.g. tracks are added, moved or have changed paths. ``name`` is the key of the animation that was changed.
+
+See also :ref:`Resource.changed<class_Resource_signal_changed>`, which this acts as a relay for.
+
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_signal_animation_removed:
 
-- **animation_removed** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-signal
+
+**animation_removed** **(** :ref:`StringName<class_StringName>` name **)**
 
 Emitted when an :ref:`Animation<class_Animation>` stored with the key ``name`` is removed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_signal_animation_renamed:
 
-- **animation_renamed** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` to_name **)**
+.. rst-class:: classref-signal
+
+**animation_renamed** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` to_name **)**
 
 Emitted when the key for an :ref:`Animation<class_Animation>` is changed, from ``name`` to ``to_name``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AnimationLibrary_property__data:
 
-- :ref:`Dictionary<class_Dictionary>` **_data**
+.. rst-class:: classref-property
 
-+-----------+--------+
-| *Default* | ``{}`` |
-+-----------+--------+
+:ref:`Dictionary<class_Dictionary>` **_data** = ``{}``
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationLibrary_method_add_animation:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **add_animation** **(** :ref:`StringName<class_StringName>` name, :ref:`Animation<class_Animation>` animation **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **add_animation** **(** :ref:`StringName<class_StringName>` name, :ref:`Animation<class_Animation>` animation **)**
 
 Adds the ``animation`` to the library, accessible by the key ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_method_get_animation:
 
-- :ref:`Animation<class_Animation>` **get_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Animation<class_Animation>` **get_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the :ref:`Animation<class_Animation>` with the key ``name``. If the animation does not exist, ``null`` is returned and an error is logged.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_method_get_animation_list:
 
-- :ref:`StringName[]<class_StringName>` **get_animation_list** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName[]<class_StringName>` **get_animation_list** **(** **)** |const|
 
 Returns the keys for the :ref:`Animation<class_Animation>`\ s stored in the library.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_method_has_animation:
 
-- :ref:`bool<class_bool>` **has_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns ``true`` if the library stores an :ref:`Animation<class_Animation>` with ``name`` as the key.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_method_remove_animation:
 
-- void **remove_animation** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **remove_animation** **(** :ref:`StringName<class_StringName>` name **)**
 
 Removes the :ref:`Animation<class_Animation>` with the key ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationLibrary_method_rename_animation:
 
-- void **rename_animation** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**
+.. rst-class:: classref-method
+
+void **rename_animation** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**
 
 Changes the key of the :ref:`Animation<class_Animation>` associated with the key ``name`` to ``newname``.
 

+ 206 - 71
classes/class_animationnode.rst

@@ -16,6 +16,8 @@ AnimationNode
 
 Base resource for :ref:`AnimationTree<class_AnimationTree>` nodes.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,168 +25,255 @@ Base resource for :ref:`AnimationTree<class_AnimationTree>` nodes. In general, i
 
 Inherit this when creating nodes mainly for use in :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`, otherwise :ref:`AnimationRootNode<class_AnimationRootNode>` should be used instead.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+--------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`filter_enabled<class_AnimationNode_property_filter_enabled>` |
-+-------------------------+--------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+--------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`filter_enabled<class_AnimationNode_property_filter_enabled>` |
+   +-------------------------+--------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`               | :ref:`_get_caption<class_AnimationNode_method__get_caption>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                        |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNode<class_AnimationNode>` | :ref:`_get_child_by_name<class_AnimationNode_method__get_child_by_name>` **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|                                                                                                                                                                                                                                                   |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>`       | :ref:`_get_child_nodes<class_AnimationNode_method__get_child_nodes>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`             | :ref:`_get_parameter_default_value<class_AnimationNode_method__get_parameter_default_value>` **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|                                                                                                                                                                                                                          |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                 | :ref:`_get_parameter_list<class_AnimationNode_method__get_parameter_list>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                          |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`_has_filter<class_AnimationNode_method__has_filter>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                          |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`_process<class_AnimationNode_method__process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root **)** |virtual| |const|                                                                                                                                                                                                                |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                                                               |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`int<class_int>` pingponged=0 **)**                                                             |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`blend_input<class_AnimationNode_method_blend_input>` **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**                                                      |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)** |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                     | :ref:`get_input_count<class_AnimationNode_method_get_input_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                            |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`               | :ref:`get_input_name<class_AnimationNode_method_get_input_name>` **(** :ref:`int<class_int>` input **)**                                                                                                                                                                                                                                                                                          |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`             | :ref:`get_parameter<class_AnimationNode_method_get_parameter>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                                                                                                                                                       |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                                                                     |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`remove_input<class_AnimationNode_method_remove_input>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                                                                                              |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_filter_path<class_AnimationNode_method_set_filter_path>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                               |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_parameter<class_AnimationNode_method_set_parameter>` **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                                                          |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`               | :ref:`_get_caption<class_AnimationNode_method__get_caption>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                                  |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationNode<class_AnimationNode>` | :ref:`_get_child_by_name<class_AnimationNode_method__get_child_by_name>` **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|                                                                                                                                                                                                                                                             |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Dictionary<class_Dictionary>`       | :ref:`_get_child_nodes<class_AnimationNode_method__get_child_nodes>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                          |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`             | :ref:`_get_parameter_default_value<class_AnimationNode_method__get_parameter_default_value>` **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|                                                                                                                                                                                                                                    |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                 | :ref:`_get_parameter_list<class_AnimationNode_method__get_parameter_list>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                    |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`_has_filter<class_AnimationNode_method__has_filter>` **(** **)** |virtual| |const|                                                                                                                                                                                                                                                                                                                    |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                 | :ref:`_process<class_AnimationNode_method__process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking **)** |virtual| |const|                                                                                                                                                                                                                |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                                                                         |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`LoopedFlag<enum_Animation_LoopedFlag>` looped_flag=0 **)**                                     |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                 | :ref:`blend_input<class_AnimationNode_method_blend_input>` **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**                                                      |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                 | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)** |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                     | :ref:`get_input_count<class_AnimationNode_method_get_input_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                                                      |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`               | :ref:`get_input_name<class_AnimationNode_method_get_input_name>` **(** :ref:`int<class_int>` input **)**                                                                                                                                                                                                                                                                                                    |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`             | :ref:`get_parameter<class_AnimationNode_method_get_parameter>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                                                                                                                                                                 |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                                                                               |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`remove_input<class_AnimationNode_method_remove_input>` **(** :ref:`int<class_int>` index **)**                                                                                                                                                                                                                                                                                                        |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`set_filter_path<class_AnimationNode_method_set_filter_path>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**                                                                                                                                                                                                                                                         |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`set_parameter<class_AnimationNode_method_set_parameter>` **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                                                                    |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationNode_signal_removed_from_graph:
 
-- **removed_from_graph** **(** **)**
+.. rst-class:: classref-signal
+
+**removed_from_graph** **(** **)**
 
 Emitted when the node was removed from the graph.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_signal_tree_changed:
 
-- **tree_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**tree_changed** **(** **)**
 
 Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are :ref:`AnimationNodeBlendSpace1D<class_AnimationNodeBlendSpace1D>`, :ref:`AnimationNodeBlendSpace2D<class_AnimationNodeBlendSpace2D>`, :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`, and :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AnimationNode_FilterAction:
 
+.. rst-class:: classref-enumeration
+
+enum **FilterAction**:
+
 .. _class_AnimationNode_constant_FILTER_IGNORE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_IGNORE** = ``0``
+
+Do not use filtering.
+
 .. _class_AnimationNode_constant_FILTER_PASS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_PASS** = ``1``
+
+Paths matching the filter will be allowed to pass.
+
 .. _class_AnimationNode_constant_FILTER_STOP:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_STOP** = ``2``
+
+Paths matching the filter will be discarded.
+
 .. _class_AnimationNode_constant_FILTER_BLEND:
 
-enum **FilterAction**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_BLEND** = ``3``
 
-- **FILTER_IGNORE** = **0** --- Do not use filtering.
+Paths matching the filter will be blended (by the blend value).
 
-- **FILTER_PASS** = **1** --- Paths matching the filter will be allowed to pass.
+.. rst-class:: classref-section-separator
 
-- **FILTER_STOP** = **2** --- Paths matching the filter will be discarded.
+----
 
-- **FILTER_BLEND** = **3** --- Paths matching the filter will be blended (by the blend value).
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNode_property_filter_enabled:
 
-- :ref:`bool<class_bool>` **filter_enabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **filter_enabled**
+
+.. rst-class:: classref-property-setget
 
-+----------+---------------------------+
-| *Setter* | set_filter_enabled(value) |
-+----------+---------------------------+
-| *Getter* | is_filter_enabled()       |
-+----------+---------------------------+
+- void **set_filter_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_filter_enabled** **(** **)**
 
 If ``true``, filtering is enabled.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationNode_method__get_caption:
 
-- :ref:`String<class_String>` **_get_caption** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **_get_caption** **(** **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to override the text caption for this node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__get_child_by_name:
 
-- :ref:`AnimationNode<class_AnimationNode>` **_get_child_by_name** **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNode<class_AnimationNode>` **_get_child_by_name** **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a child node by its ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__get_child_nodes:
 
-- :ref:`Dictionary<class_Dictionary>` **_get_child_nodes** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`Dictionary<class_Dictionary>` **_get_child_nodes** **(** **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return all children nodes in order as a ``name: node`` dictionary.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__get_parameter_default_value:
 
-- :ref:`Variant<class_Variant>` **_get_parameter_default_value** **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **_get_parameter_default_value** **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return the default value of a ``parameter``. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__get_parameter_list:
 
-- :ref:`Array<class_Array>` **_get_parameter_list** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **_get_parameter_list** **(** **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a list of the properties on this node. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to :ref:`Object.get_property_list<class_Object_method_get_property_list>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__has_filter:
 
-- :ref:`bool<class_bool>` **_has_filter** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_has_filter** **(** **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return whether the blend tree editor should display filter editing on this node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method__process:
 
-- :ref:`float<class_float>` **_process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking **)** |virtual| |const|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to run some code when this node is processed. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute.
 
@@ -192,91 +281,137 @@ Here, call the :ref:`blend_input<class_AnimationNode_method_blend_input>`, :ref:
 
 This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_add_input:
 
-- void **add_input** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **add_input** **(** :ref:`String<class_String>` name **)**
 
 Adds an input to the node. This is only useful for nodes created for use in an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_blend_animation:
 
-- void **blend_animation** **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`int<class_int>` pingponged=0 **)**
+.. rst-class:: classref-method
+
+void **blend_animation** **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`LoopedFlag<enum_Animation_LoopedFlag>` looped_flag=0 **)**
 
 Blend an animation by ``blend`` amount (name must be valid in the linked :ref:`AnimationPlayer<class_AnimationPlayer>`). A ``time`` and ``delta`` may be passed, as well as whether ``seeked`` happened.
 
+A ``looped_flag`` is used by internal processing immediately after the loop. See also :ref:`LoopedFlag<enum_Animation_LoopedFlag>`.
+
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_blend_input:
 
-- :ref:`float<class_float>` **blend_input** **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **blend_input** **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
 
 Blend an input. This is only useful for nodes created for an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute. A filter mode may be optionally passed (see :ref:`FilterAction<enum_AnimationNode_FilterAction>` for options).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_blend_node:
 
-- :ref:`float<class_float>` **blend_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` seek_root, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **blend_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
 
 Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from :ref:`AnimationRootNode<class_AnimationRootNode>` instead, else editors will not display your node for addition.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_get_input_count:
 
-- :ref:`int<class_int>` **get_input_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_input_count** **(** **)** |const|
 
 Amount of inputs in this node, only useful for nodes that go into :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_get_input_name:
 
-- :ref:`String<class_String>` **get_input_name** **(** :ref:`int<class_int>` input **)**
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_input_name** **(** :ref:`int<class_int>` input **)**
 
 Gets the name of an input by index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_get_parameter:
 
-- :ref:`Variant<class_Variant>` **get_parameter** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **get_parameter** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_is_path_filtered:
 
-- :ref:`bool<class_bool>` **is_path_filtered** **(** :ref:`NodePath<class_NodePath>` path **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_path_filtered** **(** :ref:`NodePath<class_NodePath>` path **)** |const|
 
 Returns whether the given path is filtered.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_remove_input:
 
-- void **remove_input** **(** :ref:`int<class_int>` index **)**
+.. rst-class:: classref-method
+
+void **remove_input** **(** :ref:`int<class_int>` index **)**
 
 Removes an input, call this only when inactive.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_set_filter_path:
 
-- void **set_filter_path** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_filter_path** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**
 
 Adds or removes a path for the filter.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNode_method_set_parameter:
 
-- void **set_parameter** **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **set_parameter** **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**
 
 Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
 

+ 4 - 0
classes/class_animationnodeadd2.rst

@@ -14,11 +14,15 @@ AnimationNodeAdd2
 
 Blends two animations additively inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A resource to add to an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. Blends two animations additively based on an amount value in the ``[0.0, 1.0]`` range.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_animationnodeadd3.rst

@@ -14,6 +14,8 @@ AnimationNodeAdd3
 
 Blends two of three animations additively inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -27,6 +29,8 @@ This node has three inputs:
 
 - A +add animation to blend with when the blend amount is in the ``[0.0, 1.0]`` range
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 55 - 24
classes/class_animationnodeanimation.rst

@@ -14,11 +14,15 @@ AnimationNodeAnimation
 
 Input animation to use in an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A resource to add to an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. Only features one output set using the :ref:`animation<class_AnimationNodeAnimation_property_animation>` property. Use it as an input for :ref:`AnimationNode<class_AnimationNode>` that blend animations together.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -28,60 +32,87 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------------------+-------------------------------------------------------------------+---------+
-| :ref:`StringName<class_StringName>`                   | :ref:`animation<class_AnimationNodeAnimation_property_animation>` | ``&""`` |
-+-------------------------------------------------------+-------------------------------------------------------------------+---------+
-| :ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` | :ref:`play_mode<class_AnimationNodeAnimation_property_play_mode>` | ``0``   |
-+-------------------------------------------------------+-------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+-------------------------------------------------------------------+---------+
+   | :ref:`StringName<class_StringName>`                   | :ref:`animation<class_AnimationNodeAnimation_property_animation>` | ``&""`` |
+   +-------------------------------------------------------+-------------------------------------------------------------------+---------+
+   | :ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` | :ref:`play_mode<class_AnimationNodeAnimation_property_play_mode>` | ``0``   |
+   +-------------------------------------------------------+-------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AnimationNodeAnimation_PlayMode:
 
+.. rst-class:: classref-enumeration
+
+enum **PlayMode**:
+
 .. _class_AnimationNodeAnimation_constant_PLAY_MODE_FORWARD:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` **PLAY_MODE_FORWARD** = ``0``
+
+
+
 .. _class_AnimationNodeAnimation_constant_PLAY_MODE_BACKWARD:
 
-enum **PlayMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` **PLAY_MODE_BACKWARD** = ``1``
 
-- **PLAY_MODE_FORWARD** = **0**
 
-- **PLAY_MODE_BACKWARD** = **1**
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeAnimation_property_animation:
 
-- :ref:`StringName<class_StringName>` **animation**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **animation** = ``&""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``&""``              |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+- void **set_animation** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_animation** **(** **)**
 
 Animation to use as an output. It is one of the animations provided by :ref:`AnimationTree.anim_player<class_AnimationTree_property_anim_player>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeAnimation_property_play_mode:
 
-- :ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` **play_mode**
+.. rst-class:: classref-property
+
+:ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` **play_mode** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``0``                |
-+-----------+----------------------+
-| *Setter*  | set_play_mode(value) |
-+-----------+----------------------+
-| *Getter*  | get_play_mode()      |
-+-----------+----------------------+
+- void **set_play_mode** **(** :ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` value **)**
+- :ref:`PlayMode<enum_AnimationNodeAnimation_PlayMode>` **get_play_mode** **(** **)**
 
 Determines the playback direction of the animation.
 

+ 4 - 0
classes/class_animationnodeblend2.rst

@@ -14,11 +14,15 @@ AnimationNodeBlend2
 
 Blends two animations linearly inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A resource to add to an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. Blends two animations linearly based on an amount value in the ``[0.0, 1.0]`` range.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_animationnodeblend3.rst

@@ -14,6 +14,8 @@ AnimationNodeBlend3
 
 Blends two of three animations linearly inside of an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -27,6 +29,8 @@ This node has three inputs:
 
 - A +blend animation to blend with when the blend amount is in the ``[0.0, 1.0]`` range
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 128 - 73
classes/class_animationnodeblendspace1d.rst

@@ -14,6 +14,8 @@ AnimationNodeBlendSpace1D
 
 Blends linearly between two of any number of :ref:`AnimationNode<class_AnimationNode>` of any type placed on a virtual axis.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -25,182 +27,235 @@ Outputs the linear blend of the two :ref:`AnimationNode<class_AnimationNode>`\ s
 
 You can set the extents of the axis using the :ref:`min_space<class_AnimationNodeBlendSpace1D_property_min_space>` and :ref:`max_space<class_AnimationNodeBlendSpace1D_property_max_space>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+--------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`   | :ref:`max_space<class_AnimationNodeBlendSpace1D_property_max_space>`     | ``1.0``     |
-+-----------------------------+--------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`   | :ref:`min_space<class_AnimationNodeBlendSpace1D_property_min_space>`     | ``-1.0``    |
-+-----------------------------+--------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`   | :ref:`snap<class_AnimationNodeBlendSpace1D_property_snap>`               | ``0.1``     |
-+-----------------------------+--------------------------------------------------------------------------+-------------+
-| :ref:`bool<class_bool>`     | :ref:`sync<class_AnimationNodeBlendSpace1D_property_sync>`               | ``false``   |
-+-----------------------------+--------------------------------------------------------------------------+-------------+
-| :ref:`String<class_String>` | :ref:`value_label<class_AnimationNodeBlendSpace1D_property_value_label>` | ``"value"`` |
-+-----------------------------+--------------------------------------------------------------------------+-------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`   | :ref:`max_space<class_AnimationNodeBlendSpace1D_property_max_space>`     | ``1.0``     |
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`   | :ref:`min_space<class_AnimationNodeBlendSpace1D_property_min_space>`     | ``-1.0``    |
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`   | :ref:`snap<class_AnimationNodeBlendSpace1D_property_snap>`               | ``0.1``     |
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+   | :ref:`bool<class_bool>`     | :ref:`sync<class_AnimationNodeBlendSpace1D_property_sync>`               | ``false``   |
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+   | :ref:`String<class_String>` | :ref:`value_label<class_AnimationNodeBlendSpace1D_property_value_label>` | ``"value"`` |
+   +-----------------------------+--------------------------------------------------------------------------+-------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`add_blend_point<class_AnimationNodeBlendSpace1D_method_add_blend_point>` **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`float<class_float>` pos, :ref:`int<class_int>` at_index=-1 **)** |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`get_blend_point_count<class_AnimationNodeBlendSpace1D_method_get_blend_point_count>` **(** **)** |const|                                                                                                      |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationRootNode<class_AnimationRootNode>` | :ref:`get_blend_point_node<class_AnimationNodeBlendSpace1D_method_get_blend_point_node>` **(** :ref:`int<class_int>` point **)** |const|                                                                            |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                         | :ref:`get_blend_point_position<class_AnimationNodeBlendSpace1D_method_get_blend_point_position>` **(** :ref:`int<class_int>` point **)** |const|                                                                    |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`remove_blend_point<class_AnimationNodeBlendSpace1D_method_remove_blend_point>` **(** :ref:`int<class_int>` point **)**                                                                                        |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_blend_point_node<class_AnimationNodeBlendSpace1D_method_set_blend_point_node>` **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**                            |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_blend_point_position<class_AnimationNodeBlendSpace1D_method_set_blend_point_position>` **(** :ref:`int<class_int>` point, :ref:`float<class_float>` pos **)**                                             |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`add_blend_point<class_AnimationNodeBlendSpace1D_method_add_blend_point>` **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`float<class_float>` pos, :ref:`int<class_int>` at_index=-1 **)** |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`get_blend_point_count<class_AnimationNodeBlendSpace1D_method_get_blend_point_count>` **(** **)** |const|                                                                                                      |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationRootNode<class_AnimationRootNode>` | :ref:`get_blend_point_node<class_AnimationNodeBlendSpace1D_method_get_blend_point_node>` **(** :ref:`int<class_int>` point **)** |const|                                                                            |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                         | :ref:`get_blend_point_position<class_AnimationNodeBlendSpace1D_method_get_blend_point_position>` **(** :ref:`int<class_int>` point **)** |const|                                                                    |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`remove_blend_point<class_AnimationNodeBlendSpace1D_method_remove_blend_point>` **(** :ref:`int<class_int>` point **)**                                                                                        |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_blend_point_node<class_AnimationNodeBlendSpace1D_method_set_blend_point_node>` **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**                            |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_blend_point_position<class_AnimationNodeBlendSpace1D_method_set_blend_point_position>` **(** :ref:`int<class_int>` point, :ref:`float<class_float>` pos **)**                                             |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeBlendSpace1D_property_max_space:
 
-- :ref:`float<class_float>` **max_space**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **max_space** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``1.0``              |
-+-----------+----------------------+
-| *Setter*  | set_max_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_max_space()      |
-+-----------+----------------------+
+- void **set_max_space** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_max_space** **(** **)**
 
 The blend space's axis's upper limit for the points' position. See :ref:`add_blend_point<class_AnimationNodeBlendSpace1D_method_add_blend_point>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_property_min_space:
 
-- :ref:`float<class_float>` **min_space**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **min_space** = ``-1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``-1.0``             |
-+-----------+----------------------+
-| *Setter*  | set_min_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_min_space()      |
-+-----------+----------------------+
+- void **set_min_space** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_min_space** **(** **)**
 
 The blend space's axis's lower limit for the points' position. See :ref:`add_blend_point<class_AnimationNodeBlendSpace1D_method_add_blend_point>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_property_snap:
 
-- :ref:`float<class_float>` **snap**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **snap** = ``0.1``
 
-+-----------+-----------------+
-| *Default* | ``0.1``         |
-+-----------+-----------------+
-| *Setter*  | set_snap(value) |
-+-----------+-----------------+
-| *Getter*  | get_snap()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_snap** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_snap** **(** **)**
 
 Position increment to snap to when moving a point on the axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_property_sync:
 
-- :ref:`bool<class_bool>` **sync**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync** = ``false``
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_use_sync** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_sync** **(** **)**
 
 If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
 
 If ``true``, forcing the blended animations to advance frame.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_property_value_label:
 
-- :ref:`String<class_String>` **value_label**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``"value"``            |
-+-----------+------------------------+
-| *Setter*  | set_value_label(value) |
-+-----------+------------------------+
-| *Getter*  | get_value_label()      |
-+-----------+------------------------+
+:ref:`String<class_String>` **value_label** = ``"value"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_value_label** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_value_label** **(** **)**
 
 Label of the virtual axis of the blend space.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeBlendSpace1D_method_add_blend_point:
 
-- void **add_blend_point** **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`float<class_float>` pos, :ref:`int<class_int>` at_index=-1 **)**
+.. rst-class:: classref-method
+
+void **add_blend_point** **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`float<class_float>` pos, :ref:`int<class_int>` at_index=-1 **)**
 
 Adds a new point that represents a ``node`` on the virtual axis at a given position set by ``pos``. You can insert it at a specific index using the ``at_index`` argument. If you use the default value for ``at_index``, the point is inserted at the end of the blend points array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_get_blend_point_count:
 
-- :ref:`int<class_int>` **get_blend_point_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_blend_point_count** **(** **)** |const|
 
 Returns the number of points on the blend axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_get_blend_point_node:
 
-- :ref:`AnimationRootNode<class_AnimationRootNode>` **get_blend_point_node** **(** :ref:`int<class_int>` point **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationRootNode<class_AnimationRootNode>` **get_blend_point_node** **(** :ref:`int<class_int>` point **)** |const|
 
 Returns the :ref:`AnimationNode<class_AnimationNode>` referenced by the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_get_blend_point_position:
 
-- :ref:`float<class_float>` **get_blend_point_position** **(** :ref:`int<class_int>` point **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_blend_point_position** **(** :ref:`int<class_int>` point **)** |const|
 
 Returns the position of the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_remove_blend_point:
 
-- void **remove_blend_point** **(** :ref:`int<class_int>` point **)**
+.. rst-class:: classref-method
+
+void **remove_blend_point** **(** :ref:`int<class_int>` point **)**
 
 Removes the point at index ``point`` from the blend axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_set_blend_point_node:
 
-- void **set_blend_point_node** **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**
+.. rst-class:: classref-method
+
+void **set_blend_point_node** **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**
 
 Changes the :ref:`AnimationNode<class_AnimationNode>` referenced by the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace1D_method_set_blend_point_position:
 
-- void **set_blend_point_position** **(** :ref:`int<class_int>` point, :ref:`float<class_float>` pos **)**
+.. rst-class:: classref-method
+
+void **set_blend_point_position** **(** :ref:`int<class_int>` point, :ref:`float<class_float>` pos **)**
 
 Updates the position of the point at index ``point`` on the blend axis.
 

+ 222 - 120
classes/class_animationnodeblendspace2d.rst

@@ -14,6 +14,8 @@ AnimationNodeBlendSpace2D
 
 Blends linearly between three :ref:`AnimationNode<class_AnimationNode>` of any type placed in a 2D space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ This node allows you to blend linearly between three animations using a :ref:`Ve
 
 You can add vertices to the blend space with :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>` and automatically triangulate it by setting :ref:`auto_triangles<class_AnimationNodeBlendSpace2D_property_auto_triangles>` to ``true``. Otherwise, use :ref:`add_triangle<class_AnimationNodeBlendSpace2D_method_add_triangle>` and :ref:`remove_triangle<class_AnimationNodeBlendSpace2D_method_remove_triangle>` to create up the blend space by hand.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,299 +34,397 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`auto_triangles<class_AnimationNodeBlendSpace2D_property_auto_triangles>` | ``true``              |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` | :ref:`blend_mode<class_AnimationNodeBlendSpace2D_property_blend_mode>`         | ``0``                 |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`max_space<class_AnimationNodeBlendSpace2D_property_max_space>`           | ``Vector2(1, 1)``     |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`min_space<class_AnimationNodeBlendSpace2D_property_min_space>`           | ``Vector2(-1, -1)``   |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`snap<class_AnimationNodeBlendSpace2D_property_snap>`                     | ``Vector2(0.1, 0.1)`` |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`sync<class_AnimationNodeBlendSpace2D_property_sync>`                     | ``false``             |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                                | :ref:`x_label<class_AnimationNodeBlendSpace2D_property_x_label>`               | ``"x"``               |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
-| :ref:`String<class_String>`                                | :ref:`y_label<class_AnimationNodeBlendSpace2D_property_y_label>`               | ``"y"``               |
-+------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`auto_triangles<class_AnimationNodeBlendSpace2D_property_auto_triangles>` | ``true``              |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` | :ref:`blend_mode<class_AnimationNodeBlendSpace2D_property_blend_mode>`         | ``0``                 |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`max_space<class_AnimationNodeBlendSpace2D_property_max_space>`           | ``Vector2(1, 1)``     |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`min_space<class_AnimationNodeBlendSpace2D_property_min_space>`           | ``Vector2(-1, -1)``   |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`snap<class_AnimationNodeBlendSpace2D_property_snap>`                     | ``Vector2(0.1, 0.1)`` |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`sync<class_AnimationNodeBlendSpace2D_property_sync>`                     | ``false``             |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`String<class_String>`                                | :ref:`x_label<class_AnimationNodeBlendSpace2D_property_x_label>`               | ``"x"``               |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+   | :ref:`String<class_String>`                                | :ref:`y_label<class_AnimationNodeBlendSpace2D_property_y_label>`               | ``"y"``               |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>` **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` at_index=-1 **)** |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`add_triangle<class_AnimationNodeBlendSpace2D_method_add_triangle>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`int<class_int>` z, :ref:`int<class_int>` at_index=-1 **)**                       |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`get_blend_point_count<class_AnimationNodeBlendSpace2D_method_get_blend_point_count>` **(** **)** |const|                                                                                                          |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationRootNode<class_AnimationRootNode>` | :ref:`get_blend_point_node<class_AnimationNodeBlendSpace2D_method_get_blend_point_node>` **(** :ref:`int<class_int>` point **)** |const|                                                                                |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                     | :ref:`get_blend_point_position<class_AnimationNodeBlendSpace2D_method_get_blend_point_position>` **(** :ref:`int<class_int>` point **)** |const|                                                                        |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`get_triangle_count<class_AnimationNodeBlendSpace2D_method_get_triangle_count>` **(** **)** |const|                                                                                                                |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                             | :ref:`get_triangle_point<class_AnimationNodeBlendSpace2D_method_get_triangle_point>` **(** :ref:`int<class_int>` triangle, :ref:`int<class_int>` point **)**                                                            |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`remove_blend_point<class_AnimationNodeBlendSpace2D_method_remove_blend_point>` **(** :ref:`int<class_int>` point **)**                                                                                            |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`remove_triangle<class_AnimationNodeBlendSpace2D_method_remove_triangle>` **(** :ref:`int<class_int>` triangle **)**                                                                                               |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_blend_point_node<class_AnimationNodeBlendSpace2D_method_set_blend_point_node>` **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**                                |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_blend_point_position<class_AnimationNodeBlendSpace2D_method_set_blend_point_position>` **(** :ref:`int<class_int>` point, :ref:`Vector2<class_Vector2>` pos **)**                                             |
-+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>` **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` at_index=-1 **)** |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`add_triangle<class_AnimationNodeBlendSpace2D_method_add_triangle>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`int<class_int>` z, :ref:`int<class_int>` at_index=-1 **)**                       |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`get_blend_point_count<class_AnimationNodeBlendSpace2D_method_get_blend_point_count>` **(** **)** |const|                                                                                                          |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationRootNode<class_AnimationRootNode>` | :ref:`get_blend_point_node<class_AnimationNodeBlendSpace2D_method_get_blend_point_node>` **(** :ref:`int<class_int>` point **)** |const|                                                                                |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                     | :ref:`get_blend_point_position<class_AnimationNodeBlendSpace2D_method_get_blend_point_position>` **(** :ref:`int<class_int>` point **)** |const|                                                                        |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`get_triangle_count<class_AnimationNodeBlendSpace2D_method_get_triangle_count>` **(** **)** |const|                                                                                                                |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`get_triangle_point<class_AnimationNodeBlendSpace2D_method_get_triangle_point>` **(** :ref:`int<class_int>` triangle, :ref:`int<class_int>` point **)**                                                            |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`remove_blend_point<class_AnimationNodeBlendSpace2D_method_remove_blend_point>` **(** :ref:`int<class_int>` point **)**                                                                                            |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`remove_triangle<class_AnimationNodeBlendSpace2D_method_remove_triangle>` **(** :ref:`int<class_int>` triangle **)**                                                                                               |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_blend_point_node<class_AnimationNodeBlendSpace2D_method_set_blend_point_node>` **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**                                |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_blend_point_position<class_AnimationNodeBlendSpace2D_method_set_blend_point_position>` **(** :ref:`int<class_int>` point, :ref:`Vector2<class_Vector2>` pos **)**                                             |
+   +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationNodeBlendSpace2D_signal_triangles_updated:
 
-- **triangles_updated** **(** **)**
+.. rst-class:: classref-signal
+
+**triangles_updated** **(** **)**
 
 Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AnimationNodeBlendSpace2D_BlendMode:
 
+.. rst-class:: classref-enumeration
+
+enum **BlendMode**:
+
 .. _class_AnimationNodeBlendSpace2D_constant_BLEND_MODE_INTERPOLATED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **BLEND_MODE_INTERPOLATED** = ``0``
+
+The interpolation between animations is linear.
+
 .. _class_AnimationNodeBlendSpace2D_constant_BLEND_MODE_DISCRETE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **BLEND_MODE_DISCRETE** = ``1``
+
+The blend space plays the animation of the node the blending position is closest to. Useful for frame-by-frame 2D animations.
+
 .. _class_AnimationNodeBlendSpace2D_constant_BLEND_MODE_DISCRETE_CARRY:
 
-enum **BlendMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **BLEND_MODE_INTERPOLATED** = **0** --- The interpolation between animations is linear.
+:ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **BLEND_MODE_DISCRETE_CARRY** = ``2``
 
-- **BLEND_MODE_DISCRETE** = **1** --- The blend space plays the animation of the node the blending position is closest to. Useful for frame-by-frame 2D animations.
+Similar to :ref:`BLEND_MODE_DISCRETE<class_AnimationNodeBlendSpace2D_constant_BLEND_MODE_DISCRETE>`, but starts the new animation at the last animation's playback position.
 
-- **BLEND_MODE_DISCRETE_CARRY** = **2** --- Similar to :ref:`BLEND_MODE_DISCRETE<class_AnimationNodeBlendSpace2D_constant_BLEND_MODE_DISCRETE>`, but starts the new animation at the last animation's playback position.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeBlendSpace2D_property_auto_triangles:
 
-- :ref:`bool<class_bool>` **auto_triangles**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **auto_triangles** = ``true``
 
-+-----------+---------------------------+
-| *Default* | ``true``                  |
-+-----------+---------------------------+
-| *Setter*  | set_auto_triangles(value) |
-+-----------+---------------------------+
-| *Getter*  | get_auto_triangles()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_auto_triangles** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_auto_triangles** **(** **)**
 
 If ``true``, the blend space is triangulated automatically. The mesh updates every time you add or remove points with :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>` and :ref:`remove_blend_point<class_AnimationNodeBlendSpace2D_method_remove_blend_point>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_blend_mode:
 
-- :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **blend_mode**
+.. rst-class:: classref-property
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_blend_mode(value) |
-+-----------+-----------------------+
-| *Getter*  | get_blend_mode()      |
-+-----------+-----------------------+
+:ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **blend_mode** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_blend_mode** **(** :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` value **)**
+- :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` **get_blend_mode** **(** **)**
 
 Controls the interpolation between animations. See :ref:`BlendMode<enum_AnimationNodeBlendSpace2D_BlendMode>` constants.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_max_space:
 
-- :ref:`Vector2<class_Vector2>` **max_space**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **max_space** = ``Vector2(1, 1)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``Vector2(1, 1)``    |
-+-----------+----------------------+
-| *Setter*  | set_max_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_max_space()      |
-+-----------+----------------------+
+- void **set_max_space** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_max_space** **(** **)**
 
 The blend space's X and Y axes' upper limit for the points' position. See :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_min_space:
 
-- :ref:`Vector2<class_Vector2>` **min_space**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **min_space** = ``Vector2(-1, -1)``
 
-+-----------+----------------------+
-| *Default* | ``Vector2(-1, -1)``  |
-+-----------+----------------------+
-| *Setter*  | set_min_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_min_space()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_min_space** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_min_space** **(** **)**
 
 The blend space's X and Y axes' lower limit for the points' position. See :ref:`add_blend_point<class_AnimationNodeBlendSpace2D_method_add_blend_point>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_snap:
 
-- :ref:`Vector2<class_Vector2>` **snap**
+.. rst-class:: classref-property
 
-+-----------+-----------------------+
-| *Default* | ``Vector2(0.1, 0.1)`` |
-+-----------+-----------------------+
-| *Setter*  | set_snap(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_snap()            |
-+-----------+-----------------------+
+:ref:`Vector2<class_Vector2>` **snap** = ``Vector2(0.1, 0.1)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_snap** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_snap** **(** **)**
 
 Position increment to snap to when moving a point.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_sync:
 
-- :ref:`bool<class_bool>` **sync**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
+- void **set_use_sync** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_sync** **(** **)**
 
 If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
 
 If ``true``, forcing the blended animations to advance frame.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_x_label:
 
-- :ref:`String<class_String>` **x_label**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **x_label** = ``"x"``
 
-+-----------+--------------------+
-| *Default* | ``"x"``            |
-+-----------+--------------------+
-| *Setter*  | set_x_label(value) |
-+-----------+--------------------+
-| *Getter*  | get_x_label()      |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_x_label** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_x_label** **(** **)**
 
 Name of the blend space's X axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_property_y_label:
 
-- :ref:`String<class_String>` **y_label**
+.. rst-class:: classref-property
 
-+-----------+--------------------+
-| *Default* | ``"y"``            |
-+-----------+--------------------+
-| *Setter*  | set_y_label(value) |
-+-----------+--------------------+
-| *Getter*  | get_y_label()      |
-+-----------+--------------------+
+:ref:`String<class_String>` **y_label** = ``"y"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_y_label** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_y_label** **(** **)**
 
 Name of the blend space's Y axis.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeBlendSpace2D_method_add_blend_point:
 
-- void **add_blend_point** **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` at_index=-1 **)**
+.. rst-class:: classref-method
+
+void **add_blend_point** **(** :ref:`AnimationRootNode<class_AnimationRootNode>` node, :ref:`Vector2<class_Vector2>` pos, :ref:`int<class_int>` at_index=-1 **)**
 
 Adds a new point that represents a ``node`` at the position set by ``pos``. You can insert it at a specific index using the ``at_index`` argument. If you use the default value for ``at_index``, the point is inserted at the end of the blend points array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_add_triangle:
 
-- void **add_triangle** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`int<class_int>` z, :ref:`int<class_int>` at_index=-1 **)**
+.. rst-class:: classref-method
+
+void **add_triangle** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`int<class_int>` z, :ref:`int<class_int>` at_index=-1 **)**
 
 Creates a new triangle using three points ``x``, ``y``, and ``z``. Triangles can overlap. You can insert the triangle at a specific index using the ``at_index`` argument. If you use the default value for ``at_index``, the point is inserted at the end of the blend points array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_get_blend_point_count:
 
-- :ref:`int<class_int>` **get_blend_point_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_blend_point_count** **(** **)** |const|
 
 Returns the number of points in the blend space.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_get_blend_point_node:
 
-- :ref:`AnimationRootNode<class_AnimationRootNode>` **get_blend_point_node** **(** :ref:`int<class_int>` point **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationRootNode<class_AnimationRootNode>` **get_blend_point_node** **(** :ref:`int<class_int>` point **)** |const|
 
 Returns the :ref:`AnimationRootNode<class_AnimationRootNode>` referenced by the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_get_blend_point_position:
 
-- :ref:`Vector2<class_Vector2>` **get_blend_point_position** **(** :ref:`int<class_int>` point **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_blend_point_position** **(** :ref:`int<class_int>` point **)** |const|
 
 Returns the position of the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_get_triangle_count:
 
-- :ref:`int<class_int>` **get_triangle_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_triangle_count** **(** **)** |const|
 
 Returns the number of triangles in the blend space.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_get_triangle_point:
 
-- :ref:`int<class_int>` **get_triangle_point** **(** :ref:`int<class_int>` triangle, :ref:`int<class_int>` point **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_triangle_point** **(** :ref:`int<class_int>` triangle, :ref:`int<class_int>` point **)**
 
 Returns the position of the point at index ``point`` in the triangle of index ``triangle``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_remove_blend_point:
 
-- void **remove_blend_point** **(** :ref:`int<class_int>` point **)**
+.. rst-class:: classref-method
+
+void **remove_blend_point** **(** :ref:`int<class_int>` point **)**
 
 Removes the point at index ``point`` from the blend space.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_remove_triangle:
 
-- void **remove_triangle** **(** :ref:`int<class_int>` triangle **)**
+.. rst-class:: classref-method
+
+void **remove_triangle** **(** :ref:`int<class_int>` triangle **)**
 
 Removes the triangle at index ``triangle`` from the blend space.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_set_blend_point_node:
 
-- void **set_blend_point_node** **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**
+.. rst-class:: classref-method
+
+void **set_blend_point_node** **(** :ref:`int<class_int>` point, :ref:`AnimationRootNode<class_AnimationRootNode>` node **)**
 
 Changes the :ref:`AnimationNode<class_AnimationNode>` referenced by the point at index ``point``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendSpace2D_method_set_blend_point_position:
 
-- void **set_blend_point_position** **(** :ref:`int<class_int>` point, :ref:`Vector2<class_Vector2>` pos **)**
+.. rst-class:: classref-method
+
+void **set_blend_point_position** **(** :ref:`int<class_int>` point, :ref:`Vector2<class_Vector2>` pos **)**
 
 Updates the position of the point at index ``point`` on the blend axis.
 

+ 143 - 46
classes/class_animationnodeblendtree.rst

@@ -14,6 +14,8 @@ AnimationNodeBlendTree
 
 :ref:`AnimationTree<class_AnimationTree>` node resource that contains many blend type nodes.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,164 +23,259 @@ This node may contain a sub-tree of any other blend type nodes, such as :ref:`An
 
 An :ref:`AnimationNodeOutput<class_AnimationNodeOutput>` node named ``output`` is created by default.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------+-------------------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`graph_offset<class_AnimationNodeBlendTree_property_graph_offset>` | ``Vector2(0, 0)`` |
-+-------------------------------+-------------------------------------------------------------------------+-------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+-------------------------------------------------------------------------+-------------------+
+   | :ref:`Vector2<class_Vector2>` | :ref:`graph_offset<class_AnimationNodeBlendTree_property_graph_offset>` | ``Vector2(0, 0)`` |
+   +-------------------------------+-------------------------------------------------------------------------+-------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`add_node<class_AnimationNodeBlendTree_method_add_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)** |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`connect_node<class_AnimationNodeBlendTree_method_connect_node>` **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index, :ref:`StringName<class_StringName>` output_node **)**     |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`disconnect_node<class_AnimationNodeBlendTree_method_disconnect_node>` **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index **)**                                                |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNode<class_AnimationNode>` | :ref:`get_node<class_AnimationNodeBlendTree_method_get_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                               |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`             | :ref:`get_node_position<class_AnimationNodeBlendTree_method_get_node_position>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                             |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`has_node<class_AnimationNodeBlendTree_method_has_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                               |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`remove_node<class_AnimationNodeBlendTree_method_remove_node>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                 |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`rename_node<class_AnimationNodeBlendTree_method_rename_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**                                                   |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_node_position<class_AnimationNodeBlendTree_method_set_node_position>` **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**                                             |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`add_node<class_AnimationNodeBlendTree_method_add_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)** |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`connect_node<class_AnimationNodeBlendTree_method_connect_node>` **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index, :ref:`StringName<class_StringName>` output_node **)**     |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`disconnect_node<class_AnimationNodeBlendTree_method_disconnect_node>` **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index **)**                                                |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationNode<class_AnimationNode>` | :ref:`get_node<class_AnimationNodeBlendTree_method_get_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                               |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`             | :ref:`get_node_position<class_AnimationNodeBlendTree_method_get_node_position>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                             |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`has_node<class_AnimationNodeBlendTree_method_has_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                               |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`remove_node<class_AnimationNodeBlendTree_method_remove_node>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                 |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`rename_node<class_AnimationNodeBlendTree_method_rename_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**                                                   |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`set_node_position<class_AnimationNodeBlendTree_method_set_node_position>` **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**                                             |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationNodeBlendTree_signal_node_changed:
 
-- **node_changed** **(** :ref:`StringName<class_StringName>` node_name **)**
+.. rst-class:: classref-signal
+
+**node_changed** **(** :ref:`StringName<class_StringName>` node_name **)**
 
 Emitted when the input port information is changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Constants
 ---------
 
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_OK:
 
+.. rst-class:: classref-constant
+
+**CONNECTION_OK** = ``0``
+
+The connection was successful.
+
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_ERROR_NO_INPUT:
 
+.. rst-class:: classref-constant
+
+**CONNECTION_ERROR_NO_INPUT** = ``1``
+
+The input node is ``null``.
+
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_ERROR_NO_INPUT_INDEX:
 
+.. rst-class:: classref-constant
+
+**CONNECTION_ERROR_NO_INPUT_INDEX** = ``2``
+
+The specified input port is out of range.
+
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_ERROR_NO_OUTPUT:
 
+.. rst-class:: classref-constant
+
+**CONNECTION_ERROR_NO_OUTPUT** = ``3``
+
+The output node is ``null``.
+
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_ERROR_SAME_NODE:
 
+.. rst-class:: classref-constant
+
+**CONNECTION_ERROR_SAME_NODE** = ``4``
+
+Input and output nodes are the same.
+
 .. _class_AnimationNodeBlendTree_constant_CONNECTION_ERROR_CONNECTION_EXISTS:
 
-- **CONNECTION_OK** = **0** --- The connection was successful.
+.. rst-class:: classref-constant
 
-- **CONNECTION_ERROR_NO_INPUT** = **1** --- The input node is ``null``.
+**CONNECTION_ERROR_CONNECTION_EXISTS** = ``5``
 
-- **CONNECTION_ERROR_NO_INPUT_INDEX** = **2** --- The specified input port is out of range.
+The specified connection already exists.
 
-- **CONNECTION_ERROR_NO_OUTPUT** = **3** --- The output node is ``null``.
+.. rst-class:: classref-section-separator
 
-- **CONNECTION_ERROR_SAME_NODE** = **4** --- Input and output nodes are the same.
+----
 
-- **CONNECTION_ERROR_CONNECTION_EXISTS** = **5** --- The specified connection already exists.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeBlendTree_property_graph_offset:
 
-- :ref:`Vector2<class_Vector2>` **graph_offset**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **graph_offset** = ``Vector2(0, 0)``
 
-+-----------+-------------------------+
-| *Default* | ``Vector2(0, 0)``       |
-+-----------+-------------------------+
-| *Setter*  | set_graph_offset(value) |
-+-----------+-------------------------+
-| *Getter*  | get_graph_offset()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_graph_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_graph_offset** **(** **)**
 
 The global offset of all sub-nodes.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeBlendTree_method_add_node:
 
-- void **add_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**
+.. rst-class:: classref-method
+
+void **add_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**
 
 Adds an :ref:`AnimationNode<class_AnimationNode>` at the given ``position``. The ``name`` is used to identify the created sub-node later.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_connect_node:
 
-- void **connect_node** **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index, :ref:`StringName<class_StringName>` output_node **)**
+.. rst-class:: classref-method
+
+void **connect_node** **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index, :ref:`StringName<class_StringName>` output_node **)**
 
 Connects the output of an :ref:`AnimationNode<class_AnimationNode>` as input for another :ref:`AnimationNode<class_AnimationNode>`, at the input port specified by ``input_index``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_disconnect_node:
 
-- void **disconnect_node** **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index **)**
+.. rst-class:: classref-method
+
+void **disconnect_node** **(** :ref:`StringName<class_StringName>` input_node, :ref:`int<class_int>` input_index **)**
 
 Disconnects the node connected to the specified input.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_get_node:
 
-- :ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the sub-node with the specified ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_get_node_position:
 
-- :ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the position of the sub-node with the specified ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_has_node:
 
-- :ref:`bool<class_bool>` **has_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns ``true`` if a sub-node with specified ``name`` exists.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_remove_node:
 
-- void **remove_node** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **remove_node** **(** :ref:`StringName<class_StringName>` name **)**
 
 Removes a sub-node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_rename_node:
 
-- void **rename_node** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**
+.. rst-class:: classref-method
+
+void **rename_node** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**
 
 Changes the name of a sub-node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_set_node_position:
 
-- void **set_node_position** **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**
+.. rst-class:: classref-method
+
+void **set_node_position** **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**
 
 Modifies the position of a sub-node.
 

+ 99 - 64
classes/class_animationnodeoneshot.rst

@@ -14,11 +14,15 @@ AnimationNodeOneShot
 
 Plays an animation once in :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A resource to add to an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -26,136 +30,167 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                           | :ref:`autorestart<class_AnimationNodeOneShot_property_autorestart>`                           | ``false`` |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`autorestart_delay<class_AnimationNodeOneShot_property_autorestart_delay>`               | ``1.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`autorestart_random_delay<class_AnimationNodeOneShot_property_autorestart_random_delay>` | ``0.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`fadein_time<class_AnimationNodeOneShot_property_fadein_time>`                           | ``0.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`                         | ``0.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` | :ref:`mix_mode<class_AnimationNodeOneShot_property_mix_mode>`                                 | ``0``     |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                           | :ref:`autorestart<class_AnimationNodeOneShot_property_autorestart>`                           | ``false`` |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`autorestart_delay<class_AnimationNodeOneShot_property_autorestart_delay>`               | ``1.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`autorestart_random_delay<class_AnimationNodeOneShot_property_autorestart_random_delay>` | ``0.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`fadein_time<class_AnimationNodeOneShot_property_fadein_time>`                           | ``0.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`                         | ``0.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` | :ref:`mix_mode<class_AnimationNodeOneShot_property_mix_mode>`                                 | ``0``     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AnimationNodeOneShot_MixMode:
 
+.. rst-class:: classref-enumeration
+
+enum **MixMode**:
+
 .. _class_AnimationNodeOneShot_constant_MIX_MODE_BLEND:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **MIX_MODE_BLEND** = ``0``
+
+
+
 .. _class_AnimationNodeOneShot_constant_MIX_MODE_ADD:
 
-enum **MixMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **MIX_MODE_ADD** = ``1``
+
+
+
+.. rst-class:: classref-section-separator
 
-- **MIX_MODE_BLEND** = **0**
+----
 
-- **MIX_MODE_ADD** = **1**
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeOneShot_property_autorestart:
 
-- :ref:`bool<class_bool>` **autorestart**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **autorestart** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``false``              |
-+-----------+------------------------+
-| *Setter*  | set_autorestart(value) |
-+-----------+------------------------+
-| *Getter*  | has_autorestart()      |
-+-----------+------------------------+
+- void **set_autorestart** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_autorestart** **(** **)**
 
 If ``true``, the sub-animation will restart automatically after finishing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeOneShot_property_autorestart_delay:
 
-- :ref:`float<class_float>` **autorestart_delay**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **autorestart_delay** = ``1.0``
 
-+-----------+------------------------------+
-| *Default* | ``1.0``                      |
-+-----------+------------------------------+
-| *Setter*  | set_autorestart_delay(value) |
-+-----------+------------------------------+
-| *Getter*  | get_autorestart_delay()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_autorestart_delay** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_autorestart_delay** **(** **)**
 
 The delay after which the automatic restart is triggered, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeOneShot_property_autorestart_random_delay:
 
-- :ref:`float<class_float>` **autorestart_random_delay**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **autorestart_random_delay** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------------------+
-| *Default* | ``0.0``                             |
-+-----------+-------------------------------------+
-| *Setter*  | set_autorestart_random_delay(value) |
-+-----------+-------------------------------------+
-| *Getter*  | get_autorestart_random_delay()      |
-+-----------+-------------------------------------+
+- void **set_autorestart_random_delay** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_autorestart_random_delay** **(** **)**
 
 If :ref:`autorestart<class_AnimationNodeOneShot_property_autorestart>` is ``true``, a random additional delay (in seconds) between 0 and this value will be added to :ref:`autorestart_delay<class_AnimationNodeOneShot_property_autorestart_delay>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeOneShot_property_fadein_time:
 
-- :ref:`float<class_float>` **fadein_time**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **fadein_time** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``0.0``                |
-+-----------+------------------------+
-| *Setter*  | set_fadein_time(value) |
-+-----------+------------------------+
-| *Getter*  | get_fadein_time()      |
-+-----------+------------------------+
+- void **set_fadein_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_fadein_time** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeOneShot_property_fadeout_time:
 
-- :ref:`float<class_float>` **fadeout_time**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **fadeout_time** = ``0.0``
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_fadeout_time(value) |
-+-----------+-------------------------+
-| *Getter*  | get_fadeout_time()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_fadeout_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_fadeout_time** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeOneShot_property_mix_mode:
 
-- :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **mix_mode**
+.. rst-class:: classref-property
+
+:ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **mix_mode** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``0``               |
-+-----------+---------------------+
-| *Setter*  | set_mix_mode(value) |
-+-----------+---------------------+
-| *Getter*  | get_mix_mode()      |
-+-----------+---------------------+
+- void **set_mix_mode** **(** :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` value **)**
+- :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **get_mix_mode** **(** **)**
 
 .. container:: contribute
 

+ 2 - 0
classes/class_animationnodeoutput.rst

@@ -14,6 +14,8 @@ AnimationNodeOutput
 
 Generic output node to be added to :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 147 - 58
classes/class_animationnodestatemachine.rst

@@ -14,6 +14,8 @@ AnimationNodeStateMachine
 
 State machine for control of animations.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -36,206 +38,293 @@ Contains multiple nodes representing animation states, connected in a graph. Nod
 
 
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`add_node<class_AnimationNodeStateMachine_method_add_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**                                                 |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`add_transition<class_AnimationNodeStateMachine_method_add_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)** |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                                                         | :ref:`get_graph_offset<class_AnimationNodeStateMachine_method_get_graph_offset>` **(** **)** |const|                                                                                                                                                                        |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNode<class_AnimationNode>`                                             | :ref:`get_node<class_AnimationNodeStateMachine_method_get_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                               |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                                                   | :ref:`get_node_name<class_AnimationNodeStateMachine_method_get_node_name>` **(** :ref:`AnimationNode<class_AnimationNode>` node **)** |const|                                                                                                                               |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                                                         | :ref:`get_node_position<class_AnimationNodeStateMachine_method_get_node_position>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                             |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` | :ref:`get_transition<class_AnimationNodeStateMachine_method_get_transition>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                  |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                                                 | :ref:`get_transition_count<class_AnimationNodeStateMachine_method_get_transition_count>` **(** **)** |const|                                                                                                                                                                |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                                                   | :ref:`get_transition_from<class_AnimationNodeStateMachine_method_get_transition_from>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                        |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                                                   | :ref:`get_transition_to<class_AnimationNodeStateMachine_method_get_transition_to>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                            |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                                               | :ref:`has_node<class_AnimationNodeStateMachine_method_has_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                               |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                                               | :ref:`has_transition<class_AnimationNodeStateMachine_method_has_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)** |const|                                                                                           |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`remove_node<class_AnimationNodeStateMachine_method_remove_node>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                                 |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`remove_transition<class_AnimationNodeStateMachine_method_remove_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)**                                                                                             |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`remove_transition_by_index<class_AnimationNodeStateMachine_method_remove_transition_by_index>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                  |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`rename_node<class_AnimationNodeStateMachine_method_rename_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**                                                                                                   |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`replace_node<class_AnimationNodeStateMachine_method_replace_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**                                                                                               |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`set_graph_offset<class_AnimationNodeStateMachine_method_set_graph_offset>` **(** :ref:`Vector2<class_Vector2>` offset **)**                                                                                                                                           |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`set_node_position<class_AnimationNodeStateMachine_method_set_node_position>` **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**                                                                                             |
-+---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`add_node<class_AnimationNodeStateMachine_method_add_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**                                                 |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`add_transition<class_AnimationNodeStateMachine_method_add_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)** |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                                                         | :ref:`get_graph_offset<class_AnimationNodeStateMachine_method_get_graph_offset>` **(** **)** |const|                                                                                                                                                                        |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationNode<class_AnimationNode>`                                             | :ref:`get_node<class_AnimationNodeStateMachine_method_get_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                               |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                                                   | :ref:`get_node_name<class_AnimationNodeStateMachine_method_get_node_name>` **(** :ref:`AnimationNode<class_AnimationNode>` node **)** |const|                                                                                                                               |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                                                         | :ref:`get_node_position<class_AnimationNodeStateMachine_method_get_node_position>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                             |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` | :ref:`get_transition<class_AnimationNodeStateMachine_method_get_transition>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                  |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                                                 | :ref:`get_transition_count<class_AnimationNodeStateMachine_method_get_transition_count>` **(** **)** |const|                                                                                                                                                                |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                                                   | :ref:`get_transition_from<class_AnimationNodeStateMachine_method_get_transition_from>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                        |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                                                   | :ref:`get_transition_to<class_AnimationNodeStateMachine_method_get_transition_to>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                            |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                               | :ref:`has_node<class_AnimationNodeStateMachine_method_has_node>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                                                               |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                               | :ref:`has_transition<class_AnimationNodeStateMachine_method_has_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)** |const|                                                                                           |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`remove_node<class_AnimationNodeStateMachine_method_remove_node>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                                 |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`remove_transition<class_AnimationNodeStateMachine_method_remove_transition>` **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)**                                                                                             |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`remove_transition_by_index<class_AnimationNodeStateMachine_method_remove_transition_by_index>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                  |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`rename_node<class_AnimationNodeStateMachine_method_rename_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**                                                                                                   |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`replace_node<class_AnimationNodeStateMachine_method_replace_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**                                                                                               |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`set_graph_offset<class_AnimationNodeStateMachine_method_set_graph_offset>` **(** :ref:`Vector2<class_Vector2>` offset **)**                                                                                                                                           |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`set_node_position<class_AnimationNodeStateMachine_method_set_node_position>` **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**                                                                                             |
+   +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeStateMachine_method_add_node:
 
-- void **add_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**
+.. rst-class:: classref-method
+
+void **add_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2(0, 0) **)**
 
 Adds a new node to the graph. The ``position`` is used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_add_transition:
 
-- void **add_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)**
+.. rst-class:: classref-method
+
+void **add_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)**
 
 Adds a transition between the given nodes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_graph_offset:
 
-- :ref:`Vector2<class_Vector2>` **get_graph_offset** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_graph_offset** **(** **)** |const|
 
 Returns the draw offset of the graph. Used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_node:
 
-- :ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the animation node with the given name.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_node_name:
 
-- :ref:`StringName<class_StringName>` **get_node_name** **(** :ref:`AnimationNode<class_AnimationNode>` node **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_node_name** **(** :ref:`AnimationNode<class_AnimationNode>` node **)** |const|
 
 Returns the given animation node's name.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_node_position:
 
-- :ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the given node's coordinates. Used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_transition:
 
-- :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` **get_transition** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` **get_transition** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the given transition.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_transition_count:
 
-- :ref:`int<class_int>` **get_transition_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_transition_count** **(** **)** |const|
 
 Returns the number of connections in the graph.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_transition_from:
 
-- :ref:`StringName<class_StringName>` **get_transition_from** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_transition_from** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the given transition's start node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_transition_to:
 
-- :ref:`StringName<class_StringName>` **get_transition_to** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_transition_to** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the given transition's end node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_has_node:
 
-- :ref:`bool<class_bool>` **has_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_node** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns ``true`` if the graph contains the given node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_has_transition:
 
-- :ref:`bool<class_bool>` **has_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)** |const|
 
 Returns ``true`` if there is a transition between the given nodes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_remove_node:
 
-- void **remove_node** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **remove_node** **(** :ref:`StringName<class_StringName>` name **)**
 
 Deletes the given node from the graph.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_remove_transition:
 
-- void **remove_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)**
+.. rst-class:: classref-method
+
+void **remove_transition** **(** :ref:`StringName<class_StringName>` from, :ref:`StringName<class_StringName>` to **)**
 
 Deletes the transition between the two specified nodes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_remove_transition_by_index:
 
-- void **remove_transition_by_index** **(** :ref:`int<class_int>` idx **)**
+.. rst-class:: classref-method
+
+void **remove_transition_by_index** **(** :ref:`int<class_int>` idx **)**
 
 Deletes the given transition by index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_rename_node:
 
-- void **rename_node** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**
+.. rst-class:: classref-method
+
+void **rename_node** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` new_name **)**
 
 Renames the given node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_replace_node:
 
-- void **replace_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**
+.. rst-class:: classref-method
+
+void **replace_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**
 
 .. 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_AnimationNodeStateMachine_method_set_graph_offset:
 
-- void **set_graph_offset** **(** :ref:`Vector2<class_Vector2>` offset **)**
+.. rst-class:: classref-method
+
+void **set_graph_offset** **(** :ref:`Vector2<class_Vector2>` offset **)**
 
 Sets the draw offset of the graph. Used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_set_node_position:
 
-- void **set_node_position** **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**
+.. rst-class:: classref-method
+
+void **set_node_position** **(** :ref:`StringName<class_StringName>` name, :ref:`Vector2<class_Vector2>` position **)**
 
 Sets the node's coordinates. Used for display in the editor.
 

+ 78 - 28
classes/class_animationnodestatemachineplayback.rst

@@ -14,6 +14,8 @@ AnimationNodeStateMachinePlayback
 
 Playback control for :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -36,103 +38,151 @@ Allows control of :ref:`AnimationTree<class_AnimationTree>` state machines creat
 
 
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+-------------------------+---------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | resource_local_to_scene | ``true`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
-+-------------------------+-------------------------+---------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+-------------------------+---------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | resource_local_to_scene | ``true`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
+   +-------------------------+-------------------------+---------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                         | :ref:`get_current_length<class_AnimationNodeStateMachinePlayback_method_get_current_length>` **(** **)** |const|               |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`               | :ref:`get_current_node<class_AnimationNodeStateMachinePlayback_method_get_current_node>` **(** **)** |const|                   |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                         | :ref:`get_current_play_position<class_AnimationNodeStateMachinePlayback_method_get_current_play_position>` **(** **)** |const| |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_travel_path<class_AnimationNodeStateMachinePlayback_method_get_travel_path>` **(** **)** |const|                     |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`is_playing<class_AnimationNodeStateMachinePlayback_method_is_playing>` **(** **)** |const|                               |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`start<class_AnimationNodeStateMachinePlayback_method_start>` **(** :ref:`StringName<class_StringName>` node **)**        |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`stop<class_AnimationNodeStateMachinePlayback_method_stop>` **(** **)**                                                   |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`travel<class_AnimationNodeStateMachinePlayback_method_travel>` **(** :ref:`StringName<class_StringName>` to_node **)**   |
-+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                         | :ref:`get_current_length<class_AnimationNodeStateMachinePlayback_method_get_current_length>` **(** **)** |const|               |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`               | :ref:`get_current_node<class_AnimationNodeStateMachinePlayback_method_get_current_node>` **(** **)** |const|                   |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                         | :ref:`get_current_play_position<class_AnimationNodeStateMachinePlayback_method_get_current_play_position>` **(** **)** |const| |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_travel_path<class_AnimationNodeStateMachinePlayback_method_get_travel_path>` **(** **)** |const|                     |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`is_playing<class_AnimationNodeStateMachinePlayback_method_is_playing>` **(** **)** |const|                               |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`start<class_AnimationNodeStateMachinePlayback_method_start>` **(** :ref:`StringName<class_StringName>` node **)**        |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`stop<class_AnimationNodeStateMachinePlayback_method_stop>` **(** **)**                                                   |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`travel<class_AnimationNodeStateMachinePlayback_method_travel>` **(** :ref:`StringName<class_StringName>` to_node **)**   |
+   +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeStateMachinePlayback_method_get_current_length:
 
-- :ref:`float<class_float>` **get_current_length** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_current_length** **(** **)** |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_AnimationNodeStateMachinePlayback_method_get_current_node:
 
-- :ref:`StringName<class_StringName>` **get_current_node** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_current_node** **(** **)** |const|
 
 Returns the currently playing animation state.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_get_current_play_position:
 
-- :ref:`float<class_float>` **get_current_play_position** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_current_play_position** **(** **)** |const|
 
 Returns the playback position within the current animation state.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_get_travel_path:
 
-- :ref:`PackedStringArray<class_PackedStringArray>` **get_travel_path** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PackedStringArray<class_PackedStringArray>` **get_travel_path** **(** **)** |const|
 
 Returns the current travel path as computed internally by the A\* algorithm.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_is_playing:
 
-- :ref:`bool<class_bool>` **is_playing** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_playing** **(** **)** |const|
 
 Returns ``true`` if an animation is playing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_start:
 
-- void **start** **(** :ref:`StringName<class_StringName>` node **)**
+.. rst-class:: classref-method
+
+void **start** **(** :ref:`StringName<class_StringName>` node **)**
 
 Starts playing the given animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the currently playing animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachinePlayback_method_travel:
 
-- void **travel** **(** :ref:`StringName<class_StringName>` to_node **)**
+.. rst-class:: classref-method
+
+void **travel** **(** :ref:`StringName<class_StringName>` to_node **)**
 
 Transitions from the current state to another one, following the shortest path.
 

+ 133 - 84
classes/class_animationnodestatemachinetransition.rst

@@ -16,74 +16,114 @@ AnimationNodeStateMachineTransition
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`StringName<class_StringName>`                                    | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>`   | ``&""``   |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`String<class_String>`                                            | :ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>` | ``""``    |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                                | :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`             | ``false`` |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                                                | :ref:`disabled<class_AnimationNodeStateMachineTransition_property_disabled>`                     | ``false`` |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`                                                  | :ref:`priority<class_AnimationNodeStateMachineTransition_property_priority>`                     | ``1``     |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` | :ref:`switch_mode<class_AnimationNodeStateMachineTransition_property_switch_mode>`               | ``0``     |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`Curve<class_Curve>`                                              | :ref:`xfade_curve<class_AnimationNodeStateMachineTransition_property_xfade_curve>`               |           |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                                              | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>`                 | ``0.0``   |
-+------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`StringName<class_StringName>`                                    | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>`   | ``&""``   |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`String<class_String>`                                            | :ref:`advance_expression<class_AnimationNodeStateMachineTransition_property_advance_expression>` | ``""``    |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                                                | :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`             | ``false`` |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                                                | :ref:`disabled<class_AnimationNodeStateMachineTransition_property_disabled>`                     | ``false`` |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`int<class_int>`                                                  | :ref:`priority<class_AnimationNodeStateMachineTransition_property_priority>`                     | ``1``     |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` | :ref:`switch_mode<class_AnimationNodeStateMachineTransition_property_switch_mode>`               | ``0``     |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`Curve<class_Curve>`                                              | :ref:`xfade_curve<class_AnimationNodeStateMachineTransition_property_xfade_curve>`               |           |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                                              | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>`                 | ``0.0``   |
+   +------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationNodeStateMachineTransition_signal_advance_condition_changed:
 
-- **advance_condition_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**advance_condition_changed** **(** **)**
 
 Emitted when :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` is changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AnimationNodeStateMachineTransition_SwitchMode:
 
+.. rst-class:: classref-enumeration
+
+enum **SwitchMode**:
+
 .. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_IMMEDIATE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_IMMEDIATE** = ``0``
+
+Switch to the next state immediately. The current state will end and blend into the beginning of the new one.
+
 .. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_SYNC:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_SYNC** = ``1``
+
+Switch to the next state immediately, but will seek the new state to the playback position of the old state.
+
 .. _class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_AT_END:
 
-enum **SwitchMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_AT_END** = ``2``
 
-- **SWITCH_MODE_IMMEDIATE** = **0** --- Switch to the next state immediately. The current state will end and blend into the beginning of the new one.
+Wait for the current state playback to end, then switch to the beginning of the next state animation.
 
-- **SWITCH_MODE_SYNC** = **1** --- Switch to the next state immediately, but will seek the new state to the playback position of the old state.
+.. rst-class:: classref-section-separator
+
+----
 
-- **SWITCH_MODE_AT_END** = **2** --- Wait for the current state playback to end, then switch to the beginning of the next state animation.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeStateMachineTransition_property_advance_condition:
 
-- :ref:`StringName<class_StringName>` **advance_condition**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``&""``                      |
-+-----------+------------------------------+
-| *Setter*  | set_advance_condition(value) |
-+-----------+------------------------------+
-| *Getter*  | get_advance_condition()      |
-+-----------+------------------------------+
+:ref:`StringName<class_StringName>` **advance_condition** = ``&""``
+
+.. rst-class:: classref-property-setget
+
+- void **set_advance_condition** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_advance_condition** **(** **)**
 
 Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the :ref:`AnimationTree<class_AnimationTree>` that can be controlled from code (see `Using AnimationTree <../tutorials/animation/animation_tree.html#controlling-from-code>`__). For example, if :ref:`AnimationTree.tree_root<class_AnimationTree_property_tree_root>` is an :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>` and :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` is set to ``"idle"``:
 
@@ -100,113 +140,122 @@ Turn on auto advance when this condition is set. The provided name will become a
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_advance_expression:
 
-- :ref:`String<class_String>` **advance_expression**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------+
-| *Default* | ``""``                        |
-+-----------+-------------------------------+
-| *Setter*  | set_advance_expression(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_advance_expression()      |
-+-----------+-------------------------------+
+:ref:`String<class_String>` **advance_expression** = ``""``
+
+.. rst-class:: classref-property-setget
+
+- void **set_advance_expression** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_advance_expression** **(** **)**
 
 Use an expression as a condition for state machine transitions. It is possible to create complex animation advance conditions for switching between states and gives much greater flexibility for creating complex state machines by directly interfacing with the script code.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_auto_advance:
 
-- :ref:`bool<class_bool>` **auto_advance**
+.. rst-class:: classref-property
 
-+-----------+-------------------------+
-| *Default* | ``false``               |
-+-----------+-------------------------+
-| *Setter*  | set_auto_advance(value) |
-+-----------+-------------------------+
-| *Getter*  | has_auto_advance()      |
-+-----------+-------------------------+
+:ref:`bool<class_bool>` **auto_advance** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_auto_advance** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_auto_advance** **(** **)**
 
 Turn on the transition automatically when this state is reached. This works best with :ref:`SWITCH_MODE_AT_END<class_AnimationNodeStateMachineTransition_constant_SWITCH_MODE_AT_END>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_disabled:
 
-- :ref:`bool<class_bool>` **disabled**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_disabled(value) |
-+-----------+---------------------+
-| *Getter*  | is_disabled()       |
-+-----------+---------------------+
+:ref:`bool<class_bool>` **disabled** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_disabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_disabled** **(** **)**
 
 Don't use this transition during :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` or :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_priority:
 
-- :ref:`int<class_int>` **priority**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``1``               |
-+-----------+---------------------+
-| *Setter*  | set_priority(value) |
-+-----------+---------------------+
-| *Getter*  | get_priority()      |
-+-----------+---------------------+
+:ref:`int<class_int>` **priority** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_priority** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_priority** **(** **)**
 
 Lower priority transitions are preferred when travelling through the tree via :ref:`AnimationNodeStateMachinePlayback.travel<class_AnimationNodeStateMachinePlayback_method_travel>` or :ref:`auto_advance<class_AnimationNodeStateMachineTransition_property_auto_advance>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_switch_mode:
 
-- :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **switch_mode**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``0``                  |
-+-----------+------------------------+
-| *Setter*  | set_switch_mode(value) |
-+-----------+------------------------+
-| *Getter*  | get_switch_mode()      |
-+-----------+------------------------+
+:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **switch_mode** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_switch_mode** **(** :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` value **)**
+- :ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **get_switch_mode** **(** **)**
 
 The transition type.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_xfade_curve:
 
-- :ref:`Curve<class_Curve>` **xfade_curve**
+.. rst-class:: classref-property
 
-+----------+------------------------+
-| *Setter* | set_xfade_curve(value) |
-+----------+------------------------+
-| *Getter* | get_xfade_curve()      |
-+----------+------------------------+
+:ref:`Curve<class_Curve>` **xfade_curve**
+
+.. rst-class:: classref-property-setget
+
+- void **set_xfade_curve** **(** :ref:`Curve<class_Curve>` value **)**
+- :ref:`Curve<class_Curve>` **get_xfade_curve** **(** **)**
 
 Ease curve for better control over cross-fade between this state and the next.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_xfade_time:
 
-- :ref:`float<class_float>` **xfade_time**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **xfade_time** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``0.0``               |
-+-----------+-----------------------+
-| *Setter*  | set_xfade_time(value) |
-+-----------+-----------------------+
-| *Getter*  | get_xfade_time()      |
-+-----------+-----------------------+
+- void **set_xfade_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_xfade_time** **(** **)**
 
 The time to cross-fade between this state and the next.
 

+ 21 - 11
classes/class_animationnodesync.rst

@@ -18,27 +18,37 @@ AnimationNodeSync
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+----------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeSync_property_sync>` | ``false`` |
-+-------------------------+----------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+----------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeSync_property_sync>` | ``false`` |
+   +-------------------------+----------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeSync_property_sync:
 
-- :ref:`bool<class_bool>` **sync**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
+- void **set_use_sync** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_sync** **(** **)**
 
 If ``false``, the blended animations' frame are stopped when the blend value is ``0``.
 

+ 4 - 0
classes/class_animationnodetimescale.rst

@@ -14,11 +14,15 @@ AnimationNodeTimeScale
 
 A time-scaling animation node to be used with :ref:`AnimationTree<class_AnimationTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_animationnodetimeseek.rst

@@ -14,6 +14,8 @@ AnimationNodeTimeSeek
 
 A time-seeking animation node to be used with :ref:`AnimationTree<class_AnimationTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -44,6 +46,8 @@ This node can be used to cause a seek command to happen to any sub-children of t
 
 
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 96 - 52
classes/class_animationnodetransition.rst

@@ -14,11 +14,15 @@ AnimationNodeTransition
 
 A generic animation transition node for :ref:`AnimationTree<class_AnimationTree>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Simple state machine for cases which don't require a more advanced :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`. Animations can be connected to the inputs and transition times can be specified.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -28,133 +32,173 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------------+----------+
-| :ref:`int<class_int>`     | :ref:`enabled_inputs<class_AnimationNodeTransition_property_enabled_inputs>` | ``0``    |
-+---------------------------+------------------------------------------------------------------------------+----------+
-| :ref:`bool<class_bool>`   | :ref:`from_start<class_AnimationNodeTransition_property_from_start>`         | ``true`` |
-+---------------------------+------------------------------------------------------------------------------+----------+
-| :ref:`Curve<class_Curve>` | :ref:`xfade_curve<class_AnimationNodeTransition_property_xfade_curve>`       |          |
-+---------------------------+------------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeTransition_property_xfade_time>`         | ``0.0``  |
-+---------------------------+------------------------------------------------------------------------------+----------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------------------------+----------+
+   | :ref:`int<class_int>`     | :ref:`enabled_inputs<class_AnimationNodeTransition_property_enabled_inputs>` | ``0``    |
+   +---------------------------+------------------------------------------------------------------------------+----------+
+   | :ref:`bool<class_bool>`   | :ref:`from_start<class_AnimationNodeTransition_property_from_start>`         | ``true`` |
+   +---------------------------+------------------------------------------------------------------------------+----------+
+   | :ref:`Curve<class_Curve>` | :ref:`xfade_curve<class_AnimationNodeTransition_property_xfade_curve>`       |          |
+   +---------------------------+------------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeTransition_property_xfade_time>`         | ``0.0``  |
+   +---------------------------+------------------------------------------------------------------------------+----------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`get_input_caption<class_AnimationNodeTransition_method_get_input_caption>` **(** :ref:`int<class_int>` input **)** |const|                                         |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`     | :ref:`is_input_set_as_auto_advance<class_AnimationNodeTransition_method_is_input_set_as_auto_advance>` **(** :ref:`int<class_int>` input **)** |const|                   |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`set_input_as_auto_advance<class_AnimationNodeTransition_method_set_input_as_auto_advance>` **(** :ref:`int<class_int>` input, :ref:`bool<class_bool>` enable **)** |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`set_input_caption<class_AnimationNodeTransition_method_set_input_caption>` **(** :ref:`int<class_int>` input, :ref:`String<class_String>` caption **)**            |
-+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>` | :ref:`get_input_caption<class_AnimationNodeTransition_method_get_input_caption>` **(** :ref:`int<class_int>` input **)** |const|                                         |
+   +-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`is_input_set_as_auto_advance<class_AnimationNodeTransition_method_is_input_set_as_auto_advance>` **(** :ref:`int<class_int>` input **)** |const|                   |
+   +-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`set_input_as_auto_advance<class_AnimationNodeTransition_method_set_input_as_auto_advance>` **(** :ref:`int<class_int>` input, :ref:`bool<class_bool>` enable **)** |
+   +-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`set_input_caption<class_AnimationNodeTransition_method_set_input_caption>` **(** :ref:`int<class_int>` input, :ref:`String<class_String>` caption **)**            |
+   +-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeTransition_property_enabled_inputs:
 
-- :ref:`int<class_int>` **enabled_inputs**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **enabled_inputs** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``0``                     |
-+-----------+---------------------------+
-| *Setter*  | set_enabled_inputs(value) |
-+-----------+---------------------------+
-| *Getter*  | get_enabled_inputs()      |
-+-----------+---------------------------+
+- void **set_enabled_inputs** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_enabled_inputs** **(** **)**
 
 The number of enabled input ports for this node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeTransition_property_from_start:
 
-- :ref:`bool<class_bool>` **from_start**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **from_start** = ``true``
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_from_start(value) |
-+-----------+-----------------------+
-| *Getter*  | is_from_start()       |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_from_start** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_from_start** **(** **)**
 
 If ``true``, the destination animation is played back from the beginning when switched.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeTransition_property_xfade_curve:
 
-- :ref:`Curve<class_Curve>` **xfade_curve**
+.. rst-class:: classref-property
 
-+----------+------------------------+
-| *Setter* | set_xfade_curve(value) |
-+----------+------------------------+
-| *Getter* | get_xfade_curve()      |
-+----------+------------------------+
+:ref:`Curve<class_Curve>` **xfade_curve**
+
+.. rst-class:: classref-property-setget
+
+- void **set_xfade_curve** **(** :ref:`Curve<class_Curve>` value **)**
+- :ref:`Curve<class_Curve>` **get_xfade_curve** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeTransition_property_xfade_time:
 
-- :ref:`float<class_float>` **xfade_time**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **xfade_time** = ``0.0``
 
-+-----------+-----------------------+
-| *Default* | ``0.0``               |
-+-----------+-----------------------+
-| *Setter*  | set_xfade_time(value) |
-+-----------+-----------------------+
-| *Getter*  | get_xfade_time()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_xfade_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_xfade_time** **(** **)**
 
 Cross-fading time (in seconds) between each animation connected to the inputs.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeTransition_method_get_input_caption:
 
-- :ref:`String<class_String>` **get_input_caption** **(** :ref:`int<class_int>` input **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_input_caption** **(** :ref:`int<class_int>` input **)** |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_AnimationNodeTransition_method_is_input_set_as_auto_advance:
 
-- :ref:`bool<class_bool>` **is_input_set_as_auto_advance** **(** :ref:`int<class_int>` input **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_input_set_as_auto_advance** **(** :ref:`int<class_int>` input **)** |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_AnimationNodeTransition_method_set_input_as_auto_advance:
 
-- void **set_input_as_auto_advance** **(** :ref:`int<class_int>` input, :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_input_as_auto_advance** **(** :ref:`int<class_int>` input, :ref:`bool<class_bool>` enable **)**
 
 .. 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_AnimationNodeTransition_method_set_input_caption:
 
-- void **set_input_caption** **(** :ref:`int<class_int>` input, :ref:`String<class_String>` caption **)**
+.. rst-class:: classref-method
+
+void **set_input_caption** **(** :ref:`int<class_int>` input, :ref:`String<class_String>` caption **)**
 
 .. container:: contribute
 

+ 427 - 218
classes/class_animationplayer.rst

@@ -14,6 +14,8 @@ AnimationPlayer
 
 Player of :ref:`Animation<class_Animation>` resources.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,10 +23,12 @@ An animation player is used for general-purpose playback of :ref:`Animation<clas
 
 Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example ``"movement/run"``. If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library.
 
-\ ``AnimationPlayer`` is more suited than :ref:`Tween<class_Tween>` for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an ``AnimationPlayer`` node thanks to the animation tools provided by the editor. That particular example can also be implemented with a :ref:`Tween<class_Tween>`, but it requires doing everything by code.
+\ **AnimationPlayer** is more suited than :ref:`Tween<class_Tween>` for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an **AnimationPlayer** node thanks to the animation tools provided by the editor. That particular example can also be implemented with a :ref:`Tween<class_Tween>`, but it requires doing everything by code.
 
 Updating the target properties of animations occurs at process time.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -34,599 +38,804 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`String<class_String>`                                                    | :ref:`assigned_animation<class_AnimationPlayer_property_assigned_animation>`                   |                    |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`String<class_String>`                                                    | :ref:`autoplay<class_AnimationPlayer_property_autoplay>`                                       | ``""``             |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`String<class_String>`                                                    | :ref:`current_animation<class_AnimationPlayer_property_current_animation>`                     | ``""``             |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                                                      | :ref:`current_animation_length<class_AnimationPlayer_property_current_animation_length>`       |                    |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                                                      | :ref:`current_animation_position<class_AnimationPlayer_property_current_animation_position>`   |                    |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>`   | :ref:`method_call_mode<class_AnimationPlayer_property_method_call_mode>`                       | ``0``              |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                                                        | :ref:`movie_quit_on_finish<class_AnimationPlayer_property_movie_quit_on_finish>`               | ``false``          |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                                                        | :ref:`playback_active<class_AnimationPlayer_property_playback_active>`                         |                    |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                                                      | :ref:`playback_default_blend_time<class_AnimationPlayer_property_playback_default_blend_time>` | ``0.0``            |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` | :ref:`playback_process_mode<class_AnimationPlayer_property_playback_process_mode>`             | ``1``              |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`float<class_float>`                                                      | :ref:`playback_speed<class_AnimationPlayer_property_playback_speed>`                           | ``1.0``            |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                                                        | :ref:`reset_on_save<class_AnimationPlayer_property_reset_on_save>`                             | ``true``           |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
-| :ref:`NodePath<class_NodePath>`                                                | :ref:`root_node<class_AnimationPlayer_property_root_node>`                                     | ``NodePath("..")`` |
-+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+.. table::
+   :widths: auto
+
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`String<class_String>`                                                    | :ref:`assigned_animation<class_AnimationPlayer_property_assigned_animation>`                   |                    |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`String<class_String>`                                                    | :ref:`autoplay<class_AnimationPlayer_property_autoplay>`                                       | ``""``             |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`String<class_String>`                                                    | :ref:`current_animation<class_AnimationPlayer_property_current_animation>`                     | ``""``             |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`float<class_float>`                                                      | :ref:`current_animation_length<class_AnimationPlayer_property_current_animation_length>`       |                    |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`float<class_float>`                                                      | :ref:`current_animation_position<class_AnimationPlayer_property_current_animation_position>`   |                    |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>`   | :ref:`method_call_mode<class_AnimationPlayer_property_method_call_mode>`                       | ``0``              |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`bool<class_bool>`                                                        | :ref:`movie_quit_on_finish<class_AnimationPlayer_property_movie_quit_on_finish>`               | ``false``          |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`bool<class_bool>`                                                        | :ref:`playback_active<class_AnimationPlayer_property_playback_active>`                         |                    |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`float<class_float>`                                                      | :ref:`playback_default_blend_time<class_AnimationPlayer_property_playback_default_blend_time>` | ``0.0``            |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` | :ref:`playback_process_mode<class_AnimationPlayer_property_playback_process_mode>`             | ``1``              |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`float<class_float>`                                                      | :ref:`playback_speed<class_AnimationPlayer_property_playback_speed>`                           | ``1.0``            |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`bool<class_bool>`                                                        | :ref:`reset_on_save<class_AnimationPlayer_property_reset_on_save>`                             | ``true``           |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+   | :ref:`NodePath<class_NodePath>`                                                | :ref:`root_node<class_AnimationPlayer_property_root_node>`                                     | ``NodePath("..")`` |
+   +--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`             | :ref:`add_animation_library<class_AnimationPlayer_method_add_animation_library>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationLibrary<class_AnimationLibrary>` library **)**                                        |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`advance<class_AnimationPlayer_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                                                                                                      |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`               | :ref:`animation_get_next<class_AnimationPlayer_method_animation_get_next>` **(** :ref:`StringName<class_StringName>` anim_from **)** |const|                                                                                          |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`animation_set_next<class_AnimationPlayer_method_animation_set_next>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)**                                                     |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` **(** **)**                                                                                                                                                            |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`clear_queue<class_AnimationPlayer_method_clear_queue>` **(** **)**                                                                                                                                                              |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`               | :ref:`find_animation<class_AnimationPlayer_method_find_animation>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                                    |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`               | :ref:`find_animation_library<class_AnimationPlayer_method_find_animation_library>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                    |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Animation<class_Animation>`                 | :ref:`get_animation<class_AnimationPlayer_method_get_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                         |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationLibrary<class_AnimationLibrary>`   | :ref:`get_animation_library<class_AnimationPlayer_method_get_animation_library>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                         |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName[]<class_StringName>`             | :ref:`get_animation_library_list<class_AnimationPlayer_method_get_animation_library_list>` **(** **)** |const|                                                                                                                        |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_animation_list<class_AnimationPlayer_method_get_animation_list>` **(** **)** |const|                                                                                                                                        |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                         | :ref:`get_blend_time<class_AnimationPlayer_method_get_blend_time>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)** |const|                                                     |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                         | :ref:`get_playing_speed<class_AnimationPlayer_method_get_playing_speed>` **(** **)** |const|                                                                                                                                          |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_queue<class_AnimationPlayer_method_get_queue>` **(** **)**                                                                                                                                                                  |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`has_animation<class_AnimationPlayer_method_has_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                         |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`has_animation_library<class_AnimationPlayer_method_has_animation_library>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                         |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`is_playing<class_AnimationPlayer_method_is_playing>` **(** **)** |const|                                                                                                                                                        |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`play<class_AnimationPlayer_method_play>` **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)** |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`play_backwards<class_AnimationPlayer_method_play_backwards>` **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1 **)**                                                                 |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`queue<class_AnimationPlayer_method_queue>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                 |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`remove_animation_library<class_AnimationPlayer_method_remove_animation_library>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                           |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`rename_animation_library<class_AnimationPlayer_method_rename_animation_library>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**                                              |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`seek<class_AnimationPlayer_method_seek>` **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)**                                                                                                    |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`set_blend_time<class_AnimationPlayer_method_set_blend_time>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to, :ref:`float<class_float>` sec **)**                              |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                              | :ref:`stop<class_AnimationPlayer_method_stop>` **(** :ref:`bool<class_bool>` reset=true **)**                                                                                                                                         |
-+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>`             | :ref:`add_animation_library<class_AnimationPlayer_method_add_animation_library>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationLibrary<class_AnimationLibrary>` library **)**                                        |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`advance<class_AnimationPlayer_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                                                                                                      |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`               | :ref:`animation_get_next<class_AnimationPlayer_method_animation_get_next>` **(** :ref:`StringName<class_StringName>` anim_from **)** |const|                                                                                          |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`animation_set_next<class_AnimationPlayer_method_animation_set_next>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)**                                                     |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` **(** **)**                                                                                                                                                            |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`clear_queue<class_AnimationPlayer_method_clear_queue>` **(** **)**                                                                                                                                                              |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`               | :ref:`find_animation<class_AnimationPlayer_method_find_animation>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                                    |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`               | :ref:`find_animation_library<class_AnimationPlayer_method_find_animation_library>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                    |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Animation<class_Animation>`                 | :ref:`get_animation<class_AnimationPlayer_method_get_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                         |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationLibrary<class_AnimationLibrary>`   | :ref:`get_animation_library<class_AnimationPlayer_method_get_animation_library>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                         |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName[]<class_StringName>`             | :ref:`get_animation_library_list<class_AnimationPlayer_method_get_animation_library_list>` **(** **)** |const|                                                                                                                        |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_animation_list<class_AnimationPlayer_method_get_animation_list>` **(** **)** |const|                                                                                                                                        |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                         | :ref:`get_blend_time<class_AnimationPlayer_method_get_blend_time>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)** |const|                                                     |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                         | :ref:`get_playing_speed<class_AnimationPlayer_method_get_playing_speed>` **(** **)** |const|                                                                                                                                          |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_queue<class_AnimationPlayer_method_get_queue>` **(** **)**                                                                                                                                                                  |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`has_animation<class_AnimationPlayer_method_has_animation>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                                         |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`has_animation_library<class_AnimationPlayer_method_has_animation_library>` **(** :ref:`StringName<class_StringName>` name **)** |const|                                                                                         |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`is_playing<class_AnimationPlayer_method_is_playing>` **(** **)** |const|                                                                                                                                                        |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`play<class_AnimationPlayer_method_play>` **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)** |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`play_backwards<class_AnimationPlayer_method_play_backwards>` **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1 **)**                                                                 |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`queue<class_AnimationPlayer_method_queue>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                 |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`remove_animation_library<class_AnimationPlayer_method_remove_animation_library>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                           |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`rename_animation_library<class_AnimationPlayer_method_rename_animation_library>` **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**                                              |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`seek<class_AnimationPlayer_method_seek>` **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)**                                                                                                    |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`set_blend_time<class_AnimationPlayer_method_set_blend_time>` **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to, :ref:`float<class_float>` sec **)**                              |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                              | :ref:`stop<class_AnimationPlayer_method_stop>` **(** :ref:`bool<class_bool>` reset=true **)**                                                                                                                                         |
+   +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationPlayer_signal_animation_changed:
 
-- **animation_changed** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` new_name **)**
+.. rst-class:: classref-signal
+
+**animation_changed** **(** :ref:`StringName<class_StringName>` old_name, :ref:`StringName<class_StringName>` new_name **)**
 
 Emitted when a queued animation plays after the previous animation finished. See :ref:`queue<class_AnimationPlayer_method_queue>`.
 
 \ **Note:** The signal is not emitted when the animation is changed via :ref:`play<class_AnimationPlayer_method_play>` or by an :ref:`AnimationTree<class_AnimationTree>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_finished:
 
-- **animation_finished** **(** :ref:`StringName<class_StringName>` anim_name **)**
+.. rst-class:: classref-signal
+
+**animation_finished** **(** :ref:`StringName<class_StringName>` anim_name **)**
 
 Notifies when an animation finished playing.
 
 \ **Note:** This signal is not emitted if an animation is looping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_libraries_updated:
 
-- **animation_libraries_updated** **(** **)**
+.. rst-class:: classref-signal
+
+**animation_libraries_updated** **(** **)**
 
 Notifies when the animation libraries have changed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_list_changed:
 
-- **animation_list_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**animation_list_changed** **(** **)**
 
 Notifies when an animation list is changed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_started:
 
-- **animation_started** **(** :ref:`StringName<class_StringName>` anim_name **)**
+.. rst-class:: classref-signal
+
+**animation_started** **(** :ref:`StringName<class_StringName>` anim_name **)**
 
 Notifies when an animation starts playing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_caches_cleared:
 
-- **caches_cleared** **(** **)**
+.. rst-class:: classref-signal
+
+**caches_cleared** **(** **)**
 
 Notifies when the caches have been cleared, either automatically, or manually via :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>`.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AnimationPlayer_AnimationProcessCallback:
 
+.. rst-class:: classref-enumeration
+
+enum **AnimationProcessCallback**:
+
 .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **ANIMATION_PROCESS_PHYSICS** = ``0``
+
+Process animation during the physics process. This is especially useful when animating physics bodies.
+
 .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_IDLE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **ANIMATION_PROCESS_IDLE** = ``1``
+
+Process animation during the idle process.
+
 .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_MANUAL:
 
-enum **AnimationProcessCallback**:
+.. rst-class:: classref-enumeration-constant
 
-- **ANIMATION_PROCESS_PHYSICS** = **0** --- Process animation during the physics process. This is especially useful when animating physics bodies.
+:ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **ANIMATION_PROCESS_MANUAL** = ``2``
 
-- **ANIMATION_PROCESS_IDLE** = **1** --- Process animation during the idle process.
+Do not process animation. Use :ref:`advance<class_AnimationPlayer_method_advance>` to process the animation manually.
 
-- **ANIMATION_PROCESS_MANUAL** = **2** --- Do not process animation. Use :ref:`advance<class_AnimationPlayer_method_advance>` to process the animation manually.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_AnimationPlayer_AnimationMethodCallMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AnimationMethodCallMode**:
+
 .. _class_AnimationPlayer_constant_ANIMATION_METHOD_CALL_DEFERRED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **ANIMATION_METHOD_CALL_DEFERRED** = ``0``
+
+Batch method calls during the animation process, then do the calls after events are processed. This avoids bugs involving deleting nodes or modifying the AnimationPlayer while playing.
+
 .. _class_AnimationPlayer_constant_ANIMATION_METHOD_CALL_IMMEDIATE:
 
-enum **AnimationMethodCallMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **ANIMATION_METHOD_CALL_IMMEDIATE** = ``1``
 
-- **ANIMATION_METHOD_CALL_DEFERRED** = **0** --- Batch method calls during the animation process, then do the calls after events are processed. This avoids bugs involving deleting nodes or modifying the AnimationPlayer while playing.
+Make method calls immediately when reached in the animation.
 
-- **ANIMATION_METHOD_CALL_IMMEDIATE** = **1** --- Make method calls immediately when reached in the animation.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationPlayer_property_assigned_animation:
 
-- :ref:`String<class_String>` **assigned_animation**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **assigned_animation**
 
-+----------+-------------------------------+
-| *Setter* | set_assigned_animation(value) |
-+----------+-------------------------------+
-| *Getter* | get_assigned_animation()      |
-+----------+-------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_assigned_animation** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_assigned_animation** **(** **)**
 
 If playing, the the current animation's key, otherwise, the animation last played. When set, this changes the animation, but will not play it unless already playing. See also :ref:`current_animation<class_AnimationPlayer_property_current_animation>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_autoplay:
 
-- :ref:`String<class_String>` **autoplay**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``""``              |
-+-----------+---------------------+
-| *Setter*  | set_autoplay(value) |
-+-----------+---------------------+
-| *Getter*  | get_autoplay()      |
-+-----------+---------------------+
+:ref:`String<class_String>` **autoplay** = ``""``
+
+.. rst-class:: classref-property-setget
+
+- void **set_autoplay** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_autoplay** **(** **)**
 
 The key of the animation to play when the scene loads.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_current_animation:
 
-- :ref:`String<class_String>` **current_animation**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **current_animation** = ``""``
 
-+-----------+------------------------------+
-| *Default* | ``""``                       |
-+-----------+------------------------------+
-| *Setter*  | set_current_animation(value) |
-+-----------+------------------------------+
-| *Getter*  | get_current_animation()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_current_animation** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_current_animation** **(** **)**
 
 The key of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See :ref:`play<class_AnimationPlayer_method_play>` for more information on playing animations.
 
 \ **Note:** While this property appears in the Inspector, it's not meant to be edited, and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see :ref:`Animation<class_Animation>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_current_animation_length:
 
-- :ref:`float<class_float>` **current_animation_length**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **current_animation_length**
+
+.. rst-class:: classref-property-setget
 
-+----------+--------------------------------+
-| *Getter* | get_current_animation_length() |
-+----------+--------------------------------+
+- :ref:`float<class_float>` **get_current_animation_length** **(** **)**
 
 The length (in seconds) of the currently playing animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_current_animation_position:
 
-- :ref:`float<class_float>` **current_animation_position**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **current_animation_position**
 
-+----------+----------------------------------+
-| *Getter* | get_current_animation_position() |
-+----------+----------------------------------+
+.. rst-class:: classref-property-setget
+
+- :ref:`float<class_float>` **get_current_animation_position** **(** **)**
 
 The position (in seconds) of the currently playing animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_method_call_mode:
 
-- :ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **method_call_mode**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_method_call_mode(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_method_call_mode()      |
-+-----------+-----------------------------+
+:ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **method_call_mode** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_method_call_mode** **(** :ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` value **)**
+- :ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **get_method_call_mode** **(** **)**
 
 The call mode to use for Call Method tracks.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_movie_quit_on_finish:
 
-- :ref:`bool<class_bool>` **movie_quit_on_finish**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **movie_quit_on_finish** = ``false``
 
-+-----------+-----------------------------------------+
-| *Default* | ``false``                               |
-+-----------+-----------------------------------------+
-| *Setter*  | set_movie_quit_on_finish_enabled(value) |
-+-----------+-----------------------------------------+
-| *Getter*  | is_movie_quit_on_finish_enabled()       |
-+-----------+-----------------------------------------+
+.. rst-class:: classref-property-setget
 
-If ``true`` and the engine is running in Movie Maker mode (see :ref:`MovieWriter<class_MovieWriter>`), exits the engine with :ref:`SceneTree.quit<class_SceneTree_method_quit>` as soon as an animation is done playing in this ``AnimationPlayer``. A message is printed when the engine quits for this reason.
+- void **set_movie_quit_on_finish_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_movie_quit_on_finish_enabled** **(** **)**
+
+If ``true`` and the engine is running in Movie Maker mode (see :ref:`MovieWriter<class_MovieWriter>`), exits the engine with :ref:`SceneTree.quit<class_SceneTree_method_quit>` as soon as an animation is done playing in this **AnimationPlayer**. A message is printed when the engine quits for this reason.
 
 \ **Note:** This obeys the same logic as the :ref:`animation_finished<class_AnimationPlayer_signal_animation_finished>` signal, so it will not quit the engine if the animation is set to be looping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_playback_active:
 
-- :ref:`bool<class_bool>` **playback_active**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **playback_active**
+
+.. rst-class:: classref-property-setget
 
-+----------+-------------------+
-| *Setter* | set_active(value) |
-+----------+-------------------+
-| *Getter* | is_active()       |
-+----------+-------------------+
+- void **set_active** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_active** **(** **)**
 
 If ``true``, updates animations in response to process-related notifications.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_playback_default_blend_time:
 
-- :ref:`float<class_float>` **playback_default_blend_time**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **playback_default_blend_time** = ``0.0``
 
-+-----------+-------------------------------+
-| *Default* | ``0.0``                       |
-+-----------+-------------------------------+
-| *Setter*  | set_default_blend_time(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_default_blend_time()      |
-+-----------+-------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_default_blend_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_default_blend_time** **(** **)**
 
 The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_playback_process_mode:
 
-- :ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **playback_process_mode**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------+
-| *Default* | ``1``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_process_callback(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_process_callback()      |
-+-----------+-----------------------------+
+:ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **playback_process_mode** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_process_callback** **(** :ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` value **)**
+- :ref:`AnimationProcessCallback<enum_AnimationPlayer_AnimationProcessCallback>` **get_process_callback** **(** **)**
 
 The process notification in which to update animations.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_playback_speed:
 
-- :ref:`float<class_float>` **playback_speed**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **playback_speed** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_speed_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_speed_scale()      |
-+-----------+------------------------+
+- void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_speed_scale** **(** **)**
 
 The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_reset_on_save:
 
-- :ref:`bool<class_bool>` **reset_on_save**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **reset_on_save** = ``true``
 
-+-----------+----------------------------------+
-| *Default* | ``true``                         |
-+-----------+----------------------------------+
-| *Setter*  | set_reset_on_save_enabled(value) |
-+-----------+----------------------------------+
-| *Getter*  | is_reset_on_save_enabled()       |
-+-----------+----------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_reset_on_save_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_reset_on_save_enabled** **(** **)**
 
 This is used by the editor. If set to ``true``, the scene will be saved with the effects of the reset animation (the animation with the key ``"RESET"``) applied as if it had been seeked to time 0, with the editor keeping the values that the scene had before saving.
 
 This makes it more convenient to preview and edit animations in the editor, as changes to the scene will not be saved as long as they are set in the reset animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_root_node:
 
-- :ref:`NodePath<class_NodePath>` **root_node**
+.. rst-class:: classref-property
 
-+-----------+--------------------+
-| *Default* | ``NodePath("..")`` |
-+-----------+--------------------+
-| *Setter*  | set_root(value)    |
-+-----------+--------------------+
-| *Getter*  | get_root()         |
-+-----------+--------------------+
+:ref:`NodePath<class_NodePath>` **root_node** = ``NodePath("..")``
+
+.. rst-class:: classref-property-setget
+
+- void **set_root** **(** :ref:`NodePath<class_NodePath>` value **)**
+- :ref:`NodePath<class_NodePath>` **get_root** **(** **)**
 
 The node from which node path references will travel.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimationPlayer_method_add_animation_library:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **add_animation_library** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationLibrary<class_AnimationLibrary>` library **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **add_animation_library** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationLibrary<class_AnimationLibrary>` library **)**
 
 Adds ``library`` to the animation player, under the key ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_advance:
 
-- void **advance** **(** :ref:`float<class_float>` delta **)**
+.. rst-class:: classref-method
+
+void **advance** **(** :ref:`float<class_float>` delta **)**
 
 Shifts position in the animation timeline and immediately updates the animation. ``delta`` is the time in seconds to shift. Events between the current frame and ``delta`` are handled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_animation_get_next:
 
-- :ref:`StringName<class_StringName>` **animation_get_next** **(** :ref:`StringName<class_StringName>` anim_from **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **animation_get_next** **(** :ref:`StringName<class_StringName>` anim_from **)** |const|
 
 Returns the key of the animation which is queued to play after the ``anim_from`` animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_animation_set_next:
 
-- void **animation_set_next** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)**
+.. rst-class:: classref-method
+
+void **animation_set_next** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)**
 
 Triggers the ``anim_to`` animation when the ``anim_from`` animation completes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_clear_caches:
 
-- void **clear_caches** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_caches** **(** **)**
+
+**AnimationPlayer** caches animated nodes. It may not notice if a node disappears; :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` forces it to update the cache again.
 
-``AnimationPlayer`` caches animated nodes. It may not notice if a node disappears; :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` forces it to update the cache again.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationPlayer_method_clear_queue:
 
-- void **clear_queue** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_queue** **(** **)**
 
 Clears all queued, unplayed animations.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_find_animation:
 
-- :ref:`StringName<class_StringName>` **find_animation** **(** :ref:`Animation<class_Animation>` animation **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **find_animation** **(** :ref:`Animation<class_Animation>` animation **)** |const|
 
 Returns the key of ``animation`` or an empty :ref:`StringName<class_StringName>` if not found.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_find_animation_library:
 
-- :ref:`StringName<class_StringName>` **find_animation_library** **(** :ref:`Animation<class_Animation>` animation **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **find_animation_library** **(** :ref:`Animation<class_Animation>` animation **)** |const|
 
 Returns the key for the :ref:`AnimationLibrary<class_AnimationLibrary>` that contains ``animation`` or an empty :ref:`StringName<class_StringName>` if not found.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_animation:
 
-- :ref:`Animation<class_Animation>` **get_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Animation<class_Animation>` **get_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the :ref:`Animation<class_Animation>` with the key ``name``. If the animation does not exist, ``null`` is returned and an error is logged.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_animation_library:
 
-- :ref:`AnimationLibrary<class_AnimationLibrary>` **get_animation_library** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationLibrary<class_AnimationLibrary>` **get_animation_library** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
 Returns the first :ref:`AnimationLibrary<class_AnimationLibrary>` with key ``name`` or ``null`` if not found.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_animation_library_list:
 
-- :ref:`StringName[]<class_StringName>` **get_animation_library_list** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName[]<class_StringName>` **get_animation_library_list** **(** **)** |const|
 
 Returns the list of stored library keys.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_animation_list:
 
-- :ref:`PackedStringArray<class_PackedStringArray>` **get_animation_list** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PackedStringArray<class_PackedStringArray>` **get_animation_list** **(** **)** |const|
 
 Returns the list of stored animation keys.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_blend_time:
 
-- :ref:`float<class_float>` **get_blend_time** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_blend_time** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to **)** |const|
 
 Gets the blend time (in seconds) between two animations, referenced by their keys.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_playing_speed:
 
-- :ref:`float<class_float>` **get_playing_speed** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_playing_speed** **(** **)** |const|
 
 Gets the actual playing speed of current animation or 0 if not playing. This speed is the :ref:`playback_speed<class_AnimationPlayer_property_playback_speed>` property multiplied by ``custom_speed`` argument specified when calling the :ref:`play<class_AnimationPlayer_method_play>` method.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_queue:
 
-- :ref:`PackedStringArray<class_PackedStringArray>` **get_queue** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedStringArray<class_PackedStringArray>` **get_queue** **(** **)**
 
 Returns a list of the animation keys that are currently queued to play.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_has_animation:
 
-- :ref:`bool<class_bool>` **has_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_animation** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
-Returns ``true`` if the ``AnimationPlayer`` stores an :ref:`Animation<class_Animation>` with key ``name``.
+Returns ``true`` if the **AnimationPlayer** stores an :ref:`Animation<class_Animation>` with key ``name``.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationPlayer_method_has_animation_library:
 
-- :ref:`bool<class_bool>` **has_animation_library** **(** :ref:`StringName<class_StringName>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_animation_library** **(** :ref:`StringName<class_StringName>` name **)** |const|
 
-Returns ``true`` if the ``AnimationPlayer`` stores an :ref:`AnimationLibrary<class_AnimationLibrary>` with key ``name``.
+Returns ``true`` if the **AnimationPlayer** stores an :ref:`AnimationLibrary<class_AnimationLibrary>` with key ``name``.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationPlayer_method_is_playing:
 
-- :ref:`bool<class_bool>` **is_playing** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_playing** **(** **)** |const|
 
 Returns ``true`` if playing an animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_play:
 
-- void **play** **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)**
 
 Plays the animation with key ``name``. Custom blend times and speed can be set. If ``custom_speed`` is negative and ``from_end`` is ``true``, the animation will play backwards (which is equivalent to calling :ref:`play_backwards<class_AnimationPlayer_method_play_backwards>`).
 
-The ``AnimationPlayer`` keeps track of its current or last played animation with :ref:`assigned_animation<class_AnimationPlayer_property_assigned_animation>`. If this method is called with that same animation ``name``, or with no ``name`` parameter, the assigned animation will resume playing if it was paused, or restart if it was stopped (see :ref:`stop<class_AnimationPlayer_method_stop>` for both pause and stop). If the animation was already playing, it will keep playing.
+The **AnimationPlayer** keeps track of its current or last played animation with :ref:`assigned_animation<class_AnimationPlayer_property_assigned_animation>`. If this method is called with that same animation ``name``, or with no ``name`` parameter, the assigned animation will resume playing if it was paused, or restart if it was stopped (see :ref:`stop<class_AnimationPlayer_method_stop>` for both pause and stop). If the animation was already playing, it will keep playing.
 
-\ **Note:** The animation will be updated the next time the ``AnimationPlayer`` is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call ``advance(0)``.
+\ **Note:** The animation will be updated the next time the **AnimationPlayer** is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call ``advance(0)``.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationPlayer_method_play_backwards:
 
-- void **play_backwards** **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1 **)**
+.. rst-class:: classref-method
+
+void **play_backwards** **(** :ref:`StringName<class_StringName>` name="", :ref:`float<class_float>` custom_blend=-1 **)**
 
 Plays the animation with key ``name`` in reverse.
 
 This method is a shorthand for :ref:`play<class_AnimationPlayer_method_play>` with ``custom_speed = -1.0`` and ``from_end = true``, so see its description for more information.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_queue:
 
-- void **queue** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **queue** **(** :ref:`StringName<class_StringName>` name **)**
 
 Queues an animation for playback once the current one is done.
 
 \ **Note:** If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_remove_animation_library:
 
-- void **remove_animation_library** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **remove_animation_library** **(** :ref:`StringName<class_StringName>` name **)**
 
 Removes the :ref:`AnimationLibrary<class_AnimationLibrary>` associated with the key ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_rename_animation_library:
 
-- void **rename_animation_library** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**
+.. rst-class:: classref-method
+
+void **rename_animation_library** **(** :ref:`StringName<class_StringName>` name, :ref:`StringName<class_StringName>` newname **)**
 
 Moves the :ref:`AnimationLibrary<class_AnimationLibrary>` associated with the key ``name`` to the key ``newname``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_seek:
 
-- void **seek** **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)**
+.. rst-class:: classref-method
+
+void **seek** **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)**
 
 Seeks the animation to the ``seconds`` point in time (in seconds). If ``update`` is ``true``, the animation updates too, otherwise it updates at process time. Events between the current frame and ``seconds`` are skipped.
 
 \ **Note:** Seeking to the end of the animation doesn't emit :ref:`animation_finished<class_AnimationPlayer_signal_animation_finished>`. If you want to skip animation and emit the signal, use :ref:`advance<class_AnimationPlayer_method_advance>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_set_blend_time:
 
-- void **set_blend_time** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to, :ref:`float<class_float>` sec **)**
+.. rst-class:: classref-method
+
+void **set_blend_time** **(** :ref:`StringName<class_StringName>` anim_from, :ref:`StringName<class_StringName>` anim_to, :ref:`float<class_float>` sec **)**
 
 Specifies a blend time (in seconds) between two animations, referenced by their keys.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_stop:
 
-- void **stop** **(** :ref:`bool<class_bool>` reset=true **)**
+.. rst-class:: classref-method
+
+void **stop** **(** :ref:`bool<class_bool>` reset=true **)**
 
 Stops or pauses the currently playing animation. If ``reset`` is ``true``, the animation position is reset to ``0`` and the playback speed is reset to ``1.0``.
 

+ 244 - 81
classes/class_animationtree.rst

@@ -14,12 +14,16 @@ AnimationTree
 
 A node to be used for advanced animation transitions in an :ref:`AnimationPlayer<class_AnimationPlayer>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A node to be used for advanced animation transitions in an :ref:`AnimationPlayer<class_AnimationPlayer>`.
 
-\ **Note:** When linked with an :ref:`AnimationPlayer<class_AnimationPlayer>`, several properties and methods of the corresponding :ref:`AnimationPlayer<class_AnimationPlayer>` will not function as expected. Playback and transitions should be handled using only the ``AnimationTree`` and its constituent :ref:`AnimationNode<class_AnimationNode>`\ (s). The :ref:`AnimationPlayer<class_AnimationPlayer>` node should be used solely for adding, deleting, and editing animations.
+\ **Note:** When linked with an :ref:`AnimationPlayer<class_AnimationPlayer>`, several properties and methods of the corresponding :ref:`AnimationPlayer<class_AnimationPlayer>` will not function as expected. Playback and transitions should be handled using only the **AnimationTree** and its constituent :ref:`AnimationNode<class_AnimationNode>`\ (s). The :ref:`AnimationPlayer<class_AnimationPlayer>` node should be used solely for adding, deleting, and editing animations.
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
@@ -28,181 +32,340 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                                                      | :ref:`active<class_AnimationTree_property_active>`                                             | ``false``         |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`NodePath<class_NodePath>`                                              | :ref:`advance_expression_base_node<class_AnimationTree_property_advance_expression_base_node>` | ``NodePath(".")`` |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`NodePath<class_NodePath>`                                              | :ref:`anim_player<class_AnimationTree_property_anim_player>`                                   | ``NodePath("")``  |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` | :ref:`process_callback<class_AnimationTree_property_process_callback>`                         | ``1``             |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`NodePath<class_NodePath>`                                              | :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>`                       | ``NodePath("")``  |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
-| :ref:`AnimationNode<class_AnimationNode>`                                    | :ref:`tree_root<class_AnimationTree_property_tree_root>`                                       |                   |
-+------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                                                      | :ref:`active<class_AnimationTree_property_active>`                                             | ``false``         |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`NodePath<class_NodePath>`                                              | :ref:`advance_expression_base_node<class_AnimationTree_property_advance_expression_base_node>` | ``NodePath(".")`` |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`NodePath<class_NodePath>`                                              | :ref:`anim_player<class_AnimationTree_property_anim_player>`                                   | ``NodePath("")``  |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` | :ref:`process_callback<class_AnimationTree_property_process_callback>`                         | ``1``             |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`NodePath<class_NodePath>`                                              | :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>`                       | ``NodePath("")``  |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+   | :ref:`AnimationNode<class_AnimationNode>`                                    | :ref:`tree_root<class_AnimationTree_property_tree_root>`                                       |                   |
+   +------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`advance<class_AnimationTree_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                              |
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform3D<class_Transform3D>` | :ref:`get_root_motion_transform<class_AnimationTree_method_get_root_motion_transform>` **(** **)** |const|                                                  |
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`rename_parameter<class_AnimationTree_method_rename_parameter>` **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)** |
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`advance<class_AnimationTree_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                              |
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`       | :ref:`get_root_motion_position<class_AnimationTree_method_get_root_motion_position>` **(** **)** |const|                                                    |
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Quaternion<class_Quaternion>` | :ref:`get_root_motion_rotation<class_AnimationTree_method_get_root_motion_rotation>` **(** **)** |const|                                                    |
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`       | :ref:`get_root_motion_scale<class_AnimationTree_method_get_root_motion_scale>` **(** **)** |const|                                                          |
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`rename_parameter<class_AnimationTree_method_rename_parameter>` **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)** |
+   +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimationTree_signal_animation_player_changed:
 
-- **animation_player_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**animation_player_changed** **(** **)**
 
 Emitted when the :ref:`anim_player<class_AnimationTree_property_anim_player>` is changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AnimationTree_AnimationProcessCallback:
 
+.. rst-class:: classref-enumeration
+
+enum **AnimationProcessCallback**:
+
 .. _class_AnimationTree_constant_ANIMATION_PROCESS_PHYSICS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **ANIMATION_PROCESS_PHYSICS** = ``0``
+
+The animations will progress during the physics frame (i.e. :ref:`Node._physics_process<class_Node_method__physics_process>`).
+
 .. _class_AnimationTree_constant_ANIMATION_PROCESS_IDLE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **ANIMATION_PROCESS_IDLE** = ``1``
+
+The animations will progress during the idle frame (i.e. :ref:`Node._process<class_Node_method__process>`).
+
 .. _class_AnimationTree_constant_ANIMATION_PROCESS_MANUAL:
 
-enum **AnimationProcessCallback**:
+.. rst-class:: classref-enumeration-constant
 
-- **ANIMATION_PROCESS_PHYSICS** = **0** --- The animations will progress during the physics frame (i.e. :ref:`Node._physics_process<class_Node_method__physics_process>`).
+:ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **ANIMATION_PROCESS_MANUAL** = ``2``
 
-- **ANIMATION_PROCESS_IDLE** = **1** --- The animations will progress during the idle frame (i.e. :ref:`Node._process<class_Node_method__process>`).
+The animations will only progress manually (see :ref:`advance<class_AnimationTree_method_advance>`).
 
-- **ANIMATION_PROCESS_MANUAL** = **2** --- The animations will only progress manually (see :ref:`advance<class_AnimationTree_method_advance>`).
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationTree_property_active:
 
-- :ref:`bool<class_bool>` **active**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **active** = ``false``
 
-+-----------+-------------------+
-| *Default* | ``false``         |
-+-----------+-------------------+
-| *Setter*  | set_active(value) |
-+-----------+-------------------+
-| *Getter*  | is_active()       |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
 
-If ``true``, the ``AnimationTree`` will be processing.
+- void **set_active** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_active** **(** **)**
+
+If ``true``, the **AnimationTree** will be processing.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationTree_property_advance_expression_base_node:
 
-- :ref:`NodePath<class_NodePath>` **advance_expression_base_node**
+.. rst-class:: classref-property
+
+:ref:`NodePath<class_NodePath>` **advance_expression_base_node** = ``NodePath(".")``
 
-+-----------+-----------------------------------------+
-| *Default* | ``NodePath(".")``                       |
-+-----------+-----------------------------------------+
-| *Setter*  | set_advance_expression_base_node(value) |
-+-----------+-----------------------------------------+
-| *Getter*  | get_advance_expression_base_node()      |
-+-----------+-----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_advance_expression_base_node** **(** :ref:`NodePath<class_NodePath>` value **)**
+- :ref:`NodePath<class_NodePath>` **get_advance_expression_base_node** **(** **)**
 
 The path to the :ref:`Node<class_Node>` used to evaluate the AnimationNode :ref:`Expression<class_Expression>` if one is not explicitly specified internally.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationTree_property_anim_player:
 
-- :ref:`NodePath<class_NodePath>` **anim_player**
+.. rst-class:: classref-property
+
+:ref:`NodePath<class_NodePath>` **anim_player** = ``NodePath("")``
 
-+-----------+-----------------------------+
-| *Default* | ``NodePath("")``            |
-+-----------+-----------------------------+
-| *Setter*  | set_animation_player(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_animation_player()      |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_animation_player** **(** :ref:`NodePath<class_NodePath>` value **)**
+- :ref:`NodePath<class_NodePath>` **get_animation_player** **(** **)**
 
 The path to the :ref:`AnimationPlayer<class_AnimationPlayer>` used for animating.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationTree_property_process_callback:
 
-- :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **process_callback**
+.. rst-class:: classref-property
+
+:ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **process_callback** = ``1``
 
-+-----------+-----------------------------+
-| *Default* | ``1``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_process_callback(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_process_callback()      |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
 
-The process mode of this ``AnimationTree``. See :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` for available modes.
+- void **set_process_callback** **(** :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` value **)**
+- :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` **get_process_callback** **(** **)**
+
+The process mode of this **AnimationTree**. See :ref:`AnimationProcessCallback<enum_AnimationTree_AnimationProcessCallback>` for available modes.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationTree_property_root_motion_track:
 
-- :ref:`NodePath<class_NodePath>` **root_motion_track**
+.. rst-class:: classref-property
+
+:ref:`NodePath<class_NodePath>` **root_motion_track** = ``NodePath("")``
 
-+-----------+------------------------------+
-| *Default* | ``NodePath("")``             |
-+-----------+------------------------------+
-| *Setter*  | set_root_motion_track(value) |
-+-----------+------------------------------+
-| *Getter*  | get_root_motion_track()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_root_motion_track** **(** :ref:`NodePath<class_NodePath>` value **)**
+- :ref:`NodePath<class_NodePath>` **get_root_motion_track** **(** **)**
 
 The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by ``":"``. For example, ``"character/skeleton:ankle"`` or ``"character/mesh:transform/local"``.
 
-If the track has type :ref:`Animation.TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`Animation.TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` or :ref:`Animation.TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` the transformation will be cancelled visually, and the animation will appear to stay in place. See also :ref:`get_root_motion_transform<class_AnimationTree_method_get_root_motion_transform>` and :ref:`RootMotionView<class_RootMotionView>`.
+If the track has type :ref:`Animation.TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`Animation.TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>` or :ref:`Animation.TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` the transformation will be cancelled visually, and the animation will appear to stay in place. See also :ref:`get_root_motion_position<class_AnimationTree_method_get_root_motion_position>`, :ref:`get_root_motion_rotation<class_AnimationTree_method_get_root_motion_rotation>`, :ref:`get_root_motion_scale<class_AnimationTree_method_get_root_motion_scale>` and :ref:`RootMotionView<class_RootMotionView>`.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationTree_property_tree_root:
 
-- :ref:`AnimationNode<class_AnimationNode>` **tree_root**
+.. rst-class:: classref-property
+
+:ref:`AnimationNode<class_AnimationNode>` **tree_root**
 
-+----------+----------------------+
-| *Setter* | set_tree_root(value) |
-+----------+----------------------+
-| *Getter* | get_tree_root()      |
-+----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_tree_root** **(** :ref:`AnimationNode<class_AnimationNode>` value **)**
+- :ref:`AnimationNode<class_AnimationNode>` **get_tree_root** **(** **)**
+
+The root animation node of this **AnimationTree**. See :ref:`AnimationNode<class_AnimationNode>`.
+
+.. rst-class:: classref-section-separator
+
+----
 
-The root animation node of this ``AnimationTree``. See :ref:`AnimationNode<class_AnimationNode>`.
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AnimationTree_method_advance:
 
-- void **advance** **(** :ref:`float<class_float>` delta **)**
+.. rst-class:: classref-method
+
+void **advance** **(** :ref:`float<class_float>` delta **)**
 
 Manually advance the animations by the specified time (in seconds).
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AnimationTree_method_get_root_motion_position:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_root_motion_position** **(** **)** |const|
+
+Retrieve the motion of position with the :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` as a :ref:`Vector3<class_Vector3>` that can be used elsewhere.
+
+If :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` is not a path to a track of type :ref:`Animation.TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, returns ``Vector3(0, 0, 0)``.
+
+See also :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` and :ref:`RootMotionView<class_RootMotionView>`.
+
+The most basic example is applying position to :ref:`CharacterBody3D<class_CharacterBody3D>`:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var current_rotation: Quaternion
+    
+    func _process(delta):
+        if Input.is_action_just_pressed("animate"):
+            current_rotation = get_quaternion()
+            state_machine.travel("Animate")
+        var velocity: Vector3 = current_rotation * animation_tree.get_root_motion_position() / delta
+        set_velocity(velocity)
+        move_and_slide()
+
+
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AnimationTree_method_get_root_motion_rotation:
+
+.. rst-class:: classref-method
+
+:ref:`Quaternion<class_Quaternion>` **get_root_motion_rotation** **(** **)** |const|
+
+Retrieve the motion of rotation with the :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` as a :ref:`Quaternion<class_Quaternion>` that can be used elsewhere.
+
+If :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` is not a path to a track of type :ref:`Animation.TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>`, returns ``Quaternion(0, 0, 0, 1)``.
+
+See also :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` and :ref:`RootMotionView<class_RootMotionView>`.
+
+The most basic example is applying rotation to :ref:`CharacterBody3D<class_CharacterBody3D>`:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    func _process(delta):
+        if Input.is_action_just_pressed("animate"):
+            state_machine.travel("Animate")
+        set_quaternion(get_quaternion() * animation_tree.get_root_motion_rotation())
+
+
+
+.. rst-class:: classref-item-separator
+
 ----
 
-.. _class_AnimationTree_method_get_root_motion_transform:
+.. _class_AnimationTree_method_get_root_motion_scale:
+
+.. rst-class:: classref-method
 
-- :ref:`Transform3D<class_Transform3D>` **get_root_motion_transform** **(** **)** |const|
+:ref:`Vector3<class_Vector3>` **get_root_motion_scale** **(** **)** |const|
 
-Retrieve the motion of the :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` as a :ref:`Transform3D<class_Transform3D>` that can be used elsewhere. If :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` is not a path to a track of type :ref:`Animation.TYPE_POSITION_3D<class_Animation_constant_TYPE_POSITION_3D>`, :ref:`Animation.TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>` or :ref:`Animation.TYPE_ROTATION_3D<class_Animation_constant_TYPE_ROTATION_3D>`, returns an identity transformation. See also :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` and :ref:`RootMotionView<class_RootMotionView>`.
+Retrieve the motion of scale with the :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` as a :ref:`Vector3<class_Vector3>` that can be used elsewhere.
+
+If :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` is not a path to a track of type :ref:`Animation.TYPE_SCALE_3D<class_Animation_constant_TYPE_SCALE_3D>`, returns ``Vector3(0, 0, 0)``.
+
+See also :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` and :ref:`RootMotionView<class_RootMotionView>`.
+
+The most basic example is applying scale to :ref:`CharacterBody3D<class_CharacterBody3D>`:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    var current_scale: Vector3 = Vector3(1, 1, 1)
+    var scale_accum: Vector3 = Vector3(1, 1, 1)
+    
+    func _process(delta):
+        if Input.is_action_just_pressed("animate"):
+            current_scale = get_scale()
+            scale_accum = Vector3(1, 1, 1)
+            state_machine.travel("Animate")
+        scale_accum += animation_tree.get_root_motion_scale()
+        set_scale(current_scale * scale_accum)
+
+
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AnimationTree_method_rename_parameter:
 
-- void **rename_parameter** **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
+.. rst-class:: classref-method
+
+void **rename_parameter** **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
 
 .. container:: contribute
 

+ 313 - 188
classes/class_area2d.rst

@@ -14,6 +14,8 @@ Area2D
 
 2D area for detection and physics and audio influence.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ To give the area its shape, add a :ref:`CollisionShape2D<class_CollisionShape2D>
 
 \ **Warning:** See :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>` for a warning about possibly unexpected behavior when using that shape for an area.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -34,84 +38,110 @@ Tutorials
 
 - `2D Platformer Demo <https://godotengine.org/asset-library/asset/120>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                       | :ref:`angular_damp<class_Area2D_property_angular_damp>`                                 | ``1.0``           |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area2D_property_angular_damp_space_override>`   | ``0``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`StringName<class_StringName>`             | :ref:`audio_bus_name<class_Area2D_property_audio_bus_name>`                             | ``&"Master"``     |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                         | :ref:`audio_bus_override<class_Area2D_property_audio_bus_override>`                     | ``false``         |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                       | :ref:`gravity<class_Area2D_property_gravity>`                                           | ``980.0``         |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_direction<class_Area2D_property_gravity_direction>`                       | ``Vector2(0, 1)`` |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area2D_property_gravity_point>`                               | ``false``         |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_point_center<class_Area2D_property_gravity_point_center>`                 | ``Vector2(0, 1)`` |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                       | :ref:`gravity_point_distance_scale<class_Area2D_property_gravity_point_distance_scale>` | ``0.0``           |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`gravity_space_override<class_Area2D_property_gravity_space_override>`             | ``0``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area2D_property_linear_damp>`                                   | ``0.1``           |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area2D_property_linear_damp_space_override>`     | ``0``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                         | :ref:`monitorable<class_Area2D_property_monitorable>`                                   | ``true``          |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`bool<class_bool>`                         | :ref:`monitoring<class_Area2D_property_monitoring>`                                     | ``true``          |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
-| :ref:`float<class_float>`                       | :ref:`priority<class_Area2D_property_priority>`                                         | ``0.0``           |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`                       | :ref:`angular_damp<class_Area2D_property_angular_damp>`                                 | ``1.0``           |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area2D_property_angular_damp_space_override>`   | ``0``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`StringName<class_StringName>`             | :ref:`audio_bus_name<class_Area2D_property_audio_bus_name>`                             | ``&"Master"``     |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`audio_bus_override<class_Area2D_property_audio_bus_override>`                     | ``false``         |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`                       | :ref:`gravity<class_Area2D_property_gravity>`                                           | ``980.0``         |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_direction<class_Area2D_property_gravity_direction>`                       | ``Vector2(0, 1)`` |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area2D_property_gravity_point>`                               | ``false``         |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_point_center<class_Area2D_property_gravity_point_center>`                 | ``Vector2(0, 1)`` |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`                       | :ref:`gravity_point_distance_scale<class_Area2D_property_gravity_point_distance_scale>` | ``0.0``           |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`gravity_space_override<class_Area2D_property_gravity_space_override>`             | ``0``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area2D_property_linear_damp>`                                   | ``0.1``           |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area2D_property_linear_damp_space_override>`     | ``0``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`monitorable<class_Area2D_property_monitorable>`                                   | ``true``          |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`monitoring<class_Area2D_property_monitoring>`                                     | ``true``          |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+   | :ref:`float<class_float>`                       | :ref:`priority<class_Area2D_property_priority>`                                         | ``0.0``           |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Area2D[]<class_Area2D>` | :ref:`get_overlapping_areas<class_Area2D_method_get_overlapping_areas>` **(** **)** |const|              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Node2D[]<class_Node2D>` | :ref:`get_overlapping_bodies<class_Area2D_method_get_overlapping_bodies>` **(** **)** |const|            |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_overlapping_areas<class_Area2D_method_has_overlapping_areas>` **(** **)** |const|              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_overlapping_bodies<class_Area2D_method_has_overlapping_bodies>` **(** **)** |const|            |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`overlaps_area<class_Area2D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`overlaps_body<class_Area2D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Area2D[]<class_Area2D>` | :ref:`get_overlapping_areas<class_Area2D_method_get_overlapping_areas>` **(** **)** |const|              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Node2D[]<class_Node2D>` | :ref:`get_overlapping_bodies<class_Area2D_method_get_overlapping_bodies>` **(** **)** |const|            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_overlapping_areas<class_Area2D_method_has_overlapping_areas>` **(** **)** |const|              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_overlapping_bodies<class_Area2D_method_has_overlapping_bodies>` **(** **)** |const|            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`overlaps_area<class_Area2D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`overlaps_body<class_Area2D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_Area2D_signal_area_entered:
 
-- **area_entered** **(** :ref:`Area2D<class_Area2D>` area **)**
+.. rst-class:: classref-signal
+
+**area_entered** **(** :ref:`Area2D<class_Area2D>` area **)**
 
 Emitted when another Area2D enters this Area2D. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area2D.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_area_exited:
 
-- **area_exited** **(** :ref:`Area2D<class_Area2D>` area **)**
+.. rst-class:: classref-signal
+
+**area_exited** **(** :ref:`Area2D<class_Area2D>` area **)**
 
 Emitted when another Area2D exits this Area2D. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area2D.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_area_shape_entered:
 
-- **area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area2D's :ref:`Shape2D<class_Shape2D>`\ s enters one of this Area2D's :ref:`Shape2D<class_Shape2D>`\ s. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
 
@@ -123,11 +153,15 @@ Emitted when one of another Area2D's :ref:`Shape2D<class_Shape2D>`\ s enters one
 
 \ ``local_shape_index`` the index of the :ref:`Shape2D<class_Shape2D>` of this Area2D used by the :ref:`PhysicsServer2D<class_PhysicsServer2D>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_area_shape_exited:
 
-- **area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area2D's :ref:`Shape2D<class_Shape2D>`\ s exits one of this Area2D's :ref:`Shape2D<class_Shape2D>`\ s. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
 
@@ -139,31 +173,43 @@ Emitted when one of another Area2D's :ref:`Shape2D<class_Shape2D>`\ s exits one
 
 \ ``local_shape_index`` the index of the :ref:`Shape2D<class_Shape2D>` of this Area2D used by the :ref:`PhysicsServer2D<class_PhysicsServer2D>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_body_entered:
 
-- **body_entered** **(** :ref:`Node2D<class_Node2D>` body **)**
+.. rst-class:: classref-signal
+
+**body_entered** **(** :ref:`Node2D<class_Node2D>` body **)**
 
 Emitted when a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>` enters this Area2D. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``. :ref:`TileMap<class_TileMap>`\ s are detected if the :ref:`TileSet<class_TileSet>` has Collision :ref:`Shape2D<class_Shape2D>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_body_exited:
 
-- **body_exited** **(** :ref:`Node2D<class_Node2D>` body **)**
+.. rst-class:: classref-signal
+
+**body_exited** **(** :ref:`Node2D<class_Node2D>` body **)**
 
 Emitted when a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>` exits this Area2D. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``. :ref:`TileMap<class_TileMap>`\ s are detected if the :ref:`TileSet<class_TileSet>` has Collision :ref:`Shape2D<class_Shape2D>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_body_shape_entered:
 
-- **body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>`'s :ref:`Shape2D<class_Shape2D>`\ s enters one of this Area2D's :ref:`Shape2D<class_Shape2D>`\ s. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``. :ref:`TileMap<class_TileMap>`\ s are detected if the :ref:`TileSet<class_TileSet>` has Collision :ref:`Shape2D<class_Shape2D>`\ s.
 
@@ -175,11 +221,15 @@ Emitted when one of a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap
 
 \ ``local_shape_index`` the index of the :ref:`Shape2D<class_Shape2D>` of this Area2D used by the :ref:`PhysicsServer2D<class_PhysicsServer2D>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_body_shape_exited:
 
-- **body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap<class_TileMap>`'s :ref:`Shape2D<class_Shape2D>`\ s exits one of this Area2D's :ref:`Shape2D<class_Shape2D>`\ s. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``. :ref:`TileMap<class_TileMap>`\ s are detected if the :ref:`TileSet<class_TileSet>` has Collision :ref:`Shape2D<class_Shape2D>`\ s.
 
@@ -191,336 +241,411 @@ Emitted when one of a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or :ref:`TileMap
 
 \ ``local_shape_index`` the index of the :ref:`Shape2D<class_Shape2D>` of this Area2D used by the :ref:`PhysicsServer2D<class_PhysicsServer2D>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_Area2D_SpaceOverride:
 
+.. rst-class:: classref-enumeration
+
+enum **SpaceOverride**:
+
 .. _class_Area2D_constant_SPACE_OVERRIDE_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_DISABLED** = ``0``
+
+This area does not affect gravity/damping.
+
 .. _class_Area2D_constant_SPACE_OVERRIDE_COMBINE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE** = ``1``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order).
+
 .. _class_Area2D_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), ignoring any lower priority areas.
+
 .. _class_Area2D_constant_SPACE_OVERRIDE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE** = ``3``
+
+This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+
 .. _class_Area2D_constant_SPACE_OVERRIDE_REPLACE_COMBINE:
 
-enum **SpaceOverride**:
+.. rst-class:: classref-enumeration-constant
 
-- **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damping.
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE_COMBINE** = ``4``
 
-- **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order).
+This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), but keeps calculating the rest of the areas.
 
-- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), ignoring any lower priority areas.
+.. rst-class:: classref-section-separator
 
-- **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+----
 
-- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), but keeps calculating the rest of the areas.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Area2D_property_angular_damp:
 
-- :ref:`float<class_float>` **angular_damp**
+.. rst-class:: classref-property
 
-+-----------+-------------------------+
-| *Default* | ``1.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_angular_damp(value) |
-+-----------+-------------------------+
-| *Getter*  | get_angular_damp()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **angular_damp** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_angular_damp** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_angular_damp** **(** **)**
 
 The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
 
 See :ref:`ProjectSettings.physics/2d/default_angular_damp<class_ProjectSettings_property_physics/2d/default_angular_damp>` for more details about damping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_angular_damp_space_override:
 
-- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **angular_damp_space_override**
+.. rst-class:: classref-property
 
-+-----------+---------------------------------------------+
-| *Default* | ``0``                                       |
-+-----------+---------------------------------------------+
-| *Setter*  | set_angular_damp_space_override_mode(value) |
-+-----------+---------------------------------------------+
-| *Getter*  | get_angular_damp_space_override_mode()      |
-+-----------+---------------------------------------------+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **angular_damp_space_override** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_angular_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_angular_damp_space_override_mode** **(** **)**
 
 Override mode for angular damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_audio_bus_name:
 
-- :ref:`StringName<class_StringName>` **audio_bus_name**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``&"Master"``             |
-+-----------+---------------------------+
-| *Setter*  | set_audio_bus_name(value) |
-+-----------+---------------------------+
-| *Getter*  | get_audio_bus_name()      |
-+-----------+---------------------------+
+:ref:`StringName<class_StringName>` **audio_bus_name** = ``&"Master"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_audio_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_audio_bus_name** **(** **)**
 
 The name of the area's audio bus.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_audio_bus_override:
 
-- :ref:`bool<class_bool>` **audio_bus_override**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------+
-| *Default* | ``false``                     |
-+-----------+-------------------------------+
-| *Setter*  | set_audio_bus_override(value) |
-+-----------+-------------------------------+
-| *Getter*  | is_overriding_audio_bus()     |
-+-----------+-------------------------------+
+:ref:`bool<class_bool>` **audio_bus_override** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_audio_bus_override** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_overriding_audio_bus** **(** **)**
 
 If ``true``, the area's audio bus overrides the default audio bus.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity:
 
-- :ref:`float<class_float>` **gravity**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity** = ``980.0``
 
-+-----------+--------------------+
-| *Default* | ``980.0``          |
-+-----------+--------------------+
-| *Setter*  | set_gravity(value) |
-+-----------+--------------------+
-| *Getter*  | get_gravity()      |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity** **(** **)**
 
 The area's gravity intensity (in pixels per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_direction:
 
-- :ref:`Vector2<class_Vector2>` **gravity_direction**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **gravity_direction** = ``Vector2(0, 1)``
 
-+-----------+------------------------------+
-| *Default* | ``Vector2(0, 1)``            |
-+-----------+------------------------------+
-| *Setter*  | set_gravity_direction(value) |
-+-----------+------------------------------+
-| *Getter*  | get_gravity_direction()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_direction** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_gravity_direction** **(** **)**
 
 The area's gravity vector (not normalized).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_point:
 
-- :ref:`bool<class_bool>` **gravity_point**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **gravity_point** = ``false``
 
-+-----------+-----------------------------+
-| *Default* | ``false``                   |
-+-----------+-----------------------------+
-| *Setter*  | set_gravity_is_point(value) |
-+-----------+-----------------------------+
-| *Getter*  | is_gravity_a_point()        |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_is_point** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_gravity_a_point** **(** **)**
 
 If ``true``, gravity is calculated from a point (set via :ref:`gravity_point_center<class_Area2D_property_gravity_point_center>`). See also :ref:`gravity_space_override<class_Area2D_property_gravity_space_override>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_point_center:
 
-- :ref:`Vector2<class_Vector2>` **gravity_point_center**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **gravity_point_center** = ``Vector2(0, 1)``
 
-+-----------+---------------------------------+
-| *Default* | ``Vector2(0, 1)``               |
-+-----------+---------------------------------+
-| *Setter*  | set_gravity_point_center(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_gravity_point_center()      |
-+-----------+---------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_point_center** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_gravity_point_center** **(** **)**
 
 If gravity is a point (see :ref:`gravity_point<class_Area2D_property_gravity_point>`), this will be the point of attraction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_point_distance_scale:
 
-- :ref:`float<class_float>` **gravity_point_distance_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity_point_distance_scale** = ``0.0``
 
-+-----------+-----------------------------------------+
-| *Default* | ``0.0``                                 |
-+-----------+-----------------------------------------+
-| *Setter*  | set_gravity_point_distance_scale(value) |
-+-----------+-----------------------------------------+
-| *Getter*  | get_gravity_point_distance_scale()      |
-+-----------+-----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_point_distance_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity_point_distance_scale** **(** **)**
 
 The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_space_override:
 
-- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **gravity_space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **gravity_space_override** = ``0``
 
-+-----------+----------------------------------------+
-| *Default* | ``0``                                  |
-+-----------+----------------------------------------+
-| *Setter*  | set_gravity_space_override_mode(value) |
-+-----------+----------------------------------------+
-| *Getter*  | get_gravity_space_override_mode()      |
-+-----------+----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_gravity_space_override_mode** **(** **)**
 
 Override mode for gravity calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_linear_damp:
 
-- :ref:`float<class_float>` **linear_damp**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **linear_damp** = ``0.1``
 
-+-----------+------------------------+
-| *Default* | ``0.1``                |
-+-----------+------------------------+
-| *Setter*  | set_linear_damp(value) |
-+-----------+------------------------+
-| *Getter*  | get_linear_damp()      |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_linear_damp** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_linear_damp** **(** **)**
 
 The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
 
 See :ref:`ProjectSettings.physics/2d/default_linear_damp<class_ProjectSettings_property_physics/2d/default_linear_damp>` for more details about damping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_linear_damp_space_override:
 
-- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **linear_damp_space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **linear_damp_space_override** = ``0``
 
-+-----------+--------------------------------------------+
-| *Default* | ``0``                                      |
-+-----------+--------------------------------------------+
-| *Setter*  | set_linear_damp_space_override_mode(value) |
-+-----------+--------------------------------------------+
-| *Getter*  | get_linear_damp_space_override_mode()      |
-+-----------+--------------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_linear_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_linear_damp_space_override_mode** **(** **)**
 
 Override mode for linear damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_monitorable:
 
-- :ref:`bool<class_bool>` **monitorable**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **monitorable** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_monitorable(value) |
-+-----------+------------------------+
-| *Getter*  | is_monitorable()       |
-+-----------+------------------------+
+- void **set_monitorable** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_monitorable** **(** **)**
 
 If ``true``, other monitoring areas can detect this area.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_monitoring:
 
-- :ref:`bool<class_bool>` **monitoring**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **monitoring** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_monitoring(value) |
-+-----------+-----------------------+
-| *Getter*  | is_monitoring()       |
-+-----------+-----------------------+
+- void **set_monitoring** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_monitoring** **(** **)**
 
 If ``true``, the area detects bodies or areas entering and exiting it.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_priority:
 
-- :ref:`float<class_float>` **priority**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **priority** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``0.0``             |
-+-----------+---------------------+
-| *Setter*  | set_priority(value) |
-+-----------+---------------------+
-| *Getter*  | get_priority()      |
-+-----------+---------------------+
+- void **set_priority** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_priority** **(** **)**
 
 The area's priority. Higher priority areas are processed first.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Area2D_method_get_overlapping_areas:
 
-- :ref:`Area2D[]<class_Area2D>` **get_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Area2D[]<class_Area2D>` **get_overlapping_areas** **(** **)** |const|
 
-Returns a list of intersecting ``Area2D``\ s. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
+Returns a list of intersecting **Area2D**\ s. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_method_get_overlapping_bodies:
 
-- :ref:`Node2D[]<class_Node2D>` **get_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Node2D[]<class_Node2D>` **get_overlapping_bodies** **(** **)** |const|
 
 Returns a list of intersecting :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s and :ref:`TileMap<class_TileMap>`\ s. The overlapping body's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_method_has_overlapping_areas:
 
-- :ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
 
-Returns ``true`` if intersecting any ``Area2D``\ s, otherwise returns ``false``. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
+Returns ``true`` if intersecting any **Area2D**\ s, otherwise returns ``false``. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_method_has_overlapping_bodies:
 
-- :ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
 
 Returns ``true`` if intersecting any :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s or :ref:`TileMap<class_TileMap>`\ s, otherwise returns ``false``. The overlapping body's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_method_overlaps_area:
 
-- :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if the given ``Area2D`` intersects or overlaps this ``Area2D``, ``false`` otherwise.
+:ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+
+Returns ``true`` if the given **Area2D** intersects or overlaps this **Area2D**, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_method_overlaps_body:
 
-- :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
 
-Returns ``true`` if the given physics body intersects or overlaps this ``Area2D``, ``false`` otherwise.
+Returns ``true`` if the given physics body intersects or overlaps this **Area2D**, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 

+ 390 - 258
classes/class_area3d.rst

@@ -14,6 +14,8 @@ Area3D
 
 3D area for detection and physics and audio influence.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ To give the area its shape, add a :ref:`CollisionShape3D<class_CollisionShape3D>
 
 \ **Warning:** See :ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>` (also called "trimesh") for a warning about possibly unexpected behavior when using that shape for an area.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,98 +34,124 @@ Tutorials
 
 - `GUI in 3D Demo <https://godotengine.org/asset-library/asset/127>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`angular_damp<class_Area3D_property_angular_damp>`                                 | ``0.1``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area3D_property_angular_damp_space_override>`   | ``0``                 |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`StringName<class_StringName>`             | :ref:`audio_bus_name<class_Area3D_property_audio_bus_name>`                             | ``&"Master"``         |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`audio_bus_override<class_Area3D_property_audio_bus_override>`                     | ``false``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`gravity<class_Area3D_property_gravity>`                                           | ``9.8``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`gravity_direction<class_Area3D_property_gravity_direction>`                       | ``Vector3(0, -1, 0)`` |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area3D_property_gravity_point>`                               | ``false``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`Vector3<class_Vector3>`                   | :ref:`gravity_point_center<class_Area3D_property_gravity_point_center>`                 | ``Vector3(0, -1, 0)`` |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`gravity_point_distance_scale<class_Area3D_property_gravity_point_distance_scale>` | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`gravity_space_override<class_Area3D_property_gravity_space_override>`             | ``0``                 |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area3D_property_linear_damp>`                                   | ``0.1``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area3D_property_linear_damp_space_override>`     | ``0``                 |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`monitorable<class_Area3D_property_monitorable>`                                   | ``true``              |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`monitoring<class_Area3D_property_monitoring>`                                     | ``true``              |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`priority<class_Area3D_property_priority>`                                         | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`reverb_bus_amount<class_Area3D_property_reverb_bus_amount>`                       | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                         | :ref:`reverb_bus_enabled<class_Area3D_property_reverb_bus_enabled>`                     | ``false``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`StringName<class_StringName>`             | :ref:`reverb_bus_name<class_Area3D_property_reverb_bus_name>`                           | ``&"Master"``         |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`reverb_bus_uniformity<class_Area3D_property_reverb_bus_uniformity>`               | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`wind_attenuation_factor<class_Area3D_property_wind_attenuation_factor>`           | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                       | :ref:`wind_force_magnitude<class_Area3D_property_wind_force_magnitude>`                 | ``0.0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
-| :ref:`NodePath<class_NodePath>`                 | :ref:`wind_source_path<class_Area3D_property_wind_source_path>`                         | ``NodePath("")``      |
-+-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`angular_damp<class_Area3D_property_angular_damp>`                                 | ``0.1``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area3D_property_angular_damp_space_override>`   | ``0``                 |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`StringName<class_StringName>`             | :ref:`audio_bus_name<class_Area3D_property_audio_bus_name>`                             | ``&"Master"``         |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`audio_bus_override<class_Area3D_property_audio_bus_override>`                     | ``false``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`gravity<class_Area3D_property_gravity>`                                           | ``9.8``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`Vector3<class_Vector3>`                   | :ref:`gravity_direction<class_Area3D_property_gravity_direction>`                       | ``Vector3(0, -1, 0)`` |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area3D_property_gravity_point>`                               | ``false``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`Vector3<class_Vector3>`                   | :ref:`gravity_point_center<class_Area3D_property_gravity_point_center>`                 | ``Vector3(0, -1, 0)`` |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`gravity_point_distance_scale<class_Area3D_property_gravity_point_distance_scale>` | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`gravity_space_override<class_Area3D_property_gravity_space_override>`             | ``0``                 |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area3D_property_linear_damp>`                                   | ``0.1``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area3D_property_linear_damp_space_override>`     | ``0``                 |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`monitorable<class_Area3D_property_monitorable>`                                   | ``true``              |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`monitoring<class_Area3D_property_monitoring>`                                     | ``true``              |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`priority<class_Area3D_property_priority>`                                         | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`reverb_bus_amount<class_Area3D_property_reverb_bus_amount>`                       | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`reverb_bus_enabled<class_Area3D_property_reverb_bus_enabled>`                     | ``false``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`StringName<class_StringName>`             | :ref:`reverb_bus_name<class_Area3D_property_reverb_bus_name>`                           | ``&"Master"``         |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`reverb_bus_uniformity<class_Area3D_property_reverb_bus_uniformity>`               | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`wind_attenuation_factor<class_Area3D_property_wind_attenuation_factor>`           | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                       | :ref:`wind_force_magnitude<class_Area3D_property_wind_force_magnitude>`                 | ``0.0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`NodePath<class_NodePath>`                 | :ref:`wind_source_path<class_Area3D_property_wind_source_path>`                         | ``NodePath("")``      |
+   +-------------------------------------------------+-----------------------------------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Area3D[]<class_Area3D>` | :ref:`get_overlapping_areas<class_Area3D_method_get_overlapping_areas>` **(** **)** |const|              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Node3D[]<class_Node3D>` | :ref:`get_overlapping_bodies<class_Area3D_method_get_overlapping_bodies>` **(** **)** |const|            |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_overlapping_areas<class_Area3D_method_has_overlapping_areas>` **(** **)** |const|              |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_overlapping_bodies<class_Area3D_method_has_overlapping_bodies>` **(** **)** |const|            |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`overlaps_area<class_Area3D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`overlaps_body<class_Area3D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Area3D[]<class_Area3D>` | :ref:`get_overlapping_areas<class_Area3D_method_get_overlapping_areas>` **(** **)** |const|              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Node3D[]<class_Node3D>` | :ref:`get_overlapping_bodies<class_Area3D_method_get_overlapping_bodies>` **(** **)** |const|            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_overlapping_areas<class_Area3D_method_has_overlapping_areas>` **(** **)** |const|              |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_overlapping_bodies<class_Area3D_method_has_overlapping_bodies>` **(** **)** |const|            |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`overlaps_area<class_Area3D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`overlaps_body<class_Area3D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_Area3D_signal_area_entered:
 
-- **area_entered** **(** :ref:`Area3D<class_Area3D>` area **)**
+.. rst-class:: classref-signal
+
+**area_entered** **(** :ref:`Area3D<class_Area3D>` area **)**
 
 Emitted when another Area3D enters this Area3D. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area3D.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_area_exited:
 
-- **area_exited** **(** :ref:`Area3D<class_Area3D>` area **)**
+.. rst-class:: classref-signal
+
+**area_exited** **(** :ref:`Area3D<class_Area3D>` area **)**
 
 Emitted when another Area3D exits this Area3D. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area3D.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_area_shape_entered:
 
-- **area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area3D's :ref:`Shape3D<class_Shape3D>`\ s enters one of this Area3D's :ref:`Shape3D<class_Shape3D>`\ s. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``.
 
@@ -133,11 +163,15 @@ Emitted when one of another Area3D's :ref:`Shape3D<class_Shape3D>`\ s enters one
 
 \ ``local_shape_index`` the index of the :ref:`Shape3D<class_Shape3D>` of this Area3D used by the :ref:`PhysicsServer3D<class_PhysicsServer3D>`. Get the :ref:`CollisionShape3D<class_CollisionShape3D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_area_shape_exited:
 
-- **area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area3D's :ref:`Shape3D<class_Shape3D>`\ s exits one of this Area3D's :ref:`Shape3D<class_Shape3D>`\ s. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``.
 
@@ -149,31 +183,43 @@ Emitted when one of another Area3D's :ref:`Shape3D<class_Shape3D>`\ s exits one
 
 \ ``local_shape_index`` the index of the :ref:`Shape3D<class_Shape3D>` of this Area3D used by the :ref:`PhysicsServer3D<class_PhysicsServer3D>`. Get the :ref:`CollisionShape3D<class_CollisionShape3D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_body_entered:
 
-- **body_entered** **(** :ref:`Node3D<class_Node3D>` body **)**
+.. rst-class:: classref-signal
+
+**body_entered** **(** :ref:`Node3D<class_Node3D>` body **)**
 
 Emitted when a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>` enters this Area3D. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape3D<class_Shape3D>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_body_exited:
 
-- **body_exited** **(** :ref:`Node3D<class_Node3D>` body **)**
+.. rst-class:: classref-signal
+
+**body_exited** **(** :ref:`Node3D<class_Node3D>` body **)**
 
 Emitted when a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>` exits this Area3D. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape3D<class_Shape3D>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_body_shape_entered:
 
-- **body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape3D<class_Shape3D>`\ s enters one of this Area3D's :ref:`Shape3D<class_Shape3D>`\ s. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape3D<class_Shape3D>`\ s.
 
@@ -185,11 +231,15 @@ Emitted when one of a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap
 
 \ ``local_shape_index`` the index of the :ref:`Shape3D<class_Shape3D>` of this Area3D used by the :ref:`PhysicsServer3D<class_PhysicsServer3D>`. Get the :ref:`CollisionShape3D<class_CollisionShape3D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_signal_body_shape_exited:
 
-- **body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
+.. rst-class:: classref-signal
+
+**body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape3D<class_Shape3D>`\ s enters one of this Area3D's :ref:`Shape3D<class_Shape3D>`\ s. Requires :ref:`monitoring<class_Area3D_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape3D<class_Shape3D>`\ s.
 
@@ -201,448 +251,530 @@ Emitted when one of a :ref:`PhysicsBody3D<class_PhysicsBody3D>` or :ref:`GridMap
 
 \ ``local_shape_index`` the index of the :ref:`Shape3D<class_Shape3D>` of this Area3D used by the :ref:`PhysicsServer3D<class_PhysicsServer3D>`. Get the :ref:`CollisionShape3D<class_CollisionShape3D>` node with ``self.shape_owner_get_owner(self.shape_find_owner(local_shape_index))``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_Area3D_SpaceOverride:
 
+.. rst-class:: classref-enumeration
+
+enum **SpaceOverride**:
+
 .. _class_Area3D_constant_SPACE_OVERRIDE_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_DISABLED** = ``0``
+
+This area does not affect gravity/damping.
+
 .. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE** = ``1``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area3D_property_priority>` order).
+
 .. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area3D_property_priority>` order), ignoring any lower priority areas.
+
 .. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE** = ``3``
+
+This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+
 .. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE_COMBINE:
 
-enum **SpaceOverride**:
+.. rst-class:: classref-enumeration-constant
 
-- **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damping.
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE_COMBINE** = ``4``
 
-- **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area3D_property_priority>` order).
+This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area3D_property_priority>` order), but keeps calculating the rest of the areas.
 
-- **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area3D_property_priority>` order), ignoring any lower priority areas.
+.. rst-class:: classref-section-separator
 
-- **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+----
 
-- **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area3D_property_priority>` order), but keeps calculating the rest of the areas.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Area3D_property_angular_damp:
 
-- :ref:`float<class_float>` **angular_damp**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **angular_damp** = ``0.1``
 
-+-----------+-------------------------+
-| *Default* | ``0.1``                 |
-+-----------+-------------------------+
-| *Setter*  | set_angular_damp(value) |
-+-----------+-------------------------+
-| *Getter*  | get_angular_damp()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_angular_damp** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_angular_damp** **(** **)**
 
 The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
 
 See :ref:`ProjectSettings.physics/3d/default_angular_damp<class_ProjectSettings_property_physics/3d/default_angular_damp>` for more details about damping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_angular_damp_space_override:
 
-- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **angular_damp_space_override**
+.. rst-class:: classref-property
 
-+-----------+---------------------------------------------+
-| *Default* | ``0``                                       |
-+-----------+---------------------------------------------+
-| *Setter*  | set_angular_damp_space_override_mode(value) |
-+-----------+---------------------------------------------+
-| *Getter*  | get_angular_damp_space_override_mode()      |
-+-----------+---------------------------------------------+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **angular_damp_space_override** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_angular_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_angular_damp_space_override_mode** **(** **)**
 
 Override mode for angular damping calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_audio_bus_name:
 
-- :ref:`StringName<class_StringName>` **audio_bus_name**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **audio_bus_name** = ``&"Master"``
 
-+-----------+---------------------------+
-| *Default* | ``&"Master"``             |
-+-----------+---------------------------+
-| *Setter*  | set_audio_bus_name(value) |
-+-----------+---------------------------+
-| *Getter*  | get_audio_bus_name()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_audio_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_audio_bus_name** **(** **)**
 
 The name of the area's audio bus.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_audio_bus_override:
 
-- :ref:`bool<class_bool>` **audio_bus_override**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **audio_bus_override** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------------+
-| *Default* | ``false``                     |
-+-----------+-------------------------------+
-| *Setter*  | set_audio_bus_override(value) |
-+-----------+-------------------------------+
-| *Getter*  | is_overriding_audio_bus()     |
-+-----------+-------------------------------+
+- void **set_audio_bus_override** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_overriding_audio_bus** **(** **)**
 
 If ``true``, the area's audio bus overrides the default audio bus.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity:
 
-- :ref:`float<class_float>` **gravity**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity** = ``9.8``
 
-+-----------+--------------------+
-| *Default* | ``9.8``            |
-+-----------+--------------------+
-| *Setter*  | set_gravity(value) |
-+-----------+--------------------+
-| *Getter*  | get_gravity()      |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity** **(** **)**
 
 The area's gravity intensity (in meters per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity_direction:
 
-- :ref:`Vector3<class_Vector3>` **gravity_direction**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``Vector3(0, -1, 0)``        |
-+-----------+------------------------------+
-| *Setter*  | set_gravity_direction(value) |
-+-----------+------------------------------+
-| *Getter*  | get_gravity_direction()      |
-+-----------+------------------------------+
+:ref:`Vector3<class_Vector3>` **gravity_direction** = ``Vector3(0, -1, 0)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_gravity_direction** **(** **)**
 
 The area's gravity vector (not normalized).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity_point:
 
-- :ref:`bool<class_bool>` **gravity_point**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------+
-| *Default* | ``false``                   |
-+-----------+-----------------------------+
-| *Setter*  | set_gravity_is_point(value) |
-+-----------+-----------------------------+
-| *Getter*  | is_gravity_a_point()        |
-+-----------+-----------------------------+
+:ref:`bool<class_bool>` **gravity_point** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_is_point** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_gravity_a_point** **(** **)**
 
 If ``true``, gravity is calculated from a point (set via :ref:`gravity_point_center<class_Area3D_property_gravity_point_center>`). See also :ref:`gravity_space_override<class_Area3D_property_gravity_space_override>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity_point_center:
 
-- :ref:`Vector3<class_Vector3>` **gravity_point_center**
+.. rst-class:: classref-property
+
+:ref:`Vector3<class_Vector3>` **gravity_point_center** = ``Vector3(0, -1, 0)``
 
-+-----------+---------------------------------+
-| *Default* | ``Vector3(0, -1, 0)``           |
-+-----------+---------------------------------+
-| *Setter*  | set_gravity_point_center(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_gravity_point_center()      |
-+-----------+---------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_point_center** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_gravity_point_center** **(** **)**
 
 If gravity is a point (see :ref:`gravity_point<class_Area3D_property_gravity_point>`), this will be the point of attraction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity_point_distance_scale:
 
-- :ref:`float<class_float>` **gravity_point_distance_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity_point_distance_scale** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------------------+
-| *Default* | ``0.0``                                 |
-+-----------+-----------------------------------------+
-| *Setter*  | set_gravity_point_distance_scale(value) |
-+-----------+-----------------------------------------+
-| *Getter*  | get_gravity_point_distance_scale()      |
-+-----------+-----------------------------------------+
+- void **set_gravity_point_distance_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity_point_distance_scale** **(** **)**
 
 The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_gravity_space_override:
 
-- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **gravity_space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **gravity_space_override** = ``0``
 
-+-----------+----------------------------------------+
-| *Default* | ``0``                                  |
-+-----------+----------------------------------------+
-| *Setter*  | set_gravity_space_override_mode(value) |
-+-----------+----------------------------------------+
-| *Getter*  | get_gravity_space_override_mode()      |
-+-----------+----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_gravity_space_override_mode** **(** **)**
 
 Override mode for gravity calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_linear_damp:
 
-- :ref:`float<class_float>` **linear_damp**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``0.1``                |
-+-----------+------------------------+
-| *Setter*  | set_linear_damp(value) |
-+-----------+------------------------+
-| *Getter*  | get_linear_damp()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **linear_damp** = ``0.1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_linear_damp** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_linear_damp** **(** **)**
 
 The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
 
 See :ref:`ProjectSettings.physics/3d/default_linear_damp<class_ProjectSettings_property_physics/3d/default_linear_damp>` for more details about damping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_linear_damp_space_override:
 
-- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **linear_damp_space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **linear_damp_space_override** = ``0``
 
-+-----------+--------------------------------------------+
-| *Default* | ``0``                                      |
-+-----------+--------------------------------------------+
-| *Setter*  | set_linear_damp_space_override_mode(value) |
-+-----------+--------------------------------------------+
-| *Getter*  | get_linear_damp_space_override_mode()      |
-+-----------+--------------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_linear_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_linear_damp_space_override_mode** **(** **)**
 
 Override mode for linear damping calculations within this area. See :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_monitorable:
 
-- :ref:`bool<class_bool>` **monitorable**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **monitorable** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_monitorable(value) |
-+-----------+------------------------+
-| *Getter*  | is_monitorable()       |
-+-----------+------------------------+
+- void **set_monitorable** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_monitorable** **(** **)**
 
 If ``true``, other monitoring areas can detect this area.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_monitoring:
 
-- :ref:`bool<class_bool>` **monitoring**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **monitoring** = ``true``
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_monitoring(value) |
-+-----------+-----------------------+
-| *Getter*  | is_monitoring()       |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_monitoring** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_monitoring** **(** **)**
 
 If ``true``, the area detects bodies or areas entering and exiting it.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_priority:
 
-- :ref:`float<class_float>` **priority**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``0.0``             |
-+-----------+---------------------+
-| *Setter*  | set_priority(value) |
-+-----------+---------------------+
-| *Getter*  | get_priority()      |
-+-----------+---------------------+
+:ref:`float<class_float>` **priority** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_priority** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_priority** **(** **)**
 
 The area's priority. Higher priority areas are processed first.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_reverb_bus_amount:
 
-- :ref:`float<class_float>` **reverb_bus_amount**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **reverb_bus_amount** = ``0.0``
 
-+-----------+--------------------------+
-| *Default* | ``0.0``                  |
-+-----------+--------------------------+
-| *Setter*  | set_reverb_amount(value) |
-+-----------+--------------------------+
-| *Getter*  | get_reverb_amount()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_reverb_amount** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_reverb_amount** **(** **)**
 
 The degree to which this area applies reverb to its associated audio. Ranges from ``0`` to ``1`` with ``0.1`` precision.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_reverb_bus_enabled:
 
-- :ref:`bool<class_bool>` **reverb_bus_enabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **reverb_bus_enabled** = ``false``
 
-+-----------+---------------------------+
-| *Default* | ``false``                 |
-+-----------+---------------------------+
-| *Setter*  | set_use_reverb_bus(value) |
-+-----------+---------------------------+
-| *Getter*  | is_using_reverb_bus()     |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_use_reverb_bus** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_reverb_bus** **(** **)**
 
 If ``true``, the area applies reverb to its associated audio.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_reverb_bus_name:
 
-- :ref:`StringName<class_StringName>` **reverb_bus_name**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **reverb_bus_name** = ``&"Master"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``&"Master"``              |
-+-----------+----------------------------+
-| *Setter*  | set_reverb_bus_name(value) |
-+-----------+----------------------------+
-| *Getter*  | get_reverb_bus_name()      |
-+-----------+----------------------------+
+- void **set_reverb_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_reverb_bus_name** **(** **)**
 
 The name of the reverb bus to use for this area's associated audio.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_reverb_bus_uniformity:
 
-- :ref:`float<class_float>` **reverb_bus_uniformity**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **reverb_bus_uniformity** = ``0.0``
 
-+-----------+------------------------------+
-| *Default* | ``0.0``                      |
-+-----------+------------------------------+
-| *Setter*  | set_reverb_uniformity(value) |
-+-----------+------------------------------+
-| *Getter*  | get_reverb_uniformity()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_reverb_uniformity** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_reverb_uniformity** **(** **)**
 
 The degree to which this area's reverb is a uniform effect. Ranges from ``0`` to ``1`` with ``0.1`` precision.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_wind_attenuation_factor:
 
-- :ref:`float<class_float>` **wind_attenuation_factor**
+.. rst-class:: classref-property
 
-+-----------+------------------------------------+
-| *Default* | ``0.0``                            |
-+-----------+------------------------------------+
-| *Setter*  | set_wind_attenuation_factor(value) |
-+-----------+------------------------------------+
-| *Getter*  | get_wind_attenuation_factor()      |
-+-----------+------------------------------------+
+:ref:`float<class_float>` **wind_attenuation_factor** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_wind_attenuation_factor** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_wind_attenuation_factor** **(** **)**
 
 The exponential rate at which wind force decreases with distance from its origin.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_wind_force_magnitude:
 
-- :ref:`float<class_float>` **wind_force_magnitude**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **wind_force_magnitude** = ``0.0``
 
-+-----------+---------------------------------+
-| *Default* | ``0.0``                         |
-+-----------+---------------------------------+
-| *Setter*  | set_wind_force_magnitude(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_wind_force_magnitude()      |
-+-----------+---------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_wind_force_magnitude** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_wind_force_magnitude** **(** **)**
 
 The magnitude of area-specific wind force.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_property_wind_source_path:
 
-- :ref:`NodePath<class_NodePath>` **wind_source_path**
+.. rst-class:: classref-property
+
+:ref:`NodePath<class_NodePath>` **wind_source_path** = ``NodePath("")``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``NodePath("")``            |
-+-----------+-----------------------------+
-| *Setter*  | set_wind_source_path(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_wind_source_path()      |
-+-----------+-----------------------------+
+- void **set_wind_source_path** **(** :ref:`NodePath<class_NodePath>` value **)**
+- :ref:`NodePath<class_NodePath>` **get_wind_source_path** **(** **)**
 
 The :ref:`Node3D<class_Node3D>` which is used to specify the the direction and origin of an area-specific wind force. The direction is opposite to the z-axis of the :ref:`Node3D<class_Node3D>`'s local transform, and its origin is the origin of the :ref:`Node3D<class_Node3D>`'s local transform.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Area3D_method_get_overlapping_areas:
 
-- :ref:`Area3D[]<class_Area3D>` **get_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns a list of intersecting ``Area3D``\ s. The overlapping area's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
+:ref:`Area3D[]<class_Area3D>` **get_overlapping_areas** **(** **)** |const|
+
+Returns a list of intersecting **Area3D**\ s. The overlapping area's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_method_get_overlapping_bodies:
 
-- :ref:`Node3D[]<class_Node3D>` **get_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Node3D[]<class_Node3D>` **get_overlapping_bodies** **(** **)** |const|
 
 Returns a list of intersecting :ref:`PhysicsBody3D<class_PhysicsBody3D>`\ s and :ref:`GridMap<class_GridMap>`\ s. The overlapping body's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_method_has_overlapping_areas:
 
-- :ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if intersecting any ``Area3D``\ s, otherwise returns ``false``. The overlapping area's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
+:ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
+
+Returns ``true`` if intersecting any **Area3D**\ s, otherwise returns ``false``. The overlapping area's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_method_has_overlapping_bodies:
 
-- :ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
 
 Returns ``true`` if intersecting any :ref:`PhysicsBody3D<class_PhysicsBody3D>`\ s or :ref:`GridMap<class_GridMap>`\ s, otherwise returns ``false``. The overlapping body's :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` must be part of this area's :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` in order to be detected.
 
 For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_method_overlaps_area:
 
-- :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if the given ``Area3D`` intersects or overlaps this ``Area3D``, ``false`` otherwise.
+:ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+
+Returns ``true`` if the given **Area3D** intersects or overlaps this **Area3D**, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area3D_method_overlaps_body:
 
-- :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
 
-Returns ``true`` if the given physics body intersects or overlaps this ``Area3D``, ``false`` otherwise.
+Returns ``true`` if the given physics body intersects or overlaps this **Area3D**, ``false`` otherwise.
 
 \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 443 - 208
classes/class_array.rst


+ 197 - 94
classes/class_arraymesh.rst

@@ -14,10 +14,12 @@ ArrayMesh
 
 :ref:`Mesh<class_Mesh>` type that provides utility for constructing a surface from arrays.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-The ``ArrayMesh`` is used to construct a :ref:`Mesh<class_Mesh>` by specifying the attributes as arrays.
+The **ArrayMesh** is used to construct a :ref:`Mesh<class_Mesh>` by specifying the attributes as arrays.
 
 The most basic example is the creation of a single triangle:
 
@@ -70,128 +72,161 @@ See also :ref:`ImmediateMesh<class_ImmediateMesh>`, :ref:`MeshDataTool<class_Mes
 
 \ **Note:** Godot uses clockwise `winding order <https://learnopengl.com/Advanced-OpenGL/Face-culling>`__ for front faces of triangle primitive modes.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Procedural geometry using the ArrayMesh <../tutorials/3d/procedural_geometry/arraymesh>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
-| :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` | :ref:`blend_shape_mode<class_ArrayMesh_property_blend_shape_mode>` | ``1``                      |
-+-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
-| :ref:`AABB<class_AABB>`                         | :ref:`custom_aabb<class_ArrayMesh_property_custom_aabb>`           | ``AABB(0, 0, 0, 0, 0, 0)`` |
-+-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
-| :ref:`ArrayMesh<class_ArrayMesh>`               | :ref:`shadow_mesh<class_ArrayMesh_property_shadow_mesh>`           |                            |
-+-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
+   | :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` | :ref:`blend_shape_mode<class_ArrayMesh_property_blend_shape_mode>` | ``1``                      |
+   +-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
+   | :ref:`AABB<class_AABB>`                         | :ref:`custom_aabb<class_ArrayMesh_property_custom_aabb>`           | ``AABB(0, 0, 0, 0, 0, 0)`` |
+   +-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
+   | :ref:`ArrayMesh<class_ArrayMesh>`               | :ref:`shadow_mesh<class_ArrayMesh_property_shadow_mesh>`           |                            |
+   +-------------------------------------------------+--------------------------------------------------------------------+----------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`add_blend_shape<class_ArrayMesh_method_add_blend_shape>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                                                                                    |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>` **(** :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` primitive, :ref:`Array<class_Array>` arrays, :ref:`Array[]<class_Array>` blend_shapes=[], :ref:`Dictionary<class_Dictionary>` lods={}, :ref:`int<class_int>` compress_flags=0 **)** |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`clear_blend_shapes<class_ArrayMesh_method_clear_blend_shapes>` **(** **)**                                                                                                                                                                                                                                       |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`clear_surfaces<class_ArrayMesh_method_clear_surfaces>` **(** **)**                                                                                                                                                                                                                                               |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`get_blend_shape_count<class_ArrayMesh_method_get_blend_shape_count>` **(** **)** |const|                                                                                                                                                                                                                         |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`           | :ref:`get_blend_shape_name<class_ArrayMesh_method_get_blend_shape_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                               |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`lightmap_unwrap<class_ArrayMesh_method_lightmap_unwrap>` **(** :ref:`Transform3D<class_Transform3D>` transform, :ref:`float<class_float>` texel_size **)**                                                                                                                                                       |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`regen_normal_maps<class_ArrayMesh_method_regen_normal_maps>` **(** **)**                                                                                                                                                                                                                                         |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_blend_shape_name<class_ArrayMesh_method_set_blend_shape_name>` **(** :ref:`int<class_int>` index, :ref:`StringName<class_StringName>` name **)**                                                                                                                                                             |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`surface_find_by_name<class_ArrayMesh_method_surface_find_by_name>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                                                                                                          |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`surface_get_array_index_len<class_ArrayMesh_method_surface_get_array_index_len>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                              |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`surface_get_array_len<class_ArrayMesh_method_surface_get_array_len>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                          |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                         | :ref:`surface_get_format<class_ArrayMesh_method_surface_get_format>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                                |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`surface_get_name<class_ArrayMesh_method_surface_get_name>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                                    |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` | :ref:`surface_get_primitive_type<class_ArrayMesh_method_surface_get_primitive_type>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`surface_set_name<class_ArrayMesh_method_surface_set_name>` **(** :ref:`int<class_int>` surf_idx, :ref:`String<class_String>` name **)**                                                                                                                                                                          |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`surface_update_attribute_region<class_ArrayMesh_method_surface_update_attribute_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                            |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`surface_update_skin_region<class_ArrayMesh_method_surface_update_skin_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                      |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`surface_update_vertex_region<class_ArrayMesh_method_surface_update_vertex_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                  |
-+-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`add_blend_shape<class_ArrayMesh_method_add_blend_shape>` **(** :ref:`StringName<class_StringName>` name **)**                                                                                                                                                                                                    |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>` **(** :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` primitive, :ref:`Array<class_Array>` arrays, :ref:`Array[]<class_Array>` blend_shapes=[], :ref:`Dictionary<class_Dictionary>` lods={}, :ref:`int<class_int>` compress_flags=0 **)** |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`clear_blend_shapes<class_ArrayMesh_method_clear_blend_shapes>` **(** **)**                                                                                                                                                                                                                                       |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`clear_surfaces<class_ArrayMesh_method_clear_surfaces>` **(** **)**                                                                                                                                                                                                                                               |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                         | :ref:`get_blend_shape_count<class_ArrayMesh_method_get_blend_shape_count>` **(** **)** |const|                                                                                                                                                                                                                         |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`           | :ref:`get_blend_shape_name<class_ArrayMesh_method_get_blend_shape_name>` **(** :ref:`int<class_int>` index **)** |const|                                                                                                                                                                                               |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>`         | :ref:`lightmap_unwrap<class_ArrayMesh_method_lightmap_unwrap>` **(** :ref:`Transform3D<class_Transform3D>` transform, :ref:`float<class_float>` texel_size **)**                                                                                                                                                       |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`regen_normal_maps<class_ArrayMesh_method_regen_normal_maps>` **(** **)**                                                                                                                                                                                                                                         |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`set_blend_shape_name<class_ArrayMesh_method_set_blend_shape_name>` **(** :ref:`int<class_int>` index, :ref:`StringName<class_StringName>` name **)**                                                                                                                                                             |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                         | :ref:`surface_find_by_name<class_ArrayMesh_method_surface_find_by_name>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                                                                                                          |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                         | :ref:`surface_get_array_index_len<class_ArrayMesh_method_surface_get_array_index_len>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                              |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                         | :ref:`surface_get_array_len<class_ArrayMesh_method_surface_get_array_len>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                          |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                         | :ref:`surface_get_format<class_ArrayMesh_method_surface_get_format>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                                |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                   | :ref:`surface_get_name<class_ArrayMesh_method_surface_get_name>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                                    |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` | :ref:`surface_get_primitive_type<class_ArrayMesh_method_surface_get_primitive_type>` **(** :ref:`int<class_int>` surf_idx **)** |const|                                                                                                                                                                                |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`surface_set_name<class_ArrayMesh_method_surface_set_name>` **(** :ref:`int<class_int>` surf_idx, :ref:`String<class_String>` name **)**                                                                                                                                                                          |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`surface_update_attribute_region<class_ArrayMesh_method_surface_update_attribute_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                            |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`surface_update_skin_region<class_ArrayMesh_method_surface_update_skin_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                      |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`surface_update_vertex_region<class_ArrayMesh_method_surface_update_vertex_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**                                                                                                  |
+   +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ArrayMesh_property_blend_shape_mode:
 
-- :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **blend_shape_mode**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------+
-| *Default* | ``1``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_blend_shape_mode(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_blend_shape_mode()      |
-+-----------+-----------------------------+
+:ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **blend_shape_mode** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_blend_shape_mode** **(** :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` value **)**
+- :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **get_blend_shape_mode** **(** **)**
 
 Sets the blend shape mode to one of :ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_property_custom_aabb:
 
-- :ref:`AABB<class_AABB>` **custom_aabb**
+.. rst-class:: classref-property
+
+:ref:`AABB<class_AABB>` **custom_aabb** = ``AABB(0, 0, 0, 0, 0, 0)``
 
-+-----------+----------------------------+
-| *Default* | ``AABB(0, 0, 0, 0, 0, 0)`` |
-+-----------+----------------------------+
-| *Setter*  | set_custom_aabb(value)     |
-+-----------+----------------------------+
-| *Getter*  | get_custom_aabb()          |
-+-----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_custom_aabb** **(** :ref:`AABB<class_AABB>` value **)**
+- :ref:`AABB<class_AABB>` **get_custom_aabb** **(** **)**
 
 Overrides the :ref:`AABB<class_AABB>` with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_property_shadow_mesh:
 
-- :ref:`ArrayMesh<class_ArrayMesh>` **shadow_mesh**
+.. rst-class:: classref-property
+
+:ref:`ArrayMesh<class_ArrayMesh>` **shadow_mesh**
 
-+----------+------------------------+
-| *Setter* | set_shadow_mesh(value) |
-+----------+------------------------+
-| *Getter* | get_shadow_mesh()      |
-+----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_shadow_mesh** **(** :ref:`ArrayMesh<class_ArrayMesh>` value **)**
+- :ref:`ArrayMesh<class_ArrayMesh>` **get_shadow_mesh** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ArrayMesh_method_add_blend_shape:
 
-- void **add_blend_shape** **(** :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **add_blend_shape** **(** :ref:`StringName<class_StringName>` name **)**
 
 Adds name for a blend shape that will be added with :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`. Must be called before surface is added.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_add_surface_from_arrays:
 
-- void **add_surface_from_arrays** **(** :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` primitive, :ref:`Array<class_Array>` arrays, :ref:`Array[]<class_Array>` blend_shapes=[], :ref:`Dictionary<class_Dictionary>` lods={}, :ref:`int<class_int>` compress_flags=0 **)**
+.. rst-class:: classref-method
+
+void **add_surface_from_arrays** **(** :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` primitive, :ref:`Array<class_Array>` arrays, :ref:`Array[]<class_Array>` blend_shapes=[], :ref:`Dictionary<class_Dictionary>` lods={}, :ref:`int<class_int>` compress_flags=0 **)**
 
 Creates a new surface.
 
@@ -199,143 +234,211 @@ Surfaces are created to be rendered using a ``primitive``, which may be any of t
 
 The ``arrays`` argument is an array of arrays. See :ref:`ArrayType<enum_Mesh_ArrayType>` for the values used in this array. For example, ``arrays[0]`` is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array (or be an exact multiple of the vertex array's length, when multiple elements of a sub-array correspond to a single vertex) or be empty, except for :ref:`Mesh.ARRAY_INDEX<class_Mesh_constant_ARRAY_INDEX>` if it is used.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_clear_blend_shapes:
 
-- void **clear_blend_shapes** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_blend_shapes** **(** **)**
+
+Removes all blend shapes from this **ArrayMesh**.
 
-Removes all blend shapes from this ``ArrayMesh``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_clear_surfaces:
 
-- void **clear_surfaces** **(** **)**
+.. rst-class:: classref-method
 
-Removes all surfaces from this ``ArrayMesh``.
+void **clear_surfaces** **(** **)**
+
+Removes all surfaces from this **ArrayMesh**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_get_blend_shape_count:
 
-- :ref:`int<class_int>` **get_blend_shape_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_blend_shape_count** **(** **)** |const|
 
-Returns the number of blend shapes that the ``ArrayMesh`` holds.
+Returns the number of blend shapes that the **ArrayMesh** holds.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_get_blend_shape_name:
 
-- :ref:`StringName<class_StringName>` **get_blend_shape_name** **(** :ref:`int<class_int>` index **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_blend_shape_name** **(** :ref:`int<class_int>` index **)** |const|
 
 Returns the name of the blend shape at this index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_lightmap_unwrap:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **lightmap_unwrap** **(** :ref:`Transform3D<class_Transform3D>` transform, :ref:`float<class_float>` texel_size **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **lightmap_unwrap** **(** :ref:`Transform3D<class_Transform3D>` transform, :ref:`float<class_float>` texel_size **)**
 
-Will perform a UV unwrap on the ``ArrayMesh`` to prepare the mesh for lightmapping.
+Will perform a UV unwrap on the **ArrayMesh** to prepare the mesh for lightmapping.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_regen_normal_maps:
 
-- void **regen_normal_maps** **(** **)**
+.. rst-class:: classref-method
+
+void **regen_normal_maps** **(** **)**
+
+Will regenerate normal maps for the **ArrayMesh**.
 
-Will regenerate normal maps for the ``ArrayMesh``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_set_blend_shape_name:
 
-- void **set_blend_shape_name** **(** :ref:`int<class_int>` index, :ref:`StringName<class_StringName>` name **)**
+.. rst-class:: classref-method
+
+void **set_blend_shape_name** **(** :ref:`int<class_int>` index, :ref:`StringName<class_StringName>` name **)**
 
 Sets the name of the blend shape at this index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_find_by_name:
 
-- :ref:`int<class_int>` **surface_find_by_name** **(** :ref:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **surface_find_by_name** **(** :ref:`String<class_String>` name **)** |const|
+
+Returns the index of the first surface with this name held within this **ArrayMesh**. If none are found, -1 is returned.
 
-Returns the index of the first surface with this name held within this ``ArrayMesh``. If none are found, -1 is returned.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_surface_get_array_index_len:
 
-- :ref:`int<class_int>` **surface_get_array_index_len** **(** :ref:`int<class_int>` surf_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **surface_get_array_index_len** **(** :ref:`int<class_int>` surf_idx **)** |const|
 
 Returns the length in indices of the index array in the requested surface (see :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_get_array_len:
 
-- :ref:`int<class_int>` **surface_get_array_len** **(** :ref:`int<class_int>` surf_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **surface_get_array_len** **(** :ref:`int<class_int>` surf_idx **)** |const|
 
 Returns the length in vertices of the vertex array in the requested surface (see :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_get_format:
 
-- :ref:`int<class_int>` **surface_get_format** **(** :ref:`int<class_int>` surf_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **surface_get_format** **(** :ref:`int<class_int>` surf_idx **)** |const|
 
 Returns the format mask of the requested surface (see :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_get_name:
 
-- :ref:`String<class_String>` **surface_get_name** **(** :ref:`int<class_int>` surf_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **surface_get_name** **(** :ref:`int<class_int>` surf_idx **)** |const|
 
 Gets the name assigned to this surface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_get_primitive_type:
 
-- :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **surface_get_primitive_type** **(** :ref:`int<class_int>` surf_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **surface_get_primitive_type** **(** :ref:`int<class_int>` surf_idx **)** |const|
 
 Returns the primitive type of the requested surface (see :ref:`add_surface_from_arrays<class_ArrayMesh_method_add_surface_from_arrays>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_set_name:
 
-- void **surface_set_name** **(** :ref:`int<class_int>` surf_idx, :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **surface_set_name** **(** :ref:`int<class_int>` surf_idx, :ref:`String<class_String>` name **)**
 
 Sets a name for a given surface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_surface_update_attribute_region:
 
-- void **surface_update_attribute_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
+.. rst-class:: classref-method
+
+void **surface_update_attribute_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
 
 .. 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_ArrayMesh_method_surface_update_skin_region:
 
-- void **surface_update_skin_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
+.. rst-class:: classref-method
+
+void **surface_update_skin_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
 
 .. 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_ArrayMesh_method_surface_update_vertex_region:
 
-- void **surface_update_vertex_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
+.. rst-class:: classref-method
+
+void **surface_update_vertex_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PackedByteArray<class_PackedByteArray>` data **)**
 
 .. container:: contribute
 

+ 52 - 26
classes/class_arrayoccluder3d.rst

@@ -14,72 +14,98 @@ ArrayOccluder3D
 
 3D polygon shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``ArrayOccluder3D`` stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to :ref:`ArrayMesh<class_ArrayMesh>`, but for occluders.
+**ArrayOccluder3D** stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to :ref:`ArrayMesh<class_ArrayMesh>`, but for occluders.
 
 See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------------------+----------------------------------------------------------+--------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`indices<class_ArrayOccluder3D_property_indices>`   | ``PackedInt32Array()``   |
-+-----------------------------------------------------+----------------------------------------------------------+--------------------------+
-| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`vertices<class_ArrayOccluder3D_property_vertices>` | ``PackedVector3Array()`` |
-+-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+   | :ref:`PackedInt32Array<class_PackedInt32Array>`     | :ref:`indices<class_ArrayOccluder3D_property_indices>`   | ``PackedInt32Array()``   |
+   +-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+   | :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`vertices<class_ArrayOccluder3D_property_vertices>` | ``PackedVector3Array()`` |
+   +-----------------------------------------------------+----------------------------------------------------------+--------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`set_arrays<class_ArrayOccluder3D_method_set_arrays>` **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)** |
-+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`set_arrays<class_ArrayOccluder3D_method_set_arrays>` **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)** |
+   +------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ArrayOccluder3D_property_indices:
 
-- :ref:`PackedInt32Array<class_PackedInt32Array>` **indices**
+.. rst-class:: classref-property
+
+:ref:`PackedInt32Array<class_PackedInt32Array>` **indices** = ``PackedInt32Array()``
 
-+-----------+------------------------+
-| *Default* | ``PackedInt32Array()`` |
-+-----------+------------------------+
-| *Setter*  | set_indices(value)     |
-+-----------+------------------------+
-| *Getter*  | get_indices()          |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_indices** **(** :ref:`PackedInt32Array<class_PackedInt32Array>` value **)**
+- :ref:`PackedInt32Array<class_PackedInt32Array>` **get_indices** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayOccluder3D_property_vertices:
 
-- :ref:`PackedVector3Array<class_PackedVector3Array>` **vertices**
+.. rst-class:: classref-property
+
+:ref:`PackedVector3Array<class_PackedVector3Array>` **vertices** = ``PackedVector3Array()``
 
-+-----------+--------------------------+
-| *Default* | ``PackedVector3Array()`` |
-+-----------+--------------------------+
-| *Setter*  | set_vertices(value)      |
-+-----------+--------------------------+
-| *Getter*  | get_vertices()           |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_vertices** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` value **)**
+- :ref:`PackedVector3Array<class_PackedVector3Array>` **get_vertices** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ArrayOccluder3D_method_set_arrays:
 
-- void **set_arrays** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)**
+.. rst-class:: classref-method
+
+void **set_arrays** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` vertices, :ref:`PackedInt32Array<class_PackedInt32Array>` indices **)**
 
 .. container:: contribute
 

+ 108 - 51
classes/class_aspectratiocontainer.rst

@@ -14,134 +14,191 @@ AspectRatioContainer
 
 Container that preserves its child controls' aspect ratio.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Arranges child controls in a way to preserve their aspect ratio automatically whenever the container is resized. Solves the problem where the container size is dynamic and the contents' size needs to adjust accordingly without losing proportions.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`GUI containers <../tutorials/ui/gui_containers>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
-| :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` | :ref:`alignment_horizontal<class_AspectRatioContainer_property_alignment_horizontal>` | ``1``   |
-+---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
-| :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` | :ref:`alignment_vertical<class_AspectRatioContainer_property_alignment_vertical>`     | ``1``   |
-+---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`                                     | :ref:`ratio<class_AspectRatioContainer_property_ratio>`                               | ``1.0`` |
-+---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
-| :ref:`StretchMode<enum_AspectRatioContainer_StretchMode>`     | :ref:`stretch_mode<class_AspectRatioContainer_property_stretch_mode>`                 | ``2``   |
-+---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+   | :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` | :ref:`alignment_horizontal<class_AspectRatioContainer_property_alignment_horizontal>` | ``1``   |
+   +---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+   | :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` | :ref:`alignment_vertical<class_AspectRatioContainer_property_alignment_vertical>`     | ``1``   |
+   +---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                                     | :ref:`ratio<class_AspectRatioContainer_property_ratio>`                               | ``1.0`` |
+   +---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+   | :ref:`StretchMode<enum_AspectRatioContainer_StretchMode>`     | :ref:`stretch_mode<class_AspectRatioContainer_property_stretch_mode>`                 | ``2``   |
+   +---------------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AspectRatioContainer_StretchMode:
 
+.. rst-class:: classref-enumeration
+
+enum **StretchMode**:
+
 .. _class_AspectRatioContainer_constant_STRETCH_WIDTH_CONTROLS_HEIGHT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **STRETCH_WIDTH_CONTROLS_HEIGHT** = ``0``
+
+The height of child controls is automatically adjusted based on the width of the container.
+
 .. _class_AspectRatioContainer_constant_STRETCH_HEIGHT_CONTROLS_WIDTH:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **STRETCH_HEIGHT_CONTROLS_WIDTH** = ``1``
+
+The width of child controls is automatically adjusted based on the height of the container.
+
 .. _class_AspectRatioContainer_constant_STRETCH_FIT:
 
-.. _class_AspectRatioContainer_constant_STRETCH_COVER:
+.. rst-class:: classref-enumeration-constant
 
-enum **StretchMode**:
+:ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **STRETCH_FIT** = ``2``
+
+The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio.
 
-- **STRETCH_WIDTH_CONTROLS_HEIGHT** = **0** --- The height of child controls is automatically adjusted based on the width of the container.
+.. _class_AspectRatioContainer_constant_STRETCH_COVER:
 
-- **STRETCH_HEIGHT_CONTROLS_WIDTH** = **1** --- The width of child controls is automatically adjusted based on the height of the container.
+.. rst-class:: classref-enumeration-constant
 
-- **STRETCH_FIT** = **2** --- The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio.
+:ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **STRETCH_COVER** = ``3``
 
-- **STRETCH_COVER** = **3** --- The width and height of child controls is automatically adjusted to make their bounding rectangle cover the entire area of the container while keeping the aspect ratio.
+The width and height of child controls is automatically adjusted to make their bounding rectangle cover the entire area of the container while keeping the aspect ratio.
 
 When the bounding rectangle of child controls exceed the container's size and :ref:`Control.clip_contents<class_Control_property_clip_contents>` is enabled, this allows to show only the container's area restricted by its own bounding rectangle.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _enum_AspectRatioContainer_AlignmentMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AlignmentMode**:
+
 .. _class_AspectRatioContainer_constant_ALIGNMENT_BEGIN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **ALIGNMENT_BEGIN** = ``0``
+
+Aligns child controls with the beginning (left or top) of the container.
+
 .. _class_AspectRatioContainer_constant_ALIGNMENT_CENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **ALIGNMENT_CENTER** = ``1``
+
+Aligns child controls with the center of the container.
+
 .. _class_AspectRatioContainer_constant_ALIGNMENT_END:
 
-enum **AlignmentMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **ALIGNMENT_BEGIN** = **0** --- Aligns child controls with the beginning (left or top) of the container.
+:ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **ALIGNMENT_END** = ``2``
 
-- **ALIGNMENT_CENTER** = **1** --- Aligns child controls with the center of the container.
+Aligns child controls with the end (right or bottom) of the container.
+
+.. rst-class:: classref-section-separator
+
+----
 
-- **ALIGNMENT_END** = **2** --- Aligns child controls with the end (right or bottom) of the container.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AspectRatioContainer_property_alignment_horizontal:
 
-- :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **alignment_horizontal**
+.. rst-class:: classref-property
 
-+-----------+---------------------------------+
-| *Default* | ``1``                           |
-+-----------+---------------------------------+
-| *Setter*  | set_alignment_horizontal(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_alignment_horizontal()      |
-+-----------+---------------------------------+
+:ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **alignment_horizontal** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_alignment_horizontal** **(** :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` value **)**
+- :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **get_alignment_horizontal** **(** **)**
 
 Specifies the horizontal relative position of child controls.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AspectRatioContainer_property_alignment_vertical:
 
-- :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **alignment_vertical**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------+
-| *Default* | ``1``                         |
-+-----------+-------------------------------+
-| *Setter*  | set_alignment_vertical(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_alignment_vertical()      |
-+-----------+-------------------------------+
+:ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **alignment_vertical** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_alignment_vertical** **(** :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` value **)**
+- :ref:`AlignmentMode<enum_AspectRatioContainer_AlignmentMode>` **get_alignment_vertical** **(** **)**
 
 Specifies the vertical relative position of child controls.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AspectRatioContainer_property_ratio:
 
-- :ref:`float<class_float>` **ratio**
+.. rst-class:: classref-property
 
-+-----------+------------------+
-| *Default* | ``1.0``          |
-+-----------+------------------+
-| *Setter*  | set_ratio(value) |
-+-----------+------------------+
-| *Getter*  | get_ratio()      |
-+-----------+------------------+
+:ref:`float<class_float>` **ratio** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_ratio** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_ratio** **(** **)**
 
 The aspect ratio to enforce on child controls. This is the width divided by the height. The ratio depends on the :ref:`stretch_mode<class_AspectRatioContainer_property_stretch_mode>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AspectRatioContainer_property_stretch_mode:
 
-- :ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **stretch_mode**
+.. rst-class:: classref-property
+
+:ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **stretch_mode** = ``2``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``2``                   |
-+-----------+-------------------------+
-| *Setter*  | set_stretch_mode(value) |
-+-----------+-------------------------+
-| *Getter*  | get_stretch_mode()      |
-+-----------+-------------------------+
+- void **set_stretch_mode** **(** :ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` value **)**
+- :ref:`StretchMode<enum_AspectRatioContainer_StretchMode>` **get_stretch_mode** **(** **)**
 
 The stretch mode used to align child controls.
 

+ 187 - 76
classes/class_astar2d.rst

@@ -14,92 +14,115 @@ AStar2D
 
 AStar class representation that uses 2D vectors as edges.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 This is a wrapper for the :ref:`AStar3D<class_AStar3D>` class which uses 2D vectors instead of 3D vectors.
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStar2D_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                            |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStar2D_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                          |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_point<class_AStar2D_method_add_point>` **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` weight_scale=1.0 **)**                    |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`are_points_connected<class_AStar2D_method_are_points_connected>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const| |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`clear<class_AStar2D_method_clear>` **(** **)**                                                                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`connect_points<class_AStar2D_method_connect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**                     |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`disconnect_points<class_AStar2D_method_disconnect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_available_point_id<class_AStar2D_method_get_available_point_id>` **(** **)** |const|                                                                                               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_closest_point<class_AStar2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_closest_position_in_segment<class_AStar2D_method_get_closest_position_in_segment>` **(** :ref:`Vector2<class_Vector2>` to_position **)** |const|                                   |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_id_path<class_AStar2D_method_get_id_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                                  |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_point_capacity<class_AStar2D_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_connections<class_AStar2D_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_point_count<class_AStar2D_method_get_point_count>` **(** **)** |const|                                                                                                             |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_ids<class_AStar2D_method_get_point_ids>` **(** **)**                                                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_point_path<class_AStar2D_method_get_point_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                            |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_position<class_AStar2D_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`get_point_weight_scale<class_AStar2D_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`has_point<class_AStar2D_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_point_disabled<class_AStar2D_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_point<class_AStar2D_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`reserve_space<class_AStar2D_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_disabled<class_AStar2D_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_position<class_AStar2D_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position **)**                                              |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_weight_scale<class_AStar2D_method_set_point_weight_scale>` **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**                                      |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStar2D_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                            |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStar2D_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                          |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`add_point<class_AStar2D_method_add_point>` **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` weight_scale=1.0 **)**                    |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`are_points_connected<class_AStar2D_method_are_points_connected>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const| |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`clear<class_AStar2D_method_clear>` **(** **)**                                                                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`connect_points<class_AStar2D_method_connect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**                     |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`disconnect_points<class_AStar2D_method_disconnect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_available_point_id<class_AStar2D_method_get_available_point_id>` **(** **)** |const|                                                                                               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_closest_point<class_AStar2D_method_get_closest_point>` **(** :ref:`Vector2<class_Vector2>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                       | :ref:`get_closest_position_in_segment<class_AStar2D_method_get_closest_position_in_segment>` **(** :ref:`Vector2<class_Vector2>` to_position **)** |const|                                   |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_id_path<class_AStar2D_method_get_id_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                                  |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_point_capacity<class_AStar2D_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_connections<class_AStar2D_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_point_count<class_AStar2D_method_get_point_count>` **(** **)** |const|                                                                                                             |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_ids<class_AStar2D_method_get_point_ids>` **(** **)**                                                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_point_path<class_AStar2D_method_get_point_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                            |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                       | :ref:`get_point_position<class_AStar2D_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`get_point_weight_scale<class_AStar2D_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`has_point<class_AStar2D_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_point_disabled<class_AStar2D_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`remove_point<class_AStar2D_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`reserve_space<class_AStar2D_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_disabled<class_AStar2D_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_position<class_AStar2D_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position **)**                                              |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_weight_scale<class_AStar2D_method_set_point_weight_scale>` **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**                                      |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AStar2D_method__compute_cost:
 
-- :ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
 
 Called when computing the cost between two connected points.
 
 Note that this function is hidden in the default ``AStar2D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method__estimate_cost:
 
-- :ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
 
 Called when estimating the cost between a point and the path's ending point.
 
 Note that this function is hidden in the default ``AStar2D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_add_point:
 
-- void **add_point** **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` weight_scale=1.0 **)**
+.. rst-class:: classref-method
+
+void **add_point** **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` weight_scale=1.0 **)**
 
 Adds a new point at the given position with the given identifier. The ``id`` must be 0 or larger, and the ``weight_scale`` must be 0.0 or greater.
 
@@ -122,27 +145,39 @@ The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost<class_AS
 
 If there already exists a point for the given ``id``, its position and weight scale are updated to the given values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_are_points_connected:
 
-- :ref:`bool<class_bool>` **are_points_connected** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **are_points_connected** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const|
 
 Returns whether there is a connection/segment between the given points. If ``bidirectional`` is ``false``, returns whether movement from ``id`` to ``to_id`` is possible through this segment.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears all the points and segments.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_connect_points:
 
-- void **connect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
+.. rst-class:: classref-method
+
+void **connect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
 
 Creates a segment between the given points. If ``bidirectional`` is ``false``, only movement from ``id`` to ``to_id`` is allowed, not the reverse direction.
 
@@ -165,37 +200,53 @@ Creates a segment between the given points. If ``bidirectional`` is ``false``, o
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_disconnect_points:
 
-- void **disconnect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
+.. rst-class:: classref-method
+
+void **disconnect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
 
 Deletes the segment between the given points. If ``bidirectional`` is ``false``, only movement from ``id`` to ``to_id`` is prevented, and a unidirectional segment possibly remains.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_available_point_id:
 
-- :ref:`int<class_int>` **get_available_point_id** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_available_point_id** **(** **)** |const|
 
 Returns the next available point ID with no point associated to it.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_closest_point:
 
-- :ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector2<class_Vector2>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector2<class_Vector2>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|
 
 Returns the ID of the closest point to ``to_position``, optionally taking disabled points into account. Returns ``-1`` if there are no points in the points pool.
 
 \ **Note:** If several points are the closest to ``to_position``, the one with the smallest ID will be returned, ensuring a deterministic result.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_closest_position_in_segment:
 
-- :ref:`Vector2<class_Vector2>` **get_closest_position_in_segment** **(** :ref:`Vector2<class_Vector2>` to_position **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_closest_position_in_segment** **(** :ref:`Vector2<class_Vector2>` to_position **)** |const|
 
 Returns the closest position to ``to_position`` that resides inside a segment between two connected points.
 
@@ -222,11 +273,15 @@ Returns the closest position to ``to_position`` that resides inside a segment be
 
 The result is in the segment that goes from ``y = 0`` to ``y = 5``. It's the closest position in the segment to the given point.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_id_path:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
 
 Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.
 
@@ -266,19 +321,27 @@ Returns an array with the IDs of the points that form the path found by AStar2D
 
 If you change the 2nd point's weight to 3, then the result will be ``[1, 4, 3]`` instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_capacity:
 
-- :ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
 
 Returns the capacity of the structure backing the points, useful in conjunction with ``reserve_space``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_connections:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
 
 Returns an array with the IDs of the points that form the connection with the given point.
 
@@ -313,101 +376,149 @@ Returns an array with the IDs of the points that form the connection with the gi
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_count:
 
-- :ref:`int<class_int>` **get_point_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_point_count** **(** **)** |const|
 
 Returns the number of points currently in the points pool.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_ids:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_ids** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_ids** **(** **)**
 
 Returns an array of all point IDs.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_path:
 
-- :ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
 
 Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.
 
 \ **Note:** This method is not thread-safe. If called from a :ref:`Thread<class_Thread>`, it will return an empty :ref:`PackedVector2Array<class_PackedVector2Array>` and will print an error message.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_position:
 
-- :ref:`Vector2<class_Vector2>` **get_point_position** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_point_position** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns the position of the point associated with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_get_point_weight_scale:
 
-- :ref:`float<class_float>` **get_point_weight_scale** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_point_weight_scale** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns the weight scale of the point associated with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_has_point:
 
-- :ref:`bool<class_bool>` **has_point** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_point** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns whether a point associated with the given ``id`` exists.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_is_point_disabled:
 
-- :ref:`bool<class_bool>` **is_point_disabled** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_point_disabled** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_remove_point:
 
-- void **remove_point** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+void **remove_point** **(** :ref:`int<class_int>` id **)**
 
 Removes the point associated with the given ``id`` from the points pool.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_reserve_space:
 
-- void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
+.. rst-class:: classref-method
+
+void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
 
 Reserves space internally for ``num_nodes`` points, useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_set_point_disabled:
 
-- void **set_point_disabled** **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**
+.. rst-class:: classref-method
+
+void **set_point_disabled** **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**
 
 Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_set_point_position:
 
-- void **set_point_position** **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position **)**
+.. rst-class:: classref-method
+
+void **set_point_position** **(** :ref:`int<class_int>` id, :ref:`Vector2<class_Vector2>` position **)**
 
 Sets the ``position`` for the point with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar2D_method_set_point_weight_scale:
 
-- void **set_point_weight_scale** **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**
+.. rst-class:: classref-method
+
+void **set_point_weight_scale** **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**
 
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost<class_AStar2D_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 

+ 187 - 76
classes/class_astar3d.rst

@@ -14,6 +14,8 @@ AStar3D
 
 An implementation of A\* to find the shortest paths among connected points in space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -57,87 +59,108 @@ It is also possible to use non-Euclidean distances. To do so, create a class tha
 
 If the default :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` and :ref:`_compute_cost<class_AStar3D_method__compute_cost>` methods are used, or if the supplied :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` method returns a lower bound of the cost, then the paths returned by A\* will be the lowest-cost paths. Here, the cost of a path equals the sum of the :ref:`_compute_cost<class_AStar3D_method__compute_cost>` results of all segments in the path multiplied by the ``weight_scale``\ s of the endpoints of the respective segments. If the default methods are used and the ``weight_scale``\ s of all points are set to ``1.0``, then this equals the sum of Euclidean distances of all segments in the path.
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStar3D_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                            |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                          |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`add_point<class_AStar3D_method_add_point>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position, :ref:`float<class_float>` weight_scale=1.0 **)**                    |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`are_points_connected<class_AStar3D_method_are_points_connected>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const| |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`clear<class_AStar3D_method_clear>` **(** **)**                                                                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`connect_points<class_AStar3D_method_connect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**                     |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`disconnect_points<class_AStar3D_method_disconnect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_available_point_id<class_AStar3D_method_get_available_point_id>` **(** **)** |const|                                                                                               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_closest_point<class_AStar3D_method_get_closest_point>` **(** :ref:`Vector3<class_Vector3>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                       | :ref:`get_closest_position_in_segment<class_AStar3D_method_get_closest_position_in_segment>` **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|                                   |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_id_path<class_AStar3D_method_get_id_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                                  |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_point_capacity<class_AStar3D_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_connections<class_AStar3D_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_point_count<class_AStar3D_method_get_point_count>` **(** **)** |const|                                                                                                             |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_ids<class_AStar3D_method_get_point_ids>` **(** **)**                                                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_point_path<class_AStar3D_method_get_point_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                            |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                       | :ref:`get_point_position<class_AStar3D_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`get_point_weight_scale<class_AStar3D_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`has_point<class_AStar3D_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_point_disabled<class_AStar3D_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`remove_point<class_AStar3D_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`reserve_space<class_AStar3D_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_disabled<class_AStar3D_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_position<class_AStar3D_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**                                              |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_weight_scale<class_AStar3D_method_set_point_weight_scale>` **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**                                      |
-+-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStar3D_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                            |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStar3D_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|                                          |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`add_point<class_AStar3D_method_add_point>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position, :ref:`float<class_float>` weight_scale=1.0 **)**                    |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`are_points_connected<class_AStar3D_method_are_points_connected>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const| |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`clear<class_AStar3D_method_clear>` **(** **)**                                                                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`connect_points<class_AStar3D_method_connect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**                     |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`disconnect_points<class_AStar3D_method_disconnect_points>` **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_available_point_id<class_AStar3D_method_get_available_point_id>` **(** **)** |const|                                                                                               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_closest_point<class_AStar3D_method_get_closest_point>` **(** :ref:`Vector3<class_Vector3>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                       | :ref:`get_closest_position_in_segment<class_AStar3D_method_get_closest_position_in_segment>` **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|                                   |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_id_path<class_AStar3D_method_get_id_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                                  |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_point_capacity<class_AStar3D_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_connections<class_AStar3D_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_point_count<class_AStar3D_method_get_point_count>` **(** **)** |const|                                                                                                             |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedInt64Array<class_PackedInt64Array>`     | :ref:`get_point_ids<class_AStar3D_method_get_point_ids>` **(** **)**                                                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_point_path<class_AStar3D_method_get_point_path>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**                                                            |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                       | :ref:`get_point_position<class_AStar3D_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`get_point_weight_scale<class_AStar3D_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`has_point<class_AStar3D_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_point_disabled<class_AStar3D_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`remove_point<class_AStar3D_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`reserve_space<class_AStar3D_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_disabled<class_AStar3D_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_position<class_AStar3D_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**                                              |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_weight_scale<class_AStar3D_method_set_point_weight_scale>` **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**                                      |
+   +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AStar3D_method__compute_cost:
 
-- :ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
 
 Called when computing the cost between two connected points.
 
 Note that this function is hidden in the default ``AStar3D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method__estimate_cost:
 
-- :ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual| |const|
 
 Called when estimating the cost between a point and the path's ending point.
 
 Note that this function is hidden in the default ``AStar3D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_add_point:
 
-- void **add_point** **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position, :ref:`float<class_float>` weight_scale=1.0 **)**
+.. rst-class:: classref-method
+
+void **add_point** **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position, :ref:`float<class_float>` weight_scale=1.0 **)**
 
 Adds a new point at the given position with the given identifier. The ``id`` must be 0 or larger, and the ``weight_scale`` must be 0.0 or greater.
 
@@ -160,27 +183,39 @@ The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost<class_AS
 
 If there already exists a point for the given ``id``, its position and weight scale are updated to the given values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_are_points_connected:
 
-- :ref:`bool<class_bool>` **are_points_connected** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **are_points_connected** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)** |const|
 
 Returns whether the two given points are directly connected by a segment. If ``bidirectional`` is ``false``, returns whether movement from ``id`` to ``to_id`` is possible through this segment.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears all the points and segments.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_connect_points:
 
-- void **connect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
+.. rst-class:: classref-method
+
+void **connect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
 
 Creates a segment between the given points. If ``bidirectional`` is ``false``, only movement from ``id`` to ``to_id`` is allowed, not the reverse direction.
 
@@ -203,37 +238,53 @@ Creates a segment between the given points. If ``bidirectional`` is ``false``, o
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_disconnect_points:
 
-- void **disconnect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
+.. rst-class:: classref-method
+
+void **disconnect_points** **(** :ref:`int<class_int>` id, :ref:`int<class_int>` to_id, :ref:`bool<class_bool>` bidirectional=true **)**
 
 Deletes the segment between the given points. If ``bidirectional`` is ``false``, only movement from ``id`` to ``to_id`` is prevented, and a unidirectional segment possibly remains.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_available_point_id:
 
-- :ref:`int<class_int>` **get_available_point_id** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_available_point_id** **(** **)** |const|
 
 Returns the next available point ID with no point associated to it.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_closest_point:
 
-- :ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector3<class_Vector3>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector3<class_Vector3>` to_position, :ref:`bool<class_bool>` include_disabled=false **)** |const|
 
 Returns the ID of the closest point to ``to_position``, optionally taking disabled points into account. Returns ``-1`` if there are no points in the points pool.
 
 \ **Note:** If several points are the closest to ``to_position``, the one with the smallest ID will be returned, ensuring a deterministic result.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_closest_position_in_segment:
 
-- :ref:`Vector3<class_Vector3>` **get_closest_position_in_segment** **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_closest_position_in_segment** **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|
 
 Returns the closest position to ``to_position`` that resides inside a segment between two connected points.
 
@@ -260,11 +311,15 @@ Returns the closest position to ``to_position`` that resides inside a segment be
 
 The result is in the segment that goes from ``y = 0`` to ``y = 5``. It's the closest position in the segment to the given point.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_id_path:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
 
 Returns an array with the IDs of the points that form the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path.
 
@@ -303,19 +358,27 @@ Returns an array with the IDs of the points that form the path found by AStar3D
 
 If you change the 2nd point's weight to 3, then the result will be ``[1, 4, 3]`` instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_capacity:
 
-- :ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_point_capacity** **(** **)** |const|
 
 Returns the capacity of the structure backing the points, useful in conjunction with ``reserve_space``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_connections:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
 
 Returns an array with the IDs of the points that form the connection with the given point.
 
@@ -349,101 +412,149 @@ Returns an array with the IDs of the points that form the connection with the gi
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_count:
 
-- :ref:`int<class_int>` **get_point_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_point_count** **(** **)** |const|
 
 Returns the number of points currently in the points pool.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_ids:
 
-- :ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_ids** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedInt64Array<class_PackedInt64Array>` **get_point_ids** **(** **)**
 
 Returns an array of all point IDs.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_path:
 
-- :ref:`PackedVector3Array<class_PackedVector3Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedVector3Array<class_PackedVector3Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
 
 Returns an array with the points that are in the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path.
 
 \ **Note:** This method is not thread-safe. If called from a :ref:`Thread<class_Thread>`, it will return an empty :ref:`PackedVector3Array<class_PackedVector3Array>` and will print an error message.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_position:
 
-- :ref:`Vector3<class_Vector3>` **get_point_position** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_point_position** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns the position of the point associated with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_get_point_weight_scale:
 
-- :ref:`float<class_float>` **get_point_weight_scale** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_point_weight_scale** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns the weight scale of the point associated with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_has_point:
 
-- :ref:`bool<class_bool>` **has_point** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_point** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns whether a point associated with the given ``id`` exists.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_is_point_disabled:
 
-- :ref:`bool<class_bool>` **is_point_disabled** **(** :ref:`int<class_int>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_point_disabled** **(** :ref:`int<class_int>` id **)** |const|
 
 Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_remove_point:
 
-- void **remove_point** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+void **remove_point** **(** :ref:`int<class_int>` id **)**
 
 Removes the point associated with the given ``id`` from the points pool.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_reserve_space:
 
-- void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
+.. rst-class:: classref-method
+
+void **reserve_space** **(** :ref:`int<class_int>` num_nodes **)**
 
 Reserves space internally for ``num_nodes`` points. Useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_set_point_disabled:
 
-- void **set_point_disabled** **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**
+.. rst-class:: classref-method
+
+void **set_point_disabled** **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**
 
 Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_set_point_position:
 
-- void **set_point_position** **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**
+.. rst-class:: classref-method
+
+void **set_point_position** **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**
 
 Sets the ``position`` for the point with the given ``id``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar3D_method_set_point_weight_scale:
 
-- void **set_point_weight_scale** **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**
+.. rst-class:: classref-method
+
+void **set_point_weight_scale** **(** :ref:`int<class_int>` id, :ref:`float<class_float>` weight_scale **)**
 
 Sets the ``weight_scale`` for the point with the given ``id``. The ``weight_scale`` is multiplied by the result of :ref:`_compute_cost<class_AStar3D_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 

+ 235 - 113
classes/class_astargrid2d.rst

@@ -14,6 +14,8 @@ AStarGrid2D
 
 A\* (or "A-Star") pathfinding tailored to find the shortest paths on 2D grids.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -44,68 +46,82 @@ In contrast to :ref:`AStar2D<class_AStar2D>`, you only need set the :ref:`size<c
 
 
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                      | :ref:`cell_size<class_AStarGrid2D_property_cell_size>`                 | ``Vector2(1, 1)``  |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`Heuristic<enum_AStarGrid2D_Heuristic>`       | :ref:`default_heuristic<class_AStarGrid2D_property_default_heuristic>` | ``0``              |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` | :ref:`diagonal_mode<class_AStarGrid2D_property_diagonal_mode>`         | ``0``              |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`bool<class_bool>`                            | :ref:`jumping_enabled<class_AStarGrid2D_property_jumping_enabled>`     | ``false``          |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2<class_Vector2>`                      | :ref:`offset<class_AStarGrid2D_property_offset>`                       | ``Vector2(0, 0)``  |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
-| :ref:`Vector2i<class_Vector2i>`                    | :ref:`size<class_AStarGrid2D_property_size>`                           | ``Vector2i(0, 0)`` |
-+----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`Vector2<class_Vector2>`                      | :ref:`cell_size<class_AStarGrid2D_property_cell_size>`                 | ``Vector2(1, 1)``  |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`Heuristic<enum_AStarGrid2D_Heuristic>`       | :ref:`default_heuristic<class_AStarGrid2D_property_default_heuristic>` | ``0``              |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` | :ref:`diagonal_mode<class_AStarGrid2D_property_diagonal_mode>`         | ``0``              |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`bool<class_bool>`                            | :ref:`jumping_enabled<class_AStarGrid2D_property_jumping_enabled>`     | ``false``          |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`Vector2<class_Vector2>`                      | :ref:`offset<class_AStarGrid2D_property_offset>`                       | ``Vector2(0, 0)``  |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+   | :ref:`Vector2i<class_Vector2i>`                    | :ref:`size<class_AStarGrid2D_property_size>`                           | ``Vector2i(0, 0)`` |
+   +----------------------------------------------------+------------------------------------------------------------------------+--------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStarGrid2D_method__compute_cost>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|   |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStarGrid2D_method__estimate_cost>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const| |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`clear<class_AStarGrid2D_method_clear>` **(** **)**                                                                                                                    |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i[]<class_Vector2i>`                   | :ref:`get_id_path<class_AStarGrid2D_method_get_id_path>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**                         |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_point_path<class_AStarGrid2D_method_get_point_path>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**                   |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_dirty<class_AStarGrid2D_method_is_dirty>` **(** **)** |const|                                                                                                      |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_in_bounds<class_AStarGrid2D_method_is_in_bounds>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                             |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_in_boundsv<class_AStarGrid2D_method_is_in_boundsv>` **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|                                                         |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`is_point_solid<class_AStarGrid2D_method_is_point_solid>` **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|                                                       |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`set_point_solid<class_AStarGrid2D_method_set_point_solid>` **(** :ref:`Vector2i<class_Vector2i>` id, :ref:`bool<class_bool>` solid=true **)**                         |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`update<class_AStarGrid2D_method_update>` **(** **)**                                                                                                                  |
-+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_compute_cost<class_AStarGrid2D_method__compute_cost>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|   |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                           | :ref:`_estimate_cost<class_AStarGrid2D_method__estimate_cost>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const| |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`clear<class_AStarGrid2D_method_clear>` **(** **)**                                                                                                                    |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2i[]<class_Vector2i>`                   | :ref:`get_id_path<class_AStarGrid2D_method_get_id_path>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**                         |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_point_path<class_AStarGrid2D_method_get_point_path>` **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**                   |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_dirty<class_AStarGrid2D_method_is_dirty>` **(** **)** |const|                                                                                                      |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_in_bounds<class_AStarGrid2D_method_is_in_bounds>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                             |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_in_boundsv<class_AStarGrid2D_method_is_in_boundsv>` **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|                                                         |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`is_point_solid<class_AStarGrid2D_method_is_point_solid>` **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|                                                       |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`set_point_solid<class_AStarGrid2D_method_set_point_solid>` **(** :ref:`Vector2i<class_Vector2i>` id, :ref:`bool<class_bool>` solid=true **)**                         |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`update<class_AStarGrid2D_method_update>` **(** **)**                                                                                                                  |
+   +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AStarGrid2D_Heuristic:
 
-.. _class_AStarGrid2D_constant_HEURISTIC_EUCLIDEAN:
+.. rst-class:: classref-enumeration
 
-.. _class_AStarGrid2D_constant_HEURISTIC_MANHATTAN:
+enum **Heuristic**:
 
-.. _class_AStarGrid2D_constant_HEURISTIC_OCTILE:
+.. _class_AStarGrid2D_constant_HEURISTIC_EUCLIDEAN:
 
-.. _class_AStarGrid2D_constant_HEURISTIC_CHEBYSHEV:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_AStarGrid2D_constant_HEURISTIC_MAX:
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **HEURISTIC_EUCLIDEAN** = ``0``
 
-enum **Heuristic**:
-
-- **HEURISTIC_EUCLIDEAN** = **0** --- The Euclidean heuristic to be used for the pathfinding using the following formula:
+The Euclidean heuristic to be used for the pathfinding using the following formula:
 
 ::
 
@@ -113,7 +129,13 @@ enum **Heuristic**:
     dy = abs(to_id.y - from_id.y)
     result = sqrt(dx * dx + dy * dy)
 
-- **HEURISTIC_MANHATTAN** = **1** --- The Manhattan heuristic to be used for the pathfinding using the following formula:
+.. _class_AStarGrid2D_constant_HEURISTIC_MANHATTAN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **HEURISTIC_MANHATTAN** = ``1``
+
+The Manhattan heuristic to be used for the pathfinding using the following formula:
 
 ::
 
@@ -121,7 +143,13 @@ enum **Heuristic**:
     dy = abs(to_id.y - from_id.y)
     result = dx + dy
 
-- **HEURISTIC_OCTILE** = **2** --- The Octile heuristic to be used for the pathfinding using the following formula:
+.. _class_AStarGrid2D_constant_HEURISTIC_OCTILE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **HEURISTIC_OCTILE** = ``2``
+
+The Octile heuristic to be used for the pathfinding using the following formula:
 
 ::
 
@@ -130,7 +158,13 @@ enum **Heuristic**:
     f = sqrt(2) - 1
     result = (dx < dy) ? f * dx + dy : f * dy + dx;
 
-- **HEURISTIC_CHEBYSHEV** = **3** --- The Chebyshev heuristic to be used for the pathfinding using the following formula:
+.. _class_AStarGrid2D_constant_HEURISTIC_CHEBYSHEV:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **HEURISTIC_CHEBYSHEV** = ``3``
+
+The Chebyshev heuristic to be used for the pathfinding using the following formula:
 
 ::
 
@@ -138,223 +172,311 @@ enum **Heuristic**:
     dy = abs(to_id.y - from_id.y)
     result = max(dx, dy)
 
-- **HEURISTIC_MAX** = **4** --- Represents the size of the :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` enum.
+.. _class_AStarGrid2D_constant_HEURISTIC_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **HEURISTIC_MAX** = ``4``
+
+Represents the size of the :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` enum.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_AStarGrid2D_DiagonalMode:
 
+.. rst-class:: classref-enumeration
+
+enum **DiagonalMode**:
+
 .. _class_AStarGrid2D_constant_DIAGONAL_MODE_ALWAYS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **DIAGONAL_MODE_ALWAYS** = ``0``
+
+The pathfinding algorithm will ignore solid neighbors around the target cell and allow passing using diagonals.
+
 .. _class_AStarGrid2D_constant_DIAGONAL_MODE_NEVER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **DIAGONAL_MODE_NEVER** = ``1``
+
+The pathfinding algorithm will ignore all diagonals and the way will be always orthogonal.
+
 .. _class_AStarGrid2D_constant_DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE** = ``2``
+
+The pathfinding algorithm will avoid using diagonals if at least two obstacles have been placed around the neighboring cells of the specific path segment.
+
 .. _class_AStarGrid2D_constant_DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES** = ``3``
+
+The pathfinding algorithm will avoid using diagonals if any obstacle has been placed around the neighboring cells of the specific path segment.
+
 .. _class_AStarGrid2D_constant_DIAGONAL_MODE_MAX:
 
-enum **DiagonalMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **DIAGONAL_MODE_ALWAYS** = **0** --- The pathfinding algorithm will ignore solid neighbors around the target cell and allow passing using diagonals.
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **DIAGONAL_MODE_MAX** = ``4``
 
-- **DIAGONAL_MODE_NEVER** = **1** --- The pathfinding algorithm will ignore all diagonals and the way will be always orthogonal.
+Represents the size of the :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` enum.
 
-- **DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE** = **2** --- The pathfinding algorithm will avoid using diagonals if at least two obstacles have been placed around the neighboring cells of the specific path segment.
+.. rst-class:: classref-section-separator
 
-- **DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES** = **3** --- The pathfinding algorithm will avoid using diagonals if any obstacle has been placed around the neighboring cells of the specific path segment.
+----
 
-- **DIAGONAL_MODE_MAX** = **4** --- Represents the size of the :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` enum.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AStarGrid2D_property_cell_size:
 
-- :ref:`Vector2<class_Vector2>` **cell_size**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector2(1, 1)``    |
-+-----------+----------------------+
-| *Setter*  | set_cell_size(value) |
-+-----------+----------------------+
-| *Getter*  | get_cell_size()      |
-+-----------+----------------------+
+:ref:`Vector2<class_Vector2>` **cell_size** = ``Vector2(1, 1)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_cell_size** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_cell_size** **(** **)**
 
 The size of the point cell which will be applied to calculate the resulting point position returned by :ref:`get_point_path<class_AStarGrid2D_method_get_point_path>`. If changed, :ref:`update<class_AStarGrid2D_method_update>` needs to be called before finding the next path.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_property_default_heuristic:
 
-- :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **default_heuristic**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``0``                        |
-+-----------+------------------------------+
-| *Setter*  | set_default_heuristic(value) |
-+-----------+------------------------------+
-| *Getter*  | get_default_heuristic()      |
-+-----------+------------------------------+
+:ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **default_heuristic** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_default_heuristic** **(** :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` value **)**
+- :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` **get_default_heuristic** **(** **)**
 
 The default :ref:`Heuristic<enum_AStarGrid2D_Heuristic>` which will be used to calculate the path if :ref:`_compute_cost<class_AStarGrid2D_method__compute_cost>` and/or :ref:`_estimate_cost<class_AStarGrid2D_method__estimate_cost>` were not overridden.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_property_diagonal_mode:
 
-- :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **diagonal_mode**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``0``                    |
-+-----------+--------------------------+
-| *Setter*  | set_diagonal_mode(value) |
-+-----------+--------------------------+
-| *Getter*  | get_diagonal_mode()      |
-+-----------+--------------------------+
+:ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **diagonal_mode** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_diagonal_mode** **(** :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` value **)**
+- :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` **get_diagonal_mode** **(** **)**
 
 A specific :ref:`DiagonalMode<enum_AStarGrid2D_DiagonalMode>` mode which will force the path to avoid or accept the specified diagonals.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_property_jumping_enabled:
 
-- :ref:`bool<class_bool>` **jumping_enabled**
+.. rst-class:: classref-property
 
-+-----------+----------------------------+
-| *Default* | ``false``                  |
-+-----------+----------------------------+
-| *Setter*  | set_jumping_enabled(value) |
-+-----------+----------------------------+
-| *Getter*  | is_jumping_enabled()       |
-+-----------+----------------------------+
+:ref:`bool<class_bool>` **jumping_enabled** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_jumping_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_jumping_enabled** **(** **)**
 
 Enables or disables jumping to skip up the intermediate points and speeds up the searching algorithm.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_property_offset:
 
-- :ref:`Vector2<class_Vector2>` **offset**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``Vector2(0, 0)`` |
-+-----------+-------------------+
-| *Setter*  | set_offset(value) |
-+-----------+-------------------+
-| *Getter*  | get_offset()      |
-+-----------+-------------------+
+:ref:`Vector2<class_Vector2>` **offset** = ``Vector2(0, 0)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_offset** **(** **)**
 
 The offset of the grid which will be applied to calculate the resulting point position returned by :ref:`get_point_path<class_AStarGrid2D_method_get_point_path>`. If changed, :ref:`update<class_AStarGrid2D_method_update>` needs to be called before finding the next path.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_property_size:
 
-- :ref:`Vector2i<class_Vector2i>` **size**
+.. rst-class:: classref-property
 
-+-----------+--------------------+
-| *Default* | ``Vector2i(0, 0)`` |
-+-----------+--------------------+
-| *Setter*  | set_size(value)    |
-+-----------+--------------------+
-| *Getter*  | get_size()         |
-+-----------+--------------------+
+:ref:`Vector2i<class_Vector2i>` **size** = ``Vector2i(0, 0)``
+
+.. rst-class:: classref-property-setget
+
+- void **set_size** **(** :ref:`Vector2i<class_Vector2i>` value **)**
+- :ref:`Vector2i<class_Vector2i>` **get_size** **(** **)**
 
 The size of the grid (number of cells of size :ref:`cell_size<class_AStarGrid2D_property_cell_size>` on each axis). If changed, :ref:`update<class_AStarGrid2D_method_update>` needs to be called before finding the next path.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AStarGrid2D_method__compute_cost:
 
-- :ref:`float<class_float>` **_compute_cost** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_compute_cost** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|
 
 Called when computing the cost between two connected points.
 
 Note that this function is hidden in the default ``AStarGrid2D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method__estimate_cost:
 
-- :ref:`float<class_float>` **_estimate_cost** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_estimate_cost** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)** |virtual| |const|
 
 Called when estimating the cost between a point and the path's ending point.
 
 Note that this function is hidden in the default ``AStarGrid2D`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears the grid and sets the :ref:`size<class_AStarGrid2D_property_size>` to :ref:`Vector2i.ZERO<class_Vector2i_constant_ZERO>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_get_id_path:
 
-- :ref:`Vector2i[]<class_Vector2i>` **get_id_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`Vector2i[]<class_Vector2i>` **get_id_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
 
 Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_get_point_path:
 
-- :ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PackedVector2Array<class_PackedVector2Array>` **get_point_path** **(** :ref:`Vector2i<class_Vector2i>` from_id, :ref:`Vector2i<class_Vector2i>` to_id **)**
 
 Returns an array with the points that are in the path found by AStarGrid2D between the given points. The array is ordered from the starting point to the ending point of the path.
 
 \ **Note:** This method is not thread-safe. If called from a :ref:`Thread<class_Thread>`, it will return an empty :ref:`PackedVector3Array<class_PackedVector3Array>` and will print an error message.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_is_dirty:
 
-- :ref:`bool<class_bool>` **is_dirty** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_dirty** **(** **)** |const|
 
 Indicates that the grid parameters were changed and :ref:`update<class_AStarGrid2D_method_update>` needs to be called.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_is_in_bounds:
 
-- :ref:`bool<class_bool>` **is_in_bounds** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_in_bounds** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|
 
 Returns ``true`` if the ``x`` and ``y`` is a valid grid coordinate (id).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_is_in_boundsv:
 
-- :ref:`bool<class_bool>` **is_in_boundsv** **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_in_boundsv** **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|
 
 Returns ``true`` if the ``id`` vector is a valid grid coordinate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_is_point_solid:
 
-- :ref:`bool<class_bool>` **is_point_solid** **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_point_solid** **(** :ref:`Vector2i<class_Vector2i>` id **)** |const|
 
 Returns ``true`` if a point is disabled for pathfinding. By default, all points are enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_set_point_solid:
 
-- void **set_point_solid** **(** :ref:`Vector2i<class_Vector2i>` id, :ref:`bool<class_bool>` solid=true **)**
+.. rst-class:: classref-method
+
+void **set_point_solid** **(** :ref:`Vector2i<class_Vector2i>` id, :ref:`bool<class_bool>` solid=true **)**
 
 Disables or enables the specified point for pathfinding. Useful for making an obstacle. By default, all points are enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStarGrid2D_method_update:
 
-- void **update** **(** **)**
+.. rst-class:: classref-method
+
+void **update** **(** **)**
 
 Updates the internal state of the grid according to the parameters to prepare it to search the path. Needs to be called if parameters like :ref:`size<class_AStarGrid2D_property_size>`, :ref:`cell_size<class_AStarGrid2D_property_cell_size>` or :ref:`offset<class_AStarGrid2D_property_offset>` are changed. :ref:`is_dirty<class_AStarGrid2D_method_is_dirty>` will return ``true`` if this is the case and this needs to be called.
 

+ 61 - 44
classes/class_atlastexture.rst

@@ -14,90 +14,107 @@ AtlasTexture
 
 A texture that crops out part of another Texture2D.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 :ref:`Texture2D<class_Texture2D>` resource that draws only part of its :ref:`atlas<class_AtlasTexture_property_atlas>` texture, as defined by the :ref:`region<class_AtlasTexture_property_region>`. An additional :ref:`margin<class_AtlasTexture_property_margin>` can also be set, which is useful for small adjustments.
 
-Multiple ``AtlasTexture`` resources can be cropped from the same :ref:`atlas<class_AtlasTexture_property_atlas>`. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls.
+Multiple **AtlasTexture** resources can be cropped from the same :ref:`atlas<class_AtlasTexture_property_atlas>`. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls.
+
+\ **Note:** **AtlasTexture** cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, and may not tile properly in nodes such as :ref:`TextureRect<class_TextureRect>`, when inside other **AtlasTexture** resources.
 
-\ **Note:** ``AtlasTexture`` cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, and may not tile properly in nodes such as :ref:`TextureRect<class_TextureRect>`, when inside other ``AtlasTexture`` resources.
+.. rst-class:: classref-reftable-group
 
 Properties
 ----------
 
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`Texture2D<class_Texture2D>` | :ref:`atlas<class_AtlasTexture_property_atlas>`             |                                                                                        |
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`           | :ref:`filter_clip<class_AtlasTexture_property_filter_clip>` | ``false``                                                                              |
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`         | :ref:`margin<class_AtlasTexture_property_margin>`           | ``Rect2(0, 0, 0, 0)``                                                                  |
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`Rect2<class_Rect2>`         | :ref:`region<class_AtlasTexture_property_region>`           | ``Rect2(0, 0, 0, 0)``                                                                  |
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`           | resource_local_to_scene                                     | ``false`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
-+-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`Texture2D<class_Texture2D>` | :ref:`atlas<class_AtlasTexture_property_atlas>`             |                                                                                        |
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`           | :ref:`filter_clip<class_AtlasTexture_property_filter_clip>` | ``false``                                                                              |
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`Rect2<class_Rect2>`         | :ref:`margin<class_AtlasTexture_property_margin>`           | ``Rect2(0, 0, 0, 0)``                                                                  |
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`Rect2<class_Rect2>`         | :ref:`region<class_AtlasTexture_property_region>`           | ``Rect2(0, 0, 0, 0)``                                                                  |
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`           | resource_local_to_scene                                     | ``false`` (overrides :ref:`Resource<class_Resource_property_resource_local_to_scene>`) |
+   +-----------------------------------+-------------------------------------------------------------+----------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AtlasTexture_property_atlas:
 
-- :ref:`Texture2D<class_Texture2D>` **atlas**
+.. rst-class:: classref-property
+
+:ref:`Texture2D<class_Texture2D>` **atlas**
+
+.. rst-class:: classref-property-setget
 
-+----------+------------------+
-| *Setter* | set_atlas(value) |
-+----------+------------------+
-| *Getter* | get_atlas()      |
-+----------+------------------+
+- void **set_atlas** **(** :ref:`Texture2D<class_Texture2D>` value **)**
+- :ref:`Texture2D<class_Texture2D>` **get_atlas** **(** **)**
 
-The texture that contains the atlas. Can be any type inheriting from :ref:`Texture2D<class_Texture2D>`, including another ``AtlasTexture``.
+The texture that contains the atlas. Can be any type inheriting from :ref:`Texture2D<class_Texture2D>`, including another **AtlasTexture**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AtlasTexture_property_filter_clip:
 
-- :ref:`bool<class_bool>` **filter_clip**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **filter_clip** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``false``              |
-+-----------+------------------------+
-| *Setter*  | set_filter_clip(value) |
-+-----------+------------------------+
-| *Getter*  | has_filter_clip()      |
-+-----------+------------------------+
+- void **set_filter_clip** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_filter_clip** **(** **)**
 
 If ``true``, the area outside of the :ref:`region<class_AtlasTexture_property_region>` is clipped to avoid bleeding of the surrounding texture pixels.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AtlasTexture_property_margin:
 
-- :ref:`Rect2<class_Rect2>` **margin**
+.. rst-class:: classref-property
+
+:ref:`Rect2<class_Rect2>` **margin** = ``Rect2(0, 0, 0, 0)``
 
-+-----------+-----------------------+
-| *Default* | ``Rect2(0, 0, 0, 0)`` |
-+-----------+-----------------------+
-| *Setter*  | set_margin(value)     |
-+-----------+-----------------------+
-| *Getter*  | get_margin()          |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_margin** **(** :ref:`Rect2<class_Rect2>` value **)**
+- :ref:`Rect2<class_Rect2>` **get_margin** **(** **)**
 
 The margin around the :ref:`region<class_AtlasTexture_property_region>`. Useful for small adjustments. If the :ref:`Rect2.size<class_Rect2_property_size>` of this property ("w" and "h" in the editor) is set, the drawn texture is resized to fit within the margin.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AtlasTexture_property_region:
 
-- :ref:`Rect2<class_Rect2>` **region**
+.. rst-class:: classref-property
+
+:ref:`Rect2<class_Rect2>` **region** = ``Rect2(0, 0, 0, 0)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``Rect2(0, 0, 0, 0)`` |
-+-----------+-----------------------+
-| *Setter*  | set_region(value)     |
-+-----------+-----------------------+
-| *Getter*  | get_region()          |
-+-----------+-----------------------+
+- void **set_region** **(** :ref:`Rect2<class_Rect2>` value **)**
+- :ref:`Rect2<class_Rect2>` **get_region** **(** **)**
 
 The region used to draw the :ref:`atlas<class_AtlasTexture_property_atlas>`.
 

+ 2 - 0
classes/class_audiobuslayout.rst

@@ -14,6 +14,8 @@ AudioBusLayout
 
 Stores information about the audio buses.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 

+ 21 - 4
classes/class_audioeffect.rst

@@ -16,29 +16,46 @@ AudioEffect
 
 Audio effect for audio.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - `Audio Mic Record Demo <https://godotengine.org/asset-library/asset/527>`__
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------------------------------+----------------------------------------------------------------------------------+
-| :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`_instantiate<class_AudioEffect_method__instantiate>` **(** **)** |virtual| |
-+-------------------------------------------------------+----------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+----------------------------------------------------------------------------------+
+   | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`_instantiate<class_AudioEffect_method__instantiate>` **(** **)** |virtual| |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioEffect_method__instantiate:
 
-- :ref:`AudioEffectInstance<class_AudioEffectInstance>` **_instantiate** **(** **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`AudioEffectInstance<class_AudioEffectInstance>` **_instantiate** **(** **)** |virtual|
 
 .. container:: contribute
 

+ 25 - 11
classes/class_audioeffectamplify.rst

@@ -14,37 +14,51 @@ AudioEffectAmplify
 
 Adds an amplifying audio effect to an audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Increases or decreases the volume being routed through the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+---------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` | ``0.0`` |
-+---------------------------+---------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+---------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`volume_db<class_AudioEffectAmplify_property_volume_db>` | ``0.0`` |
+   +---------------------------+---------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectAmplify_property_volume_db:
 
-- :ref:`float<class_float>` **volume_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **volume_db** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_volume_db(value) |
-+-----------+----------------------+
-| *Getter*  | get_volume_db()      |
-+-----------+----------------------+
+- void **set_volume_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_volume_db** **(** **)**
 
 Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24.
 

+ 4 - 0
classes/class_audioeffectbandlimitfilter.rst

@@ -14,11 +14,15 @@ AudioEffectBandLimitFilter
 
 Adds a band limit filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Limits the frequencies in a range around the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` and allows frequencies outside of this range to pass.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffectbandpassfilter.rst

@@ -14,11 +14,15 @@ AudioEffectBandPassFilter
 
 Adds a band pass filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Attenuates the frequencies inside of a range around the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` and cuts frequencies outside of this band.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 84 - 33
classes/class_audioeffectcapture.rst

@@ -14,6 +14,8 @@ AudioEffectCapture
 
 Captures audio from an audio bus in real-time.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ Application code should consume these audio frames from this ring buffer using :
 
 \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,105 +34,152 @@ Tutorials
 
 - `Audio Mic Record Demo <https://github.com/godotengine/godot-demo-projects/tree/master/audio/mic_record>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+-----------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`buffer_length<class_AudioEffectCapture_property_buffer_length>` | ``0.1`` |
-+---------------------------+-----------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`buffer_length<class_AudioEffectCapture_property_buffer_length>` | ``0.1`` |
+   +---------------------------+-----------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                             | :ref:`can_get_buffer<class_AudioEffectCapture_method_can_get_buffer>` **(** :ref:`int<class_int>` frames **)** |const| |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| void                                                | :ref:`clear_buffer<class_AudioEffectCapture_method_clear_buffer>` **(** **)**                                          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_buffer<class_AudioEffectCapture_method_get_buffer>` **(** :ref:`int<class_int>` frames **)**                 |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_buffer_length_frames<class_AudioEffectCapture_method_get_buffer_length_frames>` **(** **)** |const|          |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_discarded_frames<class_AudioEffectCapture_method_get_discarded_frames>` **(** **)** |const|                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_frames_available<class_AudioEffectCapture_method_get_frames_available>` **(** **)** |const|                  |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                               | :ref:`get_pushed_frames<class_AudioEffectCapture_method_get_pushed_frames>` **(** **)** |const|                        |
-+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                             | :ref:`can_get_buffer<class_AudioEffectCapture_method_can_get_buffer>` **(** :ref:`int<class_int>` frames **)** |const| |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | void                                                | :ref:`clear_buffer<class_AudioEffectCapture_method_clear_buffer>` **(** **)**                                          |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array<class_PackedVector2Array>` | :ref:`get_buffer<class_AudioEffectCapture_method_get_buffer>` **(** :ref:`int<class_int>` frames **)**                 |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_buffer_length_frames<class_AudioEffectCapture_method_get_buffer_length_frames>` **(** **)** |const|          |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_discarded_frames<class_AudioEffectCapture_method_get_discarded_frames>` **(** **)** |const|                  |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_frames_available<class_AudioEffectCapture_method_get_frames_available>` **(** **)** |const|                  |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                               | :ref:`get_pushed_frames<class_AudioEffectCapture_method_get_pushed_frames>` **(** **)** |const|                        |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectCapture_property_buffer_length:
 
-- :ref:`float<class_float>` **buffer_length**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **buffer_length** = ``0.1``
 
-+-----------+--------------------------+
-| *Default* | ``0.1``                  |
-+-----------+--------------------------+
-| *Setter*  | set_buffer_length(value) |
-+-----------+--------------------------+
-| *Getter*  | get_buffer_length()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_buffer_length** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_buffer_length** **(** **)**
 
 Length of the internal ring buffer, in seconds. Setting the buffer length will have no effect if already initialized.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectCapture_method_can_get_buffer:
 
-- :ref:`bool<class_bool>` **can_get_buffer** **(** :ref:`int<class_int>` frames **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **can_get_buffer** **(** :ref:`int<class_int>` frames **)** |const|
 
 Returns ``true`` if at least ``frames`` audio frames are available to read in the internal ring buffer.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_clear_buffer:
 
-- void **clear_buffer** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_buffer** **(** **)**
 
 Clears the internal ring buffer.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_get_buffer:
 
-- :ref:`PackedVector2Array<class_PackedVector2Array>` **get_buffer** **(** :ref:`int<class_int>` frames **)**
+.. rst-class:: classref-method
+
+:ref:`PackedVector2Array<class_PackedVector2Array>` **get_buffer** **(** :ref:`int<class_int>` frames **)**
 
 Gets the next ``frames`` audio samples from the internal ring buffer.
 
 Returns a :ref:`PackedVector2Array<class_PackedVector2Array>` containing exactly ``frames`` audio samples if available, or an empty :ref:`PackedVector2Array<class_PackedVector2Array>` if insufficient data was available.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_get_buffer_length_frames:
 
-- :ref:`int<class_int>` **get_buffer_length_frames** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_buffer_length_frames** **(** **)** |const|
 
 Returns the total size of the internal ring buffer in frames.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_get_discarded_frames:
 
-- :ref:`int<class_int>` **get_discarded_frames** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_discarded_frames** **(** **)** |const|
 
 Returns the number of audio frames discarded from the audio bus due to full buffer.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_get_frames_available:
 
-- :ref:`int<class_int>` **get_frames_available** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_frames_available** **(** **)** |const|
 
 Returns the number of frames available to read using :ref:`get_buffer<class_AudioEffectCapture_method_get_buffer>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCapture_method_get_pushed_frames:
 
-- :ref:`int<class_int>` **get_pushed_frames** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_pushed_frames** **(** **)** |const|
 
 Returns the number of audio frames inserted from the audio bus.
 

+ 405 - 284
classes/class_audioeffectchorus.rst

@@ -14,629 +14,750 @@ AudioEffectChorus
 
 Adds a chorus audio effect.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Adds a chorus audio effect. The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`dry<class_AudioEffectChorus_property_dry>`                             | ``1.0``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/cutoff_hz<class_AudioEffectChorus_property_voice/1/cutoff_hz>` | ``8000.0`` |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/delay_ms<class_AudioEffectChorus_property_voice/1/delay_ms>`   | ``15.0``   |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/depth_ms<class_AudioEffectChorus_property_voice/1/depth_ms>`   | ``2.0``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/level_db<class_AudioEffectChorus_property_voice/1/level_db>`   | ``0.0``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/pan<class_AudioEffectChorus_property_voice/1/pan>`             | ``-0.5``   |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/1/rate_hz<class_AudioEffectChorus_property_voice/1/rate_hz>`     | ``0.8``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/cutoff_hz<class_AudioEffectChorus_property_voice/2/cutoff_hz>` | ``8000.0`` |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/delay_ms<class_AudioEffectChorus_property_voice/2/delay_ms>`   | ``20.0``   |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/depth_ms<class_AudioEffectChorus_property_voice/2/depth_ms>`   | ``3.0``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/level_db<class_AudioEffectChorus_property_voice/2/level_db>`   | ``0.0``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/pan<class_AudioEffectChorus_property_voice/2/pan>`             | ``0.5``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/2/rate_hz<class_AudioEffectChorus_property_voice/2/rate_hz>`     | ``1.2``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/cutoff_hz<class_AudioEffectChorus_property_voice/3/cutoff_hz>` |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/delay_ms<class_AudioEffectChorus_property_voice/3/delay_ms>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/depth_ms<class_AudioEffectChorus_property_voice/3/depth_ms>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/level_db<class_AudioEffectChorus_property_voice/3/level_db>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/pan<class_AudioEffectChorus_property_voice/3/pan>`             |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/3/rate_hz<class_AudioEffectChorus_property_voice/3/rate_hz>`     |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/cutoff_hz<class_AudioEffectChorus_property_voice/4/cutoff_hz>` |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/delay_ms<class_AudioEffectChorus_property_voice/4/delay_ms>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/depth_ms<class_AudioEffectChorus_property_voice/4/depth_ms>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/level_db<class_AudioEffectChorus_property_voice/4/level_db>`   |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/pan<class_AudioEffectChorus_property_voice/4/pan>`             |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`voice/4/rate_hz<class_AudioEffectChorus_property_voice/4/rate_hz>`     |            |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`int<class_int>`     | :ref:`voice_count<class_AudioEffectChorus_property_voice_count>`             | ``2``      |
-+---------------------------+------------------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`wet<class_AudioEffectChorus_property_wet>`                             | ``0.5``    |
-+---------------------------+------------------------------------------------------------------------------+------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`dry<class_AudioEffectChorus_property_dry>`                             | ``1.0``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/cutoff_hz<class_AudioEffectChorus_property_voice/1/cutoff_hz>` | ``8000.0`` |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/delay_ms<class_AudioEffectChorus_property_voice/1/delay_ms>`   | ``15.0``   |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/depth_ms<class_AudioEffectChorus_property_voice/1/depth_ms>`   | ``2.0``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/level_db<class_AudioEffectChorus_property_voice/1/level_db>`   | ``0.0``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/pan<class_AudioEffectChorus_property_voice/1/pan>`             | ``-0.5``   |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/1/rate_hz<class_AudioEffectChorus_property_voice/1/rate_hz>`     | ``0.8``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/cutoff_hz<class_AudioEffectChorus_property_voice/2/cutoff_hz>` | ``8000.0`` |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/delay_ms<class_AudioEffectChorus_property_voice/2/delay_ms>`   | ``20.0``   |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/depth_ms<class_AudioEffectChorus_property_voice/2/depth_ms>`   | ``3.0``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/level_db<class_AudioEffectChorus_property_voice/2/level_db>`   | ``0.0``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/pan<class_AudioEffectChorus_property_voice/2/pan>`             | ``0.5``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/2/rate_hz<class_AudioEffectChorus_property_voice/2/rate_hz>`     | ``1.2``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/cutoff_hz<class_AudioEffectChorus_property_voice/3/cutoff_hz>` |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/delay_ms<class_AudioEffectChorus_property_voice/3/delay_ms>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/depth_ms<class_AudioEffectChorus_property_voice/3/depth_ms>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/level_db<class_AudioEffectChorus_property_voice/3/level_db>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/pan<class_AudioEffectChorus_property_voice/3/pan>`             |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/3/rate_hz<class_AudioEffectChorus_property_voice/3/rate_hz>`     |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/cutoff_hz<class_AudioEffectChorus_property_voice/4/cutoff_hz>` |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/delay_ms<class_AudioEffectChorus_property_voice/4/delay_ms>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/depth_ms<class_AudioEffectChorus_property_voice/4/depth_ms>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/level_db<class_AudioEffectChorus_property_voice/4/level_db>`   |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/pan<class_AudioEffectChorus_property_voice/4/pan>`             |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`voice/4/rate_hz<class_AudioEffectChorus_property_voice/4/rate_hz>`     |            |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`int<class_int>`     | :ref:`voice_count<class_AudioEffectChorus_property_voice_count>`             | ``2``      |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`wet<class_AudioEffectChorus_property_wet>`                             | ``0.5``    |
+   +---------------------------+------------------------------------------------------------------------------+------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_cutoff_hz<class_AudioEffectChorus_method_get_voice_cutoff_hz>` **(** :ref:`int<class_int>` voice_idx **)** |const|                              |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_delay_ms<class_AudioEffectChorus_method_get_voice_delay_ms>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_depth_ms<class_AudioEffectChorus_method_get_voice_depth_ms>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_level_db<class_AudioEffectChorus_method_get_voice_level_db>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_pan<class_AudioEffectChorus_method_get_voice_pan>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                          |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_voice_rate_hz<class_AudioEffectChorus_method_get_voice_rate_hz>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                  |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_cutoff_hz<class_AudioEffectChorus_method_set_voice_cutoff_hz>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)** |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_delay_ms<class_AudioEffectChorus_method_set_voice_delay_ms>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**    |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_depth_ms<class_AudioEffectChorus_method_set_voice_depth_ms>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**    |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_level_db<class_AudioEffectChorus_method_set_voice_level_db>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**    |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_pan<class_AudioEffectChorus_method_set_voice_pan>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**                   |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_voice_rate_hz<class_AudioEffectChorus_method_set_voice_rate_hz>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**       |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_cutoff_hz<class_AudioEffectChorus_method_get_voice_cutoff_hz>` **(** :ref:`int<class_int>` voice_idx **)** |const|                              |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_delay_ms<class_AudioEffectChorus_method_get_voice_delay_ms>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_depth_ms<class_AudioEffectChorus_method_get_voice_depth_ms>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_level_db<class_AudioEffectChorus_method_get_voice_level_db>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_pan<class_AudioEffectChorus_method_get_voice_pan>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                          |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_voice_rate_hz<class_AudioEffectChorus_method_get_voice_rate_hz>` **(** :ref:`int<class_int>` voice_idx **)** |const|                                  |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_cutoff_hz<class_AudioEffectChorus_method_set_voice_cutoff_hz>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)** |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_delay_ms<class_AudioEffectChorus_method_set_voice_delay_ms>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**    |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_depth_ms<class_AudioEffectChorus_method_set_voice_depth_ms>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**    |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_level_db<class_AudioEffectChorus_method_set_voice_level_db>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**    |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_pan<class_AudioEffectChorus_method_set_voice_pan>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**                   |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_voice_rate_hz<class_AudioEffectChorus_method_set_voice_rate_hz>` **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**       |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectChorus_property_dry:
 
-- :ref:`float<class_float>` **dry**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_dry(value) |
-+-----------+----------------+
-| *Getter*  | get_dry()      |
-+-----------+----------------+
+:ref:`float<class_float>` **dry** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_dry** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_dry** **(** **)**
 
 The effect's raw signal.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/cutoff_hz:
 
-- :ref:`float<class_float>` **voice/1/cutoff_hz**
+.. rst-class:: classref-property
 
-+-----------+----------------------------+
-| *Default* | ``8000.0``                 |
-+-----------+----------------------------+
-| *Setter*  | set_voice_cutoff_hz(value) |
-+-----------+----------------------------+
-| *Getter*  | get_voice_cutoff_hz()      |
-+-----------+----------------------------+
+:ref:`float<class_float>` **voice/1/cutoff_hz** = ``8000.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
+- :ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's cutoff frequency.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/delay_ms:
 
-- :ref:`float<class_float>` **voice/1/delay_ms**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``15.0``                  |
-+-----------+---------------------------+
-| *Setter*  | set_voice_delay_ms(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_delay_ms()      |
-+-----------+---------------------------+
+:ref:`float<class_float>` **voice/1/delay_ms** = ``15.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
+- :ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's signal delay.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/depth_ms:
 
-- :ref:`float<class_float>` **voice/1/depth_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/1/depth_ms** = ``2.0``
 
-+-----------+---------------------------+
-| *Default* | ``2.0``                   |
-+-----------+---------------------------+
-| *Setter*  | set_voice_depth_ms(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_depth_ms()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
+- :ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice filter's depth.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/level_db:
 
-- :ref:`float<class_float>` **voice/1/level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/1/level_db** = ``0.0``
 
-+-----------+---------------------------+
-| *Default* | ``0.0``                   |
-+-----------+---------------------------+
-| *Setter*  | set_voice_level_db(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_level_db()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
+- :ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's volume.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/pan:
 
-- :ref:`float<class_float>` **voice/1/pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/1/pan** = ``-0.5``
 
-+-----------+----------------------+
-| *Default* | ``-0.5``             |
-+-----------+----------------------+
-| *Setter*  | set_voice_pan(value) |
-+-----------+----------------------+
-| *Getter*  | get_voice_pan()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
+- :ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's pan level.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/1/rate_hz:
 
-- :ref:`float<class_float>` **voice/1/rate_hz**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``0.8``                  |
-+-----------+--------------------------+
-| *Setter*  | set_voice_rate_hz(value) |
-+-----------+--------------------------+
-| *Getter*  | get_voice_rate_hz()      |
-+-----------+--------------------------+
+:ref:`float<class_float>` **voice/1/rate_hz** = ``0.8``
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
+- :ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's filter rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/cutoff_hz:
 
-- :ref:`float<class_float>` **voice/2/cutoff_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/2/cutoff_hz** = ``8000.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``8000.0``                 |
-+-----------+----------------------------+
-| *Setter*  | set_voice_cutoff_hz(value) |
-+-----------+----------------------------+
-| *Getter*  | get_voice_cutoff_hz()      |
-+-----------+----------------------------+
+- void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
+- :ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's cutoff frequency.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/delay_ms:
 
-- :ref:`float<class_float>` **voice/2/delay_ms**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``20.0``                  |
-+-----------+---------------------------+
-| *Setter*  | set_voice_delay_ms(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_delay_ms()      |
-+-----------+---------------------------+
+:ref:`float<class_float>` **voice/2/delay_ms** = ``20.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
+- :ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's signal delay.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/depth_ms:
 
-- :ref:`float<class_float>` **voice/2/depth_ms**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``3.0``                   |
-+-----------+---------------------------+
-| *Setter*  | set_voice_depth_ms(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_depth_ms()      |
-+-----------+---------------------------+
+:ref:`float<class_float>` **voice/2/depth_ms** = ``3.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
+- :ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice filter's depth.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/level_db:
 
-- :ref:`float<class_float>` **voice/2/level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/2/level_db** = ``0.0``
 
-+-----------+---------------------------+
-| *Default* | ``0.0``                   |
-+-----------+---------------------------+
-| *Setter*  | set_voice_level_db(value) |
-+-----------+---------------------------+
-| *Getter*  | get_voice_level_db()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
+- :ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's volume.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/pan:
 
-- :ref:`float<class_float>` **voice/2/pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/2/pan** = ``0.5``
 
-+-----------+----------------------+
-| *Default* | ``0.5``              |
-+-----------+----------------------+
-| *Setter*  | set_voice_pan(value) |
-+-----------+----------------------+
-| *Getter*  | get_voice_pan()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
+- :ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's pan level.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/2/rate_hz:
 
-- :ref:`float<class_float>` **voice/2/rate_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/2/rate_hz** = ``1.2``
 
-+-----------+--------------------------+
-| *Default* | ``1.2``                  |
-+-----------+--------------------------+
-| *Setter*  | set_voice_rate_hz(value) |
-+-----------+--------------------------+
-| *Getter*  | get_voice_rate_hz()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
+- :ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's filter rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/cutoff_hz:
 
-- :ref:`float<class_float>` **voice/3/cutoff_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/cutoff_hz**
 
-+----------+----------------------------+
-| *Setter* | set_voice_cutoff_hz(value) |
-+----------+----------------------------+
-| *Getter* | get_voice_cutoff_hz()      |
-+----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
+- :ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's cutoff frequency.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/delay_ms:
 
-- :ref:`float<class_float>` **voice/3/delay_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/delay_ms**
+
+.. rst-class:: classref-property-setget
 
-+----------+---------------------------+
-| *Setter* | set_voice_delay_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_delay_ms()      |
-+----------+---------------------------+
+- void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
+- :ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's signal delay.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/depth_ms:
 
-- :ref:`float<class_float>` **voice/3/depth_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/depth_ms**
+
+.. rst-class:: classref-property-setget
 
-+----------+---------------------------+
-| *Setter* | set_voice_depth_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_depth_ms()      |
-+----------+---------------------------+
+- void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
+- :ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice filter's depth.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/level_db:
 
-- :ref:`float<class_float>` **voice/3/level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/level_db**
+
+.. rst-class:: classref-property-setget
 
-+----------+---------------------------+
-| *Setter* | set_voice_level_db(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_level_db()      |
-+----------+---------------------------+
+- void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
+- :ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's volume.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/pan:
 
-- :ref:`float<class_float>` **voice/3/pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/pan**
+
+.. rst-class:: classref-property-setget
 
-+----------+----------------------+
-| *Setter* | set_voice_pan(value) |
-+----------+----------------------+
-| *Getter* | get_voice_pan()      |
-+----------+----------------------+
+- void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
+- :ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's pan level.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/3/rate_hz:
 
-- :ref:`float<class_float>` **voice/3/rate_hz**
+.. rst-class:: classref-property
 
-+----------+--------------------------+
-| *Setter* | set_voice_rate_hz(value) |
-+----------+--------------------------+
-| *Getter* | get_voice_rate_hz()      |
-+----------+--------------------------+
+:ref:`float<class_float>` **voice/3/rate_hz**
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
+- :ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's filter rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/cutoff_hz:
 
-- :ref:`float<class_float>` **voice/4/cutoff_hz**
+.. rst-class:: classref-property
 
-+----------+----------------------------+
-| *Setter* | set_voice_cutoff_hz(value) |
-+----------+----------------------------+
-| *Getter* | get_voice_cutoff_hz()      |
-+----------+----------------------------+
+:ref:`float<class_float>` **voice/4/cutoff_hz**
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
+- :ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's cutoff frequency.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/delay_ms:
 
-- :ref:`float<class_float>` **voice/4/delay_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/4/delay_ms**
 
-+----------+---------------------------+
-| *Setter* | set_voice_delay_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_delay_ms()      |
-+----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
+- :ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's signal delay.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/depth_ms:
 
-- :ref:`float<class_float>` **voice/4/depth_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/4/depth_ms**
 
-+----------+---------------------------+
-| *Setter* | set_voice_depth_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_depth_ms()      |
-+----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
+- :ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice filter's depth.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/level_db:
 
-- :ref:`float<class_float>` **voice/4/level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/4/level_db**
 
-+----------+---------------------------+
-| *Setter* | set_voice_level_db(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_level_db()      |
-+----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
+- :ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's volume.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/pan:
 
-- :ref:`float<class_float>` **voice/4/pan**
+.. rst-class:: classref-property
 
-+----------+----------------------+
-| *Setter* | set_voice_pan(value) |
-+----------+----------------------+
-| *Getter* | get_voice_pan()      |
-+----------+----------------------+
+:ref:`float<class_float>` **voice/4/pan**
+
+.. rst-class:: classref-property-setget
+
+- void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
+- :ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's pan level.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice/4/rate_hz:
 
-- :ref:`float<class_float>` **voice/4/rate_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/4/rate_hz**
+
+.. rst-class:: classref-property-setget
 
-+----------+--------------------------+
-| *Setter* | set_voice_rate_hz(value) |
-+----------+--------------------------+
-| *Getter* | get_voice_rate_hz()      |
-+----------+--------------------------+
+- void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
+- :ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
 
 The voice's filter rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_voice_count:
 
-- :ref:`int<class_int>` **voice_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **voice_count** = ``2``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``2``                  |
-+-----------+------------------------+
-| *Setter*  | set_voice_count(value) |
-+-----------+------------------------+
-| *Getter*  | get_voice_count()      |
-+-----------+------------------------+
+- void **set_voice_count** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_voice_count** **(** **)**
 
 The number of voices in the effect.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectChorus_property_wet:
 
-- :ref:`float<class_float>` **wet**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **wet** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``0.5``        |
-+-----------+----------------+
-| *Setter*  | set_wet(value) |
-+-----------+----------------+
-| *Getter*  | get_wet()      |
-+-----------+----------------+
+- void **set_wet** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_wet** **(** **)**
 
 The effect's processed signal.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectChorus_method_get_voice_cutoff_hz:
 
-- :ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_get_voice_delay_ms:
 
-- :ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_get_voice_depth_ms:
 
-- :ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_get_voice_level_db:
 
-- :ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_level_db** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_get_voice_pan:
 
-- :ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_pan** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_get_voice_rate_hz:
 
-- :ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx **)** |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_AudioEffectChorus_method_set_voice_cutoff_hz:
 
-- void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
+.. rst-class:: classref-method
+
+void **set_voice_cutoff_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` cutoff_hz **)**
 
 .. 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_AudioEffectChorus_method_set_voice_delay_ms:
 
-- void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
+.. rst-class:: classref-method
+
+void **set_voice_delay_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` delay_ms **)**
 
 .. 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_AudioEffectChorus_method_set_voice_depth_ms:
 
-- void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
+.. rst-class:: classref-method
+
+void **set_voice_depth_ms** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` depth_ms **)**
 
 .. 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_AudioEffectChorus_method_set_voice_level_db:
 
-- void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
+.. rst-class:: classref-method
+
+void **set_voice_level_db** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` level_db **)**
 
 .. 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_AudioEffectChorus_method_set_voice_pan:
 
-- void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
+.. rst-class:: classref-method
+
+void **set_voice_pan** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` pan **)**
 
 .. 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_AudioEffectChorus_method_set_voice_rate_hz:
 
-- void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
+.. rst-class:: classref-method
+
+void **set_voice_rate_hz** **(** :ref:`int<class_int>` voice_idx, :ref:`float<class_float>` rate_hz **)**
 
 .. container:: contribute
 

+ 91 - 71
classes/class_audioeffectcompressor.rst

@@ -16,6 +16,8 @@ Adds a compressor audio effect to an audio bus.
 
 Reduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -31,140 +33,158 @@ Compressor has many uses in the mix:
 
 - Accentuates transients by using a wider attack, making effects sound more punchy.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`attack_us<class_AudioEffectCompressor_property_attack_us>`   | ``20.0``  |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`gain<class_AudioEffectCompressor_property_gain>`             | ``0.0``   |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`mix<class_AudioEffectCompressor_property_mix>`               | ``1.0``   |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`ratio<class_AudioEffectCompressor_property_ratio>`           | ``4.0``   |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`release_ms<class_AudioEffectCompressor_property_release_ms>` | ``250.0`` |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`StringName<class_StringName>` | :ref:`sidechain<class_AudioEffectCompressor_property_sidechain>`   | ``&""``   |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`threshold<class_AudioEffectCompressor_property_threshold>`   | ``0.0``   |
-+-------------------------------------+--------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`attack_us<class_AudioEffectCompressor_property_attack_us>`   | ``20.0``  |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`gain<class_AudioEffectCompressor_property_gain>`             | ``0.0``   |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`mix<class_AudioEffectCompressor_property_mix>`               | ``1.0``   |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`ratio<class_AudioEffectCompressor_property_ratio>`           | ``4.0``   |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`release_ms<class_AudioEffectCompressor_property_release_ms>` | ``250.0`` |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`StringName<class_StringName>` | :ref:`sidechain<class_AudioEffectCompressor_property_sidechain>`   | ``&""``   |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`threshold<class_AudioEffectCompressor_property_threshold>`   | ``0.0``   |
+   +-------------------------------------+--------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectCompressor_property_attack_us:
 
-- :ref:`float<class_float>` **attack_us**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **attack_us** = ``20.0``
 
-+-----------+----------------------+
-| *Default* | ``20.0``             |
-+-----------+----------------------+
-| *Setter*  | set_attack_us(value) |
-+-----------+----------------------+
-| *Getter*  | get_attack_us()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_attack_us** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_attack_us** **(** **)**
 
 Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_gain:
 
-- :ref:`float<class_float>` **gain**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gain** = ``0.0``
 
-+-----------+-----------------+
-| *Default* | ``0.0``         |
-+-----------+-----------------+
-| *Setter*  | set_gain(value) |
-+-----------+-----------------+
-| *Getter*  | get_gain()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gain** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gain** **(** **)**
 
 Gain applied to the output signal.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_mix:
 
-- :ref:`float<class_float>` **mix**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **mix** = ``1.0``
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_mix(value) |
-+-----------+----------------+
-| *Getter*  | get_mix()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_mix** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_mix** **(** **)**
 
 Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_ratio:
 
-- :ref:`float<class_float>` **ratio**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **ratio** = ``4.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------+
-| *Default* | ``4.0``          |
-+-----------+------------------+
-| *Setter*  | set_ratio(value) |
-+-----------+------------------+
-| *Getter*  | get_ratio()      |
-+-----------+------------------+
+- void **set_ratio** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_ratio** **(** **)**
 
 Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_release_ms:
 
-- :ref:`float<class_float>` **release_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **release_ms** = ``250.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``250.0``             |
-+-----------+-----------------------+
-| *Setter*  | set_release_ms(value) |
-+-----------+-----------------------+
-| *Getter*  | get_release_ms()      |
-+-----------+-----------------------+
+- void **set_release_ms** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_release_ms** **(** **)**
 
 Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_sidechain:
 
-- :ref:`StringName<class_StringName>` **sidechain**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **sidechain** = ``&""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``&""``              |
-+-----------+----------------------+
-| *Setter*  | set_sidechain(value) |
-+-----------+----------------------+
-| *Getter*  | get_sidechain()      |
-+-----------+----------------------+
+- void **set_sidechain** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_sidechain** **(** **)**
 
 Reduce the sound level using another audio bus for threshold detection.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectCompressor_property_threshold:
 
-- :ref:`float<class_float>` **threshold**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **threshold** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_threshold(value) |
-+-----------+----------------------+
-| *Getter*  | get_threshold()      |
-+-----------+----------------------+
+- void **set_threshold** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_threshold** **(** **)**
 
 The level above which compression is applied to the audio. Value can range from -60 to 0.
 

+ 157 - 131
classes/class_audioeffectdelay.rst

@@ -16,253 +16,279 @@ Adds a delay audio effect to an audio bus. Plays input signal back after a perio
 
 Two tap delay and feedback options.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Plays input signal back after a period of time. The delayed signal may be played back multiple times to create the sound of a repeating, decaying echo. Delay effects range from a subtle echo effect to a pronounced blending of previous sounds with new sounds.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`dry<class_AudioEffectDelay_property_dry>`                             | ``1.0``     |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`bool<class_bool>`   | :ref:`feedback_active<class_AudioEffectDelay_property_feedback_active>`     | ``false``   |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`feedback_delay_ms<class_AudioEffectDelay_property_feedback_delay_ms>` | ``340.0``   |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`feedback_level_db<class_AudioEffectDelay_property_feedback_level_db>` | ``-6.0``    |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`feedback_lowpass<class_AudioEffectDelay_property_feedback_lowpass>`   | ``16000.0`` |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`bool<class_bool>`   | :ref:`tap1_active<class_AudioEffectDelay_property_tap1_active>`             | ``true``    |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap1_delay_ms<class_AudioEffectDelay_property_tap1_delay_ms>`         | ``250.0``   |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap1_level_db<class_AudioEffectDelay_property_tap1_level_db>`         | ``-6.0``    |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap1_pan<class_AudioEffectDelay_property_tap1_pan>`                   | ``0.2``     |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`bool<class_bool>`   | :ref:`tap2_active<class_AudioEffectDelay_property_tap2_active>`             | ``true``    |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap2_delay_ms<class_AudioEffectDelay_property_tap2_delay_ms>`         | ``500.0``   |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap2_level_db<class_AudioEffectDelay_property_tap2_level_db>`         | ``-12.0``   |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`tap2_pan<class_AudioEffectDelay_property_tap2_pan>`                   | ``-0.4``    |
-+---------------------------+-----------------------------------------------------------------------------+-------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`dry<class_AudioEffectDelay_property_dry>`                             | ``1.0``     |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`bool<class_bool>`   | :ref:`feedback_active<class_AudioEffectDelay_property_feedback_active>`     | ``false``   |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`feedback_delay_ms<class_AudioEffectDelay_property_feedback_delay_ms>` | ``340.0``   |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`feedback_level_db<class_AudioEffectDelay_property_feedback_level_db>` | ``-6.0``    |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`feedback_lowpass<class_AudioEffectDelay_property_feedback_lowpass>`   | ``16000.0`` |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`bool<class_bool>`   | :ref:`tap1_active<class_AudioEffectDelay_property_tap1_active>`             | ``true``    |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap1_delay_ms<class_AudioEffectDelay_property_tap1_delay_ms>`         | ``250.0``   |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap1_level_db<class_AudioEffectDelay_property_tap1_level_db>`         | ``-6.0``    |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap1_pan<class_AudioEffectDelay_property_tap1_pan>`                   | ``0.2``     |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`bool<class_bool>`   | :ref:`tap2_active<class_AudioEffectDelay_property_tap2_active>`             | ``true``    |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap2_delay_ms<class_AudioEffectDelay_property_tap2_delay_ms>`         | ``500.0``   |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap2_level_db<class_AudioEffectDelay_property_tap2_level_db>`         | ``-12.0``   |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`tap2_pan<class_AudioEffectDelay_property_tap2_pan>`                   | ``-0.4``    |
+   +---------------------------+-----------------------------------------------------------------------------+-------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectDelay_property_dry:
 
-- :ref:`float<class_float>` **dry**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_dry(value) |
-+-----------+----------------+
-| *Getter*  | get_dry()      |
-+-----------+----------------+
+:ref:`float<class_float>` **dry** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_dry** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_dry** **(** **)**
 
 Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_feedback_active:
 
-- :ref:`bool<class_bool>` **feedback_active**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **feedback_active** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``false``                  |
-+-----------+----------------------------+
-| *Setter*  | set_feedback_active(value) |
-+-----------+----------------------------+
-| *Getter*  | is_feedback_active()       |
-+-----------+----------------------------+
+- void **set_feedback_active** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_feedback_active** **(** **)**
 
 If ``true``, feedback is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_feedback_delay_ms:
 
-- :ref:`float<class_float>` **feedback_delay_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **feedback_delay_ms** = ``340.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``340.0``                    |
-+-----------+------------------------------+
-| *Setter*  | set_feedback_delay_ms(value) |
-+-----------+------------------------------+
-| *Getter*  | get_feedback_delay_ms()      |
-+-----------+------------------------------+
+- void **set_feedback_delay_ms** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_feedback_delay_ms** **(** **)**
 
 Feedback delay time in milliseconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_feedback_level_db:
 
-- :ref:`float<class_float>` **feedback_level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **feedback_level_db** = ``-6.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``-6.0``                     |
-+-----------+------------------------------+
-| *Setter*  | set_feedback_level_db(value) |
-+-----------+------------------------------+
-| *Getter*  | get_feedback_level_db()      |
-+-----------+------------------------------+
+- void **set_feedback_level_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_feedback_level_db** **(** **)**
 
 Sound level for ``tap1``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_feedback_lowpass:
 
-- :ref:`float<class_float>` **feedback_lowpass**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **feedback_lowpass** = ``16000.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``16000.0``                 |
-+-----------+-----------------------------+
-| *Setter*  | set_feedback_lowpass(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_feedback_lowpass()      |
-+-----------+-----------------------------+
+- void **set_feedback_lowpass** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_feedback_lowpass** **(** **)**
 
 Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap1_active:
 
-- :ref:`bool<class_bool>` **tap1_active**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **tap1_active** = ``true``
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_tap1_active(value) |
-+-----------+------------------------+
-| *Getter*  | is_tap1_active()       |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_tap1_active** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_tap1_active** **(** **)**
 
 If ``true``, ``tap1`` will be enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap1_delay_ms:
 
-- :ref:`float<class_float>` **tap1_delay_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **tap1_delay_ms** = ``250.0``
 
-+-----------+--------------------------+
-| *Default* | ``250.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_tap1_delay_ms(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap1_delay_ms()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_tap1_delay_ms** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap1_delay_ms** **(** **)**
 
 ``tap1`` delay time in milliseconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap1_level_db:
 
-- :ref:`float<class_float>` **tap1_level_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **tap1_level_db** = ``-6.0``
 
-+-----------+--------------------------+
-| *Default* | ``-6.0``                 |
-+-----------+--------------------------+
-| *Setter*  | set_tap1_level_db(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap1_level_db()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_tap1_level_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap1_level_db** **(** **)**
 
 Sound level for ``tap1``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap1_pan:
 
-- :ref:`float<class_float>` **tap1_pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **tap1_pan** = ``0.2``
 
-+-----------+---------------------+
-| *Default* | ``0.2``             |
-+-----------+---------------------+
-| *Setter*  | set_tap1_pan(value) |
-+-----------+---------------------+
-| *Getter*  | get_tap1_pan()      |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_tap1_pan** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap1_pan** **(** **)**
 
 Pan position for ``tap1``. Value can range from -1 (fully left) to 1 (fully right).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap2_active:
 
-- :ref:`bool<class_bool>` **tap2_active**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_tap2_active(value) |
-+-----------+------------------------+
-| *Getter*  | is_tap2_active()       |
-+-----------+------------------------+
+:ref:`bool<class_bool>` **tap2_active** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_tap2_active** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_tap2_active** **(** **)**
 
 If ``true``, ``tap2`` will be enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap2_delay_ms:
 
-- :ref:`float<class_float>` **tap2_delay_ms**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``500.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_tap2_delay_ms(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap2_delay_ms()      |
-+-----------+--------------------------+
+:ref:`float<class_float>` **tap2_delay_ms** = ``500.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_tap2_delay_ms** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap2_delay_ms** **(** **)**
 
 **Tap2** delay time in milliseconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap2_level_db:
 
-- :ref:`float<class_float>` **tap2_level_db**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``-12.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_tap2_level_db(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap2_level_db()      |
-+-----------+--------------------------+
+:ref:`float<class_float>` **tap2_level_db** = ``-12.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_tap2_level_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap2_level_db** **(** **)**
 
 Sound level for ``tap2``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDelay_property_tap2_pan:
 
-- :ref:`float<class_float>` **tap2_pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **tap2_pan** = ``-0.4``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``-0.4``            |
-+-----------+---------------------+
-| *Setter*  | set_tap2_pan(value) |
-+-----------+---------------------+
-| *Getter*  | get_tap2_pan()      |
-+-----------+---------------------+
+- void **set_tap2_pan** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap2_pan** **(** **)**
 
 Pan position for ``tap2``. Value can range from -1 (fully left) to 1 (fully right).
 

+ 107 - 61
classes/class_audioeffectdistortion.rst

@@ -14,142 +14,188 @@ AudioEffectDistortion
 
 Adds a distortion audio effect to an Audio bus.
 
-Modify the sound to make it distorted.
+Modifies the sound to make it distorted.
+
+.. rst-class:: classref-introduction-group
 
 Description
 -----------
 
 Different types are available: clip, tan, lo-fi (bit crushing), overdrive, or waveshape.
 
-By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
+By distorting the waveform the frequency content changes, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`                    | :ref:`drive<class_AudioEffectDistortion_property_drive>`           | ``0.0``     |
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`                    | :ref:`keep_hf_hz<class_AudioEffectDistortion_property_keep_hf_hz>` | ``16000.0`` |
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
-| :ref:`Mode<enum_AudioEffectDistortion_Mode>` | :ref:`mode<class_AudioEffectDistortion_property_mode>`             | ``0``       |
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`                    | :ref:`post_gain<class_AudioEffectDistortion_property_post_gain>`   | ``0.0``     |
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>`                    | :ref:`pre_gain<class_AudioEffectDistortion_property_pre_gain>`     | ``0.0``     |
-+----------------------------------------------+--------------------------------------------------------------------+-------------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`                    | :ref:`drive<class_AudioEffectDistortion_property_drive>`           | ``0.0``     |
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`                    | :ref:`keep_hf_hz<class_AudioEffectDistortion_property_keep_hf_hz>` | ``16000.0`` |
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+   | :ref:`Mode<enum_AudioEffectDistortion_Mode>` | :ref:`mode<class_AudioEffectDistortion_property_mode>`             | ``0``       |
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`                    | :ref:`post_gain<class_AudioEffectDistortion_property_post_gain>`   | ``0.0``     |
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>`                    | :ref:`pre_gain<class_AudioEffectDistortion_property_pre_gain>`     | ``0.0``     |
+   +----------------------------------------------+--------------------------------------------------------------------+-------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioEffectDistortion_Mode:
 
+.. rst-class:: classref-enumeration
+
+enum **Mode**:
+
 .. _class_AudioEffectDistortion_constant_MODE_CLIP:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **MODE_CLIP** = ``0``
+
+Digital distortion effect which cuts off peaks at the top and bottom of the waveform.
+
 .. _class_AudioEffectDistortion_constant_MODE_ATAN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **MODE_ATAN** = ``1``
+
+
+
 .. _class_AudioEffectDistortion_constant_MODE_LOFI:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **MODE_LOFI** = ``2``
+
+Low-resolution digital distortion effect (bit depth reduction). You can use it to emulate the sound of early digital audio devices.
+
 .. _class_AudioEffectDistortion_constant_MODE_OVERDRIVE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **MODE_OVERDRIVE** = ``3``
+
+Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers. The :ref:`drive<class_AudioEffectDistortion_property_drive>` property has no effect in this mode.
+
 .. _class_AudioEffectDistortion_constant_MODE_WAVESHAPE:
 
-enum **Mode**:
+.. rst-class:: classref-enumeration-constant
 
-- **MODE_CLIP** = **0** --- Digital distortion effect which cuts off peaks at the top and bottom of the waveform.
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **MODE_WAVESHAPE** = ``4``
 
-- **MODE_ATAN** = **1**
+Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound.
 
-- **MODE_LOFI** = **2** --- Low-resolution digital distortion effect. You can use it to emulate the sound of early digital audio devices.
+.. rst-class:: classref-section-separator
 
-- **MODE_OVERDRIVE** = **3** --- Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers.
+----
 
-- **MODE_WAVESHAPE** = **4** --- Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectDistortion_property_drive:
 
-- :ref:`float<class_float>` **drive**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **drive** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------+
-| *Default* | ``0.0``          |
-+-----------+------------------+
-| *Setter*  | set_drive(value) |
-+-----------+------------------+
-| *Getter*  | get_drive()      |
-+-----------+------------------+
+- void **set_drive** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_drive** **(** **)**
 
 Distortion power. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDistortion_property_keep_hf_hz:
 
-- :ref:`float<class_float>` **keep_hf_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **keep_hf_hz** = ``16000.0``
 
-+-----------+-----------------------+
-| *Default* | ``16000.0``           |
-+-----------+-----------------------+
-| *Setter*  | set_keep_hf_hz(value) |
-+-----------+-----------------------+
-| *Getter*  | get_keep_hf_hz()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_keep_hf_hz** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_keep_hf_hz** **(** **)**
 
 High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDistortion_property_mode:
 
-- :ref:`Mode<enum_AudioEffectDistortion_Mode>` **mode**
+.. rst-class:: classref-property
+
+:ref:`Mode<enum_AudioEffectDistortion_Mode>` **mode** = ``0``
 
-+-----------+-----------------+
-| *Default* | ``0``           |
-+-----------+-----------------+
-| *Setter*  | set_mode(value) |
-+-----------+-----------------+
-| *Getter*  | get_mode()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_mode** **(** :ref:`Mode<enum_AudioEffectDistortion_Mode>` value **)**
+- :ref:`Mode<enum_AudioEffectDistortion_Mode>` **get_mode** **(** **)**
 
 Distortion type.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectDistortion_property_post_gain:
 
-- :ref:`float<class_float>` **post_gain**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_post_gain(value) |
-+-----------+----------------------+
-| *Getter*  | get_post_gain()      |
-+-----------+----------------------+
+:ref:`float<class_float>` **post_gain** = ``0.0``
 
-Increases or decreases the volume after the effect. Value can range from -80 to 24.
+.. rst-class:: classref-property-setget
+
+- void **set_post_gain** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_post_gain** **(** **)**
+
+Increases or decreases the volume after the effect, in decibels. Value can range from -80 to 24.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioEffectDistortion_property_pre_gain:
 
-- :ref:`float<class_float>` **pre_gain**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pre_gain** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``0.0``             |
-+-----------+---------------------+
-| *Setter*  | set_pre_gain(value) |
-+-----------+---------------------+
-| *Getter*  | get_pre_gain()      |
-+-----------+---------------------+
+- void **set_pre_gain** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pre_gain** **(** **)**
 
-Increases or decreases the volume before the effect. Value can range from -60 to 60.
+Increases or decreases the volume before the effect, in decibels. Value can range from -60 to 60.
 
 .. |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.)`

+ 35 - 10
classes/class_audioeffecteq.rst

@@ -18,49 +18,74 @@ Base class for audio equalizers. Gives you control over frequencies.
 
 Use it to create a custom equalizer if :ref:`AudioEffectEQ6<class_AudioEffectEQ6>`, :ref:`AudioEffectEQ10<class_AudioEffectEQ10>` or :ref:`AudioEffectEQ21<class_AudioEffectEQ21>` don't fit your needs.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 AudioEffectEQ gives you control over frequencies. Use it to compensate for existing deficiencies in audio. AudioEffectEQs are useful on the Master bus to completely master a mix and give it more character. They are also useful when a game is run on a mobile device, to adjust the mix to that kind of speakers (it can be added but disabled when headphones are plugged).
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`get_band_count<class_AudioEffectEQ_method_get_band_count>` **(** **)** |const|                                                                 |
-+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_band_gain_db<class_AudioEffectEQ_method_get_band_gain_db>` **(** :ref:`int<class_int>` band_idx **)** |const|                              |
-+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`set_band_gain_db<class_AudioEffectEQ_method_set_band_gain_db>` **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db **)** |
-+---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`get_band_count<class_AudioEffectEQ_method_get_band_count>` **(** **)** |const|                                                                 |
+   +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_band_gain_db<class_AudioEffectEQ_method_get_band_gain_db>` **(** :ref:`int<class_int>` band_idx **)** |const|                              |
+   +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`set_band_gain_db<class_AudioEffectEQ_method_set_band_gain_db>` **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db **)** |
+   +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectEQ_method_get_band_count:
 
-- :ref:`int<class_int>` **get_band_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_band_count** **(** **)** |const|
 
 Returns the number of bands of the equalizer.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectEQ_method_get_band_gain_db:
 
-- :ref:`float<class_float>` **get_band_gain_db** **(** :ref:`int<class_int>` band_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_band_gain_db** **(** :ref:`int<class_int>` band_idx **)** |const|
 
 Returns the band's gain at the specified index, in dB.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectEQ_method_set_band_gain_db:
 
-- void **set_band_gain_db** **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db **)**
+.. rst-class:: classref-method
+
+void **set_band_gain_db** **(** :ref:`int<class_int>` band_idx, :ref:`float<class_float>` volume_db **)**
 
 Sets band's gain at the specified index, in dB.
 

+ 4 - 0
classes/class_audioeffecteq10.rst

@@ -16,6 +16,8 @@ Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over fr
 
 Each frequency can be modulated between -60/+24 dB.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -43,6 +45,8 @@ Band 10: 16000 Hz
 
 See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ6<class_AudioEffectEQ6>`, :ref:`AudioEffectEQ21<class_AudioEffectEQ21>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffecteq21.rst

@@ -16,6 +16,8 @@ Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over fr
 
 Each frequency can be modulated between -60/+24 dB.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -65,6 +67,8 @@ Band 21: 22000 Hz
 
 See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ6<class_AudioEffectEQ6>`, :ref:`AudioEffectEQ10<class_AudioEffectEQ10>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffecteq6.rst

@@ -16,6 +16,8 @@ Adds a 6-band equalizer audio effect to an audio bus. Gives you control over fre
 
 Each frequency can be modulated between -60/+24 dB.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -35,6 +37,8 @@ Band 6: 10000 Hz
 
 See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ10<class_AudioEffectEQ10>`, :ref:`AudioEffectEQ21<class_AudioEffectEQ21>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 87 - 46
classes/class_audioeffectfilter.rst

@@ -16,116 +16,157 @@ AudioEffectFilter
 
 Adds a filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Allows frequencies other than the :ref:`cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` to pass.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+--------------------------------------------------+--------------------------------------------------------------+------------+
-| :ref:`float<class_float>`                        | :ref:`cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` | ``2000.0`` |
-+--------------------------------------------------+--------------------------------------------------------------+------------+
-| :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` | :ref:`db<class_AudioEffectFilter_property_db>`               | ``0``      |
-+--------------------------------------------------+--------------------------------------------------------------+------------+
-| :ref:`float<class_float>`                        | :ref:`gain<class_AudioEffectFilter_property_gain>`           | ``1.0``    |
-+--------------------------------------------------+--------------------------------------------------------------+------------+
-| :ref:`float<class_float>`                        | :ref:`resonance<class_AudioEffectFilter_property_resonance>` | ``0.5``    |
-+--------------------------------------------------+--------------------------------------------------------------+------------+
+.. table::
+   :widths: auto
+
+   +--------------------------------------------------+--------------------------------------------------------------+------------+
+   | :ref:`float<class_float>`                        | :ref:`cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` | ``2000.0`` |
+   +--------------------------------------------------+--------------------------------------------------------------+------------+
+   | :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` | :ref:`db<class_AudioEffectFilter_property_db>`               | ``0``      |
+   +--------------------------------------------------+--------------------------------------------------------------+------------+
+   | :ref:`float<class_float>`                        | :ref:`gain<class_AudioEffectFilter_property_gain>`           | ``1.0``    |
+   +--------------------------------------------------+--------------------------------------------------------------+------------+
+   | :ref:`float<class_float>`                        | :ref:`resonance<class_AudioEffectFilter_property_resonance>` | ``0.5``    |
+   +--------------------------------------------------+--------------------------------------------------------------+------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioEffectFilter_FilterDB:
 
+.. rst-class:: classref-enumeration
+
+enum **FilterDB**:
+
 .. _class_AudioEffectFilter_constant_FILTER_6DB:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_6DB** = ``0``
+
+
+
 .. _class_AudioEffectFilter_constant_FILTER_12DB:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_12DB** = ``1``
+
+
+
 .. _class_AudioEffectFilter_constant_FILTER_18DB:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_18DB** = ``2``
+
+
+
 .. _class_AudioEffectFilter_constant_FILTER_24DB:
 
-enum **FilterDB**:
+.. rst-class:: classref-enumeration-constant
 
-- **FILTER_6DB** = **0**
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_24DB** = ``3``
 
-- **FILTER_12DB** = **1**
 
-- **FILTER_18DB** = **2**
 
-- **FILTER_24DB** = **3**
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectFilter_property_cutoff_hz:
 
-- :ref:`float<class_float>` **cutoff_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **cutoff_hz** = ``2000.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------+
-| *Default* | ``2000.0``        |
-+-----------+-------------------+
-| *Setter*  | set_cutoff(value) |
-+-----------+-------------------+
-| *Getter*  | get_cutoff()      |
-+-----------+-------------------+
+- void **set_cutoff** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_cutoff** **(** **)**
 
 Threshold frequency for the filter, in Hz.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectFilter_property_db:
 
-- :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **db**
+.. rst-class:: classref-property
+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **db** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------+
-| *Default* | ``0``         |
-+-----------+---------------+
-| *Setter*  | set_db(value) |
-+-----------+---------------+
-| *Getter*  | get_db()      |
-+-----------+---------------+
+- void **set_db** **(** :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` value **)**
+- :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **get_db** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectFilter_property_gain:
 
-- :ref:`float<class_float>` **gain**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gain** = ``1.0``
 
-+-----------+-----------------+
-| *Default* | ``1.0``         |
-+-----------+-----------------+
-| *Setter*  | set_gain(value) |
-+-----------+-----------------+
-| *Getter*  | get_gain()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gain** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gain** **(** **)**
 
 Gain amount of the frequencies after the filter.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectFilter_property_resonance:
 
-- :ref:`float<class_float>` **resonance**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **resonance** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``0.5``              |
-+-----------+----------------------+
-| *Setter*  | set_resonance(value) |
-+-----------+----------------------+
-| *Getter*  | get_resonance()      |
-+-----------+----------------------+
+- void **set_resonance** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_resonance** **(** **)**
 
 Amount of boost in the frequency range near the cutoff frequency.
 

+ 4 - 0
classes/class_audioeffecthighpassfilter.rst

@@ -14,11 +14,15 @@ AudioEffectHighPassFilter
 
 Adds a high-pass filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Cuts frequencies lower than the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` and allows higher frequencies to pass.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffecthighshelffilter.rst

@@ -14,11 +14,15 @@ AudioEffectHighShelfFilter
 
 Adds a high-shelf filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Reduces all frequencies above the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 24 - 7
classes/class_audioeffectinstance.rst

@@ -18,31 +18,48 @@ AudioEffectInstance
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`_process<class_AudioEffectInstance_method__process>` **(** const void* src_buffer, AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual| |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`_process_silence<class_AudioEffectInstance_method__process_silence>` **(** **)** |virtual| |const|                                                           |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                    | :ref:`_process<class_AudioEffectInstance_method__process>` **(** const void* src_buffer, AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual| |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`_process_silence<class_AudioEffectInstance_method__process_silence>` **(** **)** |virtual| |const|                                                           |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectInstance_method__process:
 
-- void **_process** **(** const void* src_buffer, AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual|
+.. rst-class:: classref-method
+
+void **_process** **(** const void* src_buffer, AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |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_AudioEffectInstance_method__process_silence:
 
-- :ref:`bool<class_bool>` **_process_silence** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_process_silence** **(** **)** |virtual| |const|
 
 .. container:: contribute
 

+ 58 - 41
classes/class_audioeffectlimiter.rst

@@ -14,6 +14,8 @@ AudioEffectLimiter
 
 Adds a soft-clip limiter audio effect to an Audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,88 +23,103 @@ A limiter is similar to a compressor, but it's less flexible and designed to dis
 
 Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+---------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>` | :ref:`ceiling_db<class_AudioEffectLimiter_property_ceiling_db>`           | ``-0.1`` |
-+---------------------------+---------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>` | :ref:`soft_clip_db<class_AudioEffectLimiter_property_soft_clip_db>`       | ``2.0``  |
-+---------------------------+---------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>` | :ref:`soft_clip_ratio<class_AudioEffectLimiter_property_soft_clip_ratio>` | ``10.0`` |
-+---------------------------+---------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>` | :ref:`threshold_db<class_AudioEffectLimiter_property_threshold_db>`       | ``0.0``  |
-+---------------------------+---------------------------------------------------------------------------+----------+
+.. table::
+   :widths: auto
+
+   +---------------------------+---------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>` | :ref:`ceiling_db<class_AudioEffectLimiter_property_ceiling_db>`           | ``-0.1`` |
+   +---------------------------+---------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>` | :ref:`soft_clip_db<class_AudioEffectLimiter_property_soft_clip_db>`       | ``2.0``  |
+   +---------------------------+---------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>` | :ref:`soft_clip_ratio<class_AudioEffectLimiter_property_soft_clip_ratio>` | ``10.0`` |
+   +---------------------------+---------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>` | :ref:`threshold_db<class_AudioEffectLimiter_property_threshold_db>`       | ``0.0``  |
+   +---------------------------+---------------------------------------------------------------------------+----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectLimiter_property_ceiling_db:
 
-- :ref:`float<class_float>` **ceiling_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **ceiling_db** = ``-0.1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``-0.1``              |
-+-----------+-----------------------+
-| *Setter*  | set_ceiling_db(value) |
-+-----------+-----------------------+
-| *Getter*  | get_ceiling_db()      |
-+-----------+-----------------------+
+- void **set_ceiling_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_ceiling_db** **(** **)**
 
 The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectLimiter_property_soft_clip_db:
 
-- :ref:`float<class_float>` **soft_clip_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **soft_clip_db** = ``2.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``2.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_soft_clip_db(value) |
-+-----------+-------------------------+
-| *Getter*  | get_soft_clip_db()      |
-+-----------+-------------------------+
+- void **set_soft_clip_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_soft_clip_db** **(** **)**
 
 Applies a gain to the limited waves, in decibels. Value can range from 0 to 6.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectLimiter_property_soft_clip_ratio:
 
-- :ref:`float<class_float>` **soft_clip_ratio**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **soft_clip_ratio** = ``10.0``
 
-+-----------+----------------------------+
-| *Default* | ``10.0``                   |
-+-----------+----------------------------+
-| *Setter*  | set_soft_clip_ratio(value) |
-+-----------+----------------------------+
-| *Getter*  | get_soft_clip_ratio()      |
-+-----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_soft_clip_ratio** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_soft_clip_ratio** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectLimiter_property_threshold_db:
 
-- :ref:`float<class_float>` **threshold_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **threshold_db** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_threshold_db(value) |
-+-----------+-------------------------+
-| *Getter*  | get_threshold_db()      |
-+-----------+-------------------------+
+- void **set_threshold_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_threshold_db** **(** **)**
 
 Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0.
 

+ 4 - 0
classes/class_audioeffectlowpassfilter.rst

@@ -14,11 +14,15 @@ AudioEffectLowPassFilter
 
 Adds a low-pass filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Cuts frequencies higher than the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` and allows lower frequencies to pass.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffectlowshelffilter.rst

@@ -14,11 +14,15 @@ AudioEffectLowShelfFilter
 
 Adds a low-shelf filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Reduces all frequencies below the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 4 - 0
classes/class_audioeffectnotchfilter.rst

@@ -14,11 +14,15 @@ AudioEffectNotchFilter
 
 Adds a notch filter to the Audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Attenuates frequencies in a narrow band around the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>` and cuts frequencies outside of this range.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 25 - 11
classes/class_audioeffectpanner.rst

@@ -14,37 +14,51 @@ AudioEffectPanner
 
 Adds a panner audio effect to an audio bus. Pans sound left or right.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Determines how much of an audio signal is sent to the left and right buses.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+--------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`pan<class_AudioEffectPanner_property_pan>` | ``0.0`` |
-+---------------------------+--------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`pan<class_AudioEffectPanner_property_pan>` | ``0.0`` |
+   +---------------------------+--------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectPanner_property_pan:
 
-- :ref:`float<class_float>` **pan**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pan** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``0.0``        |
-+-----------+----------------+
-| *Setter*  | set_pan(value) |
-+-----------+----------------+
-| *Getter*  | get_pan()      |
-+-----------+----------------+
+- void **set_pan** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pan** **(** **)**
 
 Pan position. Value can range from -1 (fully left) to 1 (fully right).
 

+ 69 - 51
classes/class_audioeffectphaser.rst

@@ -16,109 +16,127 @@ Adds a phaser audio effect to an audio bus.
 
 Combines the original signal with a copy that is slightly out of phase with the original.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+--------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`depth<class_AudioEffectPhaser_property_depth>`               | ``1.0``    |
-+---------------------------+--------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`feedback<class_AudioEffectPhaser_property_feedback>`         | ``0.7``    |
-+---------------------------+--------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`range_max_hz<class_AudioEffectPhaser_property_range_max_hz>` | ``1600.0`` |
-+---------------------------+--------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`range_min_hz<class_AudioEffectPhaser_property_range_min_hz>` | ``440.0``  |
-+---------------------------+--------------------------------------------------------------------+------------+
-| :ref:`float<class_float>` | :ref:`rate_hz<class_AudioEffectPhaser_property_rate_hz>`           | ``0.5``    |
-+---------------------------+--------------------------------------------------------------------+------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`depth<class_AudioEffectPhaser_property_depth>`               | ``1.0``    |
+   +---------------------------+--------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`feedback<class_AudioEffectPhaser_property_feedback>`         | ``0.7``    |
+   +---------------------------+--------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`range_max_hz<class_AudioEffectPhaser_property_range_max_hz>` | ``1600.0`` |
+   +---------------------------+--------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`range_min_hz<class_AudioEffectPhaser_property_range_min_hz>` | ``440.0``  |
+   +---------------------------+--------------------------------------------------------------------+------------+
+   | :ref:`float<class_float>` | :ref:`rate_hz<class_AudioEffectPhaser_property_rate_hz>`           | ``0.5``    |
+   +---------------------------+--------------------------------------------------------------------+------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectPhaser_property_depth:
 
-- :ref:`float<class_float>` **depth**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **depth** = ``1.0``
 
-+-----------+------------------+
-| *Default* | ``1.0``          |
-+-----------+------------------+
-| *Setter*  | set_depth(value) |
-+-----------+------------------+
-| *Getter*  | get_depth()      |
-+-----------+------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_depth** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_depth** **(** **)**
 
 Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPhaser_property_feedback:
 
-- :ref:`float<class_float>` **feedback**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``0.7``             |
-+-----------+---------------------+
-| *Setter*  | set_feedback(value) |
-+-----------+---------------------+
-| *Getter*  | get_feedback()      |
-+-----------+---------------------+
+:ref:`float<class_float>` **feedback** = ``0.7``
+
+.. rst-class:: classref-property-setget
+
+- void **set_feedback** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_feedback** **(** **)**
 
 Output percent of modified sound. Value can range from 0.1 to 0.9.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPhaser_property_range_max_hz:
 
-- :ref:`float<class_float>` **range_max_hz**
+.. rst-class:: classref-property
 
-+-----------+-------------------------+
-| *Default* | ``1600.0``              |
-+-----------+-------------------------+
-| *Setter*  | set_range_max_hz(value) |
-+-----------+-------------------------+
-| *Getter*  | get_range_max_hz()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **range_max_hz** = ``1600.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_range_max_hz** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_range_max_hz** **(** **)**
 
 Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPhaser_property_range_min_hz:
 
-- :ref:`float<class_float>` **range_min_hz**
+.. rst-class:: classref-property
 
-+-----------+-------------------------+
-| *Default* | ``440.0``               |
-+-----------+-------------------------+
-| *Setter*  | set_range_min_hz(value) |
-+-----------+-------------------------+
-| *Getter*  | get_range_min_hz()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **range_min_hz** = ``440.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_range_min_hz** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_range_min_hz** **(** **)**
 
 Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPhaser_property_rate_hz:
 
-- :ref:`float<class_float>` **rate_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **rate_hz** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``0.5``            |
-+-----------+--------------------+
-| *Setter*  | set_rate_hz(value) |
-+-----------+--------------------+
-| *Getter*  | get_rate_hz()      |
-+-----------+--------------------+
+- void **set_rate_hz** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_rate_hz** **(** **)**
 
 Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range.
 

+ 87 - 39
classes/class_audioeffectpitchshift.rst

@@ -16,104 +16,152 @@ Adds a pitch-shifting audio effect to an audio bus.
 
 Raises or lowers the pitch of original sound.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------------+------------------------------------------------------------------------+---------+
-| :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` | :ref:`fft_size<class_AudioEffectPitchShift_property_fft_size>`         | ``3``   |
-+----------------------------------------------------+------------------------------------------------------------------------+---------+
-| :ref:`int<class_int>`                              | :ref:`oversampling<class_AudioEffectPitchShift_property_oversampling>` | ``4``   |
-+----------------------------------------------------+------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`                          | :ref:`pitch_scale<class_AudioEffectPitchShift_property_pitch_scale>`   | ``1.0`` |
-+----------------------------------------------------+------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------------+------------------------------------------------------------------------+---------+
+   | :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` | :ref:`fft_size<class_AudioEffectPitchShift_property_fft_size>`         | ``3``   |
+   +----------------------------------------------------+------------------------------------------------------------------------+---------+
+   | :ref:`int<class_int>`                              | :ref:`oversampling<class_AudioEffectPitchShift_property_oversampling>` | ``4``   |
+   +----------------------------------------------------+------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                          | :ref:`pitch_scale<class_AudioEffectPitchShift_property_pitch_scale>`   | ``1.0`` |
+   +----------------------------------------------------+------------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioEffectPitchShift_FFTSize:
 
+.. rst-class:: classref-enumeration
+
+enum **FFTSize**:
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_256:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_256** = ``0``
+
+Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_512:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_512** = ``1``
+
+Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_1024:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_1024** = ``2``
+
+Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_2048:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_2048** = ``3``
+
+Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_4096:
 
-.. _class_AudioEffectPitchShift_constant_FFT_SIZE_MAX:
+.. rst-class:: classref-enumeration-constant
 
-enum **FFTSize**:
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_4096** = ``4``
+
+Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
+
+.. _class_AudioEffectPitchShift_constant_FFT_SIZE_MAX:
 
-- **FFT_SIZE_256** = **0** --- Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
+.. rst-class:: classref-enumeration-constant
 
-- **FFT_SIZE_512** = **1** --- Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **FFT_SIZE_MAX** = ``5``
 
-- **FFT_SIZE_1024** = **2** --- Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
+Represents the size of the :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` enum.
 
-- **FFT_SIZE_2048** = **3** --- Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
+.. rst-class:: classref-section-separator
 
-- **FFT_SIZE_4096** = **4** --- Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
+----
 
-- **FFT_SIZE_MAX** = **5** --- Represents the size of the :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` enum.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectPitchShift_property_fft_size:
 
-- :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **fft_size**
+.. rst-class:: classref-property
+
+:ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **fft_size** = ``3``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``3``               |
-+-----------+---------------------+
-| *Setter*  | set_fft_size(value) |
-+-----------+---------------------+
-| *Getter*  | get_fft_size()      |
-+-----------+---------------------+
+- void **set_fft_size** **(** :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` value **)**
+- :ref:`FFTSize<enum_AudioEffectPitchShift_FFTSize>` **get_fft_size** **(** **)**
 
 The size of the `Fast Fourier transform <https://en.wikipedia.org/wiki/Fast_Fourier_transform>`__ buffer. Higher values smooth out the effect over time, but have greater latency. The effects of this higher latency are especially noticeable on sounds that have sudden amplitude changes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPitchShift_property_oversampling:
 
-- :ref:`int<class_int>` **oversampling**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **oversampling** = ``4``
 
-+-----------+-------------------------+
-| *Default* | ``4``                   |
-+-----------+-------------------------+
-| *Setter*  | set_oversampling(value) |
-+-----------+-------------------------+
-| *Getter*  | get_oversampling()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_oversampling** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_oversampling** **(** **)**
 
 The oversampling factor to use. Higher values result in better quality, but are more demanding on the CPU and may cause audio cracking if the CPU can't keep up.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectPitchShift_property_pitch_scale:
 
-- :ref:`float<class_float>` **pitch_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+- void **set_pitch_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pitch_scale** **(** **)**
 
 The pitch scale to use. ``1.0`` is the default pitch and plays sounds unaltered. :ref:`pitch_scale<class_AudioEffectPitchShift_property_pitch_scale>` can range from ``0.0`` (infinitely low pitch, inaudible) to ``16`` (16 times higher than the initial pitch).
 

+ 56 - 21
classes/class_audioeffectrecord.rst

@@ -14,6 +14,8 @@ AudioEffectRecord
 
 Audio effect used for recording the sound from an audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ Can be used (with an :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`)
 
 It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,63 +34,94 @@ Tutorials
 
 - `Audio Mic Record Demo <https://godotengine.org/asset-library/asset/527>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------+--------------------------------------------------------+-------+
-| :ref:`Format<enum_AudioStreamWAV_Format>` | :ref:`format<class_AudioEffectRecord_property_format>` | ``1`` |
-+-------------------------------------------+--------------------------------------------------------+-------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+--------------------------------------------------------+-------+
+   | :ref:`Format<enum_AudioStreamWAV_Format>` | :ref:`format<class_AudioEffectRecord_property_format>` | ``1`` |
+   +-------------------------------------------+--------------------------------------------------------+-------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamWAV<class_AudioStreamWAV>` | :ref:`get_recording<class_AudioEffectRecord_method_get_recording>` **(** **)** |const|                                      |
-+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                     | :ref:`is_recording_active<class_AudioEffectRecord_method_is_recording_active>` **(** **)** |const|                          |
-+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| void                                        | :ref:`set_recording_active<class_AudioEffectRecord_method_set_recording_active>` **(** :ref:`bool<class_bool>` record **)** |
-+---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamWAV<class_AudioStreamWAV>` | :ref:`get_recording<class_AudioEffectRecord_method_get_recording>` **(** **)** |const|                                      |
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                     | :ref:`is_recording_active<class_AudioEffectRecord_method_is_recording_active>` **(** **)** |const|                          |
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+   | void                                        | :ref:`set_recording_active<class_AudioEffectRecord_method_set_recording_active>` **(** :ref:`bool<class_bool>` record **)** |
+   +---------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectRecord_property_format:
 
-- :ref:`Format<enum_AudioStreamWAV_Format>` **format**
+.. rst-class:: classref-property
+
+:ref:`Format<enum_AudioStreamWAV_Format>` **format** = ``1``
 
-+-----------+-------------------+
-| *Default* | ``1``             |
-+-----------+-------------------+
-| *Setter*  | set_format(value) |
-+-----------+-------------------+
-| *Getter*  | get_format()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_format** **(** :ref:`Format<enum_AudioStreamWAV_Format>` value **)**
+- :ref:`Format<enum_AudioStreamWAV_Format>` **get_format** **(** **)**
 
 Specifies the format in which the sample will be recorded. See :ref:`Format<enum_AudioStreamWAV_Format>` for available formats.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectRecord_method_get_recording:
 
-- :ref:`AudioStreamWAV<class_AudioStreamWAV>` **get_recording** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AudioStreamWAV<class_AudioStreamWAV>` **get_recording** **(** **)** |const|
 
 Returns the recorded sample.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectRecord_method_is_recording_active:
 
-- :ref:`bool<class_bool>` **is_recording_active** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_recording_active** **(** **)** |const|
 
 Returns whether the recording is active or not.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectRecord_method_set_recording_active:
 
-- void **set_recording_active** **(** :ref:`bool<class_bool>` record **)**
+.. rst-class:: classref-method
+
+void **set_recording_active** **(** :ref:`bool<class_bool>` record **)**
 
 If ``true``, the sound will be recorded. Note that restarting the recording will remove the previously recorded sample.
 

+ 102 - 81
classes/class_audioeffectreverb.rst

@@ -14,11 +14,15 @@ AudioEffectReverb
 
 Adds a reverberation audio effect to an Audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -26,153 +30,170 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`damping<class_AudioEffectReverb_property_damping>`                     | ``0.5``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`dry<class_AudioEffectReverb_property_dry>`                             | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`hipass<class_AudioEffectReverb_property_hipass>`                       | ``0.0``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`predelay_feedback<class_AudioEffectReverb_property_predelay_feedback>` | ``0.4``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`predelay_msec<class_AudioEffectReverb_property_predelay_msec>`         | ``150.0`` |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`room_size<class_AudioEffectReverb_property_room_size>`                 | ``0.8``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`spread<class_AudioEffectReverb_property_spread>`                       | ``1.0``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`wet<class_AudioEffectReverb_property_wet>`                             | ``0.5``   |
-+---------------------------+------------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`damping<class_AudioEffectReverb_property_damping>`                     | ``0.5``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`dry<class_AudioEffectReverb_property_dry>`                             | ``1.0``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`hipass<class_AudioEffectReverb_property_hipass>`                       | ``0.0``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`predelay_feedback<class_AudioEffectReverb_property_predelay_feedback>` | ``0.4``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`predelay_msec<class_AudioEffectReverb_property_predelay_msec>`         | ``150.0`` |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`room_size<class_AudioEffectReverb_property_room_size>`                 | ``0.8``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`spread<class_AudioEffectReverb_property_spread>`                       | ``1.0``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`wet<class_AudioEffectReverb_property_wet>`                             | ``0.5``   |
+   +---------------------------+------------------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectReverb_property_damping:
 
-- :ref:`float<class_float>` **damping**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **damping** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``0.5``            |
-+-----------+--------------------+
-| *Setter*  | set_damping(value) |
-+-----------+--------------------+
-| *Getter*  | get_damping()      |
-+-----------+--------------------+
+- void **set_damping** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_damping** **(** **)**
 
 Defines how reflective the imaginary room's walls are. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_dry:
 
-- :ref:`float<class_float>` **dry**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **dry** = ``1.0``
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_dry(value) |
-+-----------+----------------+
-| *Getter*  | get_dry()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_dry** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_dry** **(** **)**
 
 Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_hipass:
 
-- :ref:`float<class_float>` **hipass**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``0.0``        |
-+-----------+----------------+
-| *Setter*  | set_hpf(value) |
-+-----------+----------------+
-| *Getter*  | get_hpf()      |
-+-----------+----------------+
+:ref:`float<class_float>` **hipass** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_hpf** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_hpf** **(** **)**
 
 High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_predelay_feedback:
 
-- :ref:`float<class_float>` **predelay_feedback**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``0.4``                      |
-+-----------+------------------------------+
-| *Setter*  | set_predelay_feedback(value) |
-+-----------+------------------------------+
-| *Getter*  | get_predelay_feedback()      |
-+-----------+------------------------------+
+:ref:`float<class_float>` **predelay_feedback** = ``0.4``
+
+.. rst-class:: classref-property-setget
+
+- void **set_predelay_feedback** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_predelay_feedback** **(** **)**
 
 Output percent of predelay. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_predelay_msec:
 
-- :ref:`float<class_float>` **predelay_msec**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **predelay_msec** = ``150.0``
 
-+-----------+--------------------------+
-| *Default* | ``150.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_predelay_msec(value) |
-+-----------+--------------------------+
-| *Getter*  | get_predelay_msec()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_predelay_msec** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_predelay_msec** **(** **)**
 
 Time between the original signal and the early reflections of the reverb signal, in milliseconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_room_size:
 
-- :ref:`float<class_float>` **room_size**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **room_size** = ``0.8``
 
-+-----------+----------------------+
-| *Default* | ``0.8``              |
-+-----------+----------------------+
-| *Setter*  | set_room_size(value) |
-+-----------+----------------------+
-| *Getter*  | get_room_size()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_room_size** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_room_size** **(** **)**
 
 Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_spread:
 
-- :ref:`float<class_float>` **spread**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **spread** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------+
-| *Default* | ``1.0``           |
-+-----------+-------------------+
-| *Setter*  | set_spread(value) |
-+-----------+-------------------+
-| *Getter*  | get_spread()      |
-+-----------+-------------------+
+- void **set_spread** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_spread** **(** **)**
 
 Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectReverb_property_wet:
 
-- :ref:`float<class_float>` **wet**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **wet** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``0.5``        |
-+-----------+----------------+
-| *Setter*  | set_wet(value) |
-+-----------+----------------+
-| *Getter*  | get_wet()      |
-+-----------+----------------+
+- void **set_wet** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_wet** **(** **)**
 
 Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1.
 

+ 87 - 39
classes/class_audioeffectspectrumanalyzer.rst

@@ -14,6 +14,8 @@ AudioEffectSpectrumAnalyzer
 
 Audio effect that can be used for real-time audio visualizations.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,6 +23,8 @@ This audio effect does not affect sound output, but can be used for real-time au
 
 See also :ref:`AudioStreamGenerator<class_AudioStreamGenerator>` for procedurally generating sounds.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -28,94 +32,138 @@ Tutorials
 
 - `Godot 3.2 will get new audio features <https://godotengine.org/article/godot-32-will-get-new-audio-features>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>`                                | :ref:`buffer_length<class_AudioEffectSpectrumAnalyzer_property_buffer_length>` | ``2.0``  |
-+----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
-| :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` | :ref:`fft_size<class_AudioEffectSpectrumAnalyzer_property_fft_size>`           | ``2``    |
-+----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
-| :ref:`float<class_float>`                                | :ref:`tap_back_pos<class_AudioEffectSpectrumAnalyzer_property_tap_back_pos>`   | ``0.01`` |
-+----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>`                                | :ref:`buffer_length<class_AudioEffectSpectrumAnalyzer_property_buffer_length>` | ``2.0``  |
+   +----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
+   | :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` | :ref:`fft_size<class_AudioEffectSpectrumAnalyzer_property_fft_size>`           | ``2``    |
+   +----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
+   | :ref:`float<class_float>`                                | :ref:`tap_back_pos<class_AudioEffectSpectrumAnalyzer_property_tap_back_pos>`   | ``0.01`` |
+   +----------------------------------------------------------+--------------------------------------------------------------------------------+----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioEffectSpectrumAnalyzer_FFTSize:
 
+.. rst-class:: classref-enumeration
+
+enum **FFTSize**:
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_256:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_256** = ``0``
+
+Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_512:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_512** = ``1``
+
+Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_1024:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_1024** = ``2``
+
+Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_2048:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_2048** = ``3``
+
+Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_4096:
 
-.. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_MAX:
+.. rst-class:: classref-enumeration-constant
 
-enum **FFTSize**:
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_4096** = ``4``
+
+Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
+
+.. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_MAX:
 
-- **FFT_SIZE_256** = **0** --- Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
+.. rst-class:: classref-enumeration-constant
 
-- **FFT_SIZE_512** = **1** --- Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **FFT_SIZE_MAX** = ``5``
 
-- **FFT_SIZE_1024** = **2** --- Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
+Represents the size of the :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` enum.
 
-- **FFT_SIZE_2048** = **3** --- Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
+.. rst-class:: classref-section-separator
 
-- **FFT_SIZE_4096** = **4** --- Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
+----
 
-- **FFT_SIZE_MAX** = **5** --- Represents the size of the :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` enum.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectSpectrumAnalyzer_property_buffer_length:
 
-- :ref:`float<class_float>` **buffer_length**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **buffer_length** = ``2.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------+
-| *Default* | ``2.0``                  |
-+-----------+--------------------------+
-| *Setter*  | set_buffer_length(value) |
-+-----------+--------------------------+
-| *Getter*  | get_buffer_length()      |
-+-----------+--------------------------+
+- void **set_buffer_length** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_buffer_length** **(** **)**
 
 The length of the buffer to keep (in seconds). Higher values keep data around for longer, but require more memory.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectSpectrumAnalyzer_property_fft_size:
 
-- :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **fft_size**
+.. rst-class:: classref-property
+
+:ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **fft_size** = ``2``
 
-+-----------+---------------------+
-| *Default* | ``2``               |
-+-----------+---------------------+
-| *Setter*  | set_fft_size(value) |
-+-----------+---------------------+
-| *Getter*  | get_fft_size()      |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_fft_size** **(** :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` value **)**
+- :ref:`FFTSize<enum_AudioEffectSpectrumAnalyzer_FFTSize>` **get_fft_size** **(** **)**
 
 The size of the `Fast Fourier transform <https://en.wikipedia.org/wiki/Fast_Fourier_transform>`__ buffer. Higher values smooth out the spectrum analysis over time, but have greater latency. The effects of this higher latency are especially noticeable with sudden amplitude changes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectSpectrumAnalyzer_property_tap_back_pos:
 
-- :ref:`float<class_float>` **tap_back_pos**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **tap_back_pos** = ``0.01``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``0.01``                |
-+-----------+-------------------------+
-| *Setter*  | set_tap_back_pos(value) |
-+-----------+-------------------------+
-| *Getter*  | get_tap_back_pos()      |
-+-----------+-------------------------+
+- void **set_tap_back_pos** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap_back_pos** **(** **)**
 
 .. container:: contribute
 

+ 36 - 7
classes/class_audioeffectspectrumanalyzerinstance.rst

@@ -16,34 +16,63 @@ AudioEffectSpectrumAnalyzerInstance
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`get_magnitude_for_frequency_range<class_AudioEffectSpectrumAnalyzerInstance_method_get_magnitude_for_frequency_range>` **(** :ref:`float<class_float>` from_hz, :ref:`float<class_float>` to_hz, :ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` mode=1 **)** |const| |
-+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>` | :ref:`get_magnitude_for_frequency_range<class_AudioEffectSpectrumAnalyzerInstance_method_get_magnitude_for_frequency_range>` **(** :ref:`float<class_float>` from_hz, :ref:`float<class_float>` to_hz, :ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` mode=1 **)** |const| |
+   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode:
 
+.. rst-class:: classref-enumeration
+
+enum **MagnitudeMode**:
+
 .. _class_AudioEffectSpectrumAnalyzerInstance_constant_MAGNITUDE_AVERAGE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` **MAGNITUDE_AVERAGE** = ``0``
+
+Use the average value as magnitude.
+
 .. _class_AudioEffectSpectrumAnalyzerInstance_constant_MAGNITUDE_MAX:
 
-enum **MagnitudeMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **MAGNITUDE_AVERAGE** = **0** --- Use the average value as magnitude.
+:ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` **MAGNITUDE_MAX** = ``1``
 
-- **MAGNITUDE_MAX** = **1** --- Use the maximum value as magnitude.
+Use the maximum value as magnitude.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectSpectrumAnalyzerInstance_method_get_magnitude_for_frequency_range:
 
-- :ref:`Vector2<class_Vector2>` **get_magnitude_for_frequency_range** **(** :ref:`float<class_float>` from_hz, :ref:`float<class_float>` to_hz, :ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` mode=1 **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_magnitude_for_frequency_range** **(** :ref:`float<class_float>` from_hz, :ref:`float<class_float>` to_hz, :ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` mode=1 **)** |const|
 
 .. container:: contribute
 

+ 47 - 31
classes/class_audioeffectstereoenhance.rst

@@ -14,75 +14,91 @@ AudioEffectStereoEnhance
 
 An audio effect that can be used to adjust the intensity of stereo panning.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 An audio effect that can be used to adjust the intensity of stereo panning.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Audio buses <../tutorials/audio/audio_buses>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+---------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`pan_pullout<class_AudioEffectStereoEnhance_property_pan_pullout>`         | ``1.0`` |
-+---------------------------+---------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`surround<class_AudioEffectStereoEnhance_property_surround>`               | ``0.0`` |
-+---------------------------+---------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`time_pullout_ms<class_AudioEffectStereoEnhance_property_time_pullout_ms>` | ``0.0`` |
-+---------------------------+---------------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+---------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`pan_pullout<class_AudioEffectStereoEnhance_property_pan_pullout>`         | ``1.0`` |
+   +---------------------------+---------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`surround<class_AudioEffectStereoEnhance_property_surround>`               | ``0.0`` |
+   +---------------------------+---------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`time_pullout_ms<class_AudioEffectStereoEnhance_property_time_pullout_ms>` | ``0.0`` |
+   +---------------------------+---------------------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectStereoEnhance_property_pan_pullout:
 
-- :ref:`float<class_float>` **pan_pullout**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pan_pullout(value) |
-+-----------+------------------------+
-| *Getter*  | get_pan_pullout()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **pan_pullout** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_pan_pullout** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pan_pullout** **(** **)**
 
 Values greater than 1.0 increase intensity of any panning on audio passing through this effect, whereas values less than 1.0 will decrease the panning intensity. A value of 0.0 will downmix audio to mono.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectStereoEnhance_property_surround:
 
-- :ref:`float<class_float>` **surround**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **surround** = ``0.0``
 
-+-----------+---------------------+
-| *Default* | ``0.0``             |
-+-----------+---------------------+
-| *Setter*  | set_surround(value) |
-+-----------+---------------------+
-| *Getter*  | get_surround()      |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_surround** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_surround** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioEffectStereoEnhance_property_time_pullout_ms:
 
-- :ref:`float<class_float>` **time_pullout_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **time_pullout_ms** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_time_pullout(value) |
-+-----------+-------------------------+
-| *Getter*  | get_time_pullout()      |
-+-----------+-------------------------+
+- void **set_time_pullout** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_time_pullout** **(** **)**
 
 .. container:: contribute
 

+ 39 - 16
classes/class_audiolistener2d.rst

@@ -14,50 +14,73 @@ AudioListener2D
 
 Overrides the location sounds are heard from.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-Once added to the scene tree and enabled using :ref:`make_current<class_AudioListener2D_method_make_current>`, this node will override the location sounds are heard from. Only one ``AudioListener2D`` can be current. Using :ref:`make_current<class_AudioListener2D_method_make_current>` will disable the previous ``AudioListener2D``.
+Once added to the scene tree and enabled using :ref:`make_current<class_AudioListener2D_method_make_current>`, this node will override the location sounds are heard from. Only one **AudioListener2D** can be current. Using :ref:`make_current<class_AudioListener2D_method_make_current>` will disable the previous **AudioListener2D**.
+
+If there is no active **AudioListener2D** in the current :ref:`Viewport<class_Viewport>`, center of the screen will be used as a hearing point for the audio. **AudioListener2D** needs to be inside :ref:`SceneTree<class_SceneTree>` to function.
 
-If there is no active ``AudioListener2D`` in the current :ref:`Viewport<class_Viewport>`, center of the screen will be used as a hearing point for the audio. ``AudioListener2D`` needs to be inside :ref:`SceneTree<class_SceneTree>` to function.
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------+--------------------------------------------------------------------------------+
-| void                    | :ref:`clear_current<class_AudioListener2D_method_clear_current>` **(** **)**   |
-+-------------------------+--------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`is_current<class_AudioListener2D_method_is_current>` **(** **)** |const| |
-+-------------------------+--------------------------------------------------------------------------------+
-| void                    | :ref:`make_current<class_AudioListener2D_method_make_current>` **(** **)**     |
-+-------------------------+--------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+--------------------------------------------------------------------------------+
+   | void                    | :ref:`clear_current<class_AudioListener2D_method_clear_current>` **(** **)**   |
+   +-------------------------+--------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`is_current<class_AudioListener2D_method_is_current>` **(** **)** |const| |
+   +-------------------------+--------------------------------------------------------------------------------+
+   | void                    | :ref:`make_current<class_AudioListener2D_method_make_current>` **(** **)**     |
+   +-------------------------+--------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioListener2D_method_clear_current:
 
-- void **clear_current** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_current** **(** **)**
+
+Disables the **AudioListener2D**. If it's not set as current, this method will have no effect.
 
-Disables the ``AudioListener2D``. If it's not set as current, this method will have no effect.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioListener2D_method_is_current:
 
-- :ref:`bool<class_bool>` **is_current** **(** **)** |const|
+.. rst-class:: classref-method
 
-Returns ``true`` if this ``AudioListener2D`` is currently active.
+:ref:`bool<class_bool>` **is_current** **(** **)** |const|
+
+Returns ``true`` if this **AudioListener2D** is currently active.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioListener2D_method_make_current:
 
-- void **make_current** **(** **)**
+.. rst-class:: classref-method
+
+void **make_current** **(** **)**
 
-Makes the ``AudioListener2D`` active, setting it as the hearing point for the sounds. If there is already another active ``AudioListener2D``, it will be disabled.
+Makes the **AudioListener2D** active, setting it as the hearing point for the sounds. If there is already another active **AudioListener2D**, it will be disabled.
 
-This method will have no effect if the ``AudioListener2D`` is not added to :ref:`SceneTree<class_SceneTree>`.
+This method will have no effect if the **AudioListener2D** is not added to :ref:`SceneTree<class_SceneTree>`.
 
 .. |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.)`

+ 40 - 13
classes/class_audiolistener3d.rst

@@ -14,56 +14,83 @@ AudioListener3D
 
 Overrides the location sounds are heard from.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Once added to the scene tree and enabled using :ref:`make_current<class_AudioListener3D_method_make_current>`, this node will override the location sounds are heard from. This can be used to listen from a location different from the :ref:`Camera3D<class_Camera3D>`.
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------------------+--------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`clear_current<class_AudioListener3D_method_clear_current>` **(** **)**                           |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`Transform3D<class_Transform3D>` | :ref:`get_listener_transform<class_AudioListener3D_method_get_listener_transform>` **(** **)** |const| |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`is_current<class_AudioListener3D_method_is_current>` **(** **)** |const|                         |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`make_current<class_AudioListener3D_method_make_current>` **(** **)**                             |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+--------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`clear_current<class_AudioListener3D_method_clear_current>` **(** **)**                           |
+   +---------------------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`Transform3D<class_Transform3D>` | :ref:`get_listener_transform<class_AudioListener3D_method_get_listener_transform>` **(** **)** |const| |
+   +---------------------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`is_current<class_AudioListener3D_method_is_current>` **(** **)** |const|                         |
+   +---------------------------------------+--------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`make_current<class_AudioListener3D_method_make_current>` **(** **)**                             |
+   +---------------------------------------+--------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioListener3D_method_clear_current:
 
-- void **clear_current** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_current** **(** **)**
 
 Disables the listener to use the current camera's listener instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioListener3D_method_get_listener_transform:
 
-- :ref:`Transform3D<class_Transform3D>` **get_listener_transform** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Transform3D<class_Transform3D>` **get_listener_transform** **(** **)** |const|
 
 Returns the listener's global orthonormalized :ref:`Transform3D<class_Transform3D>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioListener3D_method_is_current:
 
-- :ref:`bool<class_bool>` **is_current** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_current** **(** **)** |const|
 
 Returns ``true`` if the listener was made current using :ref:`make_current<class_AudioListener3D_method_make_current>`, ``false`` otherwise.
 
 \ **Note:** There may be more than one AudioListener3D marked as "current" in the scene tree, but only the one that was made current last will be used.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioListener3D_method_make_current:
 
-- void **make_current** **(** **)**
+.. rst-class:: classref-method
+
+void **make_current** **(** **)**
 
 Enables the listener. This will override the current camera's listener.
 

+ 381 - 167
classes/class_audioserver.rst

@@ -14,10 +14,14 @@ AudioServer
 
 Server interface for low-level audio access.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AudioServer`` is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
+**AudioServer** is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
@@ -30,517 +34,727 @@ Tutorials
 
 - `Audio Spectrum Demo <https://godotengine.org/asset-library/asset/528>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`       | :ref:`bus_count<class_AudioServer_property_bus_count>`                       | ``1``         |
-+-----------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`String<class_String>` | :ref:`capture_device<class_AudioServer_property_capture_device>`             | ``"Default"`` |
-+-----------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`String<class_String>` | :ref:`device<class_AudioServer_property_device>`                             | ``"Default"`` |
-+-----------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`   | :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>` | ``1.0``       |
-+-----------------------------+------------------------------------------------------------------------------+---------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`       | :ref:`bus_count<class_AudioServer_property_bus_count>`                       | ``1``         |
+   +-----------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`String<class_String>` | :ref:`capture_device<class_AudioServer_property_capture_device>`             | ``"Default"`` |
+   +-----------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`String<class_String>` | :ref:`device<class_AudioServer_property_device>`                             | ``"Default"`` |
+   +-----------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`   | :ref:`playback_speed_scale<class_AudioServer_property_playback_speed_scale>` | ``1.0``       |
+   +-----------------------------+------------------------------------------------------------------------------+---------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`add_bus<class_AudioServer_method_add_bus>` **(** :ref:`int<class_int>` at_position=-1 **)**                                                                                             |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>` **(** **)**                                                                                                  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioBusLayout<class_AudioBusLayout>`           | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>` **(** **)** |const|                                                                                                  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioEffect<class_AudioEffect>`                 | :ref:`get_bus_effect<class_AudioServer_method_get_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`get_bus_effect_count<class_AudioServer_method_get_bus_effect_count>` **(** :ref:`int<class_int>` bus_idx **)**                                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`get_bus_effect_instance<class_AudioServer_method_get_bus_effect_instance>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)** |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`get_bus_index<class_AudioServer_method_get_bus_index>` **(** :ref:`StringName<class_StringName>` bus_name **)** |const|                                                                 |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                           | :ref:`get_bus_name<class_AudioServer_method_get_bus_name>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_bus_peak_volume_left_db<class_AudioServer_method_get_bus_peak_volume_left_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|                     |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_bus_peak_volume_right_db<class_AudioServer_method_get_bus_peak_volume_right_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|                   |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                   | :ref:`get_bus_send<class_AudioServer_method_get_bus_send>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                        |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`get_device_list<class_AudioServer_method_get_device_list>` **(** **)**                                                                                                                  |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>` **(** **)** |const|                                                                                                                |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_output_latency<class_AudioServer_method_get_output_latency>` **(** **)** |const|                                                                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>`      | :ref:`get_speaker_mode<class_AudioServer_method_get_speaker_mode>` **(** **)** |const|                                                                                                        |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_time_since_last_mix<class_AudioServer_method_get_time_since_last_mix>` **(** **)** |const|                                                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_time_to_next_mix<class_AudioServer_method_get_time_to_next_mix>` **(** **)** |const|                                                                                                |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_bus_bypassing_effects<class_AudioServer_method_is_bus_bypassing_effects>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_bus_effect_enabled<class_AudioServer_method_is_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |const|                              |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_bus_mute<class_AudioServer_method_is_bus_mute>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_bus_solo<class_AudioServer_method_is_bus_solo>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`lock<class_AudioServer_method_lock>` **(** **)**                                                                                                                                        |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`move_bus<class_AudioServer_method_move_bus>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)**                                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`remove_bus<class_AudioServer_method_remove_bus>` **(** :ref:`int<class_int>` index **)**                                                                                                |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`remove_bus_effect<class_AudioServer_method_remove_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**                                              |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_bypass_effects<class_AudioServer_method_set_bus_bypass_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                      |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_effect_enabled<class_AudioServer_method_set_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)**   |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_layout<class_AudioServer_method_set_bus_layout>` **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)**                                                             |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_mute<class_AudioServer_method_set_bus_mute>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_name<class_AudioServer_method_set_bus_name>` **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)**                                                        |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_send<class_AudioServer_method_set_bus_send>` **(** :ref:`int<class_int>` bus_idx, :ref:`StringName<class_StringName>` send **)**                                                |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_solo<class_AudioServer_method_set_bus_solo>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                                          |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**                                           |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_enable_tagging_used_audio_streams<class_AudioServer_method_set_enable_tagging_used_audio_streams>` **(** :ref:`bool<class_bool>` enable **)**                                       |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**           |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`unlock<class_AudioServer_method_unlock>` **(** **)**                                                                                                                                    |
-+-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`add_bus<class_AudioServer_method_add_bus>` **(** :ref:`int<class_int>` at_position=-1 **)**                                                                                             |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`add_bus_effect<class_AudioServer_method_add_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>` **(** **)**                                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioBusLayout<class_AudioBusLayout>`           | :ref:`generate_bus_layout<class_AudioServer_method_generate_bus_layout>` **(** **)** |const|                                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_bus_channels<class_AudioServer_method_get_bus_channels>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioEffect<class_AudioEffect>`                 | :ref:`get_bus_effect<class_AudioServer_method_get_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_bus_effect_count<class_AudioServer_method_get_bus_effect_count>` **(** :ref:`int<class_int>` bus_idx **)**                                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioEffectInstance<class_AudioEffectInstance>` | :ref:`get_bus_effect_instance<class_AudioServer_method_get_bus_effect_instance>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)** |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_bus_index<class_AudioServer_method_get_bus_index>` **(** :ref:`StringName<class_StringName>` bus_name **)** |const|                                                                 |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                           | :ref:`get_bus_name<class_AudioServer_method_get_bus_name>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_bus_peak_volume_left_db<class_AudioServer_method_get_bus_peak_volume_left_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|                     |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_bus_peak_volume_right_db<class_AudioServer_method_get_bus_peak_volume_right_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|                   |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>`                   | :ref:`get_bus_send<class_AudioServer_method_get_bus_send>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`get_device_list<class_AudioServer_method_get_device_list>` **(** **)**                                                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>` **(** **)** |const|                                                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_output_latency<class_AudioServer_method_get_output_latency>` **(** **)** |const|                                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>`      | :ref:`get_speaker_mode<class_AudioServer_method_get_speaker_mode>` **(** **)** |const|                                                                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_time_since_last_mix<class_AudioServer_method_get_time_since_last_mix>` **(** **)** |const|                                                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_time_to_next_mix<class_AudioServer_method_get_time_to_next_mix>` **(** **)** |const|                                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_bus_bypassing_effects<class_AudioServer_method_is_bus_bypassing_effects>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_bus_effect_enabled<class_AudioServer_method_is_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |const|                              |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_bus_mute<class_AudioServer_method_is_bus_mute>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_bus_solo<class_AudioServer_method_is_bus_solo>` **(** :ref:`int<class_int>` bus_idx **)** |const|                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`lock<class_AudioServer_method_lock>` **(** **)**                                                                                                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`move_bus<class_AudioServer_method_move_bus>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)**                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`remove_bus<class_AudioServer_method_remove_bus>` **(** :ref:`int<class_int>` index **)**                                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`remove_bus_effect<class_AudioServer_method_remove_bus_effect>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**                                              |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_bypass_effects<class_AudioServer_method_set_bus_bypass_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                      |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_effect_enabled<class_AudioServer_method_set_bus_effect_enabled>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)**   |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_layout<class_AudioServer_method_set_bus_layout>` **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)**                                                             |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_mute<class_AudioServer_method_set_bus_mute>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_name<class_AudioServer_method_set_bus_name>` **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)**                                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_send<class_AudioServer_method_set_bus_send>` **(** :ref:`int<class_int>` bus_idx, :ref:`StringName<class_StringName>` send **)**                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_solo<class_AudioServer_method_set_bus_solo>` **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bus_volume_db<class_AudioServer_method_set_bus_volume_db>` **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**                                           |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_enable_tagging_used_audio_streams<class_AudioServer_method_set_enable_tagging_used_audio_streams>` **(** :ref:`bool<class_bool>` enable **)**                                       |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`swap_bus_effects<class_AudioServer_method_swap_bus_effects>` **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**           |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`unlock<class_AudioServer_method_unlock>` **(** **)**                                                                                                                                    |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AudioServer_signal_bus_layout_changed:
 
-- **bus_layout_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**bus_layout_changed** **(** **)**
 
 Emitted when the :ref:`AudioBusLayout<class_AudioBusLayout>` changes.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AudioServer_SpeakerMode:
 
+.. rst-class:: classref-enumeration
+
+enum **SpeakerMode**:
+
 .. _class_AudioServer_constant_SPEAKER_MODE_STEREO:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_MODE_STEREO** = ``0``
+
+Two or fewer speakers were detected.
+
 .. _class_AudioServer_constant_SPEAKER_SURROUND_31:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_31** = ``1``
+
+A 3.1 channel surround setup was detected.
+
 .. _class_AudioServer_constant_SPEAKER_SURROUND_51:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_51** = ``2``
+
+A 5.1 channel surround setup was detected.
+
 .. _class_AudioServer_constant_SPEAKER_SURROUND_71:
 
-enum **SpeakerMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **SPEAKER_MODE_STEREO** = **0** --- Two or fewer speakers were detected.
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_71** = ``3``
 
-- **SPEAKER_SURROUND_31** = **1** --- A 3.1 channel surround setup was detected.
+A 7.1 channel surround setup was detected.
 
-- **SPEAKER_SURROUND_51** = **2** --- A 5.1 channel surround setup was detected.
+.. rst-class:: classref-section-separator
 
-- **SPEAKER_SURROUND_71** = **3** --- A 7.1 channel surround setup was detected.
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioServer_property_bus_count:
 
-- :ref:`int<class_int>` **bus_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **bus_count** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_bus_count(value) |
-+-----------+----------------------+
-| *Getter*  | get_bus_count()      |
-+-----------+----------------------+
+- void **set_bus_count** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_bus_count** **(** **)**
 
 Number of available audio buses.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_property_capture_device:
 
-- :ref:`String<class_String>` **capture_device**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **capture_device** = ``"Default"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``"Default"``             |
-+-----------+---------------------------+
-| *Setter*  | capture_set_device(value) |
-+-----------+---------------------------+
-| *Getter*  | capture_get_device()      |
-+-----------+---------------------------+
+- void **capture_set_device** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **capture_get_device** **(** **)**
 
 Name of the current device for audio input (see :ref:`capture_get_device_list<class_AudioServer_method_capture_get_device_list>`). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value ``"Default"`` will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to ``"Default"``.
 
 \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_property_device:
 
-- :ref:`String<class_String>` **device**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **device** = ``"Default"``
 
-+-----------+-------------------+
-| *Default* | ``"Default"``     |
-+-----------+-------------------+
-| *Setter*  | set_device(value) |
-+-----------+-------------------+
-| *Getter*  | get_device()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_device** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_device** **(** **)**
 
 Name of the current device for audio output (see :ref:`get_device_list<class_AudioServer_method_get_device_list>`). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value ``"Default"`` will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to ``"Default"``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_property_playback_speed_scale:
 
-- :ref:`float<class_float>` **playback_speed_scale**
+.. rst-class:: classref-property
 
-+-----------+---------------------------------+
-| *Default* | ``1.0``                         |
-+-----------+---------------------------------+
-| *Setter*  | set_playback_speed_scale(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_playback_speed_scale()      |
-+-----------+---------------------------------+
+:ref:`float<class_float>` **playback_speed_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_playback_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_playback_speed_scale** **(** **)**
 
 Scales the rate at which audio is played (i.e. setting it to ``0.5`` will make the audio be played at half its speed).
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioServer_method_add_bus:
 
-- void **add_bus** **(** :ref:`int<class_int>` at_position=-1 **)**
+.. rst-class:: classref-method
+
+void **add_bus** **(** :ref:`int<class_int>` at_position=-1 **)**
 
 Adds a bus at ``at_position``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_add_bus_effect:
 
-- void **add_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**
+.. rst-class:: classref-method
+
+void **add_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`AudioEffect<class_AudioEffect>` effect, :ref:`int<class_int>` at_position=-1 **)**
 
 Adds an :ref:`AudioEffect<class_AudioEffect>` effect to the bus ``bus_idx`` at ``at_position``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_capture_get_device_list:
 
-- :ref:`PackedStringArray<class_PackedStringArray>` **capture_get_device_list** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedStringArray<class_PackedStringArray>` **capture_get_device_list** **(** **)**
 
 Returns the names of all audio input devices detected on the system.
 
 \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_generate_bus_layout:
 
-- :ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AudioBusLayout<class_AudioBusLayout>` **generate_bus_layout** **(** **)** |const|
 
 Generates an :ref:`AudioBusLayout<class_AudioBusLayout>` using the available buses and effects.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_channels:
 
-- :ref:`int<class_int>` **get_bus_channels** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_bus_channels** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 Returns the number of channels of the bus at index ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_effect:
 
-- :ref:`AudioEffect<class_AudioEffect>` **get_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
+.. rst-class:: classref-method
+
+:ref:`AudioEffect<class_AudioEffect>` **get_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
 
 Returns the :ref:`AudioEffect<class_AudioEffect>` at position ``effect_idx`` in bus ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_effect_count:
 
-- :ref:`int<class_int>` **get_bus_effect_count** **(** :ref:`int<class_int>` bus_idx **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_bus_effect_count** **(** :ref:`int<class_int>` bus_idx **)**
 
 Returns the number of effects on the bus at ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_effect_instance:
 
-- :ref:`AudioEffectInstance<class_AudioEffectInstance>` **get_bus_effect_instance** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)**
+.. rst-class:: classref-method
+
+:ref:`AudioEffectInstance<class_AudioEffectInstance>` **get_bus_effect_instance** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` channel=0 **)**
 
 Returns the :ref:`AudioEffectInstance<class_AudioEffectInstance>` assigned to the given bus and effect indices (and optionally channel).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_index:
 
-- :ref:`int<class_int>` **get_bus_index** **(** :ref:`StringName<class_StringName>` bus_name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_bus_index** **(** :ref:`StringName<class_StringName>` bus_name **)** |const|
 
 Returns the index of the bus with the name ``bus_name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_name:
 
-- :ref:`String<class_String>` **get_bus_name** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_bus_name** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 Returns the name of the bus with the index ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_peak_volume_left_db:
 
-- :ref:`float<class_float>` **get_bus_peak_volume_left_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_bus_peak_volume_left_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|
 
 Returns the peak volume of the left speaker at bus index ``bus_idx`` and channel index ``channel``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_peak_volume_right_db:
 
-- :ref:`float<class_float>` **get_bus_peak_volume_right_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_bus_peak_volume_right_db** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` channel **)** |const|
 
 Returns the peak volume of the right speaker at bus index ``bus_idx`` and channel index ``channel``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_send:
 
-- :ref:`StringName<class_StringName>` **get_bus_send** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_bus_send** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 Returns the name of the bus that the bus at index ``bus_idx`` sends to.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_bus_volume_db:
 
-- :ref:`float<class_float>` **get_bus_volume_db** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_bus_volume_db** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 Returns the volume of the bus at index ``bus_idx`` in dB.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_device_list:
 
-- :ref:`PackedStringArray<class_PackedStringArray>` **get_device_list** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PackedStringArray<class_PackedStringArray>` **get_device_list** **(** **)**
 
 Returns the names of all audio devices detected on the system.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_mix_rate:
 
-- :ref:`float<class_float>` **get_mix_rate** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_mix_rate** **(** **)** |const|
 
-Returns the sample rate at the output of the ``AudioServer``.
+Returns the sample rate at the output of the **AudioServer**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioServer_method_get_output_latency:
 
-- :ref:`float<class_float>` **get_output_latency** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_output_latency** **(** **)** |const|
 
 Returns the audio driver's output latency.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_speaker_mode:
 
-- :ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **get_speaker_mode** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **get_speaker_mode** **(** **)** |const|
 
 Returns the speaker configuration.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_time_since_last_mix:
 
-- :ref:`float<class_float>` **get_time_since_last_mix** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_time_since_last_mix** **(** **)** |const|
 
 Returns the relative time since the last mix occurred.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_get_time_to_next_mix:
 
-- :ref:`float<class_float>` **get_time_to_next_mix** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_time_to_next_mix** **(** **)** |const|
 
 Returns the relative time until the next mix occurs.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_is_bus_bypassing_effects:
 
-- :ref:`bool<class_bool>` **is_bus_bypassing_effects** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_bus_bypassing_effects** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 If ``true``, the bus at index ``bus_idx`` is bypassing effects.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_is_bus_effect_enabled:
 
-- :ref:`bool<class_bool>` **is_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)** |const|
 
 If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_is_bus_mute:
 
-- :ref:`bool<class_bool>` **is_bus_mute** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_bus_mute** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 If ``true``, the bus at index ``bus_idx`` is muted.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_is_bus_solo:
 
-- :ref:`bool<class_bool>` **is_bus_solo** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_bus_solo** **(** :ref:`int<class_int>` bus_idx **)** |const|
 
 If ``true``, the bus at index ``bus_idx`` is in solo mode.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_lock:
 
-- void **lock** **(** **)**
+.. rst-class:: classref-method
+
+void **lock** **(** **)**
 
 Locks the audio driver's main loop.
 
 \ **Note:** Remember to unlock it afterwards.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_move_bus:
 
-- void **move_bus** **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)**
+.. rst-class:: classref-method
+
+void **move_bus** **(** :ref:`int<class_int>` index, :ref:`int<class_int>` to_index **)**
 
 Moves the bus from index ``index`` to index ``to_index``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_remove_bus:
 
-- void **remove_bus** **(** :ref:`int<class_int>` index **)**
+.. rst-class:: classref-method
+
+void **remove_bus** **(** :ref:`int<class_int>` index **)**
 
 Removes the bus at index ``index``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_remove_bus_effect:
 
-- void **remove_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
+.. rst-class:: classref-method
+
+void **remove_bus_effect** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx **)**
 
 Removes the effect at index ``effect_idx`` from the bus at index ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_bypass_effects:
 
-- void **set_bus_bypass_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_bus_bypass_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
 
 If ``true``, the bus at index ``bus_idx`` is bypassing effects.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_effect_enabled:
 
-- void **set_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)**
+.. rst-class:: classref-method
+
+void **set_bus_effect_enabled** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`bool<class_bool>` enabled **)**
 
 If ``true``, the effect at index ``effect_idx`` on the bus at index ``bus_idx`` is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_layout:
 
-- void **set_bus_layout** **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)**
+.. rst-class:: classref-method
+
+void **set_bus_layout** **(** :ref:`AudioBusLayout<class_AudioBusLayout>` bus_layout **)**
 
 Overwrites the currently used :ref:`AudioBusLayout<class_AudioBusLayout>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_mute:
 
-- void **set_bus_mute** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_bus_mute** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
 
 If ``true``, the bus at index ``bus_idx`` is muted.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_name:
 
-- void **set_bus_name** **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **set_bus_name** **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` name **)**
 
 Sets the name of the bus at index ``bus_idx`` to ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_send:
 
-- void **set_bus_send** **(** :ref:`int<class_int>` bus_idx, :ref:`StringName<class_StringName>` send **)**
+.. rst-class:: classref-method
+
+void **set_bus_send** **(** :ref:`int<class_int>` bus_idx, :ref:`StringName<class_StringName>` send **)**
 
 Connects the output of the bus at ``bus_idx`` to the bus named ``send``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_solo:
 
-- void **set_bus_solo** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_bus_solo** **(** :ref:`int<class_int>` bus_idx, :ref:`bool<class_bool>` enable **)**
 
 If ``true``, the bus at index ``bus_idx`` is in solo mode.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_bus_volume_db:
 
-- void **set_bus_volume_db** **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**
+.. rst-class:: classref-method
+
+void **set_bus_volume_db** **(** :ref:`int<class_int>` bus_idx, :ref:`float<class_float>` volume_db **)**
 
 Sets the volume of the bus at index ``bus_idx`` to ``volume_db``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_set_enable_tagging_used_audio_streams:
 
-- void **set_enable_tagging_used_audio_streams** **(** :ref:`bool<class_bool>` enable **)**
+.. rst-class:: classref-method
+
+void **set_enable_tagging_used_audio_streams** **(** :ref:`bool<class_bool>` enable **)**
 
 .. 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_AudioServer_method_swap_bus_effects:
 
-- void **swap_bus_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**
+.. rst-class:: classref-method
+
+void **swap_bus_effects** **(** :ref:`int<class_int>` bus_idx, :ref:`int<class_int>` effect_idx, :ref:`int<class_int>` by_effect_idx **)**
 
 Swaps the position of two effects in bus ``bus_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioServer_method_unlock:
 
-- void **unlock** **(** **)**
+.. rst-class:: classref-method
+
+void **unlock** **(** **)**
 
 Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)
 

+ 77 - 28
classes/class_audiostream.rst

@@ -16,11 +16,15 @@ AudioStream
 
 Base class for audio streams.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via :ref:`AudioStreamWAV<class_AudioStreamWAV>`) and Ogg (via :ref:`AudioStreamOggVorbis<class_AudioStreamOggVorbis>`) file formats.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -32,111 +36,156 @@ Tutorials
 
 - `Audio Spectrum Demo <https://godotengine.org/asset-library/asset/528>`__
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`_get_beat_count<class_AudioStream_method__get_beat_count>` **(** **)** |virtual| |const|             |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`_get_bpm<class_AudioStream_method__get_bpm>` **(** **)** |virtual| |const|                           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`_get_length<class_AudioStream_method__get_length>` **(** **)** |virtual| |const|                     |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                           | :ref:`_get_stream_name<class_AudioStream_method__get_stream_name>` **(** **)** |virtual| |const|           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`_instantiate_playback<class_AudioStream_method__instantiate_playback>` **(** **)** |virtual| |const| |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`_is_monophonic<class_AudioStream_method__is_monophonic>` **(** **)** |virtual| |const|               |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const|                                 |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>` **(** **)**                     |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`is_monophonic<class_AudioStream_method_is_monophonic>` **(** **)** |const|                           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`_get_beat_count<class_AudioStream_method__get_beat_count>` **(** **)** |virtual| |const|             |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`_get_bpm<class_AudioStream_method__get_bpm>` **(** **)** |virtual| |const|                           |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`_get_length<class_AudioStream_method__get_length>` **(** **)** |virtual| |const|                     |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                           | :ref:`_get_stream_name<class_AudioStream_method__get_stream_name>` **(** **)** |virtual| |const|           |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`_instantiate_playback<class_AudioStream_method__instantiate_playback>` **(** **)** |virtual| |const| |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`_is_monophonic<class_AudioStream_method__is_monophonic>` **(** **)** |virtual| |const|               |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const|                                 |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>` **(** **)**                     |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_monophonic<class_AudioStream_method_is_monophonic>` **(** **)** |const|                           |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioStream_method__get_beat_count:
 
-- :ref:`int<class_int>` **_get_beat_count** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **_get_beat_count** **(** **)** |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_AudioStream_method__get_bpm:
 
-- :ref:`float<class_float>` **_get_bpm** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_get_bpm** **(** **)** |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_AudioStream_method__get_length:
 
-- :ref:`float<class_float>` **_get_length** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_get_length** **(** **)** |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_AudioStream_method__get_stream_name:
 
-- :ref:`String<class_String>` **_get_stream_name** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **_get_stream_name** **(** **)** |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_AudioStream_method__instantiate_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **_instantiate_playback** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **_instantiate_playback** **(** **)** |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_AudioStream_method__is_monophonic:
 
-- :ref:`bool<class_bool>` **_is_monophonic** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_is_monophonic** **(** **)** |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_AudioStream_method_get_length:
 
-- :ref:`float<class_float>` **get_length** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_length** **(** **)** |const|
 
 Returns the length of the audio stream in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStream_method_instantiate_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **instantiate_playback** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **instantiate_playback** **(** **)**
 
 Returns an AudioStreamPlayback. Useful for when you want to extend :ref:`_instantiate_playback<class_AudioStream_method__instantiate_playback>` but call :ref:`instantiate_playback<class_AudioStream_method_instantiate_playback>` from an internally held AudioStream subresource. An example of this can be found in the source files for ``AudioStreamRandomPitch::instantiate_playback``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStream_method_is_monophonic:
 
-- :ref:`bool<class_bool>` **is_monophonic** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_monophonic** **(** **)** |const|
 
 Returns true if this audio stream only supports monophonic playback, or false if the audio stream supports polyphony.
 

+ 36 - 21
classes/class_audiostreamgenerator.rst

@@ -14,6 +14,8 @@ AudioStreamGenerator
 
 Audio stream that generates sounds procedurally.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ See also :ref:`AudioEffectSpectrumAnalyzer<class_AudioEffectSpectrumAnalyzer>` f
 
 \ **Note:** Due to performance constraints, this class is best used from C# or from a compiled language via GDExtension. If you still want to use this class from GDScript, consider using a lower :ref:`mix_rate<class_AudioStreamGenerator_property_mix_rate>` such as 11,025 Hz or 22,050 Hz.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,45 +34,56 @@ Tutorials
 
 - `Godot 3.2 will get new audio features <https://godotengine.org/article/godot-32-will-get-new-audio-features>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+-------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`buffer_length<class_AudioStreamGenerator_property_buffer_length>` | ``0.5``     |
-+---------------------------+-------------------------------------------------------------------------+-------------+
-| :ref:`float<class_float>` | :ref:`mix_rate<class_AudioStreamGenerator_property_mix_rate>`           | ``44100.0`` |
-+---------------------------+-------------------------------------------------------------------------+-------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`buffer_length<class_AudioStreamGenerator_property_buffer_length>` | ``0.5``     |
+   +---------------------------+-------------------------------------------------------------------------+-------------+
+   | :ref:`float<class_float>` | :ref:`mix_rate<class_AudioStreamGenerator_property_mix_rate>`           | ``44100.0`` |
+   +---------------------------+-------------------------------------------------------------------------+-------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamGenerator_property_buffer_length:
 
-- :ref:`float<class_float>` **buffer_length**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **buffer_length** = ``0.5``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------+
-| *Default* | ``0.5``                  |
-+-----------+--------------------------+
-| *Setter*  | set_buffer_length(value) |
-+-----------+--------------------------+
-| *Getter*  | get_buffer_length()      |
-+-----------+--------------------------+
+- void **set_buffer_length** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_buffer_length** **(** **)**
 
 The length of the buffer to generate (in seconds). Lower values result in less latency, but require the script to generate audio data faster, resulting in increased CPU usage and more risk for audio cracking if the CPU can't keep up.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamGenerator_property_mix_rate:
 
-- :ref:`float<class_float>` **mix_rate**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **mix_rate** = ``44100.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``44100.0``         |
-+-----------+---------------------+
-| *Setter*  | set_mix_rate(value) |
-+-----------+---------------------+
-| *Getter*  | get_mix_rate()      |
-+-----------+---------------------+
+- void **set_mix_rate** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_mix_rate** **(** **)**
 
 The sample rate to use (in Hz). Higher values are more demanding for the CPU to generate, but result in better quality.
 

+ 56 - 19
classes/class_audiostreamgeneratorplayback.rst

@@ -14,11 +14,15 @@ AudioStreamGeneratorPlayback
 
 Plays back audio generated using :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 This class is meant to be used with :ref:`AudioStreamGenerator<class_AudioStreamGenerator>` to play back the generated audio in real-time.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -26,71 +30,104 @@ Tutorials
 
 - `Godot 3.2 will get new audio features <https://godotengine.org/article/godot-32-will-get-new-audio-features>`__
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`can_push_buffer<class_AudioStreamGeneratorPlayback_method_can_push_buffer>` **(** :ref:`int<class_int>` amount **)** |const|               |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                    | :ref:`clear_buffer<class_AudioStreamGeneratorPlayback_method_clear_buffer>` **(** **)**                                                          |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`get_frames_available<class_AudioStreamGeneratorPlayback_method_get_frames_available>` **(** **)** |const|                                  |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`   | :ref:`get_skips<class_AudioStreamGeneratorPlayback_method_get_skips>` **(** **)** |const|                                                        |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`push_buffer<class_AudioStreamGeneratorPlayback_method_push_buffer>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` frames **)** |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`push_frame<class_AudioStreamGeneratorPlayback_method_push_frame>` **(** :ref:`Vector2<class_Vector2>` frame **)**                          |
-+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`can_push_buffer<class_AudioStreamGeneratorPlayback_method_can_push_buffer>` **(** :ref:`int<class_int>` amount **)** |const|               |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                    | :ref:`clear_buffer<class_AudioStreamGeneratorPlayback_method_clear_buffer>` **(** **)**                                                          |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`   | :ref:`get_frames_available<class_AudioStreamGeneratorPlayback_method_get_frames_available>` **(** **)** |const|                                  |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`   | :ref:`get_skips<class_AudioStreamGeneratorPlayback_method_get_skips>` **(** **)** |const|                                                        |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`push_buffer<class_AudioStreamGeneratorPlayback_method_push_buffer>` **(** :ref:`PackedVector2Array<class_PackedVector2Array>` frames **)** |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`push_frame<class_AudioStreamGeneratorPlayback_method_push_frame>` **(** :ref:`Vector2<class_Vector2>` frame **)**                          |
+   +-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamGeneratorPlayback_method_can_push_buffer:
 
-- :ref:`bool<class_bool>` **can_push_buffer** **(** :ref:`int<class_int>` amount **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **can_push_buffer** **(** :ref:`int<class_int>` amount **)** |const|
 
 Returns ``true`` if a buffer of the size ``amount`` can be pushed to the audio sample data buffer without overflowing it, ``false`` otherwise.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamGeneratorPlayback_method_clear_buffer:
 
-- void **clear_buffer** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_buffer** **(** **)**
 
 Clears the audio sample data buffer.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamGeneratorPlayback_method_get_frames_available:
 
-- :ref:`int<class_int>` **get_frames_available** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_frames_available** **(** **)** |const|
 
 Returns the number of frames that can be pushed to the audio sample data buffer without overflowing it. If the result is ``0``, the buffer is full.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamGeneratorPlayback_method_get_skips:
 
-- :ref:`int<class_int>` **get_skips** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_skips** **(** **)** |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_AudioStreamGeneratorPlayback_method_push_buffer:
 
-- :ref:`bool<class_bool>` **push_buffer** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` frames **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **push_buffer** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` frames **)**
 
 Pushes several audio data frames to the buffer. This is usually more efficient than :ref:`push_frame<class_AudioStreamGeneratorPlayback_method_push_frame>` in C# and compiled languages via GDExtension, but :ref:`push_buffer<class_AudioStreamGeneratorPlayback_method_push_buffer>` may be *less* efficient in GDScript.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamGeneratorPlayback_method_push_frame:
 
-- :ref:`bool<class_bool>` **push_frame** **(** :ref:`Vector2<class_Vector2>` frame **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **push_frame** **(** :ref:`Vector2<class_Vector2>` frame **)**
 
 Pushes a single audio data frame to the buffer. This is usually less efficient than :ref:`push_buffer<class_AudioStreamGeneratorPlayback_method_push_buffer>` in C# and compiled languages via GDExtension, but :ref:`push_frame<class_AudioStreamGeneratorPlayback_method_push_frame>` may be *more* efficient in GDScript.
 

+ 5 - 1
classes/class_audiostreammicrophone.rst

@@ -14,13 +14,17 @@ AudioStreamMicrophone
 
 Plays real-time audio input data.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-When used directly in an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` node, ``AudioStreamMicrophone`` plays back microphone input in real-time. This can be used in conjunction with :ref:`AudioEffectCapture<class_AudioEffectCapture>` to process the data or save it.
+When used directly in an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` node, **AudioStreamMicrophone** plays back microphone input in real-time. This can be used in conjunction with :ref:`AudioEffectCapture<class_AudioEffectCapture>` to process the data or save it.
 
 \ **Note:** :ref:`ProjectSettings.audio/driver/enable_input<class_ProjectSettings_property_audio/driver/enable_input>` must be ``true`` for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 

+ 78 - 61
classes/class_audiostreammp3.rst

@@ -14,96 +14,111 @@ AudioStreamMP3
 
 MP3 audio stream driver.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 MP3 audio stream driver. See :ref:`data<class_AudioStreamMP3_property_data>` if you want to load an MP3 file at run-time.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`bar_beats<class_AudioStreamMP3_property_bar_beats>`     | ``4``                 |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`beat_count<class_AudioStreamMP3_property_beat_count>`   | ``0``                 |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                     | :ref:`bpm<class_AudioStreamMP3_property_bpm>`                 | ``0.0``               |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_AudioStreamMP3_property_data>`               | ``PackedByteArray()`` |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                       | :ref:`loop<class_AudioStreamMP3_property_loop>`               | ``false``             |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`float<class_float>`                     | :ref:`loop_offset<class_AudioStreamMP3_property_loop_offset>` | ``0.0``               |
-+-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                         | :ref:`bar_beats<class_AudioStreamMP3_property_bar_beats>`     | ``4``                 |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                         | :ref:`beat_count<class_AudioStreamMP3_property_beat_count>`   | ``0``                 |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                     | :ref:`bpm<class_AudioStreamMP3_property_bpm>`                 | ``0.0``               |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_AudioStreamMP3_property_data>`               | ``PackedByteArray()`` |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`loop<class_AudioStreamMP3_property_loop>`               | ``false``             |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :ref:`float<class_float>`                     | :ref:`loop_offset<class_AudioStreamMP3_property_loop_offset>` | ``0.0``               |
+   +-----------------------------------------------+---------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamMP3_property_bar_beats:
 
-- :ref:`int<class_int>` **bar_beats**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **bar_beats** = ``4``
 
-+-----------+----------------------+
-| *Default* | ``4``                |
-+-----------+----------------------+
-| *Setter*  | set_bar_beats(value) |
-+-----------+----------------------+
-| *Getter*  | get_bar_beats()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bar_beats** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_bar_beats** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_beat_count:
 
-- :ref:`int<class_int>` **beat_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **beat_count** = ``0``
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_beat_count(value) |
-+-----------+-----------------------+
-| *Getter*  | get_beat_count()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_beat_count** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_beat_count** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_bpm:
 
-- :ref:`float<class_float>` **bpm**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``0.0``        |
-+-----------+----------------+
-| *Setter*  | set_bpm(value) |
-+-----------+----------------+
-| *Getter*  | get_bpm()      |
-+-----------+----------------+
+:ref:`float<class_float>` **bpm** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_bpm** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_bpm** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_data:
 
-- :ref:`PackedByteArray<class_PackedByteArray>` **data**
+.. rst-class:: classref-property
 
-+-----------+-----------------------+
-| *Default* | ``PackedByteArray()`` |
-+-----------+-----------------------+
-| *Setter*  | set_data(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_data()            |
-+-----------+-----------------------+
+:ref:`PackedByteArray<class_PackedByteArray>` **data** = ``PackedByteArray()``
+
+.. rst-class:: classref-property-setget
+
+- void **set_data** **(** :ref:`PackedByteArray<class_PackedByteArray>` value **)**
+- :ref:`PackedByteArray<class_PackedByteArray>` **get_data** **(** **)**
 
 Contains the audio data in bytes.
 
@@ -136,35 +151,37 @@ You can load a file without having to import it beforehand using the code snippe
 
 
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_loop:
 
-- :ref:`bool<class_bool>` **loop**
+.. rst-class:: classref-property
 
-+-----------+-----------------+
-| *Default* | ``false``       |
-+-----------+-----------------+
-| *Setter*  | set_loop(value) |
-+-----------+-----------------+
-| *Getter*  | has_loop()      |
-+-----------+-----------------+
+:ref:`bool<class_bool>` **loop** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_loop** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_loop** **(** **)**
 
 If ``true``, the stream will automatically loop when it reaches the end.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_loop_offset:
 
-- :ref:`float<class_float>` **loop_offset**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **loop_offset** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``0.0``                |
-+-----------+------------------------+
-| *Setter*  | set_loop_offset(value) |
-+-----------+------------------------+
-| *Getter*  | get_loop_offset()      |
-+-----------+------------------------+
+- void **set_loop_offset** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_loop_offset** **(** **)**
 
 Time in seconds at which the stream starts after being looped.
 

+ 76 - 59
classes/class_audiostreamoggvorbis.rst

@@ -16,121 +16,138 @@ AudioStreamOggVorbis
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`                             | :ref:`bar_beats<class_AudioStreamOggVorbis_property_bar_beats>`             | ``4``     |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`int<class_int>`                             | :ref:`beat_count<class_AudioStreamOggVorbis_property_beat_count>`           | ``0``     |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`bpm<class_AudioStreamOggVorbis_property_bpm>`                         | ``0.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                           | :ref:`loop<class_AudioStreamOggVorbis_property_loop>`                       | ``false`` |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`loop_offset<class_AudioStreamOggVorbis_property_loop_offset>`         | ``0.0``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
-| :ref:`OggPacketSequence<class_OggPacketSequence>` | :ref:`packet_sequence<class_AudioStreamOggVorbis_property_packet_sequence>` |           |
-+---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`int<class_int>`                             | :ref:`bar_beats<class_AudioStreamOggVorbis_property_bar_beats>`             | ``4``     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`int<class_int>`                             | :ref:`beat_count<class_AudioStreamOggVorbis_property_beat_count>`           | ``0``     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`bpm<class_AudioStreamOggVorbis_property_bpm>`                         | ``0.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                           | :ref:`loop<class_AudioStreamOggVorbis_property_loop>`                       | ``false`` |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`loop_offset<class_AudioStreamOggVorbis_property_loop_offset>`         | ``0.0``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+   | :ref:`OggPacketSequence<class_OggPacketSequence>` | :ref:`packet_sequence<class_AudioStreamOggVorbis_property_packet_sequence>` |           |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamOggVorbis_property_bar_beats:
 
-- :ref:`int<class_int>` **bar_beats**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **bar_beats** = ``4``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``4``                |
-+-----------+----------------------+
-| *Setter*  | set_bar_beats(value) |
-+-----------+----------------------+
-| *Getter*  | get_bar_beats()      |
-+-----------+----------------------+
+- void **set_bar_beats** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_bar_beats** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOggVorbis_property_beat_count:
 
-- :ref:`int<class_int>` **beat_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **beat_count** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_beat_count(value) |
-+-----------+-----------------------+
-| *Getter*  | get_beat_count()      |
-+-----------+-----------------------+
+- void **set_beat_count** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_beat_count** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOggVorbis_property_bpm:
 
-- :ref:`float<class_float>` **bpm**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **bpm** = ``0.0``
 
-+-----------+----------------+
-| *Default* | ``0.0``        |
-+-----------+----------------+
-| *Setter*  | set_bpm(value) |
-+-----------+----------------+
-| *Getter*  | get_bpm()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bpm** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_bpm** **(** **)**
 
 .. container:: contribute
 
 	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOggVorbis_property_loop:
 
-- :ref:`bool<class_bool>` **loop**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **loop** = ``false``
 
-+-----------+-----------------+
-| *Default* | ``false``       |
-+-----------+-----------------+
-| *Setter*  | set_loop(value) |
-+-----------+-----------------+
-| *Getter*  | has_loop()      |
-+-----------+-----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_loop** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **has_loop** **(** **)**
 
 If ``true``, the stream will automatically loop when it reaches the end.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOggVorbis_property_loop_offset:
 
-- :ref:`float<class_float>` **loop_offset**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``0.0``                |
-+-----------+------------------------+
-| *Setter*  | set_loop_offset(value) |
-+-----------+------------------------+
-| *Getter*  | get_loop_offset()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **loop_offset** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_loop_offset** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_loop_offset** **(** **)**
 
 Time in seconds at which the stream starts after being looped.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOggVorbis_property_packet_sequence:
 
-- :ref:`OggPacketSequence<class_OggPacketSequence>` **packet_sequence**
+.. rst-class:: classref-property
+
+:ref:`OggPacketSequence<class_OggPacketSequence>` **packet_sequence**
+
+.. rst-class:: classref-property-setget
 
-+----------+----------------------------+
-| *Setter* | set_packet_sequence(value) |
-+----------+----------------------------+
-| *Getter* | get_packet_sequence()      |
-+----------+----------------------------+
+- void **set_packet_sequence** **(** :ref:`OggPacketSequence<class_OggPacketSequence>` value **)**
+- :ref:`OggPacketSequence<class_OggPacketSequence>` **get_packet_sequence** **(** **)**
 
 Contains the raw Ogg data for this stream.
 

+ 70 - 25
classes/class_audiostreamplayback.rst

@@ -16,113 +16,158 @@ AudioStreamPlayback
 
 Meta class for playing back audio.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Can play, loop, pause a scroll through audio. See :ref:`AudioStream<class_AudioStream>` and :ref:`AudioStreamOggVorbis<class_AudioStreamOggVorbis>` for usage.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - `Audio Generator Demo <https://godotengine.org/asset-library/asset/526>`__
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`_get_loop_count<class_AudioStreamPlayback_method__get_loop_count>` **(** **)** |virtual| |const|                                                          |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`_get_playback_position<class_AudioStreamPlayback_method__get_playback_position>` **(** **)** |virtual| |const|                                            |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`_is_playing<class_AudioStreamPlayback_method__is_playing>` **(** **)** |virtual| |const|                                                                  |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`_mix<class_AudioStreamPlayback_method__mix>` **(** AudioFrame* buffer, :ref:`float<class_float>` rate_scale, :ref:`int<class_int>` frames **)** |virtual| |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`_seek<class_AudioStreamPlayback_method__seek>` **(** :ref:`float<class_float>` position **)** |virtual|                                                   |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`_start<class_AudioStreamPlayback_method__start>` **(** :ref:`float<class_float>` from_pos **)** |virtual|                                                 |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`_stop<class_AudioStreamPlayback_method__stop>` **(** **)** |virtual|                                                                                      |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`_tag_used_streams<class_AudioStreamPlayback_method__tag_used_streams>` **(** **)** |virtual|                                                              |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`_get_loop_count<class_AudioStreamPlayback_method__get_loop_count>` **(** **)** |virtual| |const|                                                          |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`_get_playback_position<class_AudioStreamPlayback_method__get_playback_position>` **(** **)** |virtual| |const|                                            |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`_is_playing<class_AudioStreamPlayback_method__is_playing>` **(** **)** |virtual| |const|                                                                  |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`_mix<class_AudioStreamPlayback_method__mix>` **(** AudioFrame* buffer, :ref:`float<class_float>` rate_scale, :ref:`int<class_int>` frames **)** |virtual| |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`_seek<class_AudioStreamPlayback_method__seek>` **(** :ref:`float<class_float>` position **)** |virtual|                                                   |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`_start<class_AudioStreamPlayback_method__start>` **(** :ref:`float<class_float>` from_pos **)** |virtual|                                                 |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`_stop<class_AudioStreamPlayback_method__stop>` **(** **)** |virtual|                                                                                      |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`_tag_used_streams<class_AudioStreamPlayback_method__tag_used_streams>` **(** **)** |virtual|                                                              |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamPlayback_method__get_loop_count:
 
-- :ref:`int<class_int>` **_get_loop_count** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **_get_loop_count** **(** **)** |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_AudioStreamPlayback_method__get_playback_position:
 
-- :ref:`float<class_float>` **_get_playback_position** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_get_playback_position** **(** **)** |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_AudioStreamPlayback_method__is_playing:
 
-- :ref:`bool<class_bool>` **_is_playing** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **_is_playing** **(** **)** |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_AudioStreamPlayback_method__mix:
 
-- :ref:`int<class_int>` **_mix** **(** AudioFrame* buffer, :ref:`float<class_float>` rate_scale, :ref:`int<class_int>` frames **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **_mix** **(** AudioFrame* buffer, :ref:`float<class_float>` rate_scale, :ref:`int<class_int>` frames **)** |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_AudioStreamPlayback_method__seek:
 
-- void **_seek** **(** :ref:`float<class_float>` position **)** |virtual|
+.. rst-class:: classref-method
+
+void **_seek** **(** :ref:`float<class_float>` position **)** |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_AudioStreamPlayback_method__start:
 
-- void **_start** **(** :ref:`float<class_float>` from_pos **)** |virtual|
+.. rst-class:: classref-method
+
+void **_start** **(** :ref:`float<class_float>` from_pos **)** |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_AudioStreamPlayback_method__stop:
 
-- void **_stop** **(** **)** |virtual|
+.. rst-class:: classref-method
+
+void **_stop** **(** **)** |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_AudioStreamPlayback_method__tag_used_streams:
 
-- void **_tag_used_streams** **(** **)** |virtual|
+.. rst-class:: classref-method
+
+void **_tag_used_streams** **(** **)** |virtual|
 
 .. container:: contribute
 

+ 31 - 10
classes/class_audiostreamplaybackresampled.rst

@@ -18,43 +18,64 @@ AudioStreamPlaybackResampled
 
 	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`_get_stream_sampling_rate<class_AudioStreamPlaybackResampled_method__get_stream_sampling_rate>` **(** **)** |virtual| |const|                             |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`_mix_resampled<class_AudioStreamPlaybackResampled_method__mix_resampled>` **(** AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual| |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                      | :ref:`begin_resample<class_AudioStreamPlaybackResampled_method_begin_resample>` **(** **)**                                                                     |
-+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`_get_stream_sampling_rate<class_AudioStreamPlaybackResampled_method__get_stream_sampling_rate>` **(** **)** |virtual| |const|                             |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`_mix_resampled<class_AudioStreamPlaybackResampled_method__mix_resampled>` **(** AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual| |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                      | :ref:`begin_resample<class_AudioStreamPlaybackResampled_method_begin_resample>` **(** **)**                                                                     |
+   +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamPlaybackResampled_method__get_stream_sampling_rate:
 
-- :ref:`float<class_float>` **_get_stream_sampling_rate** **(** **)** |virtual| |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_get_stream_sampling_rate** **(** **)** |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_AudioStreamPlaybackResampled_method__mix_resampled:
 
-- :ref:`int<class_int>` **_mix_resampled** **(** AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **_mix_resampled** **(** AudioFrame* dst_buffer, :ref:`int<class_int>` frame_count **)** |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_AudioStreamPlaybackResampled_method_begin_resample:
 
-- void **begin_resample** **(** **)**
+.. rst-class:: classref-method
+
+void **begin_resample** **(** **)**
 
 .. container:: contribute
 

+ 192 - 110
classes/class_audiostreamplayer.rst

@@ -14,12 +14,16 @@ AudioStreamPlayer
 
 Plays back audio non-positionally.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Plays an audio stream non-positionally.
 
-To play audio positionally, use :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>` or :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>` instead of ``AudioStreamPlayer``.
+To play audio positionally, use :ref:`AudioStreamPlayer2D<class_AudioStreamPlayer2D>` or :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>` instead of **AudioStreamPlayer**.
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
@@ -36,253 +40,331 @@ Tutorials
 
 - `Audio Spectrum Demo <https://godotengine.org/asset-library/asset/528>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                            | :ref:`autoplay<class_AudioStreamPlayer_property_autoplay>`           | ``false``     |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`StringName<class_StringName>`                | :ref:`bus<class_AudioStreamPlayer_property_bus>`                     | ``&"Master"`` |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`                              | :ref:`max_polyphony<class_AudioStreamPlayer_property_max_polyphony>` | ``1``         |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` | :ref:`mix_target<class_AudioStreamPlayer_property_mix_target>`       | ``0``         |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                          | :ref:`pitch_scale<class_AudioStreamPlayer_property_pitch_scale>`     | ``1.0``       |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                            | :ref:`playing<class_AudioStreamPlayer_property_playing>`             | ``false``     |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`AudioStream<class_AudioStream>`              | :ref:`stream<class_AudioStreamPlayer_property_stream>`               |               |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                            | :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` | ``false``     |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                          | :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>`         | ``0.0``       |
-+----------------------------------------------------+----------------------------------------------------------------------+---------------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                            | :ref:`autoplay<class_AudioStreamPlayer_property_autoplay>`           | ``false``     |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`StringName<class_StringName>`                | :ref:`bus<class_AudioStreamPlayer_property_bus>`                     | ``&"Master"`` |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`                              | :ref:`max_polyphony<class_AudioStreamPlayer_property_max_polyphony>` | ``1``         |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` | :ref:`mix_target<class_AudioStreamPlayer_property_mix_target>`       | ``0``         |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                          | :ref:`pitch_scale<class_AudioStreamPlayer_property_pitch_scale>`     | ``1.0``       |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                            | :ref:`playing<class_AudioStreamPlayer_property_playing>`             | ``false``     |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`AudioStream<class_AudioStream>`              | :ref:`stream<class_AudioStreamPlayer_property_stream>`               |               |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                            | :ref:`stream_paused<class_AudioStreamPlayer_property_stream_paused>` | ``false``     |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                          | :ref:`volume_db<class_AudioStreamPlayer_property_volume_db>`         | ``0.0``       |
+   +----------------------------------------------------+----------------------------------------------------------------------+---------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer_method_get_playback_position>` **(** **)**           |
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer_method_get_stream_playback>` **(** **)**               |
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`play<class_AudioStreamPlayer_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`seek<class_AudioStreamPlayer_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`stop<class_AudioStreamPlayer_method_stop>` **(** **)**                                             |
-+-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer_method_get_playback_position>` **(** **)**           |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer_method_get_stream_playback>` **(** **)**               |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`play<class_AudioStreamPlayer_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`seek<class_AudioStreamPlayer_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`stop<class_AudioStreamPlayer_method_stop>` **(** **)**                                             |
+   +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AudioStreamPlayer_signal_finished:
 
-- **finished** **(** **)**
+.. rst-class:: classref-signal
+
+**finished** **(** **)**
 
 Emitted when the audio stops playing.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AudioStreamPlayer_MixTarget:
 
+.. rst-class:: classref-enumeration
+
+enum **MixTarget**:
+
 .. _class_AudioStreamPlayer_constant_MIX_TARGET_STEREO:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_STEREO** = ``0``
+
+The audio will be played only on the first channel.
+
 .. _class_AudioStreamPlayer_constant_MIX_TARGET_SURROUND:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_SURROUND** = ``1``
+
+The audio will be played on all surround channels.
+
 .. _class_AudioStreamPlayer_constant_MIX_TARGET_CENTER:
 
-enum **MixTarget**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_CENTER** = ``2``
+
+The audio will be played on the second channel, which is usually the center.
 
-- **MIX_TARGET_STEREO** = **0** --- The audio will be played only on the first channel.
+.. rst-class:: classref-section-separator
 
-- **MIX_TARGET_SURROUND** = **1** --- The audio will be played on all surround channels.
+----
 
-- **MIX_TARGET_CENTER** = **2** --- The audio will be played on the second channel, which is usually the center.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamPlayer_property_autoplay:
 
-- :ref:`bool<class_bool>` **autoplay**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **autoplay** = ``false``
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_autoplay(value)   |
-+-----------+-----------------------+
-| *Getter*  | is_autoplay_enabled() |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_autoplay** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_autoplay_enabled** **(** **)**
 
 If ``true``, audio plays when added to scene tree.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_bus:
 
-- :ref:`StringName<class_StringName>` **bus**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``&"Master"``  |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+:ref:`StringName<class_StringName>` **bus** = ``&"Master"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_bus** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_bus** **(** **)**
 
 Bus on which this audio is playing.
 
 \ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_max_polyphony:
 
-- :ref:`int<class_int>` **max_polyphony**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **max_polyphony** = ``1``
 
-+-----------+--------------------------+
-| *Default* | ``1``                    |
-+-----------+--------------------------+
-| *Setter*  | set_max_polyphony(value) |
-+-----------+--------------------------+
-| *Getter*  | get_max_polyphony()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_max_polyphony** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_max_polyphony** **(** **)**
 
 The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_mix_target:
 
-- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **mix_target**
+.. rst-class:: classref-property
+
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **mix_target** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_mix_target(value) |
-+-----------+-----------------------+
-| *Getter*  | get_mix_target()      |
-+-----------+-----------------------+
+- void **set_mix_target** **(** :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` value **)**
+- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **get_mix_target** **(** **)**
 
 If the audio configuration has more than two speakers, this sets the target channels. See :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` constants.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_pitch_scale:
 
-- :ref:`float<class_float>` **pitch_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_pitch_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pitch_scale** **(** **)**
 
 The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
 
-+-----------+--------------+
-| *Default* | ``false``    |
-+-----------+--------------+
-| *Getter*  | is_playing() |
-+-----------+--------------+
+:ref:`bool<class_bool>` **playing** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
 If ``true``, audio is playing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_stream:
 
-- :ref:`AudioStream<class_AudioStream>` **stream**
+.. rst-class:: classref-property
+
+:ref:`AudioStream<class_AudioStream>` **stream**
 
-+----------+-------------------+
-| *Setter* | set_stream(value) |
-+----------+-------------------+
-| *Getter* | get_stream()      |
-+----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_stream** **(** :ref:`AudioStream<class_AudioStream>` value **)**
+- :ref:`AudioStream<class_AudioStream>` **get_stream** **(** **)**
 
 The :ref:`AudioStream<class_AudioStream>` object to be played.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_stream_paused:
 
-- :ref:`bool<class_bool>` **stream_paused**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **stream_paused** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_stream_paused(value) |
-+-----------+--------------------------+
-| *Getter*  | get_stream_paused()      |
-+-----------+--------------------------+
+- void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
 If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_property_volume_db:
 
-- :ref:`float<class_float>` **volume_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **volume_db** = ``0.0``
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_volume_db(value) |
-+-----------+----------------------+
-| *Getter*  | get_volume_db()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_volume_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_volume_db** **(** **)**
 
 Volume of sound, in dB.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamPlayer_method_get_playback_position:
 
-- :ref:`float<class_float>` **get_playback_position** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_playback_position** **(** **)**
 
 Returns the position in the :ref:`AudioStream<class_AudioStream>` in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_method_get_stream_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
 
-Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this ``AudioStreamPlayer``.
+Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this **AudioStreamPlayer**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer_method_play:
 
-- void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
 
 Plays the audio from the given ``from_position``, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_method_seek:
 
-- void **seek** **(** :ref:`float<class_float>` to_position **)**
+.. rst-class:: classref-method
+
+void **seek** **(** :ref:`float<class_float>` to_position **)**
 
 Sets the position from which audio will be played, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the audio.
 

+ 203 - 138
classes/class_audiostreamplayer2d.rst

@@ -14,6 +14,8 @@ AudioStreamPlayer2D
 
 Plays positional sound in 2D space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,295 +25,358 @@ By default, audio is heard from the screen center. This can be changed by adding
 
 See also :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` to play a sound non-positionally.
 
-\ **Note:** Hiding an ``AudioStreamPlayer2D`` node does not disable its audio output. To temporarily disable an ``AudioStreamPlayer2D``'s audio output, set :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>` to a very low value like ``-100`` (which isn't audible to human hearing).
+\ **Note:** Hiding an **AudioStreamPlayer2D** node does not disable its audio output. To temporarily disable an **AudioStreamPlayer2D**'s audio output, set :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>` to a very low value like ``-100`` (which isn't audible to human hearing).
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
 
 - :doc:`Audio streams <../tutorials/audio/audio_streams>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`                 | :ref:`area_mask<class_AudioStreamPlayer2D_property_area_mask>`               | ``1``         |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`             | :ref:`attenuation<class_AudioStreamPlayer2D_property_attenuation>`           | ``1.0``       |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`               | :ref:`autoplay<class_AudioStreamPlayer2D_property_autoplay>`                 | ``false``     |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`StringName<class_StringName>`   | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                           | ``&"Master"`` |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`         | ``2000.0``    |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`                 | :ref:`max_polyphony<class_AudioStreamPlayer2D_property_max_polyphony>`       | ``1``         |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`             | :ref:`panning_strength<class_AudioStreamPlayer2D_property_panning_strength>` | ``1.0``       |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`             | :ref:`pitch_scale<class_AudioStreamPlayer2D_property_pitch_scale>`           | ``1.0``       |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`               | :ref:`playing<class_AudioStreamPlayer2D_property_playing>`                   | ``false``     |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`AudioStream<class_AudioStream>` | :ref:`stream<class_AudioStreamPlayer2D_property_stream>`                     |               |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`               | :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>`       | ``false``     |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`             | :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>`               | ``0.0``       |
-+---------------------------------------+------------------------------------------------------------------------------+---------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`                 | :ref:`area_mask<class_AudioStreamPlayer2D_property_area_mask>`               | ``1``         |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`             | :ref:`attenuation<class_AudioStreamPlayer2D_property_attenuation>`           | ``1.0``       |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`               | :ref:`autoplay<class_AudioStreamPlayer2D_property_autoplay>`                 | ``false``     |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`StringName<class_StringName>`   | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                           | ``&"Master"`` |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`         | ``2000.0``    |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`                 | :ref:`max_polyphony<class_AudioStreamPlayer2D_property_max_polyphony>`       | ``1``         |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`             | :ref:`panning_strength<class_AudioStreamPlayer2D_property_panning_strength>` | ``1.0``       |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`             | :ref:`pitch_scale<class_AudioStreamPlayer2D_property_pitch_scale>`           | ``1.0``       |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`               | :ref:`playing<class_AudioStreamPlayer2D_property_playing>`                   | ``false``     |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`AudioStream<class_AudioStream>` | :ref:`stream<class_AudioStreamPlayer2D_property_stream>`                     |               |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`               | :ref:`stream_paused<class_AudioStreamPlayer2D_property_stream_paused>`       | ``false``     |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`             | :ref:`volume_db<class_AudioStreamPlayer2D_property_volume_db>`               | ``0.0``       |
+   +---------------------------------------+------------------------------------------------------------------------------+---------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer2D_method_get_playback_position>` **(** **)**           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer2D_method_get_stream_playback>` **(** **)**               |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`play<class_AudioStreamPlayer2D_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`seek<class_AudioStreamPlayer2D_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`stop<class_AudioStreamPlayer2D_method_stop>` **(** **)**                                             |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer2D_method_get_playback_position>` **(** **)**           |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer2D_method_get_stream_playback>` **(** **)**               |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`play<class_AudioStreamPlayer2D_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`seek<class_AudioStreamPlayer2D_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`stop<class_AudioStreamPlayer2D_method_stop>` **(** **)**                                             |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AudioStreamPlayer2D_signal_finished:
 
-- **finished** **(** **)**
+.. rst-class:: classref-signal
+
+**finished** **(** **)**
 
 Emitted when the audio stops playing.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamPlayer2D_property_area_mask:
 
-- :ref:`int<class_int>` **area_mask**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **area_mask** = ``1``
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_area_mask(value) |
-+-----------+----------------------+
-| *Getter*  | get_area_mask()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_area_mask** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_area_mask** **(** **)**
 
 Determines which :ref:`Area2D<class_Area2D>` layers affect the sound for reverb and audio bus effects. Areas can be used to redirect :ref:`AudioStream<class_AudioStream>`\ s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_attenuation:
 
-- :ref:`float<class_float>` **attenuation**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_attenuation(value) |
-+-----------+------------------------+
-| *Getter*  | get_attenuation()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **attenuation** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_attenuation** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_attenuation** **(** **)**
 
 Dampens audio over distance with this as an exponent.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_autoplay:
 
-- :ref:`bool<class_bool>` **autoplay**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **autoplay** = ``false``
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_autoplay(value)   |
-+-----------+-----------------------+
-| *Getter*  | is_autoplay_enabled() |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_autoplay** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_autoplay_enabled** **(** **)**
 
 If ``true``, audio plays when added to scene tree.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_bus:
 
-- :ref:`StringName<class_StringName>` **bus**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **bus** = ``&"Master"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``&"Master"``  |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+- void **set_bus** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_bus** **(** **)**
 
 Bus on which this audio is playing.
 
 \ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_max_distance:
 
-- :ref:`float<class_float>` **max_distance**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **max_distance** = ``2000.0``
 
-+-----------+-------------------------+
-| *Default* | ``2000.0``              |
-+-----------+-------------------------+
-| *Setter*  | set_max_distance(value) |
-+-----------+-------------------------+
-| *Getter*  | get_max_distance()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_max_distance** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_max_distance** **(** **)**
 
 Maximum distance from which audio is still hearable.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_max_polyphony:
 
-- :ref:`int<class_int>` **max_polyphony**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``1``                    |
-+-----------+--------------------------+
-| *Setter*  | set_max_polyphony(value) |
-+-----------+--------------------------+
-| *Getter*  | get_max_polyphony()      |
-+-----------+--------------------------+
+:ref:`int<class_int>` **max_polyphony** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_max_polyphony** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_max_polyphony** **(** **)**
 
 The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_panning_strength:
 
-- :ref:`float<class_float>` **panning_strength**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------+
-| *Default* | ``1.0``                     |
-+-----------+-----------------------------+
-| *Setter*  | set_panning_strength(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_panning_strength()      |
-+-----------+-----------------------------+
+:ref:`float<class_float>` **panning_strength** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_panning_strength** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_panning_strength** **(** **)**
 
 Scales the panning strength for this node by multiplying the base :ref:`ProjectSettings.audio/general/2d_panning_strength<class_ProjectSettings_property_audio/general/2d_panning_strength>` with this factor. Higher values will pan audio from left to right more dramatically than lower values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_pitch_scale:
 
-- :ref:`float<class_float>` **pitch_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_pitch_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pitch_scale** **(** **)**
 
 The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **playing** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------+
-| *Default* | ``false``    |
-+-----------+--------------+
-| *Getter*  | is_playing() |
-+-----------+--------------+
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
-If ``true``, audio is playing.
+If ``true``, audio is playing or is queued to be played (see :ref:`play<class_AudioStreamPlayer2D_method_play>`).
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer2D_property_stream:
 
-- :ref:`AudioStream<class_AudioStream>` **stream**
+.. rst-class:: classref-property
+
+:ref:`AudioStream<class_AudioStream>` **stream**
 
-+----------+-------------------+
-| *Setter* | set_stream(value) |
-+----------+-------------------+
-| *Getter* | get_stream()      |
-+----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_stream** **(** :ref:`AudioStream<class_AudioStream>` value **)**
+- :ref:`AudioStream<class_AudioStream>` **get_stream** **(** **)**
 
 The :ref:`AudioStream<class_AudioStream>` object to be played.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_stream_paused:
 
-- :ref:`bool<class_bool>` **stream_paused**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_stream_paused(value) |
-+-----------+--------------------------+
-| *Getter*  | get_stream_paused()      |
-+-----------+--------------------------+
+:ref:`bool<class_bool>` **stream_paused** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
 If ``true``, the playback is paused. You can resume it by setting ``stream_paused`` to ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_property_volume_db:
 
-- :ref:`float<class_float>` **volume_db**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_volume_db(value) |
-+-----------+----------------------+
-| *Getter*  | get_volume_db()      |
-+-----------+----------------------+
+:ref:`float<class_float>` **volume_db** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_volume_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_volume_db** **(** **)**
 
 Base volume without dampening.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamPlayer2D_method_get_playback_position:
 
-- :ref:`float<class_float>` **get_playback_position** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_playback_position** **(** **)**
 
 Returns the position in the :ref:`AudioStream<class_AudioStream>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_method_get_stream_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+.. rst-class:: classref-method
 
-Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this ``AudioStreamPlayer2D``.
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+
+Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this **AudioStreamPlayer2D**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer2D_method_play:
 
-- void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
+
+Queues the audio to play on the next physics frame, from the given position ``from_position``, in seconds.
 
-Plays the audio from the given position ``from_position``, in seconds.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer2D_method_seek:
 
-- void **seek** **(** :ref:`float<class_float>` to_position **)**
+.. rst-class:: classref-method
+
+void **seek** **(** :ref:`float<class_float>` to_position **)**
 
 Sets the position from which audio will be played, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer2D_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the audio.
 

+ 342 - 229
classes/class_audiostreamplayer3d.rst

@@ -14,6 +14,8 @@ AudioStreamPlayer3D
 
 Plays positional sound in 3D space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,480 +25,591 @@ By default, audio is heard from the camera position. This can be changed by addi
 
 See also :ref:`AudioStreamPlayer<class_AudioStreamPlayer>` to play a sound non-positionally.
 
-\ **Note:** Hiding an ``AudioStreamPlayer3D`` node does not disable its audio output. To temporarily disable an ``AudioStreamPlayer3D``'s audio output, set :ref:`volume_db<class_AudioStreamPlayer3D_property_volume_db>` to a very low value like ``-100`` (which isn't audible to human hearing).
+\ **Note:** Hiding an **AudioStreamPlayer3D** node does not disable its audio output. To temporarily disable an **AudioStreamPlayer3D**'s audio output, set :ref:`volume_db<class_AudioStreamPlayer3D_property_volume_db>` to a very low value like ``-100`` (which isn't audible to human hearing).
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
 
 - :doc:`Audio streams <../tutorials/audio/audio_streams>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`                                              | :ref:`area_mask<class_AudioStreamPlayer3D_property_area_mask>`                                                       | ``1``         |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`attenuation_filter_cutoff_hz<class_AudioStreamPlayer3D_property_attenuation_filter_cutoff_hz>`                 | ``5000.0``    |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`attenuation_filter_db<class_AudioStreamPlayer3D_property_attenuation_filter_db>`                               | ``-24.0``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` | :ref:`attenuation_model<class_AudioStreamPlayer3D_property_attenuation_model>`                                       | ``0``         |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                                            | :ref:`autoplay<class_AudioStreamPlayer3D_property_autoplay>`                                                         | ``false``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`StringName<class_StringName>`                                | :ref:`bus<class_AudioStreamPlayer3D_property_bus>`                                                                   | ``&"Master"`` |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>`   | :ref:`doppler_tracking<class_AudioStreamPlayer3D_property_doppler_tracking>`                                         | ``0``         |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`emission_angle_degrees<class_AudioStreamPlayer3D_property_emission_angle_degrees>`                             | ``45.0``      |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                                            | :ref:`emission_angle_enabled<class_AudioStreamPlayer3D_property_emission_angle_enabled>`                             | ``false``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`emission_angle_filter_attenuation_db<class_AudioStreamPlayer3D_property_emission_angle_filter_attenuation_db>` | ``-12.0``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`max_db<class_AudioStreamPlayer3D_property_max_db>`                                                             | ``3.0``       |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>`                                                 | ``0.0``       |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`int<class_int>`                                              | :ref:`max_polyphony<class_AudioStreamPlayer3D_property_max_polyphony>`                                               | ``1``         |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`panning_strength<class_AudioStreamPlayer3D_property_panning_strength>`                                         | ``1.0``       |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`pitch_scale<class_AudioStreamPlayer3D_property_pitch_scale>`                                                   | ``1.0``       |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                                            | :ref:`playing<class_AudioStreamPlayer3D_property_playing>`                                                           | ``false``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`AudioStream<class_AudioStream>`                              | :ref:`stream<class_AudioStreamPlayer3D_property_stream>`                                                             |               |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`bool<class_bool>`                                            | :ref:`stream_paused<class_AudioStreamPlayer3D_property_stream_paused>`                                               | ``false``     |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`                                                       | ``10.0``      |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
-| :ref:`float<class_float>`                                          | :ref:`volume_db<class_AudioStreamPlayer3D_property_volume_db>`                                                       | ``0.0``       |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+.. table::
+   :widths: auto
+
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`                                              | :ref:`area_mask<class_AudioStreamPlayer3D_property_area_mask>`                                                       | ``1``         |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`attenuation_filter_cutoff_hz<class_AudioStreamPlayer3D_property_attenuation_filter_cutoff_hz>`                 | ``5000.0``    |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`attenuation_filter_db<class_AudioStreamPlayer3D_property_attenuation_filter_db>`                               | ``-24.0``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` | :ref:`attenuation_model<class_AudioStreamPlayer3D_property_attenuation_model>`                                       | ``0``         |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                                            | :ref:`autoplay<class_AudioStreamPlayer3D_property_autoplay>`                                                         | ``false``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`StringName<class_StringName>`                                | :ref:`bus<class_AudioStreamPlayer3D_property_bus>`                                                                   | ``&"Master"`` |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>`   | :ref:`doppler_tracking<class_AudioStreamPlayer3D_property_doppler_tracking>`                                         | ``0``         |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`emission_angle_degrees<class_AudioStreamPlayer3D_property_emission_angle_degrees>`                             | ``45.0``      |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                                            | :ref:`emission_angle_enabled<class_AudioStreamPlayer3D_property_emission_angle_enabled>`                             | ``false``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`emission_angle_filter_attenuation_db<class_AudioStreamPlayer3D_property_emission_angle_filter_attenuation_db>` | ``-12.0``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`max_db<class_AudioStreamPlayer3D_property_max_db>`                                                             | ``3.0``       |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>`                                                 | ``0.0``       |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`int<class_int>`                                              | :ref:`max_polyphony<class_AudioStreamPlayer3D_property_max_polyphony>`                                               | ``1``         |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`panning_strength<class_AudioStreamPlayer3D_property_panning_strength>`                                         | ``1.0``       |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`pitch_scale<class_AudioStreamPlayer3D_property_pitch_scale>`                                                   | ``1.0``       |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                                            | :ref:`playing<class_AudioStreamPlayer3D_property_playing>`                                                           | ``false``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`AudioStream<class_AudioStream>`                              | :ref:`stream<class_AudioStreamPlayer3D_property_stream>`                                                             |               |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`bool<class_bool>`                                            | :ref:`stream_paused<class_AudioStreamPlayer3D_property_stream_paused>`                                               | ``false``     |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`                                                       | ``10.0``      |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+   | :ref:`float<class_float>`                                          | :ref:`volume_db<class_AudioStreamPlayer3D_property_volume_db>`                                                       | ``0.0``       |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer3D_method_get_playback_position>` **(** **)**           |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer3D_method_get_stream_playback>` **(** **)**               |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`play<class_AudioStreamPlayer3D_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`seek<class_AudioStreamPlayer3D_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`stop<class_AudioStreamPlayer3D_method_stop>` **(** **)**                                             |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayer3D_method_get_playback_position>` **(** **)**           |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` | :ref:`get_stream_playback<class_AudioStreamPlayer3D_method_get_stream_playback>` **(** **)**               |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`play<class_AudioStreamPlayer3D_method_play>` **(** :ref:`float<class_float>` from_position=0.0 **)** |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`seek<class_AudioStreamPlayer3D_method_seek>` **(** :ref:`float<class_float>` to_position **)**       |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`stop<class_AudioStreamPlayer3D_method_stop>` **(** **)**                                             |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AudioStreamPlayer3D_signal_finished:
 
-- **finished** **(** **)**
+.. rst-class:: classref-signal
+
+**finished** **(** **)**
 
 Emitted when the audio stops playing.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_AudioStreamPlayer3D_AttenuationModel:
 
+.. rst-class:: classref-enumeration
+
+enum **AttenuationModel**:
+
 .. _class_AudioStreamPlayer3D_constant_ATTENUATION_INVERSE_DISTANCE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **ATTENUATION_INVERSE_DISTANCE** = ``0``
+
+Linear dampening of loudness according to distance.
+
 .. _class_AudioStreamPlayer3D_constant_ATTENUATION_INVERSE_SQUARE_DISTANCE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **ATTENUATION_INVERSE_SQUARE_DISTANCE** = ``1``
+
+Squared dampening of loudness according to distance.
+
 .. _class_AudioStreamPlayer3D_constant_ATTENUATION_LOGARITHMIC:
 
-.. _class_AudioStreamPlayer3D_constant_ATTENUATION_DISABLED:
+.. rst-class:: classref-enumeration-constant
 
-enum **AttenuationModel**:
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **ATTENUATION_LOGARITHMIC** = ``2``
 
-- **ATTENUATION_INVERSE_DISTANCE** = **0** --- Linear dampening of loudness according to distance.
+Logarithmic dampening of loudness according to distance.
 
-- **ATTENUATION_INVERSE_SQUARE_DISTANCE** = **1** --- Squared dampening of loudness according to distance.
+.. _class_AudioStreamPlayer3D_constant_ATTENUATION_DISABLED:
 
-- **ATTENUATION_LOGARITHMIC** = **2** --- Logarithmic dampening of loudness according to distance.
+.. rst-class:: classref-enumeration-constant
 
-- **ATTENUATION_DISABLED** = **3** --- No dampening of loudness according to distance. The sound will still be heard positionally, unlike an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`. :ref:`ATTENUATION_DISABLED<class_AudioStreamPlayer3D_constant_ATTENUATION_DISABLED>` can be combined with a :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` value greater than ``0.0`` to achieve linear attenuation clamped to a sphere of a defined size.
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **ATTENUATION_DISABLED** = ``3``
+
+No dampening of loudness according to distance. The sound will still be heard positionally, unlike an :ref:`AudioStreamPlayer<class_AudioStreamPlayer>`. :ref:`ATTENUATION_DISABLED<class_AudioStreamPlayer3D_constant_ATTENUATION_DISABLED>` can be combined with a :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` value greater than ``0.0`` to achieve linear attenuation clamped to a sphere of a defined size.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_AudioStreamPlayer3D_DopplerTracking:
 
+.. rst-class:: classref-enumeration
+
+enum **DopplerTracking**:
+
 .. _class_AudioStreamPlayer3D_constant_DOPPLER_TRACKING_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **DOPPLER_TRACKING_DISABLED** = ``0``
+
+Disables doppler tracking.
+
 .. _class_AudioStreamPlayer3D_constant_DOPPLER_TRACKING_IDLE_STEP:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **DOPPLER_TRACKING_IDLE_STEP** = ``1``
+
+Executes doppler tracking in idle step.
+
 .. _class_AudioStreamPlayer3D_constant_DOPPLER_TRACKING_PHYSICS_STEP:
 
-enum **DopplerTracking**:
+.. rst-class:: classref-enumeration-constant
 
-- **DOPPLER_TRACKING_DISABLED** = **0** --- Disables doppler tracking.
+:ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **DOPPLER_TRACKING_PHYSICS_STEP** = ``2``
 
-- **DOPPLER_TRACKING_IDLE_STEP** = **1** --- Executes doppler tracking in idle step.
+Executes doppler tracking in physics step.
 
-- **DOPPLER_TRACKING_PHYSICS_STEP** = **2** --- Executes doppler tracking in physics step.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamPlayer3D_property_area_mask:
 
-- :ref:`int<class_int>` **area_mask**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **area_mask** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_area_mask(value) |
-+-----------+----------------------+
-| *Getter*  | get_area_mask()      |
-+-----------+----------------------+
+- void **set_area_mask** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_area_mask** **(** **)**
 
 Determines which :ref:`Area3D<class_Area3D>` layers affect the sound for reverb and audio bus effects. Areas can be used to redirect :ref:`AudioStream<class_AudioStream>`\ s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_attenuation_filter_cutoff_hz:
 
-- :ref:`float<class_float>` **attenuation_filter_cutoff_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **attenuation_filter_cutoff_hz** = ``5000.0``
 
-+-----------+-----------------------------------------+
-| *Default* | ``5000.0``                              |
-+-----------+-----------------------------------------+
-| *Setter*  | set_attenuation_filter_cutoff_hz(value) |
-+-----------+-----------------------------------------+
-| *Getter*  | get_attenuation_filter_cutoff_hz()      |
-+-----------+-----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_attenuation_filter_cutoff_hz** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_attenuation_filter_cutoff_hz** **(** **)**
 
 Dampens audio using a low-pass filter above this frequency, in Hz. To disable the dampening effect entirely, set this to ``20500`` as this frequency is above the human hearing limit.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_attenuation_filter_db:
 
-- :ref:`float<class_float>` **attenuation_filter_db**
+.. rst-class:: classref-property
 
-+-----------+----------------------------------+
-| *Default* | ``-24.0``                        |
-+-----------+----------------------------------+
-| *Setter*  | set_attenuation_filter_db(value) |
-+-----------+----------------------------------+
-| *Getter*  | get_attenuation_filter_db()      |
-+-----------+----------------------------------+
+:ref:`float<class_float>` **attenuation_filter_db** = ``-24.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_attenuation_filter_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_attenuation_filter_db** **(** **)**
 
 Amount how much the filter affects the loudness, in decibels.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_attenuation_model:
 
-- :ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **attenuation_model**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``0``                        |
-+-----------+------------------------------+
-| *Setter*  | set_attenuation_model(value) |
-+-----------+------------------------------+
-| *Getter*  | get_attenuation_model()      |
-+-----------+------------------------------+
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **attenuation_model** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_attenuation_model** **(** :ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` value **)**
+- :ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **get_attenuation_model** **(** **)**
 
 Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_autoplay:
 
-- :ref:`bool<class_bool>` **autoplay**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **autoplay** = ``false``
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_autoplay(value)   |
-+-----------+-----------------------+
-| *Getter*  | is_autoplay_enabled() |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_autoplay** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_autoplay_enabled** **(** **)**
 
 If ``true``, audio plays when the AudioStreamPlayer3D node is added to scene tree.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_bus:
 
-- :ref:`StringName<class_StringName>` **bus**
+.. rst-class:: classref-property
+
+:ref:`StringName<class_StringName>` **bus** = ``&"Master"``
 
-+-----------+----------------+
-| *Default* | ``&"Master"``  |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bus** **(** :ref:`StringName<class_StringName>` value **)**
+- :ref:`StringName<class_StringName>` **get_bus** **(** **)**
 
 The bus on which this audio is playing.
 
 \ **Note:** When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to ``"Master"``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_doppler_tracking:
 
-- :ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **doppler_tracking**
+.. rst-class:: classref-property
+
+:ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **doppler_tracking** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_doppler_tracking(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_doppler_tracking()      |
-+-----------+-----------------------------+
+- void **set_doppler_tracking** **(** :ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` value **)**
+- :ref:`DopplerTracking<enum_AudioStreamPlayer3D_DopplerTracking>` **get_doppler_tracking** **(** **)**
 
 Decides in which step the Doppler effect should be calculated.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_emission_angle_degrees:
 
-- :ref:`float<class_float>` **emission_angle_degrees**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **emission_angle_degrees** = ``45.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``45.0``                  |
-+-----------+---------------------------+
-| *Setter*  | set_emission_angle(value) |
-+-----------+---------------------------+
-| *Getter*  | get_emission_angle()      |
-+-----------+---------------------------+
+- void **set_emission_angle** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_emission_angle** **(** **)**
 
 The angle in which the audio reaches cameras undampened.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_emission_angle_enabled:
 
-- :ref:`bool<class_bool>` **emission_angle_enabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **emission_angle_enabled** = ``false``
 
-+-----------+-----------------------------------+
-| *Default* | ``false``                         |
-+-----------+-----------------------------------+
-| *Setter*  | set_emission_angle_enabled(value) |
-+-----------+-----------------------------------+
-| *Getter*  | is_emission_angle_enabled()       |
-+-----------+-----------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_emission_angle_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_emission_angle_enabled** **(** **)**
 
 If ``true``, the audio should be dampened according to the direction of the sound.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_emission_angle_filter_attenuation_db:
 
-- :ref:`float<class_float>` **emission_angle_filter_attenuation_db**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------------------------+
-| *Default* | ``-12.0``                                       |
-+-----------+-------------------------------------------------+
-| *Setter*  | set_emission_angle_filter_attenuation_db(value) |
-+-----------+-------------------------------------------------+
-| *Getter*  | get_emission_angle_filter_attenuation_db()      |
-+-----------+-------------------------------------------------+
+:ref:`float<class_float>` **emission_angle_filter_attenuation_db** = ``-12.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_emission_angle_filter_attenuation_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_emission_angle_filter_attenuation_db** **(** **)**
 
 Dampens audio if camera is outside of :ref:`emission_angle_degrees<class_AudioStreamPlayer3D_property_emission_angle_degrees>` and :ref:`emission_angle_enabled<class_AudioStreamPlayer3D_property_emission_angle_enabled>` is set by this factor, in decibels.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_max_db:
 
-- :ref:`float<class_float>` **max_db**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``3.0``           |
-+-----------+-------------------+
-| *Setter*  | set_max_db(value) |
-+-----------+-------------------+
-| *Getter*  | get_max_db()      |
-+-----------+-------------------+
+:ref:`float<class_float>` **max_db** = ``3.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_max_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_max_db** **(** **)**
 
 Sets the absolute maximum of the soundlevel, in decibels.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_max_distance:
 
-- :ref:`float<class_float>` **max_distance**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **max_distance** = ``0.0``
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_max_distance(value) |
-+-----------+-------------------------+
-| *Getter*  | get_max_distance()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
 
-The distance past which the sound can no longer be heard at all. Only has an effect if set to a value greater than ``0.0``. :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` works in tandem with :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`. However, unlike :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>` whose behavior depends on the :ref:`attenuation_model<class_AudioStreamPlayer3D_property_attenuation_model>`, :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` always works in a linear fashion. This can be used to prevent the ``AudioStreamPlayer3D`` from requiring audio mixing when the listener is far away, which saves CPU resources.
+- void **set_max_distance** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_max_distance** **(** **)**
+
+The distance past which the sound can no longer be heard at all. Only has an effect if set to a value greater than ``0.0``. :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` works in tandem with :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`. However, unlike :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>` whose behavior depends on the :ref:`attenuation_model<class_AudioStreamPlayer3D_property_attenuation_model>`, :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` always works in a linear fashion. This can be used to prevent the **AudioStreamPlayer3D** from requiring audio mixing when the listener is far away, which saves CPU resources.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer3D_property_max_polyphony:
 
-- :ref:`int<class_int>` **max_polyphony**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **max_polyphony** = ``1``
 
-+-----------+--------------------------+
-| *Default* | ``1``                    |
-+-----------+--------------------------+
-| *Setter*  | set_max_polyphony(value) |
-+-----------+--------------------------+
-| *Getter*  | get_max_polyphony()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_max_polyphony** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_max_polyphony** **(** **)**
 
 The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_panning_strength:
 
-- :ref:`float<class_float>` **panning_strength**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **panning_strength** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``1.0``                     |
-+-----------+-----------------------------+
-| *Setter*  | set_panning_strength(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_panning_strength()      |
-+-----------+-----------------------------+
+- void **set_panning_strength** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_panning_strength** **(** **)**
 
 Scales the panning strength for this node by multiplying the base :ref:`ProjectSettings.audio/general/3d_panning_strength<class_ProjectSettings_property_audio/general/3d_panning_strength>` with this factor. Higher values will pan audio from left to right more dramatically than lower values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_pitch_scale:
 
-- :ref:`float<class_float>` **pitch_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+- void **set_pitch_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_pitch_scale** **(** **)**
 
 The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **playing** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
-+-----------+--------------+
-| *Default* | ``false``    |
-+-----------+--------------+
-| *Getter*  | is_playing() |
-+-----------+--------------+
+If ``true``, audio is playing or is queued to be played (see :ref:`play<class_AudioStreamPlayer3D_method_play>`).
 
-If ``true``, audio is playing.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer3D_property_stream:
 
-- :ref:`AudioStream<class_AudioStream>` **stream**
+.. rst-class:: classref-property
 
-+----------+-------------------+
-| *Setter* | set_stream(value) |
-+----------+-------------------+
-| *Getter* | get_stream()      |
-+----------+-------------------+
+:ref:`AudioStream<class_AudioStream>` **stream**
+
+.. rst-class:: classref-property-setget
+
+- void **set_stream** **(** :ref:`AudioStream<class_AudioStream>` value **)**
+- :ref:`AudioStream<class_AudioStream>` **get_stream** **(** **)**
 
 The :ref:`AudioStream<class_AudioStream>` resource to be played.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_stream_paused:
 
-- :ref:`bool<class_bool>` **stream_paused**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_stream_paused(value) |
-+-----------+--------------------------+
-| *Getter*  | get_stream_paused()      |
-+-----------+--------------------------+
+:ref:`bool<class_bool>` **stream_paused** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_stream_paused** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_stream_paused** **(** **)**
 
 If ``true``, the playback is paused. You can resume it by setting :ref:`stream_paused<class_AudioStreamPlayer3D_property_stream_paused>` to ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_unit_size:
 
-- :ref:`float<class_float>` **unit_size**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **unit_size** = ``10.0``
 
-+-----------+----------------------+
-| *Default* | ``10.0``             |
-+-----------+----------------------+
-| *Setter*  | set_unit_size(value) |
-+-----------+----------------------+
-| *Getter*  | get_unit_size()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_unit_size** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_unit_size** **(** **)**
 
 The factor for the attenuation effect. Higher values make the sound audible over a larger distance.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_volume_db:
 
-- :ref:`float<class_float>` **volume_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **volume_db** = ``0.0``
 
-+-----------+----------------------+
-| *Default* | ``0.0``              |
-+-----------+----------------------+
-| *Setter*  | set_volume_db(value) |
-+-----------+----------------------+
-| *Getter*  | get_volume_db()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_volume_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_volume_db** **(** **)**
 
 The base sound level unaffected by dampening, in decibels.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamPlayer3D_method_get_playback_position:
 
-- :ref:`float<class_float>` **get_playback_position** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_playback_position** **(** **)**
 
 Returns the position in the :ref:`AudioStream<class_AudioStream>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_method_get_stream_playback:
 
-- :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+.. rst-class:: classref-method
 
-Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this ``AudioStreamPlayer3D``.
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+
+Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this **AudioStreamPlayer3D**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer3D_method_play:
 
-- void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`float<class_float>` from_position=0.0 **)**
+
+Queues the audio to play on the next physics frame, from the given position ``from_position``, in seconds.
 
-Plays the audio from the given position ``from_position``, in seconds.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AudioStreamPlayer3D_method_seek:
 
-- void **seek** **(** :ref:`float<class_float>` to_position **)**
+.. rst-class:: classref-method
+
+void **seek** **(** :ref:`float<class_float>` to_position **)**
 
 Sets the position from which audio will be played, in seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the audio.
 

+ 139 - 67
classes/class_audiostreamrandomizer.rst

@@ -14,181 +14,253 @@ AudioStreamRandomizer
 
 Wraps a pool of audio streams with pitch and volume shifting.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
-| :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` | :ref:`playback_mode<class_AudioStreamRandomizer_property_playback_mode>`                     | ``0``   |
-+--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`                                    | :ref:`random_pitch<class_AudioStreamRandomizer_property_random_pitch>`                       | ``1.1`` |
-+--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`                                    | :ref:`random_volume_offset_db<class_AudioStreamRandomizer_property_random_volume_offset_db>` | ``5.0`` |
-+--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
-| :ref:`int<class_int>`                                        | :ref:`streams_count<class_AudioStreamRandomizer_property_streams_count>`                     | ``0``   |
-+--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+   | :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` | :ref:`playback_mode<class_AudioStreamRandomizer_property_playback_mode>`                     | ``0``   |
+   +--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                                    | :ref:`random_pitch<class_AudioStreamRandomizer_property_random_pitch>`                       | ``1.1`` |
+   +--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                                    | :ref:`random_volume_offset_db<class_AudioStreamRandomizer_property_random_volume_offset_db>` | ``5.0`` |
+   +--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+   | :ref:`int<class_int>`                                        | :ref:`streams_count<class_AudioStreamRandomizer_property_streams_count>`                     | ``0``   |
+   +--------------------------------------------------------------+----------------------------------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`add_stream<class_AudioStreamRandomizer_method_add_stream>` **(** :ref:`int<class_int>` index **)**                                                                         |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStream<class_AudioStream>` | :ref:`get_stream<class_AudioStreamRandomizer_method_get_stream>` **(** :ref:`int<class_int>` index **)** |const|                                                                 |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`             | :ref:`get_stream_probability_weight<class_AudioStreamRandomizer_method_get_stream_probability_weight>` **(** :ref:`int<class_int>` index **)** |const|                           |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`move_stream<class_AudioStreamRandomizer_method_move_stream>` **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**                                  |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`remove_stream<class_AudioStreamRandomizer_method_remove_stream>` **(** :ref:`int<class_int>` index **)**                                                                   |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_stream<class_AudioStreamRandomizer_method_set_stream>` **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**                           |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_stream_probability_weight<class_AudioStreamRandomizer_method_set_stream_probability_weight>` **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)** |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`add_stream<class_AudioStreamRandomizer_method_add_stream>` **(** :ref:`int<class_int>` index **)**                                                                         |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AudioStream<class_AudioStream>` | :ref:`get_stream<class_AudioStreamRandomizer_method_get_stream>` **(** :ref:`int<class_int>` index **)** |const|                                                                 |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`             | :ref:`get_stream_probability_weight<class_AudioStreamRandomizer_method_get_stream_probability_weight>` **(** :ref:`int<class_int>` index **)** |const|                           |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`move_stream<class_AudioStreamRandomizer_method_move_stream>` **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**                                  |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`remove_stream<class_AudioStreamRandomizer_method_remove_stream>` **(** :ref:`int<class_int>` index **)**                                                                   |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_stream<class_AudioStreamRandomizer_method_set_stream>` **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**                           |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_stream_probability_weight<class_AudioStreamRandomizer_method_set_stream_probability_weight>` **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)** |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioStreamRandomizer_PlaybackMode:
 
+.. rst-class:: classref-enumeration
+
+enum **PlaybackMode**:
+
 .. _class_AudioStreamRandomizer_constant_PLAYBACK_RANDOM_NO_REPEATS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **PLAYBACK_RANDOM_NO_REPEATS** = ``0``
+
+Pick a stream at random according to the probability weights chosen for each stream, but avoid playing the same stream twice in a row whenever possible.
+
 .. _class_AudioStreamRandomizer_constant_PLAYBACK_RANDOM:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **PLAYBACK_RANDOM** = ``1``
+
+Pick a stream at random according to the probability weights chosen for each stream.
+
 .. _class_AudioStreamRandomizer_constant_PLAYBACK_SEQUENTIAL:
 
-enum **PlaybackMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **PLAYBACK_SEQUENTIAL** = ``2``
 
-- **PLAYBACK_RANDOM_NO_REPEATS** = **0** --- Pick a stream at random according to the probability weights chosen for each stream, but avoid playing the same stream twice in a row whenever possible.
+Play streams in the order they appear in the stream pool.
 
-- **PLAYBACK_RANDOM** = **1** --- Pick a stream at random according to the probability weights chosen for each stream.
+.. rst-class:: classref-section-separator
 
-- **PLAYBACK_SEQUENTIAL** = **2** --- Play streams in the order they appear in the stream pool.
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamRandomizer_property_playback_mode:
 
-- :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **playback_mode**
+.. rst-class:: classref-property
+
+:ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **playback_mode** = ``0``
 
-+-----------+--------------------------+
-| *Default* | ``0``                    |
-+-----------+--------------------------+
-| *Setter*  | set_playback_mode(value) |
-+-----------+--------------------------+
-| *Getter*  | get_playback_mode()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_playback_mode** **(** :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` value **)**
+- :ref:`PlaybackMode<enum_AudioStreamRandomizer_PlaybackMode>` **get_playback_mode** **(** **)**
 
 Controls how this AudioStreamRandomizer picks which AudioStream to play next.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_property_random_pitch:
 
-- :ref:`float<class_float>` **random_pitch**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **random_pitch** = ``1.1``
 
-+-----------+-------------------------+
-| *Default* | ``1.1``                 |
-+-----------+-------------------------+
-| *Setter*  | set_random_pitch(value) |
-+-----------+-------------------------+
-| *Getter*  | get_random_pitch()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_random_pitch** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_random_pitch** **(** **)**
 
 The intensity of random pitch variation. A value of 1 means no variation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_property_random_volume_offset_db:
 
-- :ref:`float<class_float>` **random_volume_offset_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **random_volume_offset_db** = ``5.0``
 
-+-----------+------------------------------------+
-| *Default* | ``5.0``                            |
-+-----------+------------------------------------+
-| *Setter*  | set_random_volume_offset_db(value) |
-+-----------+------------------------------------+
-| *Getter*  | get_random_volume_offset_db()      |
-+-----------+------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_random_volume_offset_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_random_volume_offset_db** **(** **)**
 
 The intensity of random volume variation. A value of 0 means no variation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_property_streams_count:
 
-- :ref:`int<class_int>` **streams_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **streams_count** = ``0``
 
-+-----------+--------------------------+
-| *Default* | ``0``                    |
-+-----------+--------------------------+
-| *Setter*  | set_streams_count(value) |
-+-----------+--------------------------+
-| *Getter*  | get_streams_count()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_streams_count** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_streams_count** **(** **)**
 
 The number of streams in the stream pool.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamRandomizer_method_add_stream:
 
-- void **add_stream** **(** :ref:`int<class_int>` index **)**
+.. rst-class:: classref-method
+
+void **add_stream** **(** :ref:`int<class_int>` index **)**
 
 Insert a stream at the specified index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_get_stream:
 
-- :ref:`AudioStream<class_AudioStream>` **get_stream** **(** :ref:`int<class_int>` index **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AudioStream<class_AudioStream>` **get_stream** **(** :ref:`int<class_int>` index **)** |const|
 
 Returns the stream at the specified index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_get_stream_probability_weight:
 
-- :ref:`float<class_float>` **get_stream_probability_weight** **(** :ref:`int<class_int>` index **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_stream_probability_weight** **(** :ref:`int<class_int>` index **)** |const|
 
 Returns the probability weight associated with the stream at the given index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_move_stream:
 
-- void **move_stream** **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**
+.. rst-class:: classref-method
+
+void **move_stream** **(** :ref:`int<class_int>` index_from, :ref:`int<class_int>` index_to **)**
 
 Move a stream from one index to another.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_remove_stream:
 
-- void **remove_stream** **(** :ref:`int<class_int>` index **)**
+.. rst-class:: classref-method
+
+void **remove_stream** **(** :ref:`int<class_int>` index **)**
 
 Remove the stream at the specified index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_set_stream:
 
-- void **set_stream** **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**
+.. rst-class:: classref-method
+
+void **set_stream** **(** :ref:`int<class_int>` index, :ref:`AudioStream<class_AudioStream>` stream **)**
 
 Set the AudioStream at the specified index.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomizer_method_set_stream_probability_weight:
 
-- void **set_stream_probability_weight** **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)**
+.. rst-class:: classref-method
+
+void **set_stream_probability_weight** **(** :ref:`int<class_int>` index, :ref:`float<class_float>` weight **)**
 
 Set the probability weight of the stream at the specified index. The higher this value, the more likely that the randomizer will choose this stream during random playback modes.
 

+ 155 - 84
classes/class_audiostreamwav.rst

@@ -14,6 +14,8 @@ AudioStreamWAV
 
 Stores audio data loaded from WAV files.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,169 +23,229 @@ AudioStreamWAV stores sound samples loaded from WAV files. To play the stored so
 
 This class can also be used to store dynamically-generated PCM audio data. See also :ref:`AudioStreamGenerator<class_AudioStreamGenerator>` for procedural audio generation.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_AudioStreamWAV_property_data>`             | ``PackedByteArray()`` |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`Format<enum_AudioStreamWAV_Format>`     | :ref:`format<class_AudioStreamWAV_property_format>`         | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`     | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` | :ref:`loop_mode<class_AudioStreamWAV_property_loop_mode>`   | ``0``                 |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                         | :ref:`mix_rate<class_AudioStreamWAV_property_mix_rate>`     | ``44100``             |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                       | :ref:`stereo<class_AudioStreamWAV_property_stereo>`         | ``false``             |
-+-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`data<class_AudioStreamWAV_property_data>`             | ``PackedByteArray()`` |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`Format<enum_AudioStreamWAV_Format>`     | :ref:`format<class_AudioStreamWAV_property_format>`         | ``0``                 |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                         | :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` | ``0``                 |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                         | :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`     | ``0``                 |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` | :ref:`loop_mode<class_AudioStreamWAV_property_loop_mode>`   | ``0``                 |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                         | :ref:`mix_rate<class_AudioStreamWAV_property_mix_rate>`     | ``44100``             |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`stereo<class_AudioStreamWAV_property_stereo>`         | ``false``             |
+   +-----------------------------------------------+-------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_to_wav<class_AudioStreamWAV_method_save_to_wav>` **(** :ref:`String<class_String>` path **)** |
-+---------------------------------------+----------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_to_wav<class_AudioStreamWAV_method_save_to_wav>` **(** :ref:`String<class_String>` path **)** |
+   +---------------------------------------+----------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioStreamWAV_Format:
 
+.. rst-class:: classref-enumeration
+
+enum **Format**:
+
 .. _class_AudioStreamWAV_constant_FORMAT_8_BITS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Format<enum_AudioStreamWAV_Format>` **FORMAT_8_BITS** = ``0``
+
+8-bit audio codec.
+
 .. _class_AudioStreamWAV_constant_FORMAT_16_BITS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Format<enum_AudioStreamWAV_Format>` **FORMAT_16_BITS** = ``1``
+
+16-bit audio codec.
+
 .. _class_AudioStreamWAV_constant_FORMAT_IMA_ADPCM:
 
-enum **Format**:
+.. rst-class:: classref-enumeration-constant
 
-- **FORMAT_8_BITS** = **0** --- 8-bit audio codec.
+:ref:`Format<enum_AudioStreamWAV_Format>` **FORMAT_IMA_ADPCM** = ``2``
 
-- **FORMAT_16_BITS** = **1** --- 16-bit audio codec.
+Audio is compressed using IMA ADPCM.
 
-- **FORMAT_IMA_ADPCM** = **2** --- Audio is compressed using IMA ADPCM.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_AudioStreamWAV_LoopMode:
 
+.. rst-class:: classref-enumeration
+
+enum **LoopMode**:
+
 .. _class_AudioStreamWAV_constant_LOOP_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **LOOP_DISABLED** = ``0``
+
+Audio does not loop.
+
 .. _class_AudioStreamWAV_constant_LOOP_FORWARD:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **LOOP_FORWARD** = ``1``
+
+Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing forward only.
+
 .. _class_AudioStreamWAV_constant_LOOP_PINGPONG:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **LOOP_PINGPONG** = ``2``
+
+Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing back and forth.
+
 .. _class_AudioStreamWAV_constant_LOOP_BACKWARD:
 
-enum **LoopMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **LOOP_BACKWARD** = ``3``
 
-- **LOOP_DISABLED** = **0** --- Audio does not loop.
+Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing backward only.
 
-- **LOOP_FORWARD** = **1** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing forward only.
+.. rst-class:: classref-section-separator
 
-- **LOOP_PINGPONG** = **2** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing back and forth.
+----
 
-- **LOOP_BACKWARD** = **3** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamWAV_property_loop_begin>` and :ref:`loop_end<class_AudioStreamWAV_property_loop_end>`, playing backward only.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamWAV_property_data:
 
-- :ref:`PackedByteArray<class_PackedByteArray>` **data**
+.. rst-class:: classref-property
+
+:ref:`PackedByteArray<class_PackedByteArray>` **data** = ``PackedByteArray()``
 
-+-----------+-----------------------+
-| *Default* | ``PackedByteArray()`` |
-+-----------+-----------------------+
-| *Setter*  | set_data(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_data()            |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_data** **(** :ref:`PackedByteArray<class_PackedByteArray>` value **)**
+- :ref:`PackedByteArray<class_PackedByteArray>` **get_data** **(** **)**
 
 Contains the audio data in bytes.
 
 \ **Note:** This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_format:
 
-- :ref:`Format<enum_AudioStreamWAV_Format>` **format**
+.. rst-class:: classref-property
+
+:ref:`Format<enum_AudioStreamWAV_Format>` **format** = ``0``
 
-+-----------+-------------------+
-| *Default* | ``0``             |
-+-----------+-------------------+
-| *Setter*  | set_format(value) |
-+-----------+-------------------+
-| *Getter*  | get_format()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_format** **(** :ref:`Format<enum_AudioStreamWAV_Format>` value **)**
+- :ref:`Format<enum_AudioStreamWAV_Format>` **get_format** **(** **)**
 
 Audio format. See :ref:`Format<enum_AudioStreamWAV_Format>` constants for values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_loop_begin:
 
-- :ref:`int<class_int>` **loop_begin**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **loop_begin** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_loop_begin(value) |
-+-----------+-----------------------+
-| *Getter*  | get_loop_begin()      |
-+-----------+-----------------------+
+- void **set_loop_begin** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_loop_begin** **(** **)**
 
 The loop start point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_loop_end:
 
-- :ref:`int<class_int>` **loop_end**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **loop_end** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``0``               |
-+-----------+---------------------+
-| *Setter*  | set_loop_end(value) |
-+-----------+---------------------+
-| *Getter*  | get_loop_end()      |
-+-----------+---------------------+
+- void **set_loop_end** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_loop_end** **(** **)**
 
 The loop end point (in number of samples, relative to the beginning of the sample). This information will be imported automatically from the WAV file if present.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_loop_mode:
 
-- :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **loop_mode**
+.. rst-class:: classref-property
+
+:ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **loop_mode** = ``0``
 
-+-----------+----------------------+
-| *Default* | ``0``                |
-+-----------+----------------------+
-| *Setter*  | set_loop_mode(value) |
-+-----------+----------------------+
-| *Getter*  | get_loop_mode()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_loop_mode** **(** :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` value **)**
+- :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` **get_loop_mode** **(** **)**
 
 The loop mode. This information will be imported automatically from the WAV file if present. See :ref:`LoopMode<enum_AudioStreamWAV_LoopMode>` constants for values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_mix_rate:
 
-- :ref:`int<class_int>` **mix_rate**
+.. rst-class:: classref-property
 
-+-----------+---------------------+
-| *Default* | ``44100``           |
-+-----------+---------------------+
-| *Setter*  | set_mix_rate(value) |
-+-----------+---------------------+
-| *Getter*  | get_mix_rate()      |
-+-----------+---------------------+
+:ref:`int<class_int>` **mix_rate** = ``44100``
+
+.. rst-class:: classref-property-setget
+
+- void **set_mix_rate** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_mix_rate** **(** **)**
 
 The sample rate for mixing this audio. Higher values require more storage space, but result in better quality.
 
@@ -191,28 +253,37 @@ In games, common sample rates in use are ``11025``, ``16000``, ``22050``, ``3200
 
 According to the `Nyquist-Shannon sampling theorem <https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem>`__, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are using lower-pitched sounds such as voices, lower sample rates such as ``32000`` or ``22050`` may be usable with no loss in quality.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamWAV_property_stereo:
 
-- :ref:`bool<class_bool>` **stereo**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``false``         |
-+-----------+-------------------+
-| *Setter*  | set_stereo(value) |
-+-----------+-------------------+
-| *Getter*  | is_stereo()       |
-+-----------+-------------------+
+:ref:`bool<class_bool>` **stereo** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_stereo** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_stereo** **(** **)**
 
 If ``true``, audio is stereo.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioStreamWAV_method_save_to_wav:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **save_to_wav** **(** :ref:`String<class_String>` path **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **save_to_wav** **(** :ref:`String<class_String>` path **)**
 
 Saves the AudioStreamWAV as a WAV file to ``path``. Samples with IMA ADPCM format can't be saved.
 

+ 58 - 25
classes/class_backbuffercopy.rst

@@ -14,6 +14,8 @@ BackBufferCopy
 
 Copies a region of the screen (or the whole screen) to a buffer so it can be accessed in your shader scripts through the ``texture(SCREEN_TEXTURE, ...)`` function.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,64 +23,95 @@ Node for back-buffering the currently-displayed screen. The region defined in th
 
 \ **Note:** Since this node inherits from :ref:`Node2D<class_Node2D>` (and not :ref:`Control<class_Control>`), anchors and margins won't apply to child :ref:`Control<class_Control>`-derived nodes. This can be problematic when resizing the window. To avoid this, add :ref:`Control<class_Control>`-derived nodes as *siblings* to the BackBufferCopy node instead of adding them as children.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
-| :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` | :ref:`copy_mode<class_BackBufferCopy_property_copy_mode>` | ``1``                           |
-+-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
-| :ref:`Rect2<class_Rect2>`                     | :ref:`rect<class_BackBufferCopy_property_rect>`           | ``Rect2(-100, -100, 200, 200)`` |
-+-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
+   | :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` | :ref:`copy_mode<class_BackBufferCopy_property_copy_mode>` | ``1``                           |
+   +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
+   | :ref:`Rect2<class_Rect2>`                     | :ref:`rect<class_BackBufferCopy_property_rect>`           | ``Rect2(-100, -100, 200, 200)`` |
+   +-----------------------------------------------+-----------------------------------------------------------+---------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_BackBufferCopy_CopyMode:
 
+.. rst-class:: classref-enumeration
+
+enum **CopyMode**:
+
 .. _class_BackBufferCopy_constant_COPY_MODE_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **COPY_MODE_DISABLED** = ``0``
+
+Disables the buffering mode. This means the BackBufferCopy node will directly use the portion of screen it covers.
+
 .. _class_BackBufferCopy_constant_COPY_MODE_RECT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **COPY_MODE_RECT** = ``1``
+
+BackBufferCopy buffers a rectangular region.
+
 .. _class_BackBufferCopy_constant_COPY_MODE_VIEWPORT:
 
-enum **CopyMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **COPY_MODE_VIEWPORT** = ``2``
+
+BackBufferCopy buffers the entire screen.
 
-- **COPY_MODE_DISABLED** = **0** --- Disables the buffering mode. This means the BackBufferCopy node will directly use the portion of screen it covers.
+.. rst-class:: classref-section-separator
 
-- **COPY_MODE_RECT** = **1** --- BackBufferCopy buffers a rectangular region.
+----
 
-- **COPY_MODE_VIEWPORT** = **2** --- BackBufferCopy buffers the entire screen.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BackBufferCopy_property_copy_mode:
 
-- :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **copy_mode**
+.. rst-class:: classref-property
+
+:ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **copy_mode** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_copy_mode(value) |
-+-----------+----------------------+
-| *Getter*  | get_copy_mode()      |
-+-----------+----------------------+
+- void **set_copy_mode** **(** :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` value **)**
+- :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` **get_copy_mode** **(** **)**
 
 Buffer mode. See :ref:`CopyMode<enum_BackBufferCopy_CopyMode>` constants.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BackBufferCopy_property_rect:
 
-- :ref:`Rect2<class_Rect2>` **rect**
+.. rst-class:: classref-property
+
+:ref:`Rect2<class_Rect2>` **rect** = ``Rect2(-100, -100, 200, 200)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------------+
-| *Default* | ``Rect2(-100, -100, 200, 200)`` |
-+-----------+---------------------------------+
-| *Setter*  | set_rect(value)                 |
-+-----------+---------------------------------+
-| *Getter*  | get_rect()                      |
-+-----------+---------------------------------+
+- void **set_rect** **(** :ref:`Rect2<class_Rect2>` value **)**
+- :ref:`Rect2<class_Rect2>` **get_rect** **(** **)**
 
 The area covered by the BackBufferCopy. Only used if :ref:`copy_mode<class_BackBufferCopy_property_copy_mode>` is :ref:`COPY_MODE_RECT<class_BackBufferCopy_constant_COPY_MODE_RECT>`.
 

+ 243 - 129
classes/class_basebutton.rst

@@ -16,330 +16,444 @@ BaseButton
 
 Base class for different kinds of buttons.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 BaseButton is the abstract base class for buttons, so it shouldn't be used directly (it doesn't display anything). Other types of buttons inherit from it.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`ActionMode<enum_BaseButton_ActionMode>`     | :ref:`action_mode<class_BaseButton_property_action_mode>`                   | ``1``                                                               |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`ButtonGroup<class_ButtonGroup>`             | :ref:`button_group<class_BaseButton_property_button_group>`                 |                                                                     |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`MouseButton<enum_@GlobalScope_MouseButton>` | :ref:`button_mask<class_BaseButton_property_button_mask>`                   | ``1``                                                               |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`button_pressed<class_BaseButton_property_button_pressed>`             | ``false``                                                           |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`disabled<class_BaseButton_property_disabled>`                         | ``false``                                                           |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`          | focus_mode                                                                  | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` | ``false``                                                           |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`Shortcut<class_Shortcut>`                   | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |                                                                     |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`shortcut_feedback<class_BaseButton_property_shortcut_feedback>`       | ``true``                                                            |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`shortcut_in_tooltip<class_BaseButton_property_shortcut_in_tooltip>`   | ``true``                                                            |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                           | :ref:`toggle_mode<class_BaseButton_property_toggle_mode>`                   | ``false``                                                           |
-+---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`ActionMode<enum_BaseButton_ActionMode>`     | :ref:`action_mode<class_BaseButton_property_action_mode>`                   | ``1``                                                               |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`ButtonGroup<class_ButtonGroup>`             | :ref:`button_group<class_BaseButton_property_button_group>`                 |                                                                     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`MouseButton<enum_@GlobalScope_MouseButton>` | :ref:`button_mask<class_BaseButton_property_button_mask>`                   | ``1``                                                               |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`button_pressed<class_BaseButton_property_button_pressed>`             | ``false``                                                           |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`disabled<class_BaseButton_property_disabled>`                         | ``false``                                                           |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`FocusMode<enum_Control_FocusMode>`          | focus_mode                                                                  | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` | ``false``                                                           |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`Shortcut<class_Shortcut>`                   | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |                                                                     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`shortcut_feedback<class_BaseButton_property_shortcut_feedback>`       | ``true``                                                            |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`shortcut_in_tooltip<class_BaseButton_property_shortcut_in_tooltip>`   | ``true``                                                            |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`toggle_mode<class_BaseButton_property_toggle_mode>`                   | ``false``                                                           |
+   +---------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`_pressed<class_BaseButton_method__pressed>` **(** **)** |virtual|                                                 |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`_toggled<class_BaseButton_method__toggled>` **(** :ref:`bool<class_bool>` button_pressed **)** |virtual|          |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
-| :ref:`DrawMode<enum_BaseButton_DrawMode>` | :ref:`get_draw_mode<class_BaseButton_method_get_draw_mode>` **(** **)** |const|                                         |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`is_hovered<class_BaseButton_method_is_hovered>` **(** **)** |const|                                               |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_pressed_no_signal<class_BaseButton_method_set_pressed_no_signal>` **(** :ref:`bool<class_bool>` pressed **)** |
-+-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`_pressed<class_BaseButton_method__pressed>` **(** **)** |virtual|                                                 |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`_toggled<class_BaseButton_method__toggled>` **(** :ref:`bool<class_bool>` button_pressed **)** |virtual|          |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`DrawMode<enum_BaseButton_DrawMode>` | :ref:`get_draw_mode<class_BaseButton_method_get_draw_mode>` **(** **)** |const|                                         |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`is_hovered<class_BaseButton_method_is_hovered>` **(** **)** |const|                                               |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`set_pressed_no_signal<class_BaseButton_method_set_pressed_no_signal>` **(** :ref:`bool<class_bool>` pressed **)** |
+   +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_BaseButton_signal_button_down:
 
-- **button_down** **(** **)**
+.. rst-class:: classref-signal
+
+**button_down** **(** **)**
 
 Emitted when the button starts being held down.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_signal_button_up:
 
-- **button_up** **(** **)**
+.. rst-class:: classref-signal
+
+**button_up** **(** **)**
 
 Emitted when the button stops being held down.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_signal_pressed:
 
-- **pressed** **(** **)**
+.. rst-class:: classref-signal
+
+**pressed** **(** **)**
 
 Emitted when the button is toggled or pressed. This is on :ref:`button_down<class_BaseButton_signal_button_down>` if :ref:`action_mode<class_BaseButton_property_action_mode>` is :ref:`ACTION_MODE_BUTTON_PRESS<class_BaseButton_constant_ACTION_MODE_BUTTON_PRESS>` and on :ref:`button_up<class_BaseButton_signal_button_up>` otherwise.
 
 If you need to know the button's pressed state (and :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active), use :ref:`toggled<class_BaseButton_signal_toggled>` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_signal_toggled:
 
-- **toggled** **(** :ref:`bool<class_bool>` button_pressed **)**
+.. rst-class:: classref-signal
+
+**toggled** **(** :ref:`bool<class_bool>` button_pressed **)**
 
 Emitted when the button was just toggled between pressed and normal states (only if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active). The new state is contained in the ``button_pressed`` argument.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_BaseButton_DrawMode:
 
+.. rst-class:: classref-enumeration
+
+enum **DrawMode**:
+
 .. _class_BaseButton_constant_DRAW_NORMAL:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **DRAW_NORMAL** = ``0``
+
+The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons.
+
 .. _class_BaseButton_constant_DRAW_PRESSED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **DRAW_PRESSED** = ``1``
+
+The state of buttons are pressed.
+
 .. _class_BaseButton_constant_DRAW_HOVER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **DRAW_HOVER** = ``2``
+
+The state of buttons are hovered.
+
 .. _class_BaseButton_constant_DRAW_DISABLED:
 
-.. _class_BaseButton_constant_DRAW_HOVER_PRESSED:
+.. rst-class:: classref-enumeration-constant
 
-enum **DrawMode**:
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **DRAW_DISABLED** = ``3``
+
+The state of buttons are disabled.
 
-- **DRAW_NORMAL** = **0** --- The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons.
+.. _class_BaseButton_constant_DRAW_HOVER_PRESSED:
 
-- **DRAW_PRESSED** = **1** --- The state of buttons are pressed.
+.. rst-class:: classref-enumeration-constant
 
-- **DRAW_HOVER** = **2** --- The state of buttons are hovered.
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **DRAW_HOVER_PRESSED** = ``4``
 
-- **DRAW_DISABLED** = **3** --- The state of buttons are disabled.
+The state of buttons are both hovered and pressed.
 
-- **DRAW_HOVER_PRESSED** = **4** --- The state of buttons are both hovered and pressed.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_BaseButton_ActionMode:
 
+.. rst-class:: classref-enumeration
+
+enum **ActionMode**:
+
 .. _class_BaseButton_constant_ACTION_MODE_BUTTON_PRESS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ActionMode<enum_BaseButton_ActionMode>` **ACTION_MODE_BUTTON_PRESS** = ``0``
+
+Require just a press to consider the button clicked.
+
 .. _class_BaseButton_constant_ACTION_MODE_BUTTON_RELEASE:
 
-enum **ActionMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ActionMode<enum_BaseButton_ActionMode>` **ACTION_MODE_BUTTON_RELEASE** = ``1``
 
-- **ACTION_MODE_BUTTON_PRESS** = **0** --- Require just a press to consider the button clicked.
+Require a press and a subsequent release before considering the button clicked.
 
-- **ACTION_MODE_BUTTON_RELEASE** = **1** --- Require a press and a subsequent release before considering the button clicked.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BaseButton_property_action_mode:
 
-- :ref:`ActionMode<enum_BaseButton_ActionMode>` **action_mode**
+.. rst-class:: classref-property
+
+:ref:`ActionMode<enum_BaseButton_ActionMode>` **action_mode** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1``                  |
-+-----------+------------------------+
-| *Setter*  | set_action_mode(value) |
-+-----------+------------------------+
-| *Getter*  | get_action_mode()      |
-+-----------+------------------------+
+- void **set_action_mode** **(** :ref:`ActionMode<enum_BaseButton_ActionMode>` value **)**
+- :ref:`ActionMode<enum_BaseButton_ActionMode>` **get_action_mode** **(** **)**
 
 Determines when the button is considered clicked, one of the :ref:`ActionMode<enum_BaseButton_ActionMode>` constants.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_button_group:
 
-- :ref:`ButtonGroup<class_ButtonGroup>` **button_group**
+.. rst-class:: classref-property
+
+:ref:`ButtonGroup<class_ButtonGroup>` **button_group**
+
+.. rst-class:: classref-property-setget
 
-+----------+-------------------------+
-| *Setter* | set_button_group(value) |
-+----------+-------------------------+
-| *Getter* | get_button_group()      |
-+----------+-------------------------+
+- void **set_button_group** **(** :ref:`ButtonGroup<class_ButtonGroup>` value **)**
+- :ref:`ButtonGroup<class_ButtonGroup>` **get_button_group** **(** **)**
 
 The :ref:`ButtonGroup<class_ButtonGroup>` associated with the button. Not to be confused with node groups.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_button_mask:
 
-- :ref:`MouseButton<enum_@GlobalScope_MouseButton>` **button_mask**
+.. rst-class:: classref-property
+
+:ref:`MouseButton<enum_@GlobalScope_MouseButton>` **button_mask** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1``                  |
-+-----------+------------------------+
-| *Setter*  | set_button_mask(value) |
-+-----------+------------------------+
-| *Getter*  | get_button_mask()      |
-+-----------+------------------------+
+- void **set_button_mask** **(** :ref:`MouseButton<enum_@GlobalScope_MouseButton>` value **)**
+- :ref:`MouseButton<enum_@GlobalScope_MouseButton>` **get_button_mask** **(** **)**
 
 Binary mask to choose which mouse buttons this button will respond to.
 
 To allow both left-click and right-click, use ``MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_button_pressed:
 
-- :ref:`bool<class_bool>` **button_pressed**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **button_pressed** = ``false``
 
-+-----------+--------------------+
-| *Default* | ``false``          |
-+-----------+--------------------+
-| *Setter*  | set_pressed(value) |
-+-----------+--------------------+
-| *Getter*  | is_pressed()       |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_pressed** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_pressed** **(** **)**
 
 If ``true``, the button's state is pressed. Means the button is pressed down or toggled (if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active). Only works if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is ``true``.
 
 \ **Note:** Setting :ref:`button_pressed<class_BaseButton_property_button_pressed>` will result in :ref:`toggled<class_BaseButton_signal_toggled>` to be emitted. If you want to change the pressed state without emitting that signal, use :ref:`set_pressed_no_signal<class_BaseButton_method_set_pressed_no_signal>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_disabled:
 
-- :ref:`bool<class_bool>` **disabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **disabled** = ``false``
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_disabled(value) |
-+-----------+---------------------+
-| *Getter*  | is_disabled()       |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_disabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_disabled** **(** **)**
 
 If ``true``, the button is in disabled state and can't be clicked or toggled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_keep_pressed_outside:
 
-- :ref:`bool<class_bool>` **keep_pressed_outside**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **keep_pressed_outside** = ``false``
 
-+-----------+---------------------------------+
-| *Default* | ``false``                       |
-+-----------+---------------------------------+
-| *Setter*  | set_keep_pressed_outside(value) |
-+-----------+---------------------------------+
-| *Getter*  | is_keep_pressed_outside()       |
-+-----------+---------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_keep_pressed_outside** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_keep_pressed_outside** **(** **)**
 
 If ``true``, the button stays pressed when moving the cursor outside the button while pressing it.
 
 \ **Note:** This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_shortcut:
 
-- :ref:`Shortcut<class_Shortcut>` **shortcut**
+.. rst-class:: classref-property
+
+:ref:`Shortcut<class_Shortcut>` **shortcut**
 
-+----------+---------------------+
-| *Setter* | set_shortcut(value) |
-+----------+---------------------+
-| *Getter* | get_shortcut()      |
-+----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_shortcut** **(** :ref:`Shortcut<class_Shortcut>` value **)**
+- :ref:`Shortcut<class_Shortcut>` **get_shortcut** **(** **)**
 
 :ref:`Shortcut<class_Shortcut>` associated to the button.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_shortcut_feedback:
 
-- :ref:`bool<class_bool>` **shortcut_feedback**
+.. rst-class:: classref-property
 
-+-----------+------------------------------+
-| *Default* | ``true``                     |
-+-----------+------------------------------+
-| *Setter*  | set_shortcut_feedback(value) |
-+-----------+------------------------------+
-| *Getter*  | is_shortcut_feedback()       |
-+-----------+------------------------------+
+:ref:`bool<class_bool>` **shortcut_feedback** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_shortcut_feedback** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_shortcut_feedback** **(** **)**
 
 If ``true``, the button will appear pressed when its shortcut is activated. If ``false`` and :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is ``false``, the shortcut will activate the button without appearing to press the button.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_shortcut_in_tooltip:
 
-- :ref:`bool<class_bool>` **shortcut_in_tooltip**
+.. rst-class:: classref-property
 
-+-----------+----------------------------------+
-| *Default* | ``true``                         |
-+-----------+----------------------------------+
-| *Setter*  | set_shortcut_in_tooltip(value)   |
-+-----------+----------------------------------+
-| *Getter*  | is_shortcut_in_tooltip_enabled() |
-+-----------+----------------------------------+
+:ref:`bool<class_bool>` **shortcut_in_tooltip** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_shortcut_in_tooltip** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_shortcut_in_tooltip_enabled** **(** **)**
 
 If ``true``, the button will add information about its shortcut in the tooltip.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_toggle_mode:
 
-- :ref:`bool<class_bool>` **toggle_mode**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``false``              |
-+-----------+------------------------+
-| *Setter*  | set_toggle_mode(value) |
-+-----------+------------------------+
-| *Getter*  | is_toggle_mode()       |
-+-----------+------------------------+
+:ref:`bool<class_bool>` **toggle_mode** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_toggle_mode** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_toggle_mode** **(** **)**
 
 If ``true``, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_BaseButton_method__pressed:
 
-- void **_pressed** **(** **)** |virtual|
+.. rst-class:: classref-method
+
+void **_pressed** **(** **)** |virtual|
 
 Called when the button is pressed. If you need to know the button's pressed state (and :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active), use :ref:`_toggled<class_BaseButton_method__toggled>` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_method__toggled:
 
-- void **_toggled** **(** :ref:`bool<class_bool>` button_pressed **)** |virtual|
+.. rst-class:: classref-method
+
+void **_toggled** **(** :ref:`bool<class_bool>` button_pressed **)** |virtual|
 
 Called when the button is toggled (only if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is active).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_method_get_draw_mode:
 
-- :ref:`DrawMode<enum_BaseButton_DrawMode>` **get_draw_mode** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`DrawMode<enum_BaseButton_DrawMode>` **get_draw_mode** **(** **)** |const|
 
 Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the :ref:`DrawMode<enum_BaseButton_DrawMode>` enum.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_method_is_hovered:
 
-- :ref:`bool<class_bool>` **is_hovered** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_hovered** **(** **)** |const|
 
 Returns ``true`` if the mouse has entered the button and has not left it yet.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_method_set_pressed_no_signal:
 
-- void **set_pressed_no_signal** **(** :ref:`bool<class_bool>` pressed **)**
+.. rst-class:: classref-method
+
+void **set_pressed_no_signal** **(** :ref:`bool<class_bool>` pressed **)**
 
 Changes the :ref:`button_pressed<class_BaseButton_property_button_pressed>` state of the button, without emitting :ref:`toggled<class_BaseButton_signal_toggled>`. Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if :ref:`toggle_mode<class_BaseButton_property_toggle_mode>` is ``true``.
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1017 - 475
classes/class_basematerial3d.rst


+ 315 - 127
classes/class_basis.rst

@@ -12,6 +12,8 @@ Basis
 
 3×3 matrix datatype.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,8 @@ Can also be accessed as array of 3D vectors. These vectors are normally orthogon
 
 For more information, read the "Matrices and transforms" documentation article.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -40,386 +44,570 @@ Tutorials
 
 - `2.5D Demo <https://godotengine.org/asset-library/asset/583>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------+----------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`x<class_Basis_property_x>` | ``Vector3(1, 0, 0)`` |
-+-------------------------------+----------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`y<class_Basis_property_y>` | ``Vector3(0, 1, 0)`` |
-+-------------------------------+----------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`z<class_Basis_property_z>` | ``Vector3(0, 0, 1)`` |
-+-------------------------------+----------------------------------+----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+----------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`x<class_Basis_property_x>` | ``Vector3(1, 0, 0)`` |
+   +-------------------------------+----------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`y<class_Basis_property_y>` | ``Vector3(0, 1, 0)`` |
+   +-------------------------------+----------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`z<class_Basis_property_z>` | ``Vector3(0, 0, 1)`` |
+   +-------------------------------+----------------------------------+----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Constructors
 ------------
 
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** **)**                                                                                                                  |
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Basis<class_Basis>` from **)**                                                                                   |
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                              |
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Quaternion<class_Quaternion>` from **)**                                                                         |
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)** |
-+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** **)**                                                                                                                  |
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Basis<class_Basis>` from **)**                                                                                   |
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                              |
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Quaternion<class_Quaternion>` from **)**                                                                         |
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>` | :ref:`Basis<class_Basis_constructor_Basis>` **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)** |
+   +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`           | :ref:`determinant<class_Basis_method_determinant>` **(** **)** |const|                                                                                        |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`from_euler<class_Basis_method_from_euler>` **(** :ref:`Vector3<class_Vector3>` euler, :ref:`int<class_int>` order=2 **)** |static|                      |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`from_scale<class_Basis_method_from_scale>` **(** :ref:`Vector3<class_Vector3>` scale **)** |static|                                                     |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`       | :ref:`get_euler<class_Basis_method_get_euler>` **(** :ref:`int<class_int>` order=2 **)** |const|                                                              |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Quaternion<class_Quaternion>` | :ref:`get_rotation_quaternion<class_Basis_method_get_rotation_quaternion>` **(** **)** |const|                                                                |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`       | :ref:`get_scale<class_Basis_method_get_scale>` **(** **)** |const|                                                                                            |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`inverse<class_Basis_method_inverse>` **(** **)** |const|                                                                                                |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`             | :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` **(** :ref:`Basis<class_Basis>` b **)** |const|                                                    |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`             | :ref:`is_finite<class_Basis_method_is_finite>` **(** **)** |const|                                                                                            |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`looking_at<class_Basis_method_looking_at>` **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static| |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`orthonormalized<class_Basis_method_orthonormalized>` **(** **)** |const|                                                                                |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`rotated<class_Basis_method_rotated>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |const|                            |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`scaled<class_Basis_method_scaled>` **(** :ref:`Vector3<class_Vector3>` scale **)** |const|                                                              |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`slerp<class_Basis_method_slerp>` **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)** |const|                                     |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`           | :ref:`tdotx<class_Basis_method_tdotx>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`           | :ref:`tdoty<class_Basis_method_tdoty>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`           | :ref:`tdotz<class_Basis_method_tdotz>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`           | :ref:`transposed<class_Basis_method_transposed>` **(** **)** |const|                                                                                          |
-+-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`           | :ref:`determinant<class_Basis_method_determinant>` **(** **)** |const|                                                                                        |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`from_euler<class_Basis_method_from_euler>` **(** :ref:`Vector3<class_Vector3>` euler, :ref:`int<class_int>` order=2 **)** |static|                      |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`from_scale<class_Basis_method_from_scale>` **(** :ref:`Vector3<class_Vector3>` scale **)** |static|                                                     |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`       | :ref:`get_euler<class_Basis_method_get_euler>` **(** :ref:`int<class_int>` order=2 **)** |const|                                                              |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Quaternion<class_Quaternion>` | :ref:`get_rotation_quaternion<class_Basis_method_get_rotation_quaternion>` **(** **)** |const|                                                                |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`       | :ref:`get_scale<class_Basis_method_get_scale>` **(** **)** |const|                                                                                            |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`inverse<class_Basis_method_inverse>` **(** **)** |const|                                                                                                |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` **(** :ref:`Basis<class_Basis>` b **)** |const|                                                    |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`is_finite<class_Basis_method_is_finite>` **(** **)** |const|                                                                                            |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`looking_at<class_Basis_method_looking_at>` **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static| |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`orthonormalized<class_Basis_method_orthonormalized>` **(** **)** |const|                                                                                |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`rotated<class_Basis_method_rotated>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |const|                            |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`scaled<class_Basis_method_scaled>` **(** :ref:`Vector3<class_Vector3>` scale **)** |const|                                                              |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`slerp<class_Basis_method_slerp>` **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)** |const|                                     |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`           | :ref:`tdotx<class_Basis_method_tdotx>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`           | :ref:`tdoty<class_Basis_method_tdoty>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`           | :ref:`tdotz<class_Basis_method_tdotz>` **(** :ref:`Vector3<class_Vector3>` with **)** |const|                                                                 |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`           | :ref:`transposed<class_Basis_method_transposed>` **(** **)** |const|                                                                                          |
+   +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Operators
 ---------
 
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`operator !=<class_Basis_operator_neq_bool>` **(** :ref:`Basis<class_Basis>` right **)**       |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_Basis>` **(** :ref:`Basis<class_Basis>` right **)**       |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`operator *<class_Basis_operator_mul_Vector3>` **(** :ref:`Vector3<class_Vector3>` right **)** |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_Basis>` **(** :ref:`float<class_float>` right **)**       |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_Basis>` **(** :ref:`int<class_int>` right **)**           |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`operator ==<class_Basis_operator_eq_bool>` **(** :ref:`Basis<class_Basis>` right **)**        |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`operator []<class_Basis_operator_idx_Vector3>` **(** :ref:`int<class_int>` index **)**        |
-+-------------------------------+-----------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`operator !=<class_Basis_operator_neq_Basis>` **(** :ref:`Basis<class_Basis>` right **)**      |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_Basis>` **(** :ref:`Basis<class_Basis>` right **)**       |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`operator *<class_Basis_operator_mul_Vector3>` **(** :ref:`Vector3<class_Vector3>` right **)** |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_float>` **(** :ref:`float<class_float>` right **)**       |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`operator *<class_Basis_operator_mul_int>` **(** :ref:`int<class_int>` right **)**             |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`operator ==<class_Basis_operator_eq_Basis>` **(** :ref:`Basis<class_Basis>` right **)**       |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`operator []<class_Basis_operator_idx_int>` **(** :ref:`int<class_int>` index **)**            |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Constants
 ---------
 
 .. _class_Basis_constant_IDENTITY:
 
+.. rst-class:: classref-constant
+
+**IDENTITY** = ``Basis(1, 0, 0, 0, 1, 0, 0, 0, 1)``
+
+The identity basis, with no rotation or scaling applied.
+
+This is identical to calling ``Basis()`` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
+
 .. _class_Basis_constant_FLIP_X:
 
+.. rst-class:: classref-constant
+
+**FLIP_X** = ``Basis(-1, 0, 0, 0, 1, 0, 0, 0, 1)``
+
+The basis that will flip something along the X axis when used in a transformation.
+
 .. _class_Basis_constant_FLIP_Y:
 
+.. rst-class:: classref-constant
+
+**FLIP_Y** = ``Basis(1, 0, 0, 0, -1, 0, 0, 0, 1)``
+
+The basis that will flip something along the Y axis when used in a transformation.
+
 .. _class_Basis_constant_FLIP_Z:
 
-- **IDENTITY** = **Basis(1, 0, 0, 0, 1, 0, 0, 0, 1)** --- The identity basis, with no rotation or scaling applied.
+.. rst-class:: classref-constant
 
-This is identical to calling ``Basis()`` without any parameters. This constant can be used to make your code clearer, and for consistency with C#.
+**FLIP_Z** = ``Basis(1, 0, 0, 0, 1, 0, 0, 0, -1)``
 
-- **FLIP_X** = **Basis(-1, 0, 0, 0, 1, 0, 0, 0, 1)** --- The basis that will flip something along the X axis when used in a transformation.
+The basis that will flip something along the Z axis when used in a transformation.
 
-- **FLIP_Y** = **Basis(1, 0, 0, 0, -1, 0, 0, 0, 1)** --- The basis that will flip something along the Y axis when used in a transformation.
+.. rst-class:: classref-section-separator
 
-- **FLIP_Z** = **Basis(1, 0, 0, 0, 1, 0, 0, 0, -1)** --- The basis that will flip something along the Z axis when used in a transformation.
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Basis_property_x:
 
-- :ref:`Vector3<class_Vector3>` **x**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(1, 0, 0)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **x** = ``Vector3(1, 0, 0)``
 
 The basis matrix's X vector (column 0). Equivalent to array index ``0``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_property_y:
 
-- :ref:`Vector3<class_Vector3>` **y**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(0, 1, 0)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **y** = ``Vector3(0, 1, 0)``
 
 The basis matrix's Y vector (column 1). Equivalent to array index ``1``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_property_z:
 
-- :ref:`Vector3<class_Vector3>` **z**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``Vector3(0, 0, 1)`` |
-+-----------+----------------------+
+:ref:`Vector3<class_Vector3>` **z** = ``Vector3(0, 0, 1)``
 
 The basis matrix's Z vector (column 2). Equivalent to array index ``2``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Constructor Descriptions
 ------------------------
 
 .. _class_Basis_constructor_Basis:
 
-- :ref:`Basis<class_Basis>` **Basis** **(** **)**
+.. rst-class:: classref-constructor
+
+:ref:`Basis<class_Basis>` **Basis** **(** **)**
 
-Constructs a default-initialized ``Basis`` set to :ref:`IDENTITY<class_Basis_constant_IDENTITY>`.
+Constructs a default-initialized **Basis** set to :ref:`IDENTITY<class_Basis_constant_IDENTITY>`.
+
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Basis<class_Basis>` from **)**
+.. rst-class:: classref-constructor
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Basis<class_Basis>` from **)**
+
+Constructs a **Basis** as a copy of the given **Basis**.
 
-Constructs a ``Basis`` as a copy of the given ``Basis``.
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
+.. rst-class:: classref-constructor
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
 
 Constructs a pure rotation basis matrix, rotated around the given ``axis`` by ``angle`` (in radians). The axis must be a normalized vector.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Quaternion<class_Quaternion>` from **)**
+.. rst-class:: classref-constructor
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Quaternion<class_Quaternion>` from **)**
 
 Constructs a pure rotation basis matrix from the given quaternion.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)**
+.. rst-class:: classref-constructor
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)**
 
 Constructs a basis matrix from 3 axis vectors (matrix columns).
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Basis_method_determinant:
 
-- :ref:`float<class_float>` **determinant** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **determinant** **(** **)** |const|
 
 Returns the determinant of the basis matrix. If the basis is uniformly scaled, its determinant is the square of the scale.
 
 A negative determinant means the basis has a negative scale. A zero determinant means the basis isn't invertible, and is usually considered invalid.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_from_euler:
 
-- :ref:`Basis<class_Basis>` **from_euler** **(** :ref:`Vector3<class_Vector3>` euler, :ref:`int<class_int>` order=2 **)** |static|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **from_euler** **(** :ref:`Vector3<class_Vector3>` euler, :ref:`int<class_int>` order=2 **)** |static|
 
 Constructs a pure rotation Basis matrix from Euler angles in the specified Euler rotation order. By default, use YXZ order (most common). See the :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` enum for possible values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_from_scale:
 
-- :ref:`Basis<class_Basis>` **from_scale** **(** :ref:`Vector3<class_Vector3>` scale **)** |static|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **from_scale** **(** :ref:`Vector3<class_Vector3>` scale **)** |static|
 
 Constructs a pure scale basis matrix with no rotation or shearing. The scale values are set as the diagonal of the matrix, and the other parts of the matrix are zero.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_get_euler:
 
-- :ref:`Vector3<class_Vector3>` **get_euler** **(** :ref:`int<class_int>` order=2 **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_euler** **(** :ref:`int<class_int>` order=2 **)** |const|
 
 Returns the basis's rotation in the form of Euler angles. The Euler order depends on the ``order`` parameter, by default it uses the YXZ convention: when decomposing, first Z, then X, and Y last. The returned vector contains the rotation angles in the format (X angle, Y angle, Z angle).
 
 Consider using the :ref:`get_rotation_quaternion<class_Basis_method_get_rotation_quaternion>` method instead, which returns a :ref:`Quaternion<class_Quaternion>` quaternion instead of Euler angles.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_get_rotation_quaternion:
 
-- :ref:`Quaternion<class_Quaternion>` **get_rotation_quaternion** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Quaternion<class_Quaternion>` **get_rotation_quaternion** **(** **)** |const|
 
 Returns the basis's rotation in the form of a quaternion. See :ref:`get_euler<class_Basis_method_get_euler>` if you need Euler angles, but keep in mind quaternions should generally be preferred to Euler angles.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_get_scale:
 
-- :ref:`Vector3<class_Vector3>` **get_scale** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_scale** **(** **)** |const|
 
 Assuming that the matrix is the combination of a rotation and scaling, return the absolute value of scaling factors along each axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_inverse:
 
-- :ref:`Basis<class_Basis>` **inverse** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **inverse** **(** **)** |const|
 
 Returns the inverse of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_is_equal_approx:
 
-- :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Basis<class_Basis>` b **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Basis<class_Basis>` b **)** |const|
 
 Returns ``true`` if this basis and ``b`` are approximately equal, by calling ``is_equal_approx`` on each component.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_is_finite:
 
-- :ref:`bool<class_bool>` **is_finite** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_finite** **(** **)** |const|
 
 Returns ``true`` if this basis is finite, by calling :ref:`@GlobalScope.is_finite<class_@GlobalScope_method_is_finite>` on each component.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_looking_at:
 
-- :ref:`Basis<class_Basis>` **looking_at** **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **looking_at** **(** :ref:`Vector3<class_Vector3>` target, :ref:`Vector3<class_Vector3>` up=Vector3(0, 1, 0) **)** |static|
 
 Creates a Basis with a rotation such that the forward axis (-Z) points towards the ``target`` position.
 
 The up axis (+Y) points as close to the ``up`` vector as possible while staying perpendicular to the forward axis. The resulting Basis is orthonormalized. The ``target`` and ``up`` vectors cannot be zero, and cannot be parallel to each other.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_orthonormalized:
 
-- :ref:`Basis<class_Basis>` **orthonormalized** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **orthonormalized** **(** **)** |const|
 
 Returns the orthonormalized version of the matrix (useful to call from time to time to avoid rounding error for orthogonal matrices). This performs a Gram-Schmidt orthonormalization on the basis of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_rotated:
 
-- :ref:`Basis<class_Basis>` **rotated** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **rotated** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |const|
 
 Introduce an additional rotation around the given axis by ``angle`` (in radians). The axis must be a normalized vector.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_scaled:
 
-- :ref:`Basis<class_Basis>` **scaled** **(** :ref:`Vector3<class_Vector3>` scale **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **scaled** **(** :ref:`Vector3<class_Vector3>` scale **)** |const|
 
 Introduce an additional scaling specified by the given 3D scaling factor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_slerp:
 
-- :ref:`Basis<class_Basis>` **slerp** **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **slerp** **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)** |const|
 
 Assuming that the matrix is a proper rotation matrix, slerp performs a spherical-linear interpolation with another rotation matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_tdotx:
 
-- :ref:`float<class_float>` **tdotx** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdotx** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
 
 Transposed dot product with the X axis of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_tdoty:
 
-- :ref:`float<class_float>` **tdoty** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdoty** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
 
 Transposed dot product with the Y axis of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_tdotz:
 
-- :ref:`float<class_float>` **tdotz** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdotz** **(** :ref:`Vector3<class_Vector3>` with **)** |const|
 
 Transposed dot product with the Z axis of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_transposed:
 
-- :ref:`Basis<class_Basis>` **transposed** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **transposed** **(** **)** |const|
 
 Returns the transposed version of the matrix.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Operator Descriptions
 ---------------------
 
-.. _class_Basis_operator_neq_bool:
+.. _class_Basis_operator_neq_Basis:
+
+.. rst-class:: classref-operator
 
-- :ref:`bool<class_bool>` **operator !=** **(** :ref:`Basis<class_Basis>` right **)**
+:ref:`bool<class_bool>` **operator !=** **(** :ref:`Basis<class_Basis>` right **)**
 
-Returns ``true`` if the ``Basis`` matrices are not equal.
+Returns ``true`` if the **Basis** matrices are not equal.
 
 \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` instead, which is more reliable.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_operator_mul_Basis:
 
-- :ref:`Basis<class_Basis>` **operator *** **(** :ref:`Basis<class_Basis>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`Basis<class_Basis>` **operator *** **(** :ref:`Basis<class_Basis>` right **)**
 
 Composes these two basis matrices by multiplying them together. This has the effect of transforming the second basis (the child) by the first basis (the parent).
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
+.. _class_Basis_operator_mul_Vector3:
 
-Transforms (multiplies) the :ref:`Vector3<class_Vector3>` by the given ``Basis`` matrix.
+.. rst-class:: classref-operator
+
+:ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
+
+Transforms (multiplies) the :ref:`Vector3<class_Vector3>` by the given **Basis** matrix.
+
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`Basis<class_Basis>` **operator *** **(** :ref:`float<class_float>` right **)**
+.. _class_Basis_operator_mul_float:
+
+.. rst-class:: classref-operator
+
+:ref:`Basis<class_Basis>` **operator *** **(** :ref:`float<class_float>` right **)**
+
+This operator multiplies all components of the **Basis**, which scales it uniformly.
 
-This operator multiplies all components of the ``Basis``, which scales it uniformly.
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`Basis<class_Basis>` **operator *** **(** :ref:`int<class_int>` right **)**
+.. _class_Basis_operator_mul_int:
 
-This operator multiplies all components of the ``Basis``, which scales it uniformly.
+.. rst-class:: classref-operator
+
+:ref:`Basis<class_Basis>` **operator *** **(** :ref:`int<class_int>` right **)**
+
+This operator multiplies all components of the **Basis**, which scales it uniformly.
+
+.. rst-class:: classref-item-separator
 
 ----
 
-.. _class_Basis_operator_eq_bool:
+.. _class_Basis_operator_eq_Basis:
 
-- :ref:`bool<class_bool>` **operator ==** **(** :ref:`Basis<class_Basis>` right **)**
+.. rst-class:: classref-operator
 
-Returns ``true`` if the ``Basis`` matrices are exactly equal.
+:ref:`bool<class_bool>` **operator ==** **(** :ref:`Basis<class_Basis>` right **)**
+
+Returns ``true`` if the **Basis** matrices are exactly equal.
 
 \ **Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` instead, which is more reliable.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-.. _class_Basis_operator_idx_Vector3:
+.. _class_Basis_operator_idx_int:
+
+.. rst-class:: classref-operator
 
-- :ref:`Vector3<class_Vector3>` **operator []** **(** :ref:`int<class_int>` index **)**
+:ref:`Vector3<class_Vector3>` **operator []** **(** :ref:`int<class_int>` index **)**
 
 Access basis components using their index. ``b[0]`` is equivalent to ``b.x``, ``b[1]`` is equivalent to ``b.y``, and ``b[2]`` is equivalent to ``b.z``.
 

+ 103 - 40
classes/class_bitmap.rst

@@ -14,112 +14,159 @@ BitMap
 
 Boolean matrix.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 A two-dimensional array of boolean values, can be used to efficiently store a binary matrix (every matrix element takes only one bit) and query the values using natural cartesian coordinates.
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Image<class_Image>`                             | :ref:`convert_to_image<class_BitMap_method_convert_to_image>` **(** **)** |const|                                                                                |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`create<class_BitMap_method_create>` **(** :ref:`Vector2i<class_Vector2i>` size **)**                                                                       |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`create_from_image_alpha<class_BitMap_method_create_from_image_alpha>` **(** :ref:`Image<class_Image>` image, :ref:`float<class_float>` threshold=0.1 **)** |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`get_bit<class_BitMap_method_get_bit>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                                 |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                               | :ref:`get_bitv<class_BitMap_method_get_bitv>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|                                                       |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                       | :ref:`get_size<class_BitMap_method_get_size>` **(** **)** |const|                                                                                                |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                 | :ref:`get_true_bit_count<class_BitMap_method_get_true_bit_count>` **(** **)** |const|                                                                            |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`grow_mask<class_BitMap_method_grow_mask>` **(** :ref:`int<class_int>` pixels, :ref:`Rect2i<class_Rect2i>` rect **)**                                       |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedVector2Array[]<class_PackedVector2Array>` | :ref:`opaque_to_polygons<class_BitMap_method_opaque_to_polygons>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|    |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`resize<class_BitMap_method_resize>` **(** :ref:`Vector2i<class_Vector2i>` new_size **)**                                                                   |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bit<class_BitMap_method_set_bit>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`bool<class_bool>` bit **)**                            |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bit_rect<class_BitMap_method_set_bit_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`bool<class_bool>` bit **)**                                  |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                  | :ref:`set_bitv<class_BitMap_method_set_bitv>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` bit **)**                                  |
-+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Image<class_Image>`                             | :ref:`convert_to_image<class_BitMap_method_convert_to_image>` **(** **)** |const|                                                                                |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`create<class_BitMap_method_create>` **(** :ref:`Vector2i<class_Vector2i>` size **)**                                                                       |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`create_from_image_alpha<class_BitMap_method_create_from_image_alpha>` **(** :ref:`Image<class_Image>` image, :ref:`float<class_float>` threshold=0.1 **)** |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`get_bit<class_BitMap_method_get_bit>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|                                                 |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`get_bitv<class_BitMap_method_get_bitv>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|                                                       |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2i<class_Vector2i>`                       | :ref:`get_size<class_BitMap_method_get_size>` **(** **)** |const|                                                                                                |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_true_bit_count<class_BitMap_method_get_true_bit_count>` **(** **)** |const|                                                                            |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`grow_mask<class_BitMap_method_grow_mask>` **(** :ref:`int<class_int>` pixels, :ref:`Rect2i<class_Rect2i>` rect **)**                                       |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array[]<class_PackedVector2Array>` | :ref:`opaque_to_polygons<class_BitMap_method_opaque_to_polygons>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|    |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`resize<class_BitMap_method_resize>` **(** :ref:`Vector2i<class_Vector2i>` new_size **)**                                                                   |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bit<class_BitMap_method_set_bit>` **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`bool<class_bool>` bit **)**                            |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bit_rect<class_BitMap_method_set_bit_rect>` **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`bool<class_bool>` bit **)**                                  |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                  | :ref:`set_bitv<class_BitMap_method_set_bitv>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` bit **)**                                  |
+   +-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_BitMap_method_convert_to_image:
 
-- :ref:`Image<class_Image>` **convert_to_image** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Image<class_Image>` **convert_to_image** **(** **)** |const|
 
 Returns an image of the same size as the bitmap and with a :ref:`Format<enum_Image_Format>` of type :ref:`Image.FORMAT_L8<class_Image_constant_FORMAT_L8>`. ``true`` bits of the bitmap are being converted into white pixels, and ``false`` bits into black.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_create:
 
-- void **create** **(** :ref:`Vector2i<class_Vector2i>` size **)**
+.. rst-class:: classref-method
+
+void **create** **(** :ref:`Vector2i<class_Vector2i>` size **)**
 
 Creates a bitmap with the specified size, filled with ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_create_from_image_alpha:
 
-- void **create_from_image_alpha** **(** :ref:`Image<class_Image>` image, :ref:`float<class_float>` threshold=0.1 **)**
+.. rst-class:: classref-method
+
+void **create_from_image_alpha** **(** :ref:`Image<class_Image>` image, :ref:`float<class_float>` threshold=0.1 **)**
 
 Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to ``false`` if the alpha value of the image at that position is equal to ``threshold`` or less, and ``true`` in other case.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_get_bit:
 
-- :ref:`bool<class_bool>` **get_bit** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_bit** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y **)** |const|
 
 Returns bitmap's value at the specified position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_get_bitv:
 
-- :ref:`bool<class_bool>` **get_bitv** **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_bitv** **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|
 
 Returns bitmap's value at the specified position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_get_size:
 
-- :ref:`Vector2i<class_Vector2i>` **get_size** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2i<class_Vector2i>` **get_size** **(** **)** |const|
 
 Returns bitmap's dimensions.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_get_true_bit_count:
 
-- :ref:`int<class_int>` **get_true_bit_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_true_bit_count** **(** **)** |const|
 
 Returns the number of bitmap elements that are set to ``true``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_grow_mask:
 
-- void **grow_mask** **(** :ref:`int<class_int>` pixels, :ref:`Rect2i<class_Rect2i>` rect **)**
+.. rst-class:: classref-method
+
+void **grow_mask** **(** :ref:`int<class_int>` pixels, :ref:`Rect2i<class_Rect2i>` rect **)**
 
 Applies morphological dilation or erosion to the bitmap. If ``pixels`` is positive, dilation is applied to the bitmap. If ``pixels`` is negative, erosion is applied to the bitmap. ``rect`` defines the area where the morphological operation is applied. Pixels located outside the ``rect`` are unaffected by :ref:`grow_mask<class_BitMap_method_grow_mask>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_opaque_to_polygons:
 
-- :ref:`PackedVector2Array[]<class_PackedVector2Array>` **opaque_to_polygons** **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PackedVector2Array[]<class_PackedVector2Array>` **opaque_to_polygons** **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|
 
 Creates an :ref:`Array<class_Array>` of polygons covering a rectangular portion of the bitmap. It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker (RDP) reduction of the number of vertices. Each polygon is described as a :ref:`PackedVector2Array<class_PackedVector2Array>` of its vertices.
 
@@ -131,35 +178,51 @@ To get polygons covering the whole bitmap, pass:
 
 \ ``epsilon`` is passed to RDP to control how accurately the polygons cover the bitmap: a lower ``epsilon`` corresponds to more points in the polygons.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_resize:
 
-- void **resize** **(** :ref:`Vector2i<class_Vector2i>` new_size **)**
+.. rst-class:: classref-method
+
+void **resize** **(** :ref:`Vector2i<class_Vector2i>` new_size **)**
 
 Resizes the image to ``new_size``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_set_bit:
 
-- void **set_bit** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`bool<class_bool>` bit **)**
+.. rst-class:: classref-method
+
+void **set_bit** **(** :ref:`int<class_int>` x, :ref:`int<class_int>` y, :ref:`bool<class_bool>` bit **)**
 
 Sets the bitmap's element at the specified position, to the specified value.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_set_bit_rect:
 
-- void **set_bit_rect** **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`bool<class_bool>` bit **)**
+.. rst-class:: classref-method
+
+void **set_bit_rect** **(** :ref:`Rect2i<class_Rect2i>` rect, :ref:`bool<class_bool>` bit **)**
 
 Sets a rectangular portion of the bitmap to the specified value.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_set_bitv:
 
-- void **set_bitv** **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` bit **)**
+.. rst-class:: classref-method
+
+void **set_bitv** **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` bit **)**
 
 Sets the bitmap's element at the specified position, to the specified value.
 

+ 110 - 45
classes/class_bone2d.rst

@@ -14,6 +14,8 @@ Bone2D
 
 Joint used with :ref:`Skeleton2D<class_Skeleton2D>` to control and animate other nodes.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -25,147 +27,210 @@ Each bone has a :ref:`rest<class_Bone2D_property_rest>` transform that you can r
 
 If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------+-----------------------------------------+-----------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`rest<class_Bone2D_property_rest>` | ``Transform2D(0, 0, 0, 0, 0, 0)`` |
-+---------------------------------------+-----------------------------------------+-----------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+-----------------------------------------+-----------------------------------+
+   | :ref:`Transform2D<class_Transform2D>` | :ref:`rest<class_Bone2D_property_rest>` | ``Transform2D(0, 0, 0, 0, 0, 0)`` |
+   +---------------------------------------+-----------------------------------------+-----------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`apply_rest<class_Bone2D_method_apply_rest>` **(** **)**                                                                                        |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`get_autocalculate_length_and_angle<class_Bone2D_method_get_autocalculate_length_and_angle>` **(** **)** |const|                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`             | :ref:`get_bone_angle<class_Bone2D_method_get_bone_angle>` **(** **)** |const|                                                                        |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`             | :ref:`get_default_length<class_Bone2D_method_get_default_length>` **(** **)** |const|                                                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                 | :ref:`get_index_in_skeleton<class_Bone2D_method_get_index_in_skeleton>` **(** **)** |const|                                                          |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`             | :ref:`get_length<class_Bone2D_method_get_length>` **(** **)** |const|                                                                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_skeleton_rest<class_Bone2D_method_get_skeleton_rest>` **(** **)** |const|                                                                  |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_autocalculate_length_and_angle<class_Bone2D_method_set_autocalculate_length_and_angle>` **(** :ref:`bool<class_bool>` auto_calculate **)** |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_bone_angle<class_Bone2D_method_set_bone_angle>` **(** :ref:`float<class_float>` angle **)**                                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_default_length<class_Bone2D_method_set_default_length>` **(** :ref:`float<class_float>` default_length **)**                               |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_length<class_Bone2D_method_set_length>` **(** :ref:`float<class_float>` length **)**                                                       |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`apply_rest<class_Bone2D_method_apply_rest>` **(** **)**                                                                                        |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`get_autocalculate_length_and_angle<class_Bone2D_method_get_autocalculate_length_and_angle>` **(** **)** |const|                                |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`             | :ref:`get_bone_angle<class_Bone2D_method_get_bone_angle>` **(** **)** |const|                                                                        |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`             | :ref:`get_default_length<class_Bone2D_method_get_default_length>` **(** **)** |const|                                                                |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                 | :ref:`get_index_in_skeleton<class_Bone2D_method_get_index_in_skeleton>` **(** **)** |const|                                                          |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`             | :ref:`get_length<class_Bone2D_method_get_length>` **(** **)** |const|                                                                                |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Transform2D<class_Transform2D>` | :ref:`get_skeleton_rest<class_Bone2D_method_get_skeleton_rest>` **(** **)** |const|                                                                  |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_autocalculate_length_and_angle<class_Bone2D_method_set_autocalculate_length_and_angle>` **(** :ref:`bool<class_bool>` auto_calculate **)** |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_bone_angle<class_Bone2D_method_set_bone_angle>` **(** :ref:`float<class_float>` angle **)**                                                |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_default_length<class_Bone2D_method_set_default_length>` **(** :ref:`float<class_float>` default_length **)**                               |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`set_length<class_Bone2D_method_set_length>` **(** :ref:`float<class_float>` length **)**                                                       |
+   +---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Bone2D_property_rest:
 
-- :ref:`Transform2D<class_Transform2D>` **rest**
+.. rst-class:: classref-property
+
+:ref:`Transform2D<class_Transform2D>` **rest** = ``Transform2D(0, 0, 0, 0, 0, 0)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------------+
-| *Default* | ``Transform2D(0, 0, 0, 0, 0, 0)`` |
-+-----------+-----------------------------------+
-| *Setter*  | set_rest(value)                   |
-+-----------+-----------------------------------+
-| *Getter*  | get_rest()                        |
-+-----------+-----------------------------------+
+- void **set_rest** **(** :ref:`Transform2D<class_Transform2D>` value **)**
+- :ref:`Transform2D<class_Transform2D>` **get_rest** **(** **)**
 
 Rest transform of the bone. You can reset the node's transforms to this value using :ref:`apply_rest<class_Bone2D_method_apply_rest>`.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Bone2D_method_apply_rest:
 
-- void **apply_rest** **(** **)**
+.. rst-class:: classref-method
+
+void **apply_rest** **(** **)**
 
 Stores the node's current transforms in :ref:`rest<class_Bone2D_property_rest>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_autocalculate_length_and_angle:
 
-- :ref:`bool<class_bool>` **get_autocalculate_length_and_angle** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_autocalculate_length_and_angle** **(** **)** |const|
 
 Returns whether this ``Bone2D`` node is going to autocalculate its length and bone angle using its first ``Bone2D`` child node, if one exists. If there are no ``Bone2D`` children, then it cannot autocalculate these values and will print a warning.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_bone_angle:
 
-- :ref:`float<class_float>` **get_bone_angle** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_bone_angle** **(** **)** |const|
 
 Returns the angle of the bone in the ``Bone2D`` node.
 
 \ **Note:** This is different from the ``Bone2D``'s rotation. The bone angle is the rotation of the bone shown by the ``Bone2D`` gizmo, and because ``Bone2D`` bones are based on positions, this can vary from the actual rotation of the ``Bone2D`` node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_default_length:
 
-- :ref:`float<class_float>` **get_default_length** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_default_length** **(** **)** |const|
 
 Deprecated. Please use  ``get_length`` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_index_in_skeleton:
 
-- :ref:`int<class_int>` **get_index_in_skeleton** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_index_in_skeleton** **(** **)** |const|
 
 Returns the node's index as part of the entire skeleton. See :ref:`Skeleton2D<class_Skeleton2D>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_length:
 
-- :ref:`float<class_float>` **get_length** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_length** **(** **)** |const|
 
 Returns the length of the bone in the ``Bone2D`` node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_get_skeleton_rest:
 
-- :ref:`Transform2D<class_Transform2D>` **get_skeleton_rest** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Transform2D<class_Transform2D>` **get_skeleton_rest** **(** **)** |const|
 
 Returns the node's :ref:`rest<class_Bone2D_property_rest>` ``Transform2D`` if it doesn't have a parent, or its rest pose relative to its parent.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_set_autocalculate_length_and_angle:
 
-- void **set_autocalculate_length_and_angle** **(** :ref:`bool<class_bool>` auto_calculate **)**
+.. rst-class:: classref-method
+
+void **set_autocalculate_length_and_angle** **(** :ref:`bool<class_bool>` auto_calculate **)**
 
 When set to ``true``, the ``Bone2D`` node will attempt to automatically calculate the bone angle and length using the first child ``Bone2D`` node, if one exists. If none exist, the ``Bone2D`` cannot automatically calculate these values and will print a warning.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_set_bone_angle:
 
-- void **set_bone_angle** **(** :ref:`float<class_float>` angle **)**
+.. rst-class:: classref-method
+
+void **set_bone_angle** **(** :ref:`float<class_float>` angle **)**
 
 Sets the bone angle for the ``Bone2D`` node. This is typically set to the rotation from the ``Bone2D`` node to a child ``Bone2D`` node.
 
 \ **Note:** This is different from the ``Bone2D``'s rotation. The bone angle is the rotation of the bone shown by the ``Bone2D`` gizmo, and because ``Bone2D`` bones are based on positions, this can vary from the actual rotation of the ``Bone2D`` node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_set_default_length:
 
-- void **set_default_length** **(** :ref:`float<class_float>` default_length **)**
+.. rst-class:: classref-method
+
+void **set_default_length** **(** :ref:`float<class_float>` default_length **)**
 
 Deprecated. Please use ``set_length`` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_method_set_length:
 
-- void **set_length** **(** :ref:`float<class_float>` length **)**
+.. rst-class:: classref-method
+
+void **set_length** **(** :ref:`float<class_float>` length **)**
 
 Sets the length of the bone in the ``Bone2D`` node.
 

+ 107 - 49
classes/class_boneattachment3d.rst

@@ -14,6 +14,8 @@ BoneAttachment3D
 
 A node that will attach to a bone.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,145 +23,201 @@ This node will allow you to select a bone for this node to attach to. The BoneAt
 
 The BoneAttachment3D node must either be a child of a :ref:`Skeleton3D<class_Skeleton3D>` node or be given an external :ref:`Skeleton3D<class_Skeleton3D>` to use in order to function properly.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+-------------------------------------------------------------+--------+
-| :ref:`int<class_int>`       | :ref:`bone_idx<class_BoneAttachment3D_property_bone_idx>`   | ``-1`` |
-+-----------------------------+-------------------------------------------------------------+--------+
-| :ref:`String<class_String>` | :ref:`bone_name<class_BoneAttachment3D_property_bone_name>` | ``""`` |
-+-----------------------------+-------------------------------------------------------------+--------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+-------------------------------------------------------------+--------+
+   | :ref:`int<class_int>`       | :ref:`bone_idx<class_BoneAttachment3D_property_bone_idx>`   | ``-1`` |
+   +-----------------------------+-------------------------------------------------------------+--------+
+   | :ref:`String<class_String>` | :ref:`bone_name<class_BoneAttachment3D_property_bone_name>` | ``""`` |
+   +-----------------------------+-------------------------------------------------------------+--------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`NodePath<class_NodePath>` | :ref:`get_external_skeleton<class_BoneAttachment3D_method_get_external_skeleton>` **(** **)** |const|                                               |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_override_mode<class_BoneAttachment3D_method_get_override_mode>` **(** **)** |const|                                                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`get_override_pose<class_BoneAttachment3D_method_get_override_pose>` **(** **)** |const|                                                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`get_use_external_skeleton<class_BoneAttachment3D_method_get_use_external_skeleton>` **(** **)** |const|                                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`on_bone_pose_update<class_BoneAttachment3D_method_on_bone_pose_update>` **(** :ref:`int<class_int>` bone_index **)**                          |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_external_skeleton<class_BoneAttachment3D_method_set_external_skeleton>` **(** :ref:`NodePath<class_NodePath>` external_skeleton **)**     |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_override_mode<class_BoneAttachment3D_method_set_override_mode>` **(** :ref:`int<class_int>` override_mode **)**                           |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_override_pose<class_BoneAttachment3D_method_set_override_pose>` **(** :ref:`bool<class_bool>` override_pose **)**                         |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_use_external_skeleton<class_BoneAttachment3D_method_set_use_external_skeleton>` **(** :ref:`bool<class_bool>` use_external_skeleton **)** |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`NodePath<class_NodePath>` | :ref:`get_external_skeleton<class_BoneAttachment3D_method_get_external_skeleton>` **(** **)** |const|                                               |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`           | :ref:`get_override_mode<class_BoneAttachment3D_method_get_override_mode>` **(** **)** |const|                                                       |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`         | :ref:`get_override_pose<class_BoneAttachment3D_method_get_override_pose>` **(** **)** |const|                                                       |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`         | :ref:`get_use_external_skeleton<class_BoneAttachment3D_method_get_use_external_skeleton>` **(** **)** |const|                                       |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`on_bone_pose_update<class_BoneAttachment3D_method_on_bone_pose_update>` **(** :ref:`int<class_int>` bone_index **)**                          |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`set_external_skeleton<class_BoneAttachment3D_method_set_external_skeleton>` **(** :ref:`NodePath<class_NodePath>` external_skeleton **)**     |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`set_override_mode<class_BoneAttachment3D_method_set_override_mode>` **(** :ref:`int<class_int>` override_mode **)**                           |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`set_override_pose<class_BoneAttachment3D_method_set_override_pose>` **(** :ref:`bool<class_bool>` override_pose **)**                         |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`set_use_external_skeleton<class_BoneAttachment3D_method_set_use_external_skeleton>` **(** :ref:`bool<class_bool>` use_external_skeleton **)** |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoneAttachment3D_property_bone_idx:
 
-- :ref:`int<class_int>` **bone_idx**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **bone_idx** = ``-1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``-1``              |
-+-----------+---------------------+
-| *Setter*  | set_bone_idx(value) |
-+-----------+---------------------+
-| *Getter*  | get_bone_idx()      |
-+-----------+---------------------+
+- void **set_bone_idx** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_bone_idx** **(** **)**
 
 The index of the attached bone.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_property_bone_name:
 
-- :ref:`String<class_String>` **bone_name**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **bone_name** = ``""``
 
-+-----------+----------------------+
-| *Default* | ``""``               |
-+-----------+----------------------+
-| *Setter*  | set_bone_name(value) |
-+-----------+----------------------+
-| *Getter*  | get_bone_name()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bone_name** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_bone_name** **(** **)**
 
 The name of the attached bone.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_BoneAttachment3D_method_get_external_skeleton:
 
-- :ref:`NodePath<class_NodePath>` **get_external_skeleton** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`NodePath<class_NodePath>` **get_external_skeleton** **(** **)** |const|
 
 Returns the :ref:`NodePath<class_NodePath>` to the external :ref:`Skeleton3D<class_Skeleton3D>` node, if one has been set.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_get_override_mode:
 
-- :ref:`int<class_int>` **get_override_mode** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_override_mode** **(** **)** |const|
 
 Deprecated. Local pose overrides will be removed.
 
 Returns the override mode for the BoneAttachment3D node (0=global / 1=local).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_get_override_pose:
 
-- :ref:`bool<class_bool>` **get_override_pose** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_override_pose** **(** **)** |const|
 
 Returns whether the BoneAttachment3D node is overriding the bone pose of the bone it's attached to.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_get_use_external_skeleton:
 
-- :ref:`bool<class_bool>` **get_use_external_skeleton** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_use_external_skeleton** **(** **)** |const|
 
 Returns whether the BoneAttachment3D node is using an external :ref:`Skeleton3D<class_Skeleton3D>` rather than attempting to use its parent node as the :ref:`Skeleton3D<class_Skeleton3D>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_on_bone_pose_update:
 
-- void **on_bone_pose_update** **(** :ref:`int<class_int>` bone_index **)**
+.. rst-class:: classref-method
+
+void **on_bone_pose_update** **(** :ref:`int<class_int>` bone_index **)**
 
 A function that is called automatically when the :ref:`Skeleton3D<class_Skeleton3D>` the BoneAttachment3D node is using has a bone that has changed its pose. This function is where the BoneAttachment3D node updates its position so it is correctly bound when it is *not* set to override the bone pose.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_set_external_skeleton:
 
-- void **set_external_skeleton** **(** :ref:`NodePath<class_NodePath>` external_skeleton **)**
+.. rst-class:: classref-method
+
+void **set_external_skeleton** **(** :ref:`NodePath<class_NodePath>` external_skeleton **)**
 
 Sets the :ref:`NodePath<class_NodePath>` to the external skeleton that the BoneAttachment3D node should use. The external :ref:`Skeleton3D<class_Skeleton3D>` node is only used when ``use_external_skeleton`` is set to ``true``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_set_override_mode:
 
-- void **set_override_mode** **(** :ref:`int<class_int>` override_mode **)**
+.. rst-class:: classref-method
+
+void **set_override_mode** **(** :ref:`int<class_int>` override_mode **)**
 
 Deprecated. Local pose overrides will be removed.
 
 Sets the override mode for the BoneAttachment3D node (0=global / 1=local). The override mode defines which of the bone poses the BoneAttachment3D node will override.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_set_override_pose:
 
-- void **set_override_pose** **(** :ref:`bool<class_bool>` override_pose **)**
+.. rst-class:: classref-method
+
+void **set_override_pose** **(** :ref:`bool<class_bool>` override_pose **)**
 
 Sets whether the BoneAttachment3D node will override the bone pose of the bone it is attached to. When set to ``true``, the BoneAttachment3D node can change the pose of the bone.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneAttachment3D_method_set_use_external_skeleton:
 
-- void **set_use_external_skeleton** **(** :ref:`bool<class_bool>` use_external_skeleton **)**
+.. rst-class:: classref-method
+
+void **set_use_external_skeleton** **(** :ref:`bool<class_bool>` use_external_skeleton **)**
 
 Sets whether the BoneAttachment3D node will use an extenral :ref:`Skeleton3D<class_Skeleton3D>` node rather than attenpting to use its parent node as the :ref:`Skeleton3D<class_Skeleton3D>`. When set to ``true``, the BoneAttachment3D node will use the external :ref:`Skeleton3D<class_Skeleton3D>` node set in ``set_external_skeleton``.
 

+ 73 - 24
classes/class_bonemap.rst

@@ -14,6 +14,8 @@ BoneMap
 
 Bone map for retargeting.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,87 +23,134 @@ This class contains a hashmap that uses a list of bone names in :ref:`SkeletonPr
 
 By assigning the actual :ref:`Skeleton3D<class_Skeleton3D>` bone name as the key value, it maps the :ref:`Skeleton3D<class_Skeleton3D>` to the :ref:`SkeletonProfile<class_SkeletonProfile>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`Retargeting 3D Skeletons <../tutorials/assets_pipeline/retargeting_3d_skeletons>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------------+------------------------------------------------+
-| :ref:`SkeletonProfile<class_SkeletonProfile>` | :ref:`profile<class_BoneMap_property_profile>` |
-+-----------------------------------------------+------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+------------------------------------------------+
+   | :ref:`SkeletonProfile<class_SkeletonProfile>` | :ref:`profile<class_BoneMap_property_profile>` |
+   +-----------------------------------------------+------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>` | :ref:`find_profile_bone_name<class_BoneMap_method_find_profile_bone_name>` **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|                                                |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>` | :ref:`get_skeleton_bone_name<class_BoneMap_method_get_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|                                                 |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`set_skeleton_bone_name<class_BoneMap_method_set_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)** |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>` | :ref:`find_profile_bone_name<class_BoneMap_method_find_profile_bone_name>` **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|                                                |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`StringName<class_StringName>` | :ref:`get_skeleton_bone_name<class_BoneMap_method_get_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|                                                 |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`set_skeleton_bone_name<class_BoneMap_method_set_skeleton_bone_name>` **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)** |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_BoneMap_signal_bone_map_updated:
 
-- **bone_map_updated** **(** **)**
+.. rst-class:: classref-signal
+
+**bone_map_updated** **(** **)**
 
-This signal is emitted when change the key value in the ``BoneMap``. This is used to validate mapping and to update ``BoneMap`` editor.
+This signal is emitted when change the key value in the **BoneMap**. This is used to validate mapping and to update **BoneMap** editor.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_BoneMap_signal_profile_updated:
 
-- **profile_updated** **(** **)**
+.. rst-class:: classref-signal
+
+**profile_updated** **(** **)**
+
+This signal is emitted when change the value in profile or change the reference of profile. This is used to update key names in the **BoneMap** and to redraw the **BoneMap** editor.
 
-This signal is emitted when change the value in profile or change the reference of profile. This is used to update key names in the ``BoneMap`` and to redraw the ``BoneMap`` editor.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoneMap_property_profile:
 
-- :ref:`SkeletonProfile<class_SkeletonProfile>` **profile**
+.. rst-class:: classref-property
+
+:ref:`SkeletonProfile<class_SkeletonProfile>` **profile**
+
+.. rst-class:: classref-property-setget
+
+- void **set_profile** **(** :ref:`SkeletonProfile<class_SkeletonProfile>` value **)**
+- :ref:`SkeletonProfile<class_SkeletonProfile>` **get_profile** **(** **)**
+
+A :ref:`SkeletonProfile<class_SkeletonProfile>` of the mapping target. Key names in the **BoneMap** are synchronized with it.
 
-+----------+--------------------+
-| *Setter* | set_profile(value) |
-+----------+--------------------+
-| *Getter* | get_profile()      |
-+----------+--------------------+
+.. rst-class:: classref-section-separator
 
-A :ref:`SkeletonProfile<class_SkeletonProfile>` of the mapping target. Key names in the ``BoneMap`` are synchronized with it.
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_BoneMap_method_find_profile_bone_name:
 
-- :ref:`StringName<class_StringName>` **find_profile_bone_name** **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **find_profile_bone_name** **(** :ref:`StringName<class_StringName>` skeleton_bone_name **)** |const|
 
 Returns a profile bone name having ``skeleton_bone_name``. If not found, an empty :ref:`StringName<class_StringName>` will be returned.
 
 In the retargeting process, the returned bone name is the bone name of the target skeleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneMap_method_get_skeleton_bone_name:
 
-- :ref:`StringName<class_StringName>` **get_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`StringName<class_StringName>` **get_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name **)** |const|
 
 Returns a skeleton bone name is mapped to ``profile_bone_name``.
 
 In the retargeting process, the returned bone name is the bone name of the source skeleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoneMap_method_set_skeleton_bone_name:
 
-- void **set_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)**
+.. rst-class:: classref-method
+
+void **set_skeleton_bone_name** **(** :ref:`StringName<class_StringName>` profile_bone_name, :ref:`StringName<class_StringName>` skeleton_bone_name **)**
 
 Maps a skeleton bone name to ``profile_bone_name``.
 

+ 80 - 28
classes/class_bool.rst

@@ -12,6 +12,8 @@ bool
 
 Boolean built-in type.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -119,89 +121,139 @@ The following code will set ``can_shoot`` to ``false`` and start a timer. This w
 
 
 
+.. rst-class:: classref-reftable-group
+
 Constructors
 ------------
 
-+-------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** **)**                                |
-+-------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`bool<class_bool>` from **)**   |
-+-------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`float<class_float>` from **)** |
-+-------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`int<class_int>` from **)**     |
-+-------------------------+-------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** **)**                                |
+   +-------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`bool<class_bool>` from **)**   |
+   +-------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`float<class_float>` from **)** |
+   +-------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>` **(** :ref:`int<class_int>` from **)**     |
+   +-------------------------+-------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Operators
 ---------
 
-+-------------------------+--------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator !=<class_bool_operator_neq_bool>` **(** :ref:`bool<class_bool>` right **)** |
-+-------------------------+--------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator \<<class_bool_operator_lt_bool>` **(** :ref:`bool<class_bool>` right **)**  |
-+-------------------------+--------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator ==<class_bool_operator_eq_bool>` **(** :ref:`bool<class_bool>` right **)**  |
-+-------------------------+--------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`operator ><class_bool_operator_gt_bool>` **(** :ref:`bool<class_bool>` right **)**   |
-+-------------------------+--------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+--------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator !=<class_bool_operator_neq_bool>` **(** :ref:`bool<class_bool>` right **)** |
+   +-------------------------+--------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator \<<class_bool_operator_lt_bool>` **(** :ref:`bool<class_bool>` right **)**  |
+   +-------------------------+--------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator ==<class_bool_operator_eq_bool>` **(** :ref:`bool<class_bool>` right **)**  |
+   +-------------------------+--------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`operator ><class_bool_operator_gt_bool>` **(** :ref:`bool<class_bool>` right **)**   |
+   +-------------------------+--------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Constructor Descriptions
 ------------------------
 
 .. _class_bool_constructor_bool:
 
-- :ref:`bool<class_bool>` **bool** **(** **)**
+.. rst-class:: classref-constructor
+
+:ref:`bool<class_bool>` **bool** **(** **)**
+
+Constructs a default-initialized **bool** set to ``false``.
 
-Constructs a default-initialized ``bool`` set to ``false``.
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`bool<class_bool>` **bool** **(** :ref:`bool<class_bool>` from **)**
+.. rst-class:: classref-constructor
 
-Constructs a ``bool`` as a copy of the given ``bool``.
+:ref:`bool<class_bool>` **bool** **(** :ref:`bool<class_bool>` from **)**
+
+Constructs a **bool** as a copy of the given **bool**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
-- :ref:`bool<class_bool>` **bool** **(** :ref:`float<class_float>` from **)**
+.. rst-class:: classref-constructor
+
+:ref:`bool<class_bool>` **bool** **(** :ref:`float<class_float>` from **)**
 
 Cast a :ref:`float<class_float>` value to a boolean value, this method will return ``false`` if ``0.0`` is passed in, and ``true`` for all other floats.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`bool<class_bool>` **bool** **(** :ref:`int<class_int>` from **)**
+.. rst-class:: classref-constructor
+
+:ref:`bool<class_bool>` **bool** **(** :ref:`int<class_int>` from **)**
 
 Cast an :ref:`int<class_int>` value to a boolean value, this method will return ``false`` if ``0`` is passed in, and ``true`` for all other ints.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Operator Descriptions
 ---------------------
 
 .. _class_bool_operator_neq_bool:
 
-- :ref:`bool<class_bool>` **operator !=** **(** :ref:`bool<class_bool>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`bool<class_bool>` **operator !=** **(** :ref:`bool<class_bool>` right **)**
 
 Returns ``true`` if two bools are different, i.e. one is ``true`` and the other is ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_bool_operator_lt_bool:
 
-- :ref:`bool<class_bool>` **operator <** **(** :ref:`bool<class_bool>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`bool<class_bool>` **operator <** **(** :ref:`bool<class_bool>` right **)**
 
 Returns ``true`` if the left operand is ``false`` and the right operand is ``true``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_bool_operator_eq_bool:
 
-- :ref:`bool<class_bool>` **operator ==** **(** :ref:`bool<class_bool>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`bool<class_bool>` **operator ==** **(** :ref:`bool<class_bool>` right **)**
 
 Returns ``true`` if two bools are equal, i.e. both are ``true`` or both are ``false``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_bool_operator_gt_bool:
 
-- :ref:`bool<class_bool>` **operator >** **(** :ref:`bool<class_bool>` right **)**
+.. rst-class:: classref-operator
+
+:ref:`bool<class_bool>` **operator >** **(** :ref:`bool<class_bool>` right **)**
 
 Returns ``true`` if the left operand is ``true`` and the right operand is ``false``.
 

+ 95 - 38
classes/class_boxcontainer.rst

@@ -16,114 +16,171 @@ BoxContainer
 
 Base class for box containers.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Arranges child :ref:`Control<class_Control>` nodes vertically or horizontally, and rearranges them automatically when their minimum size changes.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`GUI containers <../tutorials/ui/gui_containers>`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------------------+---------------------------------------------------------+-----------+
-| :ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` | :ref:`alignment<class_BoxContainer_property_alignment>` | ``0``     |
-+-------------------------------------------------------+---------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                               | :ref:`vertical<class_BoxContainer_property_vertical>`   | ``false`` |
-+-------------------------------------------------------+---------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------------+---------------------------------------------------------+-----------+
+   | :ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` | :ref:`alignment<class_BoxContainer_property_alignment>` | ``0``     |
+   +-------------------------------------------------------+---------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                               | :ref:`vertical<class_BoxContainer_property_vertical>`   | ``false`` |
+   +-------------------------------------------------------+---------------------------------------------------------+-----------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+---------------------------------------------------------------------------------------------------+
-| :ref:`Control<class_Control>` | :ref:`add_spacer<class_BoxContainer_method_add_spacer>` **(** :ref:`bool<class_bool>` begin **)** |
-+-------------------------------+---------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+---------------------------------------------------------------------------------------------------+
+   | :ref:`Control<class_Control>` | :ref:`add_spacer<class_BoxContainer_method_add_spacer>` **(** :ref:`bool<class_bool>` begin **)** |
+   +-------------------------------+---------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Theme Properties
 ----------------
 
-+-----------------------+-----------------------------------------------------------------+-------+
-| :ref:`int<class_int>` | :ref:`separation<class_BoxContainer_theme_constant_separation>` | ``4`` |
-+-----------------------+-----------------------------------------------------------------+-------+
+.. table::
+   :widths: auto
+
+   +-----------------------+-----------------------------------------------------------------+-------+
+   | :ref:`int<class_int>` | :ref:`separation<class_BoxContainer_theme_constant_separation>` | ``4`` |
+   +-----------------------+-----------------------------------------------------------------+-------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_BoxContainer_AlignmentMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AlignmentMode**:
+
 .. _class_BoxContainer_constant_ALIGNMENT_BEGIN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **ALIGNMENT_BEGIN** = ``0``
+
+The child controls will be arranged at the beginning of the container, i.e. top if orientation is vertical, left if orientation is horizontal (right for RTL layout).
+
 .. _class_BoxContainer_constant_ALIGNMENT_CENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **ALIGNMENT_CENTER** = ``1``
+
+The child controls will be centered in the container.
+
 .. _class_BoxContainer_constant_ALIGNMENT_END:
 
-enum **AlignmentMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **ALIGNMENT_END** = ``2``
 
-- **ALIGNMENT_BEGIN** = **0** --- The child controls will be arranged at the beginning of the container, i.e. top if orientation is vertical, left if orientation is horizontal (right for RTL layout).
+The child controls will be arranged at the end of the container, i.e. bottom if orientation is vertical, right if orientation is horizontal (left for RTL layout).
 
-- **ALIGNMENT_CENTER** = **1** --- The child controls will be centered in the container.
+.. rst-class:: classref-section-separator
+
+----
 
-- **ALIGNMENT_END** = **2** --- The child controls will be arranged at the end of the container, i.e. bottom if orientation is vertical, right if orientation is horizontal (left for RTL layout).
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoxContainer_property_alignment:
 
-- :ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **alignment**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``0``                |
-+-----------+----------------------+
-| *Setter*  | set_alignment(value) |
-+-----------+----------------------+
-| *Getter*  | get_alignment()      |
-+-----------+----------------------+
+:ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **alignment** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_alignment** **(** :ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` value **)**
+- :ref:`AlignmentMode<enum_BoxContainer_AlignmentMode>` **get_alignment** **(** **)**
 
 The alignment of the container's children (must be one of :ref:`ALIGNMENT_BEGIN<class_BoxContainer_constant_ALIGNMENT_BEGIN>`, :ref:`ALIGNMENT_CENTER<class_BoxContainer_constant_ALIGNMENT_CENTER>`, or :ref:`ALIGNMENT_END<class_BoxContainer_constant_ALIGNMENT_END>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoxContainer_property_vertical:
 
-- :ref:`bool<class_bool>` **vertical**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **vertical** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_vertical(value) |
-+-----------+---------------------+
-| *Getter*  | is_vertical()       |
-+-----------+---------------------+
+- void **set_vertical** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_vertical** **(** **)**
 
-If ``true``, the ``BoxContainer`` will arrange its children vertically, rather than horizontally.
+If ``true``, the **BoxContainer** will arrange its children vertically, rather than horizontally.
 
 Can't be changed when using :ref:`HBoxContainer<class_HBoxContainer>` and :ref:`VBoxContainer<class_VBoxContainer>`.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_BoxContainer_method_add_spacer:
 
-- :ref:`Control<class_Control>` **add_spacer** **(** :ref:`bool<class_bool>` begin **)**
+.. rst-class:: classref-method
+
+:ref:`Control<class_Control>` **add_spacer** **(** :ref:`bool<class_bool>` begin **)**
 
 Adds a :ref:`Control<class_Control>` node to the box as a spacer. If ``begin`` is ``true``, it will insert the :ref:`Control<class_Control>` node in front of all other children.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Theme Property Descriptions
 ---------------------------
 
 .. _class_BoxContainer_theme_constant_separation:
 
-- :ref:`int<class_int>` **separation**
+.. rst-class:: classref-themeproperty
 
-+-----------+-------+
-| *Default* | ``4`` |
-+-----------+-------+
+:ref:`int<class_int>` **separation** = ``4``
 
-The space between the ``BoxContainer``'s elements, in pixels.
+The space between the **BoxContainer**'s elements, in pixels.
 
 .. |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.)`

+ 57 - 42
classes/class_boxmesh.rst

@@ -14,6 +14,8 @@ BoxMesh
 
 Generate an axis-aligned box :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,83 +23,96 @@ Generate an axis-aligned box :ref:`PrimitiveMesh<class_PrimitiveMesh>`.
 
 The box's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to ``Vector3(3, 2, 1)``.
 
-\ **Note:** When using a large textured ``BoxMesh`` (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase :ref:`subdivide_depth<class_BoxMesh_property_subdivide_depth>`, :ref:`subdivide_height<class_BoxMesh_property_subdivide_height>` and :ref:`subdivide_width<class_BoxMesh_property_subdivide_width>` until you no longer notice UV jittering.
+\ **Note:** When using a large textured **BoxMesh** (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase :ref:`subdivide_depth<class_BoxMesh_property_subdivide_depth>`, :ref:`subdivide_height<class_BoxMesh_property_subdivide_height>` and :ref:`subdivide_width<class_BoxMesh_property_subdivide_width>` until you no longer notice UV jittering.
+
+.. rst-class:: classref-reftable-group
 
 Properties
 ----------
 
-+-------------------------------+------------------------------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxMesh_property_size>`                         | ``Vector3(1, 1, 1)`` |
-+-------------------------------+------------------------------------------------------------------+----------------------+
-| :ref:`int<class_int>`         | :ref:`subdivide_depth<class_BoxMesh_property_subdivide_depth>`   | ``0``                |
-+-------------------------------+------------------------------------------------------------------+----------------------+
-| :ref:`int<class_int>`         | :ref:`subdivide_height<class_BoxMesh_property_subdivide_height>` | ``0``                |
-+-------------------------------+------------------------------------------------------------------+----------------------+
-| :ref:`int<class_int>`         | :ref:`subdivide_width<class_BoxMesh_property_subdivide_width>`   | ``0``                |
-+-------------------------------+------------------------------------------------------------------+----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+------------------------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxMesh_property_size>`                         | ``Vector3(1, 1, 1)`` |
+   +-------------------------------+------------------------------------------------------------------+----------------------+
+   | :ref:`int<class_int>`         | :ref:`subdivide_depth<class_BoxMesh_property_subdivide_depth>`   | ``0``                |
+   +-------------------------------+------------------------------------------------------------------+----------------------+
+   | :ref:`int<class_int>`         | :ref:`subdivide_height<class_BoxMesh_property_subdivide_height>` | ``0``                |
+   +-------------------------------+------------------------------------------------------------------+----------------------+
+   | :ref:`int<class_int>`         | :ref:`subdivide_width<class_BoxMesh_property_subdivide_width>`   | ``0``                |
+   +-------------------------------+------------------------------------------------------------------+----------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoxMesh_property_size:
 
-- :ref:`Vector3<class_Vector3>` **size**
+.. rst-class:: classref-property
+
+:ref:`Vector3<class_Vector3>` **size** = ``Vector3(1, 1, 1)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``Vector3(1, 1, 1)`` |
-+-----------+----------------------+
-| *Setter*  | set_size(value)      |
-+-----------+----------------------+
-| *Getter*  | get_size()           |
-+-----------+----------------------+
+- void **set_size** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_size** **(** **)**
 
 The box's width, height and depth.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoxMesh_property_subdivide_depth:
 
-- :ref:`int<class_int>` **subdivide_depth**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **subdivide_depth** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``0``                      |
-+-----------+----------------------------+
-| *Setter*  | set_subdivide_depth(value) |
-+-----------+----------------------------+
-| *Getter*  | get_subdivide_depth()      |
-+-----------+----------------------------+
+- void **set_subdivide_depth** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_subdivide_depth** **(** **)**
 
 Number of extra edge loops inserted along the Z axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoxMesh_property_subdivide_height:
 
-- :ref:`int<class_int>` **subdivide_height**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **subdivide_height** = ``0``
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_subdivide_height(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_subdivide_height()      |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_subdivide_height** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_subdivide_height** **(** **)**
 
 Number of extra edge loops inserted along the Y axis.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BoxMesh_property_subdivide_width:
 
-- :ref:`int<class_int>` **subdivide_width**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **subdivide_width** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``0``                      |
-+-----------+----------------------------+
-| *Setter*  | set_subdivide_width(value) |
-+-----------+----------------------------+
-| *Getter*  | get_subdivide_width()      |
-+-----------+----------------------------+
+- void **set_subdivide_width** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_subdivide_width** **(** **)**
 
 Number of extra edge loops inserted along the X axis.
 

+ 24 - 12
classes/class_boxoccluder3d.rst

@@ -14,34 +14,46 @@ BoxOccluder3D
 
 Cuboid shape for use with occlusion culling in :ref:`OccluderInstance3D<class_OccluderInstance3D>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``BoxOccluder3D`` stores a cuboid shape that can be used by the engine's occlusion culling system.
+**BoxOccluder3D** stores a cuboid shape that can be used by the engine's occlusion culling system.
 
 See :ref:`OccluderInstance3D<class_OccluderInstance3D>`'s documentation for instructions on setting up occlusion culling.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------+------------------------------------------------+----------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxOccluder3D_property_size>` | ``Vector3(1, 1, 1)`` |
-+-------------------------------+------------------------------------------------+----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`size<class_BoxOccluder3D_property_size>` | ``Vector3(1, 1, 1)`` |
+   +-------------------------------+------------------------------------------------+----------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoxOccluder3D_property_size:
 
-- :ref:`Vector3<class_Vector3>` **size**
+.. rst-class:: classref-property
+
+:ref:`Vector3<class_Vector3>` **size** = ``Vector3(1, 1, 1)``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``Vector3(1, 1, 1)`` |
-+-----------+----------------------+
-| *Setter*  | set_size(value)      |
-+-----------+----------------------+
-| *Getter*  | get_size()           |
-+-----------+----------------------+
+- void **set_size** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_size** **(** **)**
 
 The box's size in 3D units.
 

Vissa filer visades inte eftersom för många filer har ändrats