Kaynağa Gözat

classref: Sync with current 3.5 branch (fc32e06)

Godot Organization 1 yıl önce
ebeveyn
işleme
2ff57f2967
100 değiştirilmiş dosya ile 14897 ekleme ve 6771 silme
  1. 398 229
      classes/[email protected]
  2. 3605 1207
      classes/[email protected]
  3. 236 117
      classes/class_aabb.rst
  4. 114 54
      classes/class_acceptdialog.rst
  5. 75 19
      classes/class_aescontext.rst
  6. 153 99
      classes/class_animatedsprite.rst
  7. 99 47
      classes/class_animatedsprite3d.rst
  8. 121 67
      classes/class_animatedtexture.rst
  9. 565 227
      classes/class_animation.rst
  10. 205 71
      classes/class_animationnode.rst
  11. 26 11
      classes/class_animationnodeadd2.rst
  12. 26 11
      classes/class_animationnodeadd3.rst
  13. 26 11
      classes/class_animationnodeanimation.rst
  14. 26 11
      classes/class_animationnodeblend2.rst
  15. 26 11
      classes/class_animationnodeblend3.rst
  16. 118 63
      classes/class_animationnodeblendspace1d.rst
  17. 212 110
      classes/class_animationnodeblendspace2d.rst
  18. 135 45
      classes/class_animationnodeblendtree.rst
  19. 127 74
      classes/class_animationnodeoneshot.rst
  20. 3 0
      classes/class_animationnodeoutput.rst
  21. 176 70
      classes/class_animationnodestatemachine.rst
  22. 83 28
      classes/class_animationnodestatemachineplayback.rst
  23. 114 66
      classes/class_animationnodestatemachinetransition.rst
  24. 5 0
      classes/class_animationnodetimescale.rst
  25. 5 0
      classes/class_animationnodetimeseek.rst
  26. 91 34
      classes/class_animationnodetransition.rst
  27. 377 192
      classes/class_animationplayer.rst
  28. 3 0
      classes/class_animationrootnode.rst
  29. 3 0
      classes/class_animationtrackeditplugin.rst
  30. 133 67
      classes/class_animationtree.rst
  31. 500 226
      classes/class_animationtreeplayer.rst
  32. 310 189
      classes/class_area.rst
  33. 264 149
      classes/class_area2d.rst
  34. 295 123
      classes/class_array.rst
  35. 315 112
      classes/class_arraymesh.rst
  36. 79 29
      classes/class_arvranchor.rst
  37. 5 0
      classes/class_arvrcamera.rst
  38. 115 46
      classes/class_arvrcontroller.rst
  39. 199 73
      classes/class_arvrinterface.rst
  40. 3 0
      classes/class_arvrinterfacegdnative.rst
  41. 26 11
      classes/class_arvrorigin.rst
  42. 137 49
      classes/class_arvrpositionaltracker.rst
  43. 253 90
      classes/class_arvrserver.rst
  44. 109 51
      classes/class_aspectratiocontainer.rst
  45. 188 76
      classes/class_astar.rst
  46. 188 76
      classes/class_astar2d.rst
  47. 60 42
      classes/class_atlastexture.rst
  48. 3 0
      classes/class_audiobuslayout.rst
  49. 5 0
      classes/class_audioeffect.rst
  50. 24 11
      classes/class_audioeffectamplify.rst
  51. 3 0
      classes/class_audioeffectbandlimitfilter.rst
  52. 3 0
      classes/class_audioeffectbandpassfilter.rst
  53. 85 33
      classes/class_audioeffectcapture.rst
  54. 452 284
      classes/class_audioeffectchorus.rst
  55. 90 71
      classes/class_audioeffectcompressor.rst
  56. 156 131
      classes/class_audioeffectdelay.rst
  57. 104 57
      classes/class_audioeffectdistortion.rst
  58. 34 10
      classes/class_audioeffecteq.rst
  59. 3 0
      classes/class_audioeffecteq10.rst
  60. 3 0
      classes/class_audioeffecteq21.rst
  61. 3 0
      classes/class_audioeffecteq6.rst
  62. 92 46
      classes/class_audioeffectfilter.rst
  63. 3 0
      classes/class_audioeffecthighpassfilter.rst
  64. 3 0
      classes/class_audioeffecthighshelffilter.rst
  65. 3 0
      classes/class_audioeffectinstance.rst
  66. 61 41
      classes/class_audioeffectlimiter.rst
  67. 3 0
      classes/class_audioeffectlowpassfilter.rst
  68. 3 0
      classes/class_audioeffectlowshelffilter.rst
  69. 3 0
      classes/class_audioeffectnotchfilter.rst
  70. 24 11
      classes/class_audioeffectpanner.rst
  71. 68 51
      classes/class_audioeffectphaser.rst
  72. 86 39
      classes/class_audioeffectpitchshift.rst
  73. 57 21
      classes/class_audioeffectrecord.rst
  74. 103 81
      classes/class_audioeffectreverb.rst
  75. 92 39
      classes/class_audioeffectspectrumanalyzer.rst
  76. 43 7
      classes/class_audioeffectspectrumanalyzerinstance.rst
  77. 58 31
      classes/class_audioeffectstereoenhance.rst
  78. 375 164
      classes/class_audioserver.rst
  79. 23 5
      classes/class_audiostream.rst
  80. 37 21
      classes/class_audiostreamgenerator.rst
  81. 61 19
      classes/class_audiostreamgeneratorplayback.rst
  82. 6 1
      classes/class_audiostreammicrophone.rst
  83. 46 31
      classes/class_audiostreammp3.rst
  84. 46 31
      classes/class_audiostreamoggvorbis.rst
  85. 5 0
      classes/class_audiostreamplayback.rst
  86. 3 0
      classes/class_audiostreamplaybackresampled.rst
  87. 182 100
      classes/class_audiostreamplayer.rst
  88. 180 116
      classes/class_audiostreamplayer2d.rst
  89. 344 219
      classes/class_audiostreamplayer3d.rst
  90. 35 19
      classes/class_audiostreamrandompitch.rst
  91. 156 84
      classes/class_audiostreamsample.rst
  92. 62 28
      classes/class_backbuffercopy.rst
  93. 393 247
      classes/class_bakedlightmap.rst
  94. 171 80
      classes/class_bakedlightmapdata.rst
  95. 244 129
      classes/class_basebutton.rst
  96. 217 88
      classes/class_basis.rst
  97. 94 34
      classes/class_bitmap.rst
  98. 125 66
      classes/class_bitmapfont.rst
  99. 66 31
      classes/class_bone2d.rst
  100. 24 11
      classes/class_boneattachment.rst

Dosya farkı çok büyük olduğundan ihmal edildi
+ 398 - 229
classes/[email protected]


+ 3605 - 1207
classes/[email protected]

@@ -12,6 +12,8 @@
 
 Global scope constants and variables.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -19,2620 +21,5016 @@ Global scope constants and variables. This is all that resides in the globals, c
 
 Singletons are also documented here, since they can be accessed from anywhere.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`ARVRServer<class_ARVRServer>`                           | :ref:`ARVRServer<class_@GlobalScope_property_ARVRServer>`                           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`AudioServer<class_AudioServer>`                         | :ref:`AudioServer<class_@GlobalScope_property_AudioServer>`                         |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`CameraServer<class_CameraServer>`                       | :ref:`CameraServer<class_@GlobalScope_property_CameraServer>`                       |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`ClassDB<class_ClassDB>`                                 | :ref:`ClassDB<class_@GlobalScope_property_ClassDB>`                                 |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Engine<class_Engine>`                                   | :ref:`Engine<class_@GlobalScope_property_Engine>`                                   |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Geometry<class_Geometry>`                               | :ref:`Geometry<class_@GlobalScope_property_Geometry>`                               |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`IP<class_IP>`                                           | :ref:`IP<class_@GlobalScope_property_IP>`                                           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Input<class_Input>`                                     | :ref:`Input<class_@GlobalScope_property_Input>`                                     |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`InputMap<class_InputMap>`                               | :ref:`InputMap<class_@GlobalScope_property_InputMap>`                               |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`JSON<class_JSON>`                                       | :ref:`JSON<class_@GlobalScope_property_JSON>`                                       |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`JavaClassWrapper<class_JavaClassWrapper>`               | :ref:`JavaClassWrapper<class_@GlobalScope_property_JavaClassWrapper>`               |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`JavaScript<class_JavaScript>`                           | :ref:`JavaScript<class_@GlobalScope_property_JavaScript>`                           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Marshalls<class_Marshalls>`                             | :ref:`Marshalls<class_@GlobalScope_property_Marshalls>`                             |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Navigation2DServer<class_Navigation2DServer>`           | :ref:`Navigation2DServer<class_@GlobalScope_property_Navigation2DServer>`           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`NavigationMeshGenerator<class_NavigationMeshGenerator>` | :ref:`NavigationMeshGenerator<class_@GlobalScope_property_NavigationMeshGenerator>` |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`NavigationServer<class_NavigationServer>`               | :ref:`NavigationServer<class_@GlobalScope_property_NavigationServer>`               |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`OS<class_OS>`                                           | :ref:`OS<class_@GlobalScope_property_OS>`                                           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Performance<class_Performance>`                         | :ref:`Performance<class_@GlobalScope_property_Performance>`                         |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Physics2DServer<class_Physics2DServer>`                 | :ref:`Physics2DServer<class_@GlobalScope_property_Physics2DServer>`                 |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`PhysicsServer<class_PhysicsServer>`                     | :ref:`PhysicsServer<class_@GlobalScope_property_PhysicsServer>`                     |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`ProjectSettings<class_ProjectSettings>`                 | :ref:`ProjectSettings<class_@GlobalScope_property_ProjectSettings>`                 |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`ResourceLoader<class_ResourceLoader>`                   | :ref:`ResourceLoader<class_@GlobalScope_property_ResourceLoader>`                   |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`ResourceSaver<class_ResourceSaver>`                     | :ref:`ResourceSaver<class_@GlobalScope_property_ResourceSaver>`                     |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Time<class_Time>`                                       | :ref:`Time<class_@GlobalScope_property_Time>`                                       |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`TranslationServer<class_TranslationServer>`             | :ref:`TranslationServer<class_@GlobalScope_property_TranslationServer>`             |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`VisualScriptEditor<class_VisualScriptEditor>`           | :ref:`VisualScriptEditor<class_@GlobalScope_property_VisualScriptEditor>`           |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`VisualServer<class_VisualServer>`                       | :ref:`VisualServer<class_@GlobalScope_property_VisualServer>`                       |
-+---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`ARVRServer<class_ARVRServer>`                           | :ref:`ARVRServer<class_@GlobalScope_property_ARVRServer>`                           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`AudioServer<class_AudioServer>`                         | :ref:`AudioServer<class_@GlobalScope_property_AudioServer>`                         |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`CameraServer<class_CameraServer>`                       | :ref:`CameraServer<class_@GlobalScope_property_CameraServer>`                       |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`ClassDB<class_ClassDB>`                                 | :ref:`ClassDB<class_@GlobalScope_property_ClassDB>`                                 |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Engine<class_Engine>`                                   | :ref:`Engine<class_@GlobalScope_property_Engine>`                                   |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Geometry<class_Geometry>`                               | :ref:`Geometry<class_@GlobalScope_property_Geometry>`                               |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`IP<class_IP>`                                           | :ref:`IP<class_@GlobalScope_property_IP>`                                           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Input<class_Input>`                                     | :ref:`Input<class_@GlobalScope_property_Input>`                                     |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`InputMap<class_InputMap>`                               | :ref:`InputMap<class_@GlobalScope_property_InputMap>`                               |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`JSON<class_JSON>`                                       | :ref:`JSON<class_@GlobalScope_property_JSON>`                                       |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`JavaClassWrapper<class_JavaClassWrapper>`               | :ref:`JavaClassWrapper<class_@GlobalScope_property_JavaClassWrapper>`               |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`JavaScript<class_JavaScript>`                           | :ref:`JavaScript<class_@GlobalScope_property_JavaScript>`                           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Marshalls<class_Marshalls>`                             | :ref:`Marshalls<class_@GlobalScope_property_Marshalls>`                             |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Navigation2DServer<class_Navigation2DServer>`           | :ref:`Navigation2DServer<class_@GlobalScope_property_Navigation2DServer>`           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`NavigationMeshGenerator<class_NavigationMeshGenerator>` | :ref:`NavigationMeshGenerator<class_@GlobalScope_property_NavigationMeshGenerator>` |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`NavigationServer<class_NavigationServer>`               | :ref:`NavigationServer<class_@GlobalScope_property_NavigationServer>`               |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`OS<class_OS>`                                           | :ref:`OS<class_@GlobalScope_property_OS>`                                           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Performance<class_Performance>`                         | :ref:`Performance<class_@GlobalScope_property_Performance>`                         |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Physics2DServer<class_Physics2DServer>`                 | :ref:`Physics2DServer<class_@GlobalScope_property_Physics2DServer>`                 |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`PhysicsServer<class_PhysicsServer>`                     | :ref:`PhysicsServer<class_@GlobalScope_property_PhysicsServer>`                     |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`ProjectSettings<class_ProjectSettings>`                 | :ref:`ProjectSettings<class_@GlobalScope_property_ProjectSettings>`                 |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`ResourceLoader<class_ResourceLoader>`                   | :ref:`ResourceLoader<class_@GlobalScope_property_ResourceLoader>`                   |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`ResourceSaver<class_ResourceSaver>`                     | :ref:`ResourceSaver<class_@GlobalScope_property_ResourceSaver>`                     |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Time<class_Time>`                                       | :ref:`Time<class_@GlobalScope_property_Time>`                                       |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`TranslationServer<class_TranslationServer>`             | :ref:`TranslationServer<class_@GlobalScope_property_TranslationServer>`             |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`VisualScriptEditor<class_VisualScriptEditor>`           | :ref:`VisualScriptEditor<class_@GlobalScope_property_VisualScriptEditor>`           |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`VisualServer<class_VisualServer>`                       | :ref:`VisualServer<class_@GlobalScope_property_VisualServer>`                       |
+   +---------------------------------------------------------------+-------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_@GlobalScope_Margin:
 
+.. rst-class:: classref-enumeration
+
+enum **Margin**:
+
 .. _class_@GlobalScope_constant_MARGIN_LEFT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Margin<enum_@GlobalScope_Margin>` **MARGIN_LEFT** = ``0``
+
+Left margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+
 .. _class_@GlobalScope_constant_MARGIN_TOP:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Margin<enum_@GlobalScope_Margin>` **MARGIN_TOP** = ``1``
+
+Top margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+
 .. _class_@GlobalScope_constant_MARGIN_RIGHT:
 
-.. _class_@GlobalScope_constant_MARGIN_BOTTOM:
+.. rst-class:: classref-enumeration-constant
 
-enum **Margin**:
+:ref:`Margin<enum_@GlobalScope_Margin>` **MARGIN_RIGHT** = ``2``
 
-- **MARGIN_LEFT** = **0** --- Left margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+Right margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
 
-- **MARGIN_TOP** = **1** --- Top margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+.. _class_@GlobalScope_constant_MARGIN_BOTTOM:
+
+.. rst-class:: classref-enumeration-constant
 
-- **MARGIN_RIGHT** = **2** --- Right margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+:ref:`Margin<enum_@GlobalScope_Margin>` **MARGIN_BOTTOM** = ``3``
 
-- **MARGIN_BOTTOM** = **3** --- Bottom margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+Bottom margin, usually used for :ref:`Control<class_Control>` or :ref:`StyleBox<class_StyleBox>`-derived classes.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_@GlobalScope_Corner:
 
+.. rst-class:: classref-enumeration
+
+enum **Corner**:
+
 .. _class_@GlobalScope_constant_CORNER_TOP_LEFT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Corner<enum_@GlobalScope_Corner>` **CORNER_TOP_LEFT** = ``0``
+
+Top-left corner.
+
 .. _class_@GlobalScope_constant_CORNER_TOP_RIGHT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Corner<enum_@GlobalScope_Corner>` **CORNER_TOP_RIGHT** = ``1``
+
+Top-right corner.
+
 .. _class_@GlobalScope_constant_CORNER_BOTTOM_RIGHT:
 
-.. _class_@GlobalScope_constant_CORNER_BOTTOM_LEFT:
+.. rst-class:: classref-enumeration-constant
 
-enum **Corner**:
+:ref:`Corner<enum_@GlobalScope_Corner>` **CORNER_BOTTOM_RIGHT** = ``2``
+
+Bottom-right corner.
+
+.. _class_@GlobalScope_constant_CORNER_BOTTOM_LEFT:
 
-- **CORNER_TOP_LEFT** = **0** --- Top-left corner.
+.. rst-class:: classref-enumeration-constant
 
-- **CORNER_TOP_RIGHT** = **1** --- Top-right corner.
+:ref:`Corner<enum_@GlobalScope_Corner>` **CORNER_BOTTOM_LEFT** = ``3``
 
-- **CORNER_BOTTOM_RIGHT** = **2** --- Bottom-right corner.
+Bottom-left corner.
 
-- **CORNER_BOTTOM_LEFT** = **3** --- Bottom-left corner.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_@GlobalScope_Orientation:
 
+.. rst-class:: classref-enumeration
+
+enum **Orientation**:
+
 .. _class_@GlobalScope_constant_VERTICAL:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Orientation<enum_@GlobalScope_Orientation>` **VERTICAL** = ``1``
+
+General vertical alignment, usually used for :ref:`Separator<class_Separator>`, :ref:`ScrollBar<class_ScrollBar>`, :ref:`Slider<class_Slider>`, etc.
+
 .. _class_@GlobalScope_constant_HORIZONTAL:
 
-enum **Orientation**:
+.. rst-class:: classref-enumeration-constant
 
-- **VERTICAL** = **1** --- General vertical alignment, usually used for :ref:`Separator<class_Separator>`, :ref:`ScrollBar<class_ScrollBar>`, :ref:`Slider<class_Slider>`, etc.
+:ref:`Orientation<enum_@GlobalScope_Orientation>` **HORIZONTAL** = ``0``
 
-- **HORIZONTAL** = **0** --- General horizontal alignment, usually used for :ref:`Separator<class_Separator>`, :ref:`ScrollBar<class_ScrollBar>`, :ref:`Slider<class_Slider>`, etc.
+General horizontal alignment, usually used for :ref:`Separator<class_Separator>`, :ref:`ScrollBar<class_ScrollBar>`, :ref:`Slider<class_Slider>`, etc.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_@GlobalScope_HAlign:
 
+.. rst-class:: classref-enumeration
+
+enum **HAlign**:
+
 .. _class_@GlobalScope_constant_HALIGN_LEFT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HAlign<enum_@GlobalScope_HAlign>` **HALIGN_LEFT** = ``0``
+
+Horizontal left alignment, usually for text-derived classes.
+
 .. _class_@GlobalScope_constant_HALIGN_CENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HAlign<enum_@GlobalScope_HAlign>` **HALIGN_CENTER** = ``1``
+
+Horizontal center alignment, usually for text-derived classes.
+
 .. _class_@GlobalScope_constant_HALIGN_RIGHT:
 
-enum **HAlign**:
+.. rst-class:: classref-enumeration-constant
 
-- **HALIGN_LEFT** = **0** --- Horizontal left alignment, usually for text-derived classes.
+:ref:`HAlign<enum_@GlobalScope_HAlign>` **HALIGN_RIGHT** = ``2``
 
-- **HALIGN_CENTER** = **1** --- Horizontal center alignment, usually for text-derived classes.
+Horizontal right alignment, usually for text-derived classes.
 
-- **HALIGN_RIGHT** = **2** --- Horizontal right alignment, usually for text-derived classes.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_@GlobalScope_VAlign:
 
+.. rst-class:: classref-enumeration
+
+enum **VAlign**:
+
 .. _class_@GlobalScope_constant_VALIGN_TOP:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`VAlign<enum_@GlobalScope_VAlign>` **VALIGN_TOP** = ``0``
+
+Vertical top alignment, usually for text-derived classes.
+
 .. _class_@GlobalScope_constant_VALIGN_CENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`VAlign<enum_@GlobalScope_VAlign>` **VALIGN_CENTER** = ``1``
+
+Vertical center alignment, usually for text-derived classes.
+
 .. _class_@GlobalScope_constant_VALIGN_BOTTOM:
 
-enum **VAlign**:
+.. rst-class:: classref-enumeration-constant
 
-- **VALIGN_TOP** = **0** --- Vertical top alignment, usually for text-derived classes.
+:ref:`VAlign<enum_@GlobalScope_VAlign>` **VALIGN_BOTTOM** = ``2``
 
-- **VALIGN_CENTER** = **1** --- Vertical center alignment, usually for text-derived classes.
+Vertical bottom alignment, usually for text-derived classes.
 
-- **VALIGN_BOTTOM** = **2** --- Vertical bottom alignment, usually for text-derived classes.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_@GlobalScope_KeyList:
 
+.. rst-class:: classref-enumeration
+
+enum **KeyList**:
+
 .. _class_@GlobalScope_constant_KEY_ESCAPE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ESCAPE** = ``16777217``
+
+Escape key.
+
 .. _class_@GlobalScope_constant_KEY_TAB:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_TAB** = ``16777218``
+
+Tab key.
+
 .. _class_@GlobalScope_constant_KEY_BACKTAB:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BACKTAB** = ``16777219``
+
+Shift+Tab key.
+
 .. _class_@GlobalScope_constant_KEY_BACKSPACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BACKSPACE** = ``16777220``
+
+Backspace key.
+
 .. _class_@GlobalScope_constant_KEY_ENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ENTER** = ``16777221``
+
+Return key (on the main keyboard).
+
 .. _class_@GlobalScope_constant_KEY_KP_ENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_ENTER** = ``16777222``
+
+Enter key on the numeric keypad.
+
 .. _class_@GlobalScope_constant_KEY_INSERT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_INSERT** = ``16777223``
+
+Insert key.
+
 .. _class_@GlobalScope_constant_KEY_DELETE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DELETE** = ``16777224``
+
+Delete key.
+
 .. _class_@GlobalScope_constant_KEY_PAUSE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PAUSE** = ``16777225``
+
+Pause key.
+
 .. _class_@GlobalScope_constant_KEY_PRINT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PRINT** = ``16777226``
+
+Print Screen key.
+
 .. _class_@GlobalScope_constant_KEY_SYSREQ:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SYSREQ** = ``16777227``
+
+System Request key.
+
 .. _class_@GlobalScope_constant_KEY_CLEAR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CLEAR** = ``16777228``
+
+Clear key.
+
 .. _class_@GlobalScope_constant_KEY_HOME:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HOME** = ``16777229``
+
+Home key.
+
 .. _class_@GlobalScope_constant_KEY_END:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_END** = ``16777230``
+
+End key.
+
 .. _class_@GlobalScope_constant_KEY_LEFT:
 
-.. _class_@GlobalScope_constant_KEY_UP:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_RIGHT:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LEFT** = ``16777231``
 
-.. _class_@GlobalScope_constant_KEY_DOWN:
+Left arrow key.
 
-.. _class_@GlobalScope_constant_KEY_PAGEUP:
+.. _class_@GlobalScope_constant_KEY_UP:
 
-.. _class_@GlobalScope_constant_KEY_PAGEDOWN:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_SHIFT:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UP** = ``16777232``
 
-.. _class_@GlobalScope_constant_KEY_CONTROL:
+Up arrow key.
 
-.. _class_@GlobalScope_constant_KEY_META:
+.. _class_@GlobalScope_constant_KEY_RIGHT:
 
-.. _class_@GlobalScope_constant_KEY_ALT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_CAPSLOCK:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_RIGHT** = ``16777233``
 
-.. _class_@GlobalScope_constant_KEY_NUMLOCK:
+Right arrow key.
 
-.. _class_@GlobalScope_constant_KEY_SCROLLLOCK:
+.. _class_@GlobalScope_constant_KEY_DOWN:
 
-.. _class_@GlobalScope_constant_KEY_F1:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_F2:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DOWN** = ``16777234``
 
-.. _class_@GlobalScope_constant_KEY_F3:
+Down arrow key.
 
-.. _class_@GlobalScope_constant_KEY_F4:
+.. _class_@GlobalScope_constant_KEY_PAGEUP:
 
-.. _class_@GlobalScope_constant_KEY_F5:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_F6:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PAGEUP** = ``16777235``
 
-.. _class_@GlobalScope_constant_KEY_F7:
+Page Up key.
 
-.. _class_@GlobalScope_constant_KEY_F8:
+.. _class_@GlobalScope_constant_KEY_PAGEDOWN:
 
-.. _class_@GlobalScope_constant_KEY_F9:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_F10:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PAGEDOWN** = ``16777236``
 
-.. _class_@GlobalScope_constant_KEY_F11:
+Page Down key.
 
-.. _class_@GlobalScope_constant_KEY_F12:
+.. _class_@GlobalScope_constant_KEY_SHIFT:
 
-.. _class_@GlobalScope_constant_KEY_F13:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_F14:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SHIFT** = ``16777237``
 
-.. _class_@GlobalScope_constant_KEY_F15:
+Shift key.
 
-.. _class_@GlobalScope_constant_KEY_F16:
+.. _class_@GlobalScope_constant_KEY_CONTROL:
 
-.. _class_@GlobalScope_constant_KEY_KP_MULTIPLY:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_KP_DIVIDE:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CONTROL** = ``16777238``
 
-.. _class_@GlobalScope_constant_KEY_KP_SUBTRACT:
+Control key.
 
-.. _class_@GlobalScope_constant_KEY_KP_PERIOD:
+.. _class_@GlobalScope_constant_KEY_META:
 
-.. _class_@GlobalScope_constant_KEY_KP_ADD:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_KP_0:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_META** = ``16777239``
 
-.. _class_@GlobalScope_constant_KEY_KP_1:
+Meta key.
 
-.. _class_@GlobalScope_constant_KEY_KP_2:
+.. _class_@GlobalScope_constant_KEY_ALT:
 
-.. _class_@GlobalScope_constant_KEY_KP_3:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_KP_4:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ALT** = ``16777240``
 
-.. _class_@GlobalScope_constant_KEY_KP_5:
+Alt key.
 
-.. _class_@GlobalScope_constant_KEY_KP_6:
+.. _class_@GlobalScope_constant_KEY_CAPSLOCK:
 
-.. _class_@GlobalScope_constant_KEY_KP_7:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_KP_8:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CAPSLOCK** = ``16777241``
 
-.. _class_@GlobalScope_constant_KEY_KP_9:
+Caps Lock key.
 
-.. _class_@GlobalScope_constant_KEY_SUPER_L:
+.. _class_@GlobalScope_constant_KEY_NUMLOCK:
 
-.. _class_@GlobalScope_constant_KEY_SUPER_R:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MENU:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_NUMLOCK** = ``16777242``
 
-.. _class_@GlobalScope_constant_KEY_HYPER_L:
+Num Lock key.
 
-.. _class_@GlobalScope_constant_KEY_HYPER_R:
+.. _class_@GlobalScope_constant_KEY_SCROLLLOCK:
 
-.. _class_@GlobalScope_constant_KEY_HELP:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_DIRECTION_L:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SCROLLLOCK** = ``16777243``
 
-.. _class_@GlobalScope_constant_KEY_DIRECTION_R:
+Scroll Lock key.
 
-.. _class_@GlobalScope_constant_KEY_BACK:
+.. _class_@GlobalScope_constant_KEY_F1:
 
-.. _class_@GlobalScope_constant_KEY_FORWARD:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_STOP:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F1** = ``16777244``
 
-.. _class_@GlobalScope_constant_KEY_REFRESH:
+F1 key.
 
-.. _class_@GlobalScope_constant_KEY_VOLUMEDOWN:
+.. _class_@GlobalScope_constant_KEY_F2:
 
-.. _class_@GlobalScope_constant_KEY_VOLUMEMUTE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_VOLUMEUP:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F2** = ``16777245``
 
-.. _class_@GlobalScope_constant_KEY_BASSBOOST:
+F2 key.
 
-.. _class_@GlobalScope_constant_KEY_BASSUP:
+.. _class_@GlobalScope_constant_KEY_F3:
 
-.. _class_@GlobalScope_constant_KEY_BASSDOWN:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_TREBLEUP:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F3** = ``16777246``
 
-.. _class_@GlobalScope_constant_KEY_TREBLEDOWN:
+F3 key.
 
-.. _class_@GlobalScope_constant_KEY_MEDIAPLAY:
+.. _class_@GlobalScope_constant_KEY_F4:
 
-.. _class_@GlobalScope_constant_KEY_MEDIASTOP:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MEDIAPREVIOUS:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F4** = ``16777247``
 
-.. _class_@GlobalScope_constant_KEY_MEDIANEXT:
+F4 key.
 
-.. _class_@GlobalScope_constant_KEY_MEDIARECORD:
+.. _class_@GlobalScope_constant_KEY_F5:
 
-.. _class_@GlobalScope_constant_KEY_HOMEPAGE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_FAVORITES:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F5** = ``16777248``
 
-.. _class_@GlobalScope_constant_KEY_SEARCH:
+F5 key.
 
-.. _class_@GlobalScope_constant_KEY_STANDBY:
+.. _class_@GlobalScope_constant_KEY_F6:
 
-.. _class_@GlobalScope_constant_KEY_OPENURL:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHMAIL:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F6** = ``16777249``
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHMEDIA:
+F6 key.
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH0:
+.. _class_@GlobalScope_constant_KEY_F7:
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH1:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH2:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F7** = ``16777250``
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH3:
+F7 key.
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH4:
+.. _class_@GlobalScope_constant_KEY_F8:
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH5:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH6:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F8** = ``16777251``
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH7:
+F8 key.
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH8:
+.. _class_@GlobalScope_constant_KEY_F9:
 
-.. _class_@GlobalScope_constant_KEY_LAUNCH9:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHA:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F9** = ``16777252``
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHB:
+F9 key.
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHC:
+.. _class_@GlobalScope_constant_KEY_F10:
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHD:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHE:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F10** = ``16777253``
 
-.. _class_@GlobalScope_constant_KEY_LAUNCHF:
+F10 key.
 
-.. _class_@GlobalScope_constant_KEY_UNKNOWN:
+.. _class_@GlobalScope_constant_KEY_F11:
 
-.. _class_@GlobalScope_constant_KEY_SPACE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_EXCLAM:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F11** = ``16777254``
 
-.. _class_@GlobalScope_constant_KEY_QUOTEDBL:
+F11 key.
 
-.. _class_@GlobalScope_constant_KEY_NUMBERSIGN:
+.. _class_@GlobalScope_constant_KEY_F12:
 
-.. _class_@GlobalScope_constant_KEY_DOLLAR:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_PERCENT:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F12** = ``16777255``
 
-.. _class_@GlobalScope_constant_KEY_AMPERSAND:
+F12 key.
 
-.. _class_@GlobalScope_constant_KEY_APOSTROPHE:
+.. _class_@GlobalScope_constant_KEY_F13:
 
-.. _class_@GlobalScope_constant_KEY_PARENLEFT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_PARENRIGHT:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F13** = ``16777256``
 
-.. _class_@GlobalScope_constant_KEY_ASTERISK:
+F13 key.
 
-.. _class_@GlobalScope_constant_KEY_PLUS:
+.. _class_@GlobalScope_constant_KEY_F14:
 
-.. _class_@GlobalScope_constant_KEY_COMMA:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MINUS:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F14** = ``16777257``
 
-.. _class_@GlobalScope_constant_KEY_PERIOD:
+F14 key.
 
-.. _class_@GlobalScope_constant_KEY_SLASH:
+.. _class_@GlobalScope_constant_KEY_F15:
 
-.. _class_@GlobalScope_constant_KEY_0:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_1:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F15** = ``16777258``
 
-.. _class_@GlobalScope_constant_KEY_2:
+F15 key.
 
-.. _class_@GlobalScope_constant_KEY_3:
+.. _class_@GlobalScope_constant_KEY_F16:
 
-.. _class_@GlobalScope_constant_KEY_4:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_5:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F16** = ``16777259``
 
-.. _class_@GlobalScope_constant_KEY_6:
+F16 key.
 
-.. _class_@GlobalScope_constant_KEY_7:
+.. _class_@GlobalScope_constant_KEY_KP_MULTIPLY:
 
-.. _class_@GlobalScope_constant_KEY_8:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_9:
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_MULTIPLY** = ``16777345``
 
-.. _class_@GlobalScope_constant_KEY_COLON:
+Multiply (\*) key on the numeric keypad.
 
-.. _class_@GlobalScope_constant_KEY_SEMICOLON:
+.. _class_@GlobalScope_constant_KEY_KP_DIVIDE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_DIVIDE** = ``16777346``
+
+Divide (/) key on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_SUBTRACT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_SUBTRACT** = ``16777347``
+
+Subtract (-) key on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_PERIOD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_PERIOD** = ``16777348``
+
+Period (.) key on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_ADD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_ADD** = ``16777349``
+
+Add (+) key on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_0:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_0** = ``16777350``
+
+Number 0 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_1** = ``16777351``
+
+Number 1 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_2** = ``16777352``
+
+Number 2 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_3:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_3** = ``16777353``
+
+Number 3 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_4:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_4** = ``16777354``
+
+Number 4 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_5:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_5** = ``16777355``
+
+Number 5 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_6:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_6** = ``16777356``
+
+Number 6 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_7:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_7** = ``16777357``
+
+Number 7 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_8:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_8** = ``16777358``
+
+Number 8 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_KP_9:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_KP_9** = ``16777359``
+
+Number 9 on the numeric keypad.
+
+.. _class_@GlobalScope_constant_KEY_SUPER_L:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SUPER_L** = ``16777260``
+
+Left Super key (Windows key).
+
+.. _class_@GlobalScope_constant_KEY_SUPER_R:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SUPER_R** = ``16777261``
+
+Right Super key (Windows key).
+
+.. _class_@GlobalScope_constant_KEY_MENU:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MENU** = ``16777262``
+
+Context menu key.
+
+.. _class_@GlobalScope_constant_KEY_HYPER_L:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HYPER_L** = ``16777263``
+
+Left Hyper key.
+
+.. _class_@GlobalScope_constant_KEY_HYPER_R:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HYPER_R** = ``16777264``
+
+Right Hyper key.
+
+.. _class_@GlobalScope_constant_KEY_HELP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HELP** = ``16777265``
+
+Help key.
+
+.. _class_@GlobalScope_constant_KEY_DIRECTION_L:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DIRECTION_L** = ``16777266``
+
+Left Direction key.
+
+.. _class_@GlobalScope_constant_KEY_DIRECTION_R:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DIRECTION_R** = ``16777267``
+
+Right Direction key.
+
+.. _class_@GlobalScope_constant_KEY_BACK:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BACK** = ``16777280``
+
+Media back key. Not to be confused with the Back button on an Android device.
+
+.. _class_@GlobalScope_constant_KEY_FORWARD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_FORWARD** = ``16777281``
+
+Media forward key.
+
+.. _class_@GlobalScope_constant_KEY_STOP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_STOP** = ``16777282``
+
+Media stop key.
+
+.. _class_@GlobalScope_constant_KEY_REFRESH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_REFRESH** = ``16777283``
+
+Media refresh key.
+
+.. _class_@GlobalScope_constant_KEY_VOLUMEDOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_VOLUMEDOWN** = ``16777284``
+
+Volume down key.
+
+.. _class_@GlobalScope_constant_KEY_VOLUMEMUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_VOLUMEMUTE** = ``16777285``
+
+Mute volume key.
+
+.. _class_@GlobalScope_constant_KEY_VOLUMEUP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_VOLUMEUP** = ``16777286``
+
+Volume up key.
+
+.. _class_@GlobalScope_constant_KEY_BASSBOOST:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BASSBOOST** = ``16777287``
+
+Bass Boost key.
+
+.. _class_@GlobalScope_constant_KEY_BASSUP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BASSUP** = ``16777288``
+
+Bass up key.
+
+.. _class_@GlobalScope_constant_KEY_BASSDOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BASSDOWN** = ``16777289``
+
+Bass down key.
+
+.. _class_@GlobalScope_constant_KEY_TREBLEUP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_TREBLEUP** = ``16777290``
+
+Treble up key.
+
+.. _class_@GlobalScope_constant_KEY_TREBLEDOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_TREBLEDOWN** = ``16777291``
+
+Treble down key.
+
+.. _class_@GlobalScope_constant_KEY_MEDIAPLAY:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MEDIAPLAY** = ``16777292``
+
+Media play key.
+
+.. _class_@GlobalScope_constant_KEY_MEDIASTOP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MEDIASTOP** = ``16777293``
+
+Media stop key.
+
+.. _class_@GlobalScope_constant_KEY_MEDIAPREVIOUS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MEDIAPREVIOUS** = ``16777294``
+
+Previous song key.
+
+.. _class_@GlobalScope_constant_KEY_MEDIANEXT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MEDIANEXT** = ``16777295``
+
+Next song key.
+
+.. _class_@GlobalScope_constant_KEY_MEDIARECORD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MEDIARECORD** = ``16777296``
+
+Media record key.
+
+.. _class_@GlobalScope_constant_KEY_HOMEPAGE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HOMEPAGE** = ``16777297``
+
+Home page key.
+
+.. _class_@GlobalScope_constant_KEY_FAVORITES:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_FAVORITES** = ``16777298``
+
+Favorites key.
+
+.. _class_@GlobalScope_constant_KEY_SEARCH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SEARCH** = ``16777299``
+
+Search key.
+
+.. _class_@GlobalScope_constant_KEY_STANDBY:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_STANDBY** = ``16777300``
+
+Standby key.
+
+.. _class_@GlobalScope_constant_KEY_OPENURL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OPENURL** = ``16777301``
+
+Open URL / Launch Browser key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHMAIL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHMAIL** = ``16777302``
+
+Launch Mail key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHMEDIA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHMEDIA** = ``16777303``
+
+Launch Media key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH0:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH0** = ``16777304``
+
+Launch Shortcut 0 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH1** = ``16777305``
+
+Launch Shortcut 1 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH2** = ``16777306``
+
+Launch Shortcut 2 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH3:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH3** = ``16777307``
+
+Launch Shortcut 3 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH4:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH4** = ``16777308``
+
+Launch Shortcut 4 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH5:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH5** = ``16777309``
+
+Launch Shortcut 5 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH6:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH6** = ``16777310``
+
+Launch Shortcut 6 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH7:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH7** = ``16777311``
+
+Launch Shortcut 7 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH8:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH8** = ``16777312``
+
+Launch Shortcut 8 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCH9:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCH9** = ``16777313``
+
+Launch Shortcut 9 key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHA** = ``16777314``
+
+Launch Shortcut A key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHB:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHB** = ``16777315``
+
+Launch Shortcut B key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHC:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHC** = ``16777316``
+
+Launch Shortcut C key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHD** = ``16777317``
+
+Launch Shortcut D key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHE** = ``16777318``
+
+Launch Shortcut E key.
+
+.. _class_@GlobalScope_constant_KEY_LAUNCHF:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LAUNCHF** = ``16777319``
+
+Launch Shortcut F key.
+
+.. _class_@GlobalScope_constant_KEY_UNKNOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UNKNOWN** = ``33554431``
+
+Unknown key.
+
+.. _class_@GlobalScope_constant_KEY_SPACE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SPACE** = ``32``
+
+Space key.
+
+.. _class_@GlobalScope_constant_KEY_EXCLAM:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EXCLAM** = ``33``
+
+! key.
+
+.. _class_@GlobalScope_constant_KEY_QUOTEDBL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_QUOTEDBL** = ``34``
+
+" key.
+
+.. _class_@GlobalScope_constant_KEY_NUMBERSIGN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_NUMBERSIGN** = ``35``
+
+# key.
+
+.. _class_@GlobalScope_constant_KEY_DOLLAR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DOLLAR** = ``36``
+
+$ key.
+
+.. _class_@GlobalScope_constant_KEY_PERCENT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PERCENT** = ``37``
+
+% key.
+
+.. _class_@GlobalScope_constant_KEY_AMPERSAND:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_AMPERSAND** = ``38``
+
+& key.
+
+.. _class_@GlobalScope_constant_KEY_APOSTROPHE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_APOSTROPHE** = ``39``
+
+' key.
+
+.. _class_@GlobalScope_constant_KEY_PARENLEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PARENLEFT** = ``40``
+
+( key.
+
+.. _class_@GlobalScope_constant_KEY_PARENRIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PARENRIGHT** = ``41``
+
+) key.
+
+.. _class_@GlobalScope_constant_KEY_ASTERISK:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ASTERISK** = ``42``
+
+\* key.
+
+.. _class_@GlobalScope_constant_KEY_PLUS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PLUS** = ``43``
+
++ key.
+
+.. _class_@GlobalScope_constant_KEY_COMMA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_COMMA** = ``44``
+
+, key.
+
+.. _class_@GlobalScope_constant_KEY_MINUS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MINUS** = ``45``
+
+- key.
+
+.. _class_@GlobalScope_constant_KEY_PERIOD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PERIOD** = ``46``
+
+. key.
+
+.. _class_@GlobalScope_constant_KEY_SLASH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SLASH** = ``47``
+
+/ key.
+
+.. _class_@GlobalScope_constant_KEY_0:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_0** = ``48``
+
+Number 0.
+
+.. _class_@GlobalScope_constant_KEY_1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_1** = ``49``
+
+Number 1.
+
+.. _class_@GlobalScope_constant_KEY_2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_2** = ``50``
+
+Number 2.
+
+.. _class_@GlobalScope_constant_KEY_3:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_3** = ``51``
+
+Number 3.
+
+.. _class_@GlobalScope_constant_KEY_4:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_4** = ``52``
+
+Number 4.
+
+.. _class_@GlobalScope_constant_KEY_5:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_5** = ``53``
+
+Number 5.
+
+.. _class_@GlobalScope_constant_KEY_6:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_6** = ``54``
+
+Number 6.
+
+.. _class_@GlobalScope_constant_KEY_7:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_7** = ``55``
+
+Number 7.
+
+.. _class_@GlobalScope_constant_KEY_8:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_8** = ``56``
+
+Number 8.
+
+.. _class_@GlobalScope_constant_KEY_9:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_9** = ``57``
+
+Number 9.
+
+.. _class_@GlobalScope_constant_KEY_COLON:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_COLON** = ``58``
+
+: key.
+
+.. _class_@GlobalScope_constant_KEY_SEMICOLON:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SEMICOLON** = ``59``
+
+; key.
 
 .. _class_@GlobalScope_constant_KEY_LESS:
 
-.. _class_@GlobalScope_constant_KEY_EQUAL:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_LESS** = ``60``
+
+< key.
+
+.. _class_@GlobalScope_constant_KEY_EQUAL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EQUAL** = ``61``
+
+= key.
+
+.. _class_@GlobalScope_constant_KEY_GREATER:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_GREATER** = ``62``
+
+> key.
+
+.. _class_@GlobalScope_constant_KEY_QUESTION:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_QUESTION** = ``63``
+
+? key.
+
+.. _class_@GlobalScope_constant_KEY_AT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_AT** = ``64``
+
+@ key.
+
+.. _class_@GlobalScope_constant_KEY_A:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_A** = ``65``
+
+A key.
+
+.. _class_@GlobalScope_constant_KEY_B:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_B** = ``66``
+
+B key.
+
+.. _class_@GlobalScope_constant_KEY_C:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_C** = ``67``
+
+C key.
+
+.. _class_@GlobalScope_constant_KEY_D:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_D** = ``68``
+
+D key.
+
+.. _class_@GlobalScope_constant_KEY_E:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_E** = ``69``
+
+E key.
+
+.. _class_@GlobalScope_constant_KEY_F:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_F** = ``70``
+
+F key.
+
+.. _class_@GlobalScope_constant_KEY_G:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_G** = ``71``
+
+G key.
+
+.. _class_@GlobalScope_constant_KEY_H:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_H** = ``72``
+
+H key.
+
+.. _class_@GlobalScope_constant_KEY_I:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_I** = ``73``
+
+I key.
+
+.. _class_@GlobalScope_constant_KEY_J:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_J** = ``74``
+
+J key.
+
+.. _class_@GlobalScope_constant_KEY_K:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_K** = ``75``
+
+K key.
+
+.. _class_@GlobalScope_constant_KEY_L:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_L** = ``76``
+
+L key.
+
+.. _class_@GlobalScope_constant_KEY_M:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_M** = ``77``
+
+M key.
+
+.. _class_@GlobalScope_constant_KEY_N:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_N** = ``78``
+
+N key.
+
+.. _class_@GlobalScope_constant_KEY_O:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_O** = ``79``
+
+O key.
+
+.. _class_@GlobalScope_constant_KEY_P:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_P** = ``80``
+
+P key.
+
+.. _class_@GlobalScope_constant_KEY_Q:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_Q** = ``81``
+
+Q key.
+
+.. _class_@GlobalScope_constant_KEY_R:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_R** = ``82``
+
+R key.
+
+.. _class_@GlobalScope_constant_KEY_S:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_S** = ``83``
+
+S key.
+
+.. _class_@GlobalScope_constant_KEY_T:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_T** = ``84``
+
+T key.
+
+.. _class_@GlobalScope_constant_KEY_U:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_U** = ``85``
+
+U key.
+
+.. _class_@GlobalScope_constant_KEY_V:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_V** = ``86``
+
+V key.
+
+.. _class_@GlobalScope_constant_KEY_W:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_W** = ``87``
+
+W key.
+
+.. _class_@GlobalScope_constant_KEY_X:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_X** = ``88``
+
+X key.
+
+.. _class_@GlobalScope_constant_KEY_Y:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_Y** = ``89``
+
+Y key.
+
+.. _class_@GlobalScope_constant_KEY_Z:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_Z** = ``90``
+
+Z key.
+
+.. _class_@GlobalScope_constant_KEY_BRACKETLEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BRACKETLEFT** = ``91``
+
+[ key.
+
+.. _class_@GlobalScope_constant_KEY_BACKSLASH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BACKSLASH** = ``92``
+
+\\ key.
+
+.. _class_@GlobalScope_constant_KEY_BRACKETRIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BRACKETRIGHT** = ``93``
+
+] key.
+
+.. _class_@GlobalScope_constant_KEY_ASCIICIRCUM:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ASCIICIRCUM** = ``94``
+
+^ key.
+
+.. _class_@GlobalScope_constant_KEY_UNDERSCORE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UNDERSCORE** = ``95``
+
+\_ key.
+
+.. _class_@GlobalScope_constant_KEY_QUOTELEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_QUOTELEFT** = ``96``
+
+` key.
+
+.. _class_@GlobalScope_constant_KEY_BRACELEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BRACELEFT** = ``123``
+
+{ key.
+
+.. _class_@GlobalScope_constant_KEY_BAR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BAR** = ``124``
+
+| key.
+
+.. _class_@GlobalScope_constant_KEY_BRACERIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BRACERIGHT** = ``125``
+
+} key.
+
+.. _class_@GlobalScope_constant_KEY_ASCIITILDE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ASCIITILDE** = ``126``
+
+~ key.
+
+.. _class_@GlobalScope_constant_KEY_NOBREAKSPACE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_NOBREAKSPACE** = ``160``
+
+Non-breakable space key.
+
+.. _class_@GlobalScope_constant_KEY_EXCLAMDOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EXCLAMDOWN** = ``161``
+
+¡ key.
+
+.. _class_@GlobalScope_constant_KEY_CENT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CENT** = ``162``
+
+¢ key.
+
+.. _class_@GlobalScope_constant_KEY_STERLING:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_STERLING** = ``163``
+
+£ key.
+
+.. _class_@GlobalScope_constant_KEY_CURRENCY:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CURRENCY** = ``164``
+
+¤ key.
+
+.. _class_@GlobalScope_constant_KEY_YEN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_YEN** = ``165``
+
+¥ key.
+
+.. _class_@GlobalScope_constant_KEY_BROKENBAR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_BROKENBAR** = ``166``
+
+¦ key.
+
+.. _class_@GlobalScope_constant_KEY_SECTION:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SECTION** = ``167``
+
+§ key.
+
+.. _class_@GlobalScope_constant_KEY_DIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DIAERESIS** = ``168``
+
+¨ key.
+
+.. _class_@GlobalScope_constant_KEY_COPYRIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_COPYRIGHT** = ``169``
+
+© key.
+
+.. _class_@GlobalScope_constant_KEY_ORDFEMININE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ORDFEMININE** = ``170``
+
+ª key.
+
+.. _class_@GlobalScope_constant_KEY_GUILLEMOTLEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_GUILLEMOTLEFT** = ``171``
+
+« key.
+
+.. _class_@GlobalScope_constant_KEY_NOTSIGN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_NOTSIGN** = ``172``
+
+¬ key.
+
+.. _class_@GlobalScope_constant_KEY_HYPHEN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_HYPHEN** = ``173``
+
+Soft hyphen key.
+
+.. _class_@GlobalScope_constant_KEY_REGISTERED:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_REGISTERED** = ``174``
+
+® key.
+
+.. _class_@GlobalScope_constant_KEY_MACRON:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MACRON** = ``175``
+
+¯ key.
+
+.. _class_@GlobalScope_constant_KEY_DEGREE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DEGREE** = ``176``
+
+° key.
+
+.. _class_@GlobalScope_constant_KEY_PLUSMINUS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PLUSMINUS** = ``177``
+
+± key.
+
+.. _class_@GlobalScope_constant_KEY_TWOSUPERIOR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_TWOSUPERIOR** = ``178``
+
+² key.
+
+.. _class_@GlobalScope_constant_KEY_THREESUPERIOR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_THREESUPERIOR** = ``179``
+
+³ key.
+
+.. _class_@GlobalScope_constant_KEY_ACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ACUTE** = ``180``
+
+´ key.
+
+.. _class_@GlobalScope_constant_KEY_MU:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MU** = ``181``
+
+µ key.
+
+.. _class_@GlobalScope_constant_KEY_PARAGRAPH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PARAGRAPH** = ``182``
+
+¶ key.
+
+.. _class_@GlobalScope_constant_KEY_PERIODCENTERED:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_PERIODCENTERED** = ``183``
+
+· key.
+
+.. _class_@GlobalScope_constant_KEY_CEDILLA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CEDILLA** = ``184``
+
+¸ key.
+
+.. _class_@GlobalScope_constant_KEY_ONESUPERIOR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ONESUPERIOR** = ``185``
+
+¹ key.
+
+.. _class_@GlobalScope_constant_KEY_MASCULINE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MASCULINE** = ``186``
+
+º key.
+
+.. _class_@GlobalScope_constant_KEY_GUILLEMOTRIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_GUILLEMOTRIGHT** = ``187``
+
+» key.
+
+.. _class_@GlobalScope_constant_KEY_ONEQUARTER:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ONEQUARTER** = ``188``
+
+¼ key.
+
+.. _class_@GlobalScope_constant_KEY_ONEHALF:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ONEHALF** = ``189``
+
+½ key.
+
+.. _class_@GlobalScope_constant_KEY_THREEQUARTERS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_THREEQUARTERS** = ``190``
+
+¾ key.
+
+.. _class_@GlobalScope_constant_KEY_QUESTIONDOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_QUESTIONDOWN** = ``191``
+
+¿ key.
+
+.. _class_@GlobalScope_constant_KEY_AGRAVE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_AGRAVE** = ``192``
+
+À key.
+
+.. _class_@GlobalScope_constant_KEY_AACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_AACUTE** = ``193``
+
+Á key.
+
+.. _class_@GlobalScope_constant_KEY_ACIRCUMFLEX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ACIRCUMFLEX** = ``194``
+
+Â key.
+
+.. _class_@GlobalScope_constant_KEY_ATILDE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ATILDE** = ``195``
+
+Ã key.
+
+.. _class_@GlobalScope_constant_KEY_ADIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ADIAERESIS** = ``196``
+
+Ä key.
+
+.. _class_@GlobalScope_constant_KEY_ARING:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ARING** = ``197``
+
+Å key.
+
+.. _class_@GlobalScope_constant_KEY_AE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_AE** = ``198``
+
+Æ key.
+
+.. _class_@GlobalScope_constant_KEY_CCEDILLA:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_CCEDILLA** = ``199``
+
+Ç key.
+
+.. _class_@GlobalScope_constant_KEY_EGRAVE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EGRAVE** = ``200``
+
+È key.
+
+.. _class_@GlobalScope_constant_KEY_EACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EACUTE** = ``201``
+
+É key.
+
+.. _class_@GlobalScope_constant_KEY_ECIRCUMFLEX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ECIRCUMFLEX** = ``202``
+
+Ê key.
+
+.. _class_@GlobalScope_constant_KEY_EDIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_EDIAERESIS** = ``203``
+
+Ë key.
+
+.. _class_@GlobalScope_constant_KEY_IGRAVE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_IGRAVE** = ``204``
+
+Ì key.
+
+.. _class_@GlobalScope_constant_KEY_IACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_IACUTE** = ``205``
+
+Í key.
+
+.. _class_@GlobalScope_constant_KEY_ICIRCUMFLEX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ICIRCUMFLEX** = ``206``
+
+Î key.
+
+.. _class_@GlobalScope_constant_KEY_IDIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_IDIAERESIS** = ``207``
+
+Ï key.
+
+.. _class_@GlobalScope_constant_KEY_ETH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ETH** = ``208``
+
+Ð key.
+
+.. _class_@GlobalScope_constant_KEY_NTILDE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_NTILDE** = ``209``
+
+Ñ key.
+
+.. _class_@GlobalScope_constant_KEY_OGRAVE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OGRAVE** = ``210``
+
+Ò key.
+
+.. _class_@GlobalScope_constant_KEY_OACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OACUTE** = ``211``
+
+Ó key.
+
+.. _class_@GlobalScope_constant_KEY_OCIRCUMFLEX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OCIRCUMFLEX** = ``212``
+
+Ô key.
+
+.. _class_@GlobalScope_constant_KEY_OTILDE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OTILDE** = ``213``
+
+Õ key.
+
+.. _class_@GlobalScope_constant_KEY_ODIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_ODIAERESIS** = ``214``
+
+Ö key.
+
+.. _class_@GlobalScope_constant_KEY_MULTIPLY:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_MULTIPLY** = ``215``
+
+× key.
+
+.. _class_@GlobalScope_constant_KEY_OOBLIQUE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_OOBLIQUE** = ``216``
+
+Ø key.
+
+.. _class_@GlobalScope_constant_KEY_UGRAVE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UGRAVE** = ``217``
+
+Ù key.
+
+.. _class_@GlobalScope_constant_KEY_UACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UACUTE** = ``218``
+
+Ú key.
+
+.. _class_@GlobalScope_constant_KEY_UCIRCUMFLEX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UCIRCUMFLEX** = ``219``
+
+Û key.
+
+.. _class_@GlobalScope_constant_KEY_UDIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_UDIAERESIS** = ``220``
+
+Ü key.
+
+.. _class_@GlobalScope_constant_KEY_YACUTE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_YACUTE** = ``221``
+
+Ý key.
+
+.. _class_@GlobalScope_constant_KEY_THORN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_THORN** = ``222``
+
+Þ key.
+
+.. _class_@GlobalScope_constant_KEY_SSHARP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_SSHARP** = ``223``
+
+ß key.
+
+.. _class_@GlobalScope_constant_KEY_DIVISION:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_DIVISION** = ``247``
+
+÷ key.
+
+.. _class_@GlobalScope_constant_KEY_YDIAERESIS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyList<enum_@GlobalScope_KeyList>` **KEY_YDIAERESIS** = ``255``
+
+ÿ key.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_@GlobalScope_KeyModifierMask:
+
+.. rst-class:: classref-enumeration
+
+enum **KeyModifierMask**:
+
+.. _class_@GlobalScope_constant_KEY_CODE_MASK:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_CODE_MASK** = ``33554431``
+
+Key Code mask.
+
+.. _class_@GlobalScope_constant_KEY_MODIFIER_MASK:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MODIFIER_MASK** = ``-16777216``
+
+Modifier key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_SHIFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_SHIFT** = ``33554432``
+
+Shift key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_ALT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_ALT** = ``67108864``
+
+Alt key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_META:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_META** = ``134217728``
+
+Meta key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_CTRL:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_CTRL** = ``268435456``
+
+Ctrl key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_CMD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_CMD** = ``platform-dependent``
+
+Command key mask. On macOS, this is equivalent to :ref:`KEY_MASK_META<class_@GlobalScope_constant_KEY_MASK_META>`. On other platforms, this is equivalent to :ref:`KEY_MASK_CTRL<class_@GlobalScope_constant_KEY_MASK_CTRL>`. This mask should be preferred to :ref:`KEY_MASK_META<class_@GlobalScope_constant_KEY_MASK_META>` or :ref:`KEY_MASK_CTRL<class_@GlobalScope_constant_KEY_MASK_CTRL>` for system shortcuts as it handles all platforms correctly.
+
+.. _class_@GlobalScope_constant_KEY_MASK_KPAD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_KPAD** = ``536870912``
+
+Keypad key mask.
+
+.. _class_@GlobalScope_constant_KEY_MASK_GROUP_SWITCH:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`KeyModifierMask<enum_@GlobalScope_KeyModifierMask>` **KEY_MASK_GROUP_SWITCH** = ``1073741824``
+
+Group Switch key mask.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_@GlobalScope_ButtonList:
+
+.. rst-class:: classref-enumeration
+
+enum **ButtonList**:
+
+.. _class_@GlobalScope_constant_BUTTON_LEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_LEFT** = ``1``
+
+Left mouse button.
+
+.. _class_@GlobalScope_constant_BUTTON_RIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_RIGHT** = ``2``
+
+Right mouse button.
+
+.. _class_@GlobalScope_constant_BUTTON_MIDDLE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MIDDLE** = ``3``
+
+Middle mouse button.
+
+.. _class_@GlobalScope_constant_BUTTON_XBUTTON1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_XBUTTON1** = ``8``
+
+Extra mouse button 1 (only present on some mice).
+
+.. _class_@GlobalScope_constant_BUTTON_XBUTTON2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_XBUTTON2** = ``9``
+
+Extra mouse button 2 (only present on some mice).
+
+.. _class_@GlobalScope_constant_BUTTON_WHEEL_UP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_WHEEL_UP** = ``4``
+
+Mouse wheel up.
+
+.. _class_@GlobalScope_constant_BUTTON_WHEEL_DOWN:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_WHEEL_DOWN** = ``5``
+
+Mouse wheel down.
+
+.. _class_@GlobalScope_constant_BUTTON_WHEEL_LEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_WHEEL_LEFT** = ``6``
+
+Mouse wheel left button (only present on some mice).
+
+.. _class_@GlobalScope_constant_BUTTON_WHEEL_RIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_WHEEL_RIGHT** = ``7``
+
+Mouse wheel right button (only present on some mice).
+
+.. _class_@GlobalScope_constant_BUTTON_MASK_LEFT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MASK_LEFT** = ``1``
+
+Left mouse button mask.
+
+.. _class_@GlobalScope_constant_BUTTON_MASK_RIGHT:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MASK_RIGHT** = ``2``
+
+Right mouse button mask.
+
+.. _class_@GlobalScope_constant_BUTTON_MASK_MIDDLE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MASK_MIDDLE** = ``4``
+
+Middle mouse button mask.
+
+.. _class_@GlobalScope_constant_BUTTON_MASK_XBUTTON1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MASK_XBUTTON1** = ``128``
+
+Extra mouse button 1 mask.
+
+.. _class_@GlobalScope_constant_BUTTON_MASK_XBUTTON2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ButtonList<enum_@GlobalScope_ButtonList>` **BUTTON_MASK_XBUTTON2** = ``256``
+
+Extra mouse button 2 mask.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _enum_@GlobalScope_JoystickList:
+
+.. rst-class:: classref-enumeration
+
+enum **JoystickList**:
+
+.. _class_@GlobalScope_constant_JOY_INVALID_OPTION:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_INVALID_OPTION** = ``-1``
+
+Invalid button or axis.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_0:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_0** = ``0``
+
+Gamepad button 0.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_1:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_1** = ``1``
+
+Gamepad button 1.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_2:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_2** = ``2``
+
+Gamepad button 2.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_3:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_3** = ``3``
+
+Gamepad button 3.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_4:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_4** = ``4``
+
+Gamepad button 4.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_5:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_5** = ``5``
+
+Gamepad button 5.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_6:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_6** = ``6``
+
+Gamepad button 6.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_7:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_7** = ``7``
+
+Gamepad button 7.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_8:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_8** = ``8``
+
+Gamepad button 8.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_9:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_9** = ``9``
+
+Gamepad button 9.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_10:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_10** = ``10``
+
+Gamepad button 10.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_11:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_11** = ``11``
+
+Gamepad button 11.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_12:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_12** = ``12``
+
+Gamepad button 12.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_13:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_13** = ``13``
+
+Gamepad button 13.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_14:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_14** = ``14``
+
+Gamepad button 14.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_15:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_15** = ``15``
+
+Gamepad button 15.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_16:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_16** = ``16``
+
+Gamepad button 16.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_17:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_17** = ``17``
+
+Gamepad button 17.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_18:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_18** = ``18``
+
+Gamepad button 18.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_19:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_19** = ``19``
+
+Gamepad button 19.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_20:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_20** = ``20``
+
+Gamepad button 20.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_21:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_21** = ``21``
+
+Gamepad button 21.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_22:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_22** = ``22``
+
+Gamepad button 22.
+
+.. _class_@GlobalScope_constant_JOY_BUTTON_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_BUTTON_MAX** = ``128``
+
+The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms:
+
+- Android: Up to 36 buttons.
+
+- Linux: Up to 80 buttons.
+
+- Windows and macOS: Up to 128 buttons.
+
+.. _class_@GlobalScope_constant_JOY_SONY_CIRCLE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_SONY_CIRCLE** = ``1``
+
+DualShock circle button.
+
+.. _class_@GlobalScope_constant_JOY_SONY_X:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_SONY_X** = ``0``
+
+DualShock X button.
+
+.. _class_@GlobalScope_constant_JOY_SONY_SQUARE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_SONY_SQUARE** = ``2``
+
+DualShock square button.
+
+.. _class_@GlobalScope_constant_JOY_SONY_TRIANGLE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_SONY_TRIANGLE** = ``3``
+
+DualShock triangle button.
+
+.. _class_@GlobalScope_constant_JOY_XBOX_B:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_XBOX_B** = ``1``
+
+Xbox controller B button.
+
+.. _class_@GlobalScope_constant_JOY_XBOX_A:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_XBOX_A** = ``0``
+
+Xbox controller A button.
+
+.. _class_@GlobalScope_constant_JOY_XBOX_X:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_XBOX_X** = ``2``
+
+Xbox controller X button.
+
+.. _class_@GlobalScope_constant_JOY_XBOX_Y:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_XBOX_Y** = ``3``
+
+Xbox controller Y button.
+
+.. _class_@GlobalScope_constant_JOY_DS_A:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DS_A** = ``1``
+
+Nintendo controller A button.
+
+.. _class_@GlobalScope_constant_JOY_DS_B:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DS_B** = ``0``
+
+Nintendo controller B button.
+
+.. _class_@GlobalScope_constant_JOY_DS_X:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DS_X** = ``3``
+
+Nintendo controller X button.
+
+.. _class_@GlobalScope_constant_JOY_DS_Y:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DS_Y** = ``2``
+
+Nintendo controller Y button.
+
+.. _class_@GlobalScope_constant_JOY_VR_GRIP:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_VR_GRIP** = ``2``
+
+Grip (side) buttons on a VR controller.
+
+.. _class_@GlobalScope_constant_JOY_VR_PAD:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_VR_PAD** = ``14``
+
+Push down on the touchpad or main joystick on a VR controller.
+
+.. _class_@GlobalScope_constant_JOY_VR_TRIGGER:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_VR_TRIGGER** = ``15``
+
+Trigger on a VR controller.
+
+.. _class_@GlobalScope_constant_JOY_OCULUS_AX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OCULUS_AX** = ``7``
+
+A button on the right Oculus Touch controller, X button on the left controller (also when used in OpenVR).
 
-.. _class_@GlobalScope_constant_KEY_GREATER:
+.. _class_@GlobalScope_constant_JOY_OCULUS_BY:
 
-.. _class_@GlobalScope_constant_KEY_QUESTION:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_AT:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OCULUS_BY** = ``1``
 
-.. _class_@GlobalScope_constant_KEY_A:
+B button on the right Oculus Touch controller, Y button on the left controller (also when used in OpenVR).
 
-.. _class_@GlobalScope_constant_KEY_B:
+.. _class_@GlobalScope_constant_JOY_OCULUS_MENU:
 
-.. _class_@GlobalScope_constant_KEY_C:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_D:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OCULUS_MENU** = ``3``
 
-.. _class_@GlobalScope_constant_KEY_E:
+Menu button on either Oculus Touch controller.
 
-.. _class_@GlobalScope_constant_KEY_F:
+.. _class_@GlobalScope_constant_JOY_OPENVR_MENU:
 
-.. _class_@GlobalScope_constant_KEY_G:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_H:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OPENVR_MENU** = ``1``
 
-.. _class_@GlobalScope_constant_KEY_I:
+Menu button in OpenVR (Except when Oculus Touch controllers are used).
 
-.. _class_@GlobalScope_constant_KEY_J:
+.. _class_@GlobalScope_constant_JOY_SELECT:
 
-.. _class_@GlobalScope_constant_KEY_K:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_L:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_SELECT** = ``10``
 
-.. _class_@GlobalScope_constant_KEY_M:
+Gamepad button Select.
 
-.. _class_@GlobalScope_constant_KEY_N:
+.. _class_@GlobalScope_constant_JOY_START:
 
-.. _class_@GlobalScope_constant_KEY_O:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_P:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_START** = ``11``
 
-.. _class_@GlobalScope_constant_KEY_Q:
+Gamepad button Start.
 
-.. _class_@GlobalScope_constant_KEY_R:
+.. _class_@GlobalScope_constant_JOY_DPAD_UP:
 
-.. _class_@GlobalScope_constant_KEY_S:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_T:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DPAD_UP** = ``12``
 
-.. _class_@GlobalScope_constant_KEY_U:
+Gamepad DPad up.
 
-.. _class_@GlobalScope_constant_KEY_V:
+.. _class_@GlobalScope_constant_JOY_DPAD_DOWN:
 
-.. _class_@GlobalScope_constant_KEY_W:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_X:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DPAD_DOWN** = ``13``
 
-.. _class_@GlobalScope_constant_KEY_Y:
+Gamepad DPad down.
 
-.. _class_@GlobalScope_constant_KEY_Z:
+.. _class_@GlobalScope_constant_JOY_DPAD_LEFT:
 
-.. _class_@GlobalScope_constant_KEY_BRACKETLEFT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_BACKSLASH:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DPAD_LEFT** = ``14``
 
-.. _class_@GlobalScope_constant_KEY_BRACKETRIGHT:
+Gamepad DPad left.
 
-.. _class_@GlobalScope_constant_KEY_ASCIICIRCUM:
+.. _class_@GlobalScope_constant_JOY_DPAD_RIGHT:
 
-.. _class_@GlobalScope_constant_KEY_UNDERSCORE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_QUOTELEFT:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_DPAD_RIGHT** = ``15``
 
-.. _class_@GlobalScope_constant_KEY_BRACELEFT:
+Gamepad DPad right.
 
-.. _class_@GlobalScope_constant_KEY_BAR:
+.. _class_@GlobalScope_constant_JOY_GUIDE:
 
-.. _class_@GlobalScope_constant_KEY_BRACERIGHT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_ASCIITILDE:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_GUIDE** = ``16``
 
-.. _class_@GlobalScope_constant_KEY_NOBREAKSPACE:
+Gamepad SDL guide button.
 
-.. _class_@GlobalScope_constant_KEY_EXCLAMDOWN:
+.. _class_@GlobalScope_constant_JOY_MISC1:
 
-.. _class_@GlobalScope_constant_KEY_CENT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_STERLING:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_MISC1** = ``17``
 
-.. _class_@GlobalScope_constant_KEY_CURRENCY:
+Gamepad SDL miscellaneous button.
 
-.. _class_@GlobalScope_constant_KEY_YEN:
+.. _class_@GlobalScope_constant_JOY_PADDLE1:
 
-.. _class_@GlobalScope_constant_KEY_BROKENBAR:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_SECTION:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_PADDLE1** = ``18``
 
-.. _class_@GlobalScope_constant_KEY_DIAERESIS:
+Gamepad SDL paddle 1 button.
 
-.. _class_@GlobalScope_constant_KEY_COPYRIGHT:
+.. _class_@GlobalScope_constant_JOY_PADDLE2:
 
-.. _class_@GlobalScope_constant_KEY_ORDFEMININE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_GUILLEMOTLEFT:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_PADDLE2** = ``19``
 
-.. _class_@GlobalScope_constant_KEY_NOTSIGN:
+Gamepad SDL paddle 2 button.
 
-.. _class_@GlobalScope_constant_KEY_HYPHEN:
+.. _class_@GlobalScope_constant_JOY_PADDLE3:
 
-.. _class_@GlobalScope_constant_KEY_REGISTERED:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MACRON:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_PADDLE3** = ``20``
 
-.. _class_@GlobalScope_constant_KEY_DEGREE:
+Gamepad SDL paddle 3 button.
 
-.. _class_@GlobalScope_constant_KEY_PLUSMINUS:
+.. _class_@GlobalScope_constant_JOY_PADDLE4:
 
-.. _class_@GlobalScope_constant_KEY_TWOSUPERIOR:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_THREESUPERIOR:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_PADDLE4** = ``21``
 
-.. _class_@GlobalScope_constant_KEY_ACUTE:
+Gamepad SDL paddle 4 button.
 
-.. _class_@GlobalScope_constant_KEY_MU:
+.. _class_@GlobalScope_constant_JOY_TOUCHPAD:
 
-.. _class_@GlobalScope_constant_KEY_PARAGRAPH:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_PERIODCENTERED:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_TOUCHPAD** = ``22``
 
-.. _class_@GlobalScope_constant_KEY_CEDILLA:
+Gamepad SDL touchpad button.
 
-.. _class_@GlobalScope_constant_KEY_ONESUPERIOR:
+.. _class_@GlobalScope_constant_JOY_L:
 
-.. _class_@GlobalScope_constant_KEY_MASCULINE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_GUILLEMOTRIGHT:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_L** = ``4``
 
-.. _class_@GlobalScope_constant_KEY_ONEQUARTER:
+Gamepad left Shoulder button.
 
-.. _class_@GlobalScope_constant_KEY_ONEHALF:
+.. _class_@GlobalScope_constant_JOY_L2:
 
-.. _class_@GlobalScope_constant_KEY_THREEQUARTERS:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_QUESTIONDOWN:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_L2** = ``6``
 
-.. _class_@GlobalScope_constant_KEY_AGRAVE:
+Gamepad left trigger.
 
-.. _class_@GlobalScope_constant_KEY_AACUTE:
+.. _class_@GlobalScope_constant_JOY_L3:
 
-.. _class_@GlobalScope_constant_KEY_ACIRCUMFLEX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_ATILDE:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_L3** = ``8``
 
-.. _class_@GlobalScope_constant_KEY_ADIAERESIS:
+Gamepad left stick click.
 
-.. _class_@GlobalScope_constant_KEY_ARING:
+.. _class_@GlobalScope_constant_JOY_R:
 
-.. _class_@GlobalScope_constant_KEY_AE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_CCEDILLA:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_R** = ``5``
 
-.. _class_@GlobalScope_constant_KEY_EGRAVE:
+Gamepad right Shoulder button.
 
-.. _class_@GlobalScope_constant_KEY_EACUTE:
+.. _class_@GlobalScope_constant_JOY_R2:
 
-.. _class_@GlobalScope_constant_KEY_ECIRCUMFLEX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_EDIAERESIS:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_R2** = ``7``
 
-.. _class_@GlobalScope_constant_KEY_IGRAVE:
+Gamepad right trigger.
 
-.. _class_@GlobalScope_constant_KEY_IACUTE:
+.. _class_@GlobalScope_constant_JOY_R3:
 
-.. _class_@GlobalScope_constant_KEY_ICIRCUMFLEX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_IDIAERESIS:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_R3** = ``9``
 
-.. _class_@GlobalScope_constant_KEY_ETH:
+Gamepad right stick click.
 
-.. _class_@GlobalScope_constant_KEY_NTILDE:
+.. _class_@GlobalScope_constant_JOY_AXIS_0:
 
-.. _class_@GlobalScope_constant_KEY_OGRAVE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_OACUTE:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_0** = ``0``
 
-.. _class_@GlobalScope_constant_KEY_OCIRCUMFLEX:
+Gamepad left stick horizontal axis.
 
-.. _class_@GlobalScope_constant_KEY_OTILDE:
+.. _class_@GlobalScope_constant_JOY_AXIS_1:
 
-.. _class_@GlobalScope_constant_KEY_ODIAERESIS:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MULTIPLY:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_1** = ``1``
 
-.. _class_@GlobalScope_constant_KEY_OOBLIQUE:
+Gamepad left stick vertical axis.
 
-.. _class_@GlobalScope_constant_KEY_UGRAVE:
+.. _class_@GlobalScope_constant_JOY_AXIS_2:
 
-.. _class_@GlobalScope_constant_KEY_UACUTE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_UCIRCUMFLEX:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_2** = ``2``
 
-.. _class_@GlobalScope_constant_KEY_UDIAERESIS:
+Gamepad right stick horizontal axis.
 
-.. _class_@GlobalScope_constant_KEY_YACUTE:
+.. _class_@GlobalScope_constant_JOY_AXIS_3:
 
-.. _class_@GlobalScope_constant_KEY_THORN:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_SSHARP:
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_3** = ``3``
 
-.. _class_@GlobalScope_constant_KEY_DIVISION:
+Gamepad right stick vertical axis.
 
-.. _class_@GlobalScope_constant_KEY_YDIAERESIS:
+.. _class_@GlobalScope_constant_JOY_AXIS_4:
 
-enum **KeyList**:
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ESCAPE** = **16777217** --- Escape key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_4** = ``4``
 
-- **KEY_TAB** = **16777218** --- Tab key.
+Generic gamepad axis 4.
 
-- **KEY_BACKTAB** = **16777219** --- Shift+Tab key.
+.. _class_@GlobalScope_constant_JOY_AXIS_5:
 
-- **KEY_BACKSPACE** = **16777220** --- Backspace key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ENTER** = **16777221** --- Return key (on the main keyboard).
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_5** = ``5``
 
-- **KEY_KP_ENTER** = **16777222** --- Enter key on the numeric keypad.
+Generic gamepad axis 5.
 
-- **KEY_INSERT** = **16777223** --- Insert key.
+.. _class_@GlobalScope_constant_JOY_AXIS_6:
 
-- **KEY_DELETE** = **16777224** --- Delete key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_PAUSE** = **16777225** --- Pause key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_6** = ``6``
 
-- **KEY_PRINT** = **16777226** --- Print Screen key.
+Gamepad left trigger analog axis.
 
-- **KEY_SYSREQ** = **16777227** --- System Request key.
+.. _class_@GlobalScope_constant_JOY_AXIS_7:
 
-- **KEY_CLEAR** = **16777228** --- Clear key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_HOME** = **16777229** --- Home key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_7** = ``7``
 
-- **KEY_END** = **16777230** --- End key.
+Gamepad right trigger analog axis.
 
-- **KEY_LEFT** = **16777231** --- Left arrow key.
+.. _class_@GlobalScope_constant_JOY_AXIS_8:
 
-- **KEY_UP** = **16777232** --- Up arrow key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_RIGHT** = **16777233** --- Right arrow key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_8** = ``8``
 
-- **KEY_DOWN** = **16777234** --- Down arrow key.
+Generic gamepad axis 8.
 
-- **KEY_PAGEUP** = **16777235** --- Page Up key.
+.. _class_@GlobalScope_constant_JOY_AXIS_9:
 
-- **KEY_PAGEDOWN** = **16777236** --- Page Down key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_SHIFT** = **16777237** --- Shift key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_9** = ``9``
 
-- **KEY_CONTROL** = **16777238** --- Control key.
+Generic gamepad axis 9.
 
-- **KEY_META** = **16777239** --- Meta key.
+.. _class_@GlobalScope_constant_JOY_AXIS_MAX:
 
-- **KEY_ALT** = **16777240** --- Alt key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_CAPSLOCK** = **16777241** --- Caps Lock key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_AXIS_MAX** = ``10``
 
-- **KEY_NUMLOCK** = **16777242** --- Num Lock key.
+Represents the maximum number of joystick axes supported.
 
-- **KEY_SCROLLLOCK** = **16777243** --- Scroll Lock key.
+.. _class_@GlobalScope_constant_JOY_ANALOG_LX:
 
-- **KEY_F1** = **16777244** --- F1 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_F2** = **16777245** --- F2 key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_LX** = ``0``
 
-- **KEY_F3** = **16777246** --- F3 key.
+Gamepad left stick horizontal axis.
 
-- **KEY_F4** = **16777247** --- F4 key.
+.. _class_@GlobalScope_constant_JOY_ANALOG_LY:
 
-- **KEY_F5** = **16777248** --- F5 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_F6** = **16777249** --- F6 key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_LY** = ``1``
 
-- **KEY_F7** = **16777250** --- F7 key.
+Gamepad left stick vertical axis.
 
-- **KEY_F8** = **16777251** --- F8 key.
+.. _class_@GlobalScope_constant_JOY_ANALOG_RX:
 
-- **KEY_F9** = **16777252** --- F9 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_F10** = **16777253** --- F10 key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_RX** = ``2``
 
-- **KEY_F11** = **16777254** --- F11 key.
+Gamepad right stick horizontal axis.
 
-- **KEY_F12** = **16777255** --- F12 key.
+.. _class_@GlobalScope_constant_JOY_ANALOG_RY:
 
-- **KEY_F13** = **16777256** --- F13 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_F14** = **16777257** --- F14 key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_RY** = ``3``
 
-- **KEY_F15** = **16777258** --- F15 key.
+Gamepad right stick vertical axis.
 
-- **KEY_F16** = **16777259** --- F16 key.
+.. _class_@GlobalScope_constant_JOY_ANALOG_L2:
 
-- **KEY_KP_MULTIPLY** = **16777345** --- Multiply (\*) key on the numeric keypad.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_KP_DIVIDE** = **16777346** --- Divide (/) key on the numeric keypad.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_L2** = ``6``
 
-- **KEY_KP_SUBTRACT** = **16777347** --- Subtract (-) key on the numeric keypad.
+Gamepad left analog trigger.
 
-- **KEY_KP_PERIOD** = **16777348** --- Period (.) key on the numeric keypad.
+.. _class_@GlobalScope_constant_JOY_ANALOG_R2:
 
-- **KEY_KP_ADD** = **16777349** --- Add (+) key on the numeric keypad.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_KP_0** = **16777350** --- Number 0 on the numeric keypad.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_ANALOG_R2** = ``7``
 
-- **KEY_KP_1** = **16777351** --- Number 1 on the numeric keypad.
+Gamepad right analog trigger.
 
-- **KEY_KP_2** = **16777352** --- Number 2 on the numeric keypad.
+.. _class_@GlobalScope_constant_JOY_VR_ANALOG_TRIGGER:
 
-- **KEY_KP_3** = **16777353** --- Number 3 on the numeric keypad.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_KP_4** = **16777354** --- Number 4 on the numeric keypad.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_VR_ANALOG_TRIGGER** = ``2``
 
-- **KEY_KP_5** = **16777355** --- Number 5 on the numeric keypad.
+VR Controller analog trigger.
 
-- **KEY_KP_6** = **16777356** --- Number 6 on the numeric keypad.
+.. _class_@GlobalScope_constant_JOY_VR_ANALOG_GRIP:
 
-- **KEY_KP_7** = **16777357** --- Number 7 on the numeric keypad.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_KP_8** = **16777358** --- Number 8 on the numeric keypad.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_VR_ANALOG_GRIP** = ``4``
 
-- **KEY_KP_9** = **16777359** --- Number 9 on the numeric keypad.
+VR Controller analog grip (side buttons).
 
-- **KEY_SUPER_L** = **16777260** --- Left Super key (Windows key).
+.. _class_@GlobalScope_constant_JOY_OPENVR_TOUCHPADX:
 
-- **KEY_SUPER_R** = **16777261** --- Right Super key (Windows key).
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_MENU** = **16777262** --- Context menu key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OPENVR_TOUCHPADX** = ``0``
 
-- **KEY_HYPER_L** = **16777263** --- Left Hyper key.
+OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR controllers).
 
-- **KEY_HYPER_R** = **16777264** --- Right Hyper key.
+.. _class_@GlobalScope_constant_JOY_OPENVR_TOUCHPADY:
 
-- **KEY_HELP** = **16777265** --- Help key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_DIRECTION_L** = **16777266** --- Left Direction key.
+:ref:`JoystickList<enum_@GlobalScope_JoystickList>` **JOY_OPENVR_TOUCHPADY** = ``1``
 
-- **KEY_DIRECTION_R** = **16777267** --- Right Direction key.
+OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR controllers).
 
-- **KEY_BACK** = **16777280** --- Media back key. Not to be confused with the Back button on an Android device.
+.. rst-class:: classref-item-separator
 
-- **KEY_FORWARD** = **16777281** --- Media forward key.
+----
 
-- **KEY_STOP** = **16777282** --- Media stop key.
+.. _enum_@GlobalScope_MidiMessageList:
 
-- **KEY_REFRESH** = **16777283** --- Media refresh key.
+.. rst-class:: classref-enumeration
 
-- **KEY_VOLUMEDOWN** = **16777284** --- Volume down key.
+enum **MidiMessageList**:
 
-- **KEY_VOLUMEMUTE** = **16777285** --- Mute volume key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_OFF:
 
-- **KEY_VOLUMEUP** = **16777286** --- Volume up key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_BASSBOOST** = **16777287** --- Bass Boost key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_NOTE_OFF** = ``8``
 
-- **KEY_BASSUP** = **16777288** --- Bass up key.
+MIDI note OFF message. See the documentation of :ref:`InputEventMIDI<class_InputEventMIDI>` for information of how to use MIDI inputs.
 
-- **KEY_BASSDOWN** = **16777289** --- Bass down key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_ON:
 
-- **KEY_TREBLEUP** = **16777290** --- Treble up key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_TREBLEDOWN** = **16777291** --- Treble down key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_NOTE_ON** = ``9``
 
-- **KEY_MEDIAPLAY** = **16777292** --- Media play key.
+MIDI note ON message. See the documentation of :ref:`InputEventMIDI<class_InputEventMIDI>` for information of how to use MIDI inputs.
 
-- **KEY_MEDIASTOP** = **16777293** --- Media stop key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_AFTERTOUCH:
 
-- **KEY_MEDIAPREVIOUS** = **16777294** --- Previous song key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_MEDIANEXT** = **16777295** --- Next song key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_AFTERTOUCH** = ``10``
 
-- **KEY_MEDIARECORD** = **16777296** --- Media record key.
+MIDI aftertouch message. This message is most often sent by pressing down on the key after it "bottoms out".
 
-- **KEY_HOMEPAGE** = **16777297** --- Home page key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_CONTROL_CHANGE:
 
-- **KEY_FAVORITES** = **16777298** --- Favorites key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_SEARCH** = **16777299** --- Search key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_CONTROL_CHANGE** = ``11``
 
-- **KEY_STANDBY** = **16777300** --- Standby key.
+MIDI control change message. This message is sent when a controller value changes. Controllers include devices such as pedals and levers.
 
-- **KEY_OPENURL** = **16777301** --- Open URL / Launch Browser key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_PROGRAM_CHANGE:
 
-- **KEY_LAUNCHMAIL** = **16777302** --- Launch Mail key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_LAUNCHMEDIA** = **16777303** --- Launch Media key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_PROGRAM_CHANGE** = ``12``
 
-- **KEY_LAUNCH0** = **16777304** --- Launch Shortcut 0 key.
+MIDI program change message. This message sent when the program patch number changes.
 
-- **KEY_LAUNCH1** = **16777305** --- Launch Shortcut 1 key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_CHANNEL_PRESSURE:
 
-- **KEY_LAUNCH2** = **16777306** --- Launch Shortcut 2 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_LAUNCH3** = **16777307** --- Launch Shortcut 3 key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_CHANNEL_PRESSURE** = ``13``
 
-- **KEY_LAUNCH4** = **16777308** --- Launch Shortcut 4 key.
+MIDI channel pressure message. This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch as it indicates the highest pressure across all keys.
 
-- **KEY_LAUNCH5** = **16777309** --- Launch Shortcut 5 key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_PITCH_BEND:
 
-- **KEY_LAUNCH6** = **16777310** --- Launch Shortcut 6 key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_LAUNCH7** = **16777311** --- Launch Shortcut 7 key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_PITCH_BEND** = ``14``
 
-- **KEY_LAUNCH8** = **16777312** --- Launch Shortcut 8 key.
+MIDI pitch bend message. This message is sent to indicate a change in the pitch bender (wheel or lever, typically).
 
-- **KEY_LAUNCH9** = **16777313** --- Launch Shortcut 9 key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_SYSTEM_EXCLUSIVE:
 
-- **KEY_LAUNCHA** = **16777314** --- Launch Shortcut A key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_LAUNCHB** = **16777315** --- Launch Shortcut B key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_SYSTEM_EXCLUSIVE** = ``240``
 
-- **KEY_LAUNCHC** = **16777316** --- Launch Shortcut C key.
+MIDI system exclusive message. This has behavior exclusive to the device you're receiving input from. Getting this data is not implemented in Godot.
 
-- **KEY_LAUNCHD** = **16777317** --- Launch Shortcut D key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_QUARTER_FRAME:
 
-- **KEY_LAUNCHE** = **16777318** --- Launch Shortcut E key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_LAUNCHF** = **16777319** --- Launch Shortcut F key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_QUARTER_FRAME** = ``241``
 
-- **KEY_UNKNOWN** = **33554431** --- Unknown key.
+MIDI quarter frame message. Contains timing information that is used to synchronize MIDI devices. Getting this data is not implemented in Godot.
 
-- **KEY_SPACE** = **32** --- Space key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_SONG_POSITION_POINTER:
 
-- **KEY_EXCLAM** = **33** --- ! key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_QUOTEDBL** = **34** --- " key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_SONG_POSITION_POINTER** = ``242``
 
-- **KEY_NUMBERSIGN** = **35** --- # key.
+MIDI song position pointer message. Gives the number of 16th notes since the start of the song. Getting this data is not implemented in Godot.
 
-- **KEY_DOLLAR** = **36** --- $ key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_SONG_SELECT:
 
-- **KEY_PERCENT** = **37** --- % key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_AMPERSAND** = **38** --- & key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_SONG_SELECT** = ``243``
 
-- **KEY_APOSTROPHE** = **39** --- ' key.
+MIDI song select message. Specifies which sequence or song is to be played. Getting this data is not implemented in Godot.
 
-- **KEY_PARENLEFT** = **40** --- ( key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_TUNE_REQUEST:
 
-- **KEY_PARENRIGHT** = **41** --- ) key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ASTERISK** = **42** --- \* key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_TUNE_REQUEST** = ``246``
 
-- **KEY_PLUS** = **43** --- + key.
+MIDI tune request message. Upon receiving a tune request, all analog synthesizers should tune their oscillators.
 
-- **KEY_COMMA** = **44** --- , key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_TIMING_CLOCK:
 
-- **KEY_MINUS** = **45** --- - key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_PERIOD** = **46** --- . key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_TIMING_CLOCK** = ``248``
 
-- **KEY_SLASH** = **47** --- / key.
+MIDI timing clock message. Sent 24 times per quarter note when synchronization is required.
 
-- **KEY_0** = **48** --- Number 0.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_START:
 
-- **KEY_1** = **49** --- Number 1.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_2** = **50** --- Number 2.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_START** = ``250``
 
-- **KEY_3** = **51** --- Number 3.
+MIDI start message. Start the current sequence playing. This message will be followed with Timing Clocks.
 
-- **KEY_4** = **52** --- Number 4.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_CONTINUE:
 
-- **KEY_5** = **53** --- Number 5.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_6** = **54** --- Number 6.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_CONTINUE** = ``251``
 
-- **KEY_7** = **55** --- Number 7.
+MIDI continue message. Continue at the point the sequence was stopped.
 
-- **KEY_8** = **56** --- Number 8.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_STOP:
 
-- **KEY_9** = **57** --- Number 9.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_COLON** = **58** --- : key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_STOP** = ``252``
 
-- **KEY_SEMICOLON** = **59** --- ; key.
+MIDI stop message. Stop the current sequence.
 
-- **KEY_LESS** = **60** --- < key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_ACTIVE_SENSING:
 
-- **KEY_EQUAL** = **61** --- = key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_GREATER** = **62** --- > key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_ACTIVE_SENSING** = ``254``
 
-- **KEY_QUESTION** = **63** --- ? key.
+MIDI active sensing message. This message is intended to be sent repeatedly to tell the receiver that a connection is alive.
 
-- **KEY_AT** = **64** --- @ key.
+.. _class_@GlobalScope_constant_MIDI_MESSAGE_SYSTEM_RESET:
 
-- **KEY_A** = **65** --- A key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_B** = **66** --- B key.
+:ref:`MidiMessageList<enum_@GlobalScope_MidiMessageList>` **MIDI_MESSAGE_SYSTEM_RESET** = ``255``
 
-- **KEY_C** = **67** --- C key.
+MIDI system reset message. Reset all receivers in the system to power-up status. It should not be sent on power-up itself.
 
-- **KEY_D** = **68** --- D key.
+.. rst-class:: classref-item-separator
 
-- **KEY_E** = **69** --- E key.
+----
 
-- **KEY_F** = **70** --- F key.
+.. _enum_@GlobalScope_Error:
 
-- **KEY_G** = **71** --- G key.
+.. rst-class:: classref-enumeration
 
-- **KEY_H** = **72** --- H key.
+enum **Error**:
 
-- **KEY_I** = **73** --- I key.
+.. _class_@GlobalScope_constant_OK:
 
-- **KEY_J** = **74** --- J key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_K** = **75** --- K key.
+:ref:`Error<enum_@GlobalScope_Error>` **OK** = ``0``
 
-- **KEY_L** = **76** --- L key.
+Methods that return :ref:`Error<enum_@GlobalScope_Error>` return :ref:`OK<class_@GlobalScope_constant_OK>` when no error occurred. Note that many functions don't return an error code but will print error messages to standard output.
 
-- **KEY_M** = **77** --- M key.
+Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failure codes are positive integers, it can also be used in boolean checks, e.g.:
 
-- **KEY_N** = **78** --- N key.
+::
 
-- **KEY_O** = **79** --- O key.
+    var err = method_that_returns_error()
+    if err != OK:
+        print("Failure!")
+    # Or, equivalent:
+    if err:
+        print("Still failing!")
 
-- **KEY_P** = **80** --- P key.
+.. _class_@GlobalScope_constant_FAILED:
 
-- **KEY_Q** = **81** --- Q key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_R** = **82** --- R key.
+:ref:`Error<enum_@GlobalScope_Error>` **FAILED** = ``1``
 
-- **KEY_S** = **83** --- S key.
+Generic error.
 
-- **KEY_T** = **84** --- T key.
+.. _class_@GlobalScope_constant_ERR_UNAVAILABLE:
 
-- **KEY_U** = **85** --- U key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_V** = **86** --- V key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_UNAVAILABLE** = ``2``
 
-- **KEY_W** = **87** --- W key.
+Unavailable error.
 
-- **KEY_X** = **88** --- X key.
+.. _class_@GlobalScope_constant_ERR_UNCONFIGURED:
 
-- **KEY_Y** = **89** --- Y key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_Z** = **90** --- Z key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_UNCONFIGURED** = ``3``
 
-- **KEY_BRACKETLEFT** = **91** --- [ key.
+Unconfigured error.
 
-- **KEY_BACKSLASH** = **92** --- \\ key.
+.. _class_@GlobalScope_constant_ERR_UNAUTHORIZED:
 
-- **KEY_BRACKETRIGHT** = **93** --- ] key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ASCIICIRCUM** = **94** --- ^ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_UNAUTHORIZED** = ``4``
 
-- **KEY_UNDERSCORE** = **95** --- \_ key.
+Unauthorized error.
 
-- **KEY_QUOTELEFT** = **96** --- ` key.
+.. _class_@GlobalScope_constant_ERR_PARAMETER_RANGE_ERROR:
 
-- **KEY_BRACELEFT** = **123** --- { key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_BAR** = **124** --- | key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_PARAMETER_RANGE_ERROR** = ``5``
 
-- **KEY_BRACERIGHT** = **125** --- } key.
+Parameter range error.
 
-- **KEY_ASCIITILDE** = **126** --- ~ key.
+.. _class_@GlobalScope_constant_ERR_OUT_OF_MEMORY:
 
-- **KEY_NOBREAKSPACE** = **160** --- Non-breakable space key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_EXCLAMDOWN** = **161** --- ¡ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_OUT_OF_MEMORY** = ``6``
 
-- **KEY_CENT** = **162** --- ¢ key.
+Out of memory (OOM) error.
 
-- **KEY_STERLING** = **163** --- £ key.
+.. _class_@GlobalScope_constant_ERR_FILE_NOT_FOUND:
 
-- **KEY_CURRENCY** = **164** --- ¤ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_YEN** = **165** --- ¥ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_NOT_FOUND** = ``7``
 
-- **KEY_BROKENBAR** = **166** --- ¦ key.
+File: Not found error.
 
-- **KEY_SECTION** = **167** --- § key.
+.. _class_@GlobalScope_constant_ERR_FILE_BAD_DRIVE:
 
-- **KEY_DIAERESIS** = **168** --- ¨ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_COPYRIGHT** = **169** --- © key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_BAD_DRIVE** = ``8``
 
-- **KEY_ORDFEMININE** = **170** --- ª key.
+File: Bad drive error.
 
-- **KEY_GUILLEMOTLEFT** = **171** --- « key.
+.. _class_@GlobalScope_constant_ERR_FILE_BAD_PATH:
 
-- **KEY_NOTSIGN** = **172** --- ¬ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_HYPHEN** = **173** --- Soft hyphen key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_BAD_PATH** = ``9``
 
-- **KEY_REGISTERED** = **174** --- ® key.
+File: Bad path error.
 
-- **KEY_MACRON** = **175** --- ¯ key.
+.. _class_@GlobalScope_constant_ERR_FILE_NO_PERMISSION:
 
-- **KEY_DEGREE** = **176** --- ° key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_PLUSMINUS** = **177** --- ± key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_NO_PERMISSION** = ``10``
 
-- **KEY_TWOSUPERIOR** = **178** --- ² key.
+File: No permission error.
 
-- **KEY_THREESUPERIOR** = **179** --- ³ key.
+.. _class_@GlobalScope_constant_ERR_FILE_ALREADY_IN_USE:
 
-- **KEY_ACUTE** = **180** --- ´ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_MU** = **181** --- µ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_ALREADY_IN_USE** = ``11``
 
-- **KEY_PARAGRAPH** = **182** --- ¶ key.
+File: Already in use error.
 
-- **KEY_PERIODCENTERED** = **183** --- · key.
+.. _class_@GlobalScope_constant_ERR_FILE_CANT_OPEN:
 
-- **KEY_CEDILLA** = **184** --- ¸ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ONESUPERIOR** = **185** --- ¹ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_CANT_OPEN** = ``12``
 
-- **KEY_MASCULINE** = **186** --- º key.
+File: Can't open error.
 
-- **KEY_GUILLEMOTRIGHT** = **187** --- » key.
+.. _class_@GlobalScope_constant_ERR_FILE_CANT_WRITE:
 
-- **KEY_ONEQUARTER** = **188** --- ¼ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ONEHALF** = **189** --- ½ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_CANT_WRITE** = ``13``
 
-- **KEY_THREEQUARTERS** = **190** --- ¾ key.
+File: Can't write error.
 
-- **KEY_QUESTIONDOWN** = **191** --- ¿ key.
+.. _class_@GlobalScope_constant_ERR_FILE_CANT_READ:
 
-- **KEY_AGRAVE** = **192** --- À key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_AACUTE** = **193** --- Á key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_CANT_READ** = ``14``
 
-- **KEY_ACIRCUMFLEX** = **194** --- Â key.
+File: Can't read error.
 
-- **KEY_ATILDE** = **195** --- Ã key.
+.. _class_@GlobalScope_constant_ERR_FILE_UNRECOGNIZED:
 
-- **KEY_ADIAERESIS** = **196** --- Ä key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_ARING** = **197** --- Å key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_UNRECOGNIZED** = ``15``
 
-- **KEY_AE** = **198** --- Æ key.
+File: Unrecognized error.
 
-- **KEY_CCEDILLA** = **199** --- Ç key.
+.. _class_@GlobalScope_constant_ERR_FILE_CORRUPT:
 
-- **KEY_EGRAVE** = **200** --- È key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_EACUTE** = **201** --- É key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_CORRUPT** = ``16``
 
-- **KEY_ECIRCUMFLEX** = **202** --- Ê key.
+File: Corrupt error.
 
-- **KEY_EDIAERESIS** = **203** --- Ë key.
+.. _class_@GlobalScope_constant_ERR_FILE_MISSING_DEPENDENCIES:
 
-- **KEY_IGRAVE** = **204** --- Ì key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_IACUTE** = **205** --- Í key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_MISSING_DEPENDENCIES** = ``17``
 
-- **KEY_ICIRCUMFLEX** = **206** --- Î key.
+File: Missing dependencies error.
 
-- **KEY_IDIAERESIS** = **207** --- Ï key.
+.. _class_@GlobalScope_constant_ERR_FILE_EOF:
 
-- **KEY_ETH** = **208** --- Ð key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_NTILDE** = **209** --- Ñ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_FILE_EOF** = ``18``
 
-- **KEY_OGRAVE** = **210** --- Ò key.
+File: End of file (EOF) error.
 
-- **KEY_OACUTE** = **211** --- Ó key.
+.. _class_@GlobalScope_constant_ERR_CANT_OPEN:
 
-- **KEY_OCIRCUMFLEX** = **212** --- Ô key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_OTILDE** = **213** --- Õ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_OPEN** = ``19``
 
-- **KEY_ODIAERESIS** = **214** --- Ö key.
+Can't open error.
 
-- **KEY_MULTIPLY** = **215** --- × key.
+.. _class_@GlobalScope_constant_ERR_CANT_CREATE:
 
-- **KEY_OOBLIQUE** = **216** --- Ø key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_UGRAVE** = **217** --- Ù key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_CREATE** = ``20``
 
-- **KEY_UACUTE** = **218** --- Ú key.
+Can't create error.
 
-- **KEY_UCIRCUMFLEX** = **219** --- Û key.
+.. _class_@GlobalScope_constant_ERR_QUERY_FAILED:
 
-- **KEY_UDIAERESIS** = **220** --- Ü key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_YACUTE** = **221** --- Ý key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_QUERY_FAILED** = ``21``
 
-- **KEY_THORN** = **222** --- Þ key.
+Query failed error.
 
-- **KEY_SSHARP** = **223** --- ß key.
+.. _class_@GlobalScope_constant_ERR_ALREADY_IN_USE:
 
-- **KEY_DIVISION** = **247** --- ÷ key.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_YDIAERESIS** = **255** --- ÿ key.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_ALREADY_IN_USE** = ``22``
 
-----
+Already in use error.
 
-.. _enum_@GlobalScope_KeyModifierMask:
+.. _class_@GlobalScope_constant_ERR_LOCKED:
 
-.. _class_@GlobalScope_constant_KEY_CODE_MASK:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MODIFIER_MASK:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_LOCKED** = ``23``
 
-.. _class_@GlobalScope_constant_KEY_MASK_SHIFT:
+Locked error.
 
-.. _class_@GlobalScope_constant_KEY_MASK_ALT:
+.. _class_@GlobalScope_constant_ERR_TIMEOUT:
 
-.. _class_@GlobalScope_constant_KEY_MASK_META:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_KEY_MASK_CTRL:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_TIMEOUT** = ``24``
 
-.. _class_@GlobalScope_constant_KEY_MASK_CMD:
+Timeout error.
 
-.. _class_@GlobalScope_constant_KEY_MASK_KPAD:
+.. _class_@GlobalScope_constant_ERR_CANT_CONNECT:
 
-.. _class_@GlobalScope_constant_KEY_MASK_GROUP_SWITCH:
+.. rst-class:: classref-enumeration-constant
 
-enum **KeyModifierMask**:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_CONNECT** = ``25``
 
-- **KEY_CODE_MASK** = **33554431** --- Key Code mask.
+Can't connect error.
 
-- **KEY_MODIFIER_MASK** = **-16777216** --- Modifier key mask.
+.. _class_@GlobalScope_constant_ERR_CANT_RESOLVE:
 
-- **KEY_MASK_SHIFT** = **33554432** --- Shift key mask.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_MASK_ALT** = **67108864** --- Alt key mask.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_RESOLVE** = ``26``
 
-- **KEY_MASK_META** = **134217728** --- Meta key mask.
+Can't resolve error.
 
-- **KEY_MASK_CTRL** = **268435456** --- Ctrl key mask.
+.. _class_@GlobalScope_constant_ERR_CONNECTION_ERROR:
 
-- **KEY_MASK_CMD** = **platform-dependent** --- Command key mask. On macOS, this is equivalent to :ref:`KEY_MASK_META<class_@GlobalScope_constant_KEY_MASK_META>`. On other platforms, this is equivalent to :ref:`KEY_MASK_CTRL<class_@GlobalScope_constant_KEY_MASK_CTRL>`. This mask should be preferred to :ref:`KEY_MASK_META<class_@GlobalScope_constant_KEY_MASK_META>` or :ref:`KEY_MASK_CTRL<class_@GlobalScope_constant_KEY_MASK_CTRL>` for system shortcuts as it handles all platforms correctly.
+.. rst-class:: classref-enumeration-constant
 
-- **KEY_MASK_KPAD** = **536870912** --- Keypad key mask.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CONNECTION_ERROR** = ``27``
 
-- **KEY_MASK_GROUP_SWITCH** = **1073741824** --- Group Switch key mask.
+Connection error.
 
-----
+.. _class_@GlobalScope_constant_ERR_CANT_ACQUIRE_RESOURCE:
 
-.. _enum_@GlobalScope_ButtonList:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_BUTTON_LEFT:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_ACQUIRE_RESOURCE** = ``28``
 
-.. _class_@GlobalScope_constant_BUTTON_RIGHT:
+Can't acquire resource error.
 
-.. _class_@GlobalScope_constant_BUTTON_MIDDLE:
+.. _class_@GlobalScope_constant_ERR_CANT_FORK:
 
-.. _class_@GlobalScope_constant_BUTTON_XBUTTON1:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_BUTTON_XBUTTON2:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CANT_FORK** = ``29``
 
-.. _class_@GlobalScope_constant_BUTTON_WHEEL_UP:
+Can't fork process error.
 
-.. _class_@GlobalScope_constant_BUTTON_WHEEL_DOWN:
+.. _class_@GlobalScope_constant_ERR_INVALID_DATA:
 
-.. _class_@GlobalScope_constant_BUTTON_WHEEL_LEFT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_BUTTON_WHEEL_RIGHT:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_INVALID_DATA** = ``30``
 
-.. _class_@GlobalScope_constant_BUTTON_MASK_LEFT:
+Invalid data error.
 
-.. _class_@GlobalScope_constant_BUTTON_MASK_RIGHT:
+.. _class_@GlobalScope_constant_ERR_INVALID_PARAMETER:
 
-.. _class_@GlobalScope_constant_BUTTON_MASK_MIDDLE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_BUTTON_MASK_XBUTTON1:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_INVALID_PARAMETER** = ``31``
 
-.. _class_@GlobalScope_constant_BUTTON_MASK_XBUTTON2:
+Invalid parameter error.
 
-enum **ButtonList**:
+.. _class_@GlobalScope_constant_ERR_ALREADY_EXISTS:
 
-- **BUTTON_LEFT** = **1** --- Left mouse button.
+.. rst-class:: classref-enumeration-constant
 
-- **BUTTON_RIGHT** = **2** --- Right mouse button.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_ALREADY_EXISTS** = ``32``
 
-- **BUTTON_MIDDLE** = **3** --- Middle mouse button.
+Already exists error.
 
-- **BUTTON_XBUTTON1** = **8** --- Extra mouse button 1 (only present on some mice).
+.. _class_@GlobalScope_constant_ERR_DOES_NOT_EXIST:
 
-- **BUTTON_XBUTTON2** = **9** --- Extra mouse button 2 (only present on some mice).
+.. rst-class:: classref-enumeration-constant
 
-- **BUTTON_WHEEL_UP** = **4** --- Mouse wheel up.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_DOES_NOT_EXIST** = ``33``
 
-- **BUTTON_WHEEL_DOWN** = **5** --- Mouse wheel down.
+Does not exist error.
 
-- **BUTTON_WHEEL_LEFT** = **6** --- Mouse wheel left button (only present on some mice).
+.. _class_@GlobalScope_constant_ERR_DATABASE_CANT_READ:
 
-- **BUTTON_WHEEL_RIGHT** = **7** --- Mouse wheel right button (only present on some mice).
+.. rst-class:: classref-enumeration-constant
 
-- **BUTTON_MASK_LEFT** = **1** --- Left mouse button mask.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_DATABASE_CANT_READ** = ``34``
 
-- **BUTTON_MASK_RIGHT** = **2** --- Right mouse button mask.
+Database: Read error.
 
-- **BUTTON_MASK_MIDDLE** = **4** --- Middle mouse button mask.
+.. _class_@GlobalScope_constant_ERR_DATABASE_CANT_WRITE:
 
-- **BUTTON_MASK_XBUTTON1** = **128** --- Extra mouse button 1 mask.
+.. rst-class:: classref-enumeration-constant
 
-- **BUTTON_MASK_XBUTTON2** = **256** --- Extra mouse button 2 mask.
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_DATABASE_CANT_WRITE** = ``35``
 
-----
+Database: Write error.
 
-.. _enum_@GlobalScope_JoystickList:
+.. _class_@GlobalScope_constant_ERR_COMPILATION_FAILED:
 
-.. _class_@GlobalScope_constant_JOY_INVALID_OPTION:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_0:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_COMPILATION_FAILED** = ``36``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_1:
+Compilation failed error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_2:
+.. _class_@GlobalScope_constant_ERR_METHOD_NOT_FOUND:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_3:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_4:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_METHOD_NOT_FOUND** = ``37``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_5:
+Method not found error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_6:
+.. _class_@GlobalScope_constant_ERR_LINK_FAILED:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_7:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_8:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_LINK_FAILED** = ``38``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_9:
+Linking failed error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_10:
+.. _class_@GlobalScope_constant_ERR_SCRIPT_FAILED:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_11:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_12:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_SCRIPT_FAILED** = ``39``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_13:
+Script failed error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_14:
+.. _class_@GlobalScope_constant_ERR_CYCLIC_LINK:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_15:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_16:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_CYCLIC_LINK** = ``40``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_17:
+Cycling link (import cycle) error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_18:
+.. _class_@GlobalScope_constant_ERR_INVALID_DECLARATION:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_19:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_20:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_INVALID_DECLARATION** = ``41``
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_21:
+Invalid declaration error.
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_22:
+.. _class_@GlobalScope_constant_ERR_DUPLICATE_SYMBOL:
 
-.. _class_@GlobalScope_constant_JOY_BUTTON_MAX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_SONY_CIRCLE:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_DUPLICATE_SYMBOL** = ``42``
 
-.. _class_@GlobalScope_constant_JOY_SONY_X:
+Duplicate symbol error.
 
-.. _class_@GlobalScope_constant_JOY_SONY_SQUARE:
+.. _class_@GlobalScope_constant_ERR_PARSE_ERROR:
 
-.. _class_@GlobalScope_constant_JOY_SONY_TRIANGLE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_XBOX_B:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_PARSE_ERROR** = ``43``
 
-.. _class_@GlobalScope_constant_JOY_XBOX_A:
+Parse error.
 
-.. _class_@GlobalScope_constant_JOY_XBOX_X:
+.. _class_@GlobalScope_constant_ERR_BUSY:
 
-.. _class_@GlobalScope_constant_JOY_XBOX_Y:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_DS_A:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_BUSY** = ``44``
 
-.. _class_@GlobalScope_constant_JOY_DS_B:
+Busy error.
 
-.. _class_@GlobalScope_constant_JOY_DS_X:
+.. _class_@GlobalScope_constant_ERR_SKIP:
 
-.. _class_@GlobalScope_constant_JOY_DS_Y:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_VR_GRIP:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_SKIP** = ``45``
 
-.. _class_@GlobalScope_constant_JOY_VR_PAD:
+Skip error.
 
-.. _class_@GlobalScope_constant_JOY_VR_TRIGGER:
+.. _class_@GlobalScope_constant_ERR_HELP:
 
-.. _class_@GlobalScope_constant_JOY_OCULUS_AX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_OCULUS_BY:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_HELP** = ``46``
 
-.. _class_@GlobalScope_constant_JOY_OCULUS_MENU:
+Help error.
 
-.. _class_@GlobalScope_constant_JOY_OPENVR_MENU:
+.. _class_@GlobalScope_constant_ERR_BUG:
 
-.. _class_@GlobalScope_constant_JOY_SELECT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_START:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_BUG** = ``47``
 
-.. _class_@GlobalScope_constant_JOY_DPAD_UP:
+Bug error.
 
-.. _class_@GlobalScope_constant_JOY_DPAD_DOWN:
+.. _class_@GlobalScope_constant_ERR_PRINTER_ON_FIRE:
 
-.. _class_@GlobalScope_constant_JOY_DPAD_LEFT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_DPAD_RIGHT:
+:ref:`Error<enum_@GlobalScope_Error>` **ERR_PRINTER_ON_FIRE** = ``48``
 
-.. _class_@GlobalScope_constant_JOY_GUIDE:
+Printer on fire error. (This is an easter egg, no engine methods return this error code.)
 
-.. _class_@GlobalScope_constant_JOY_MISC1:
+.. rst-class:: classref-item-separator
 
-.. _class_@GlobalScope_constant_JOY_PADDLE1:
+----
 
-.. _class_@GlobalScope_constant_JOY_PADDLE2:
+.. _enum_@GlobalScope_PropertyHint:
 
-.. _class_@GlobalScope_constant_JOY_PADDLE3:
+.. rst-class:: classref-enumeration
 
-.. _class_@GlobalScope_constant_JOY_PADDLE4:
+enum **PropertyHint**:
 
-.. _class_@GlobalScope_constant_JOY_TOUCHPAD:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_NONE:
 
-.. _class_@GlobalScope_constant_JOY_L:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_L2:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_NONE** = ``0``
 
-.. _class_@GlobalScope_constant_JOY_L3:
+No hint for the edited property.
 
-.. _class_@GlobalScope_constant_JOY_R:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_RANGE:
 
-.. _class_@GlobalScope_constant_JOY_R2:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_R3:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_RANGE** = ``1``
 
-.. _class_@GlobalScope_constant_JOY_AXIS_0:
+Hints that an integer or float property should be within a range specified via the hint string ``"min,max"`` or ``"min,max,step"``. The hint string can optionally include ``"or_greater"`` and/or ``"or_lesser"`` to allow manual input going respectively above the max or below the min values. Example: ``"-360,360,1,or_greater,or_lesser"``.
 
-.. _class_@GlobalScope_constant_JOY_AXIS_1:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_EXP_RANGE:
 
-.. _class_@GlobalScope_constant_JOY_AXIS_2:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_AXIS_3:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_EXP_RANGE** = ``2``
 
-.. _class_@GlobalScope_constant_JOY_AXIS_4:
+Hints that a float property should be within an exponential range specified via the hint string ``"min,max"`` or ``"min,max,step"``. The hint string can optionally include ``"or_greater"`` and/or ``"or_lesser"`` to allow manual input going respectively above the max or below the min values. Example: ``"0.01,100,0.01,or_greater"``.
 
-.. _class_@GlobalScope_constant_JOY_AXIS_5:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_ENUM:
 
-.. _class_@GlobalScope_constant_JOY_AXIS_6:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_AXIS_7:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_ENUM** = ``3``
 
-.. _class_@GlobalScope_constant_JOY_AXIS_8:
+Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
 
-.. _class_@GlobalScope_constant_JOY_AXIS_9:
+The hint string is a comma separated list of names such as ``"Hello,Something,Else"``. For integer and float properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending ``:integer`` to the name, e.g. ``"Zero,One,Three:3,Four,Six:6"``.
 
-.. _class_@GlobalScope_constant_JOY_AXIS_MAX:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_ENUM_SUGGESTION:
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_LX:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_LY:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_ENUM_SUGGESTION** = ``39``
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_RX:
+Hints that a string property can be an enumerated value to pick in a list specified via a hint string such as ``"Hello,Something,Else"``.
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_RY:
+Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>` a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values.
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_L2:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_EXP_EASING:
 
-.. _class_@GlobalScope_constant_JOY_ANALOG_R2:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_JOY_VR_ANALOG_TRIGGER:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_EXP_EASING** = ``4``
 
-.. _class_@GlobalScope_constant_JOY_VR_ANALOG_GRIP:
+Hints that a float property should be edited via an exponential easing function. The hint string can include ``"attenuation"`` to flip the curve horizontally and/or ``"inout"`` to also include in/out easing.
 
-.. _class_@GlobalScope_constant_JOY_OPENVR_TOUCHPADX:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LENGTH:
 
-.. _class_@GlobalScope_constant_JOY_OPENVR_TOUCHPADY:
+.. rst-class:: classref-enumeration-constant
 
-enum **JoystickList**:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LENGTH** = ``5``
 
-- **JOY_INVALID_OPTION** = **-1** --- Invalid button or axis.
+Deprecated hint, unused.
 
-- **JOY_BUTTON_0** = **0** --- Gamepad button 0.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_KEY_ACCEL:
 
-- **JOY_BUTTON_1** = **1** --- Gamepad button 1.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_2** = **2** --- Gamepad button 2.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_KEY_ACCEL** = ``7``
 
-- **JOY_BUTTON_3** = **3** --- Gamepad button 3.
+Deprecated hint, unused.
 
-- **JOY_BUTTON_4** = **4** --- Gamepad button 4.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_FLAGS:
 
-- **JOY_BUTTON_5** = **5** --- Gamepad button 5.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_6** = **6** --- Gamepad button 6.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_FLAGS** = ``8``
 
-- **JOY_BUTTON_7** = **7** --- Gamepad button 7.
+Hints that an integer property is a bitmask with named bit flags. For example, to allow toggling bits 0, 1, 2 and 4, the hint could be something like ``"Bit0,Bit1,Bit2,,Bit4"``.
 
-- **JOY_BUTTON_8** = **8** --- Gamepad button 8.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_RENDER:
 
-- **JOY_BUTTON_9** = **9** --- Gamepad button 9.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_10** = **10** --- Gamepad button 10.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_2D_RENDER** = ``9``
 
-- **JOY_BUTTON_11** = **11** --- Gamepad button 11.
+Hints that an integer property is a bitmask using the optionally named 2D render layers.
 
-- **JOY_BUTTON_12** = **12** --- Gamepad button 12.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_PHYSICS:
 
-- **JOY_BUTTON_13** = **13** --- Gamepad button 13.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_14** = **14** --- Gamepad button 14.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_2D_PHYSICS** = ``10``
 
-- **JOY_BUTTON_15** = **15** --- Gamepad button 15.
+Hints that an integer property is a bitmask using the optionally named 2D physics layers.
 
-- **JOY_BUTTON_16** = **16** --- Gamepad button 16.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_NAVIGATION:
 
-- **JOY_BUTTON_17** = **17** --- Gamepad button 17.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_18** = **18** --- Gamepad button 18.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_2D_NAVIGATION** = ``11``
 
-- **JOY_BUTTON_19** = **19** --- Gamepad button 19.
+Hints that an integer property is a bitmask using the optionally named 2D navigation layers.
 
-- **JOY_BUTTON_20** = **20** --- Gamepad button 20.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_RENDER:
 
-- **JOY_BUTTON_21** = **21** --- Gamepad button 21.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_BUTTON_22** = **22** --- Gamepad button 22.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_3D_RENDER** = ``12``
 
-- **JOY_BUTTON_MAX** = **128** --- The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms:
+Hints that an integer property is a bitmask using the optionally named 3D render layers.
 
-	- Android: Up to 36 buttons.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_PHYSICS:
 
-	- Linux: Up to 80 buttons.
+.. rst-class:: classref-enumeration-constant
 
-	- Windows and macOS: Up to 128 buttons.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_3D_PHYSICS** = ``13``
 
-- **JOY_SONY_CIRCLE** = **1** --- DualShock circle button.
+Hints that an integer property is a bitmask using the optionally named 3D physics layers.
 
-- **JOY_SONY_X** = **0** --- DualShock X button.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_NAVIGATION:
 
-- **JOY_SONY_SQUARE** = **2** --- DualShock square button.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_SONY_TRIANGLE** = **3** --- DualShock triangle button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_LAYERS_3D_NAVIGATION** = ``14``
 
-- **JOY_XBOX_B** = **1** --- Xbox controller B button.
+Hints that an integer property is a bitmask using the optionally named 3D navigation layers.
 
-- **JOY_XBOX_A** = **0** --- Xbox controller A button.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_FILE:
 
-- **JOY_XBOX_X** = **2** --- Xbox controller X button.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_XBOX_Y** = **3** --- Xbox controller Y button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_FILE** = ``15``
 
-- **JOY_DS_A** = **1** --- Nintendo controller A button.
+Hints that a string property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
 
-- **JOY_DS_B** = **0** --- Nintendo controller B button.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_DIR:
 
-- **JOY_DS_X** = **3** --- Nintendo controller X button.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_DS_Y** = **2** --- Nintendo controller Y button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_DIR** = ``16``
 
-- **JOY_VR_GRIP** = **2** --- Grip (side) buttons on a VR controller.
+Hints that a string property is a path to a directory. Editing it will show a file dialog for picking the path.
 
-- **JOY_VR_PAD** = **14** --- Push down on the touchpad or main joystick on a VR controller.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_GLOBAL_FILE:
 
-- **JOY_VR_TRIGGER** = **15** --- Trigger on a VR controller.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_OCULUS_AX** = **7** --- A button on the right Oculus Touch controller, X button on the left controller (also when used in OpenVR).
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_GLOBAL_FILE** = ``17``
 
-- **JOY_OCULUS_BY** = **1** --- B button on the right Oculus Touch controller, Y button on the left controller (also when used in OpenVR).
+Hints that a string property is an absolute path to a file outside the project folder. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
 
-- **JOY_OCULUS_MENU** = **3** --- Menu button on either Oculus Touch controller.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_GLOBAL_DIR:
 
-- **JOY_OPENVR_MENU** = **1** --- Menu button in OpenVR (Except when Oculus Touch controllers are used).
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_SELECT** = **10** --- Gamepad button Select.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_GLOBAL_DIR** = ``18``
 
-- **JOY_START** = **11** --- Gamepad button Start.
+Hints that a string property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path.
 
-- **JOY_DPAD_UP** = **12** --- Gamepad DPad up.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_RESOURCE_TYPE:
 
-- **JOY_DPAD_DOWN** = **13** --- Gamepad DPad down.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_DPAD_LEFT** = **14** --- Gamepad DPad left.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_RESOURCE_TYPE** = ``19``
 
-- **JOY_DPAD_RIGHT** = **15** --- Gamepad DPad right.
+Hints that a property is an instance of a :ref:`Resource<class_Resource>`-derived type, optionally specified via the hint string (e.g. ``"Texture"``). Editing it will show a popup menu of valid resource types to instantiate.
 
-- **JOY_GUIDE** = **16** --- Gamepad SDL guide button.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_MULTILINE_TEXT:
 
-- **JOY_MISC1** = **17** --- Gamepad SDL miscellaneous button.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_PADDLE1** = **18** --- Gamepad SDL paddle 1 button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_MULTILINE_TEXT** = ``20``
 
-- **JOY_PADDLE2** = **19** --- Gamepad SDL paddle 2 button.
+Hints that a string property is text with line breaks. Editing it will show a text input field where line breaks can be typed.
 
-- **JOY_PADDLE3** = **20** --- Gamepad SDL paddle 3 button.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_PLACEHOLDER_TEXT:
 
-- **JOY_PADDLE4** = **21** --- Gamepad SDL paddle 4 button.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_TOUCHPAD** = **22** --- Gamepad SDL touchpad button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_PLACEHOLDER_TEXT** = ``21``
 
-- **JOY_L** = **4** --- Gamepad left Shoulder button.
+Hints that a string property should have a placeholder text visible on its input field, whenever the property is empty. The hint string is the placeholder text to use.
 
-- **JOY_L2** = **6** --- Gamepad left trigger.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_COLOR_NO_ALPHA:
 
-- **JOY_L3** = **8** --- Gamepad left stick click.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_R** = **5** --- Gamepad right Shoulder button.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_COLOR_NO_ALPHA** = ``22``
 
-- **JOY_R2** = **7** --- Gamepad right trigger.
+Hints that a color property should be edited without changing its alpha component, i.e. only R, G and B channels are edited.
 
-- **JOY_R3** = **9** --- Gamepad right stick click.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY:
 
-- **JOY_AXIS_0** = **0** --- Gamepad left stick horizontal axis.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_AXIS_1** = **1** --- Gamepad left stick vertical axis.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_IMAGE_COMPRESS_LOSSY** = ``23``
 
-- **JOY_AXIS_2** = **2** --- Gamepad right stick horizontal axis.
+Hints that an image is compressed using lossy compression.
 
-- **JOY_AXIS_3** = **3** --- Gamepad right stick vertical axis.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS:
 
-- **JOY_AXIS_4** = **4** --- Generic gamepad axis 4.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_AXIS_5** = **5** --- Generic gamepad axis 5.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS** = ``24``
 
-- **JOY_AXIS_6** = **6** --- Gamepad left trigger analog axis.
+Hints that an image is compressed using lossless compression.
 
-- **JOY_AXIS_7** = **7** --- Gamepad right trigger analog axis.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_OBJECT_ID:
 
-- **JOY_AXIS_8** = **8** --- Generic gamepad axis 8.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_AXIS_9** = **9** --- Generic gamepad axis 9.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_OBJECT_ID** = ``25``
 
-- **JOY_AXIS_MAX** = **10** --- Represents the maximum number of joystick axes supported.
 
-- **JOY_ANALOG_LX** = **0** --- Gamepad left stick horizontal axis.
 
-- **JOY_ANALOG_LY** = **1** --- Gamepad left stick vertical axis.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_TYPE_STRING:
 
-- **JOY_ANALOG_RX** = **2** --- Gamepad right stick horizontal axis.
+.. rst-class:: classref-enumeration-constant
 
-- **JOY_ANALOG_RY** = **3** --- Gamepad right stick vertical axis.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_TYPE_STRING** = ``26``
 
-- **JOY_ANALOG_L2** = **6** --- Gamepad left analog trigger.
+Hint that a property represents a particular type. If a property is :ref:`TYPE_STRING<class_@GlobalScope_constant_TYPE_STRING>`, allows to set a type from the create dialog. If you need to create an :ref:`Array<class_Array>` to contain elements of a specific type, the ``hint_string`` must encode nested types using ``":"`` and ``"/"`` for specifying :ref:`Resource<class_Resource>` types. For instance:
 
-- **JOY_ANALOG_R2** = **7** --- Gamepad right analog trigger.
+::
 
-- **JOY_VR_ANALOG_TRIGGER** = **2** --- VR Controller analog trigger.
+    hint_string = "%s:" % [TYPE_INT] # Array of inteters.
+    hint_string = "%s:%s:" % [TYPE_ARRAY, TYPE_REAL] # Two-dimensional array of floats.
+    hint_string = "%s/%s:Resource" % [TYPE_OBJECT, TYPE_OBJECT] # Array of resources.
+    hint_string = "%s:%s/%s:Resource" % [TYPE_ARRAY, TYPE_OBJECT, TYPE_OBJECT] # Two-dimensional array of resources.
 
-- **JOY_VR_ANALOG_GRIP** = **4** --- VR Controller analog grip (side buttons).
+\ **Note:** The final colon is required to specify for properly detecting built-in types.
 
-- **JOY_OPENVR_TOUCHPADX** = **0** --- OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR controllers).
+.. _class_@GlobalScope_constant_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE:
 
-- **JOY_OPENVR_TOUCHPADY** = **1** --- OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR controllers).
+.. rst-class:: classref-enumeration-constant
 
-----
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE** = ``27``
 
-.. _enum_@GlobalScope_MidiMessageList:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_OFF:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_NOTE_ON:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_AFTERTOUCH:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_CONTROL_CHANGE:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_METHOD_OF_VARIANT_TYPE** = ``28``
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_PROGRAM_CHANGE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_CHANNEL_PRESSURE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_PITCH_BEND:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_BASE_TYPE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_SYSTEM_EXCLUSIVE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_QUARTER_FRAME:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_METHOD_OF_BASE_TYPE** = ``29``
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_SONG_POSITION_POINTER:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_SONG_SELECT:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_TUNE_REQUEST:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_INSTANCE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_TIMING_CLOCK:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_START:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_METHOD_OF_INSTANCE** = ``30``
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_CONTINUE:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_STOP:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_ACTIVE_SENSING:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_SCRIPT:
 
-.. _class_@GlobalScope_constant_MIDI_MESSAGE_SYSTEM_RESET:
+.. rst-class:: classref-enumeration-constant
 
-enum **MidiMessageList**:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_METHOD_OF_SCRIPT** = ``31``
 
-- **MIDI_MESSAGE_NOTE_OFF** = **8** --- MIDI note OFF message. See the documentation of :ref:`InputEventMIDI<class_InputEventMIDI>` for information of how to use MIDI inputs.
 
-- **MIDI_MESSAGE_NOTE_ON** = **9** --- MIDI note ON message. See the documentation of :ref:`InputEventMIDI<class_InputEventMIDI>` for information of how to use MIDI inputs.
 
-- **MIDI_MESSAGE_AFTERTOUCH** = **10** --- MIDI aftertouch message. This message is most often sent by pressing down on the key after it "bottoms out".
+.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE:
 
-- **MIDI_MESSAGE_CONTROL_CHANGE** = **11** --- MIDI control change message. This message is sent when a controller value changes. Controllers include devices such as pedals and levers.
+.. rst-class:: classref-enumeration-constant
 
-- **MIDI_MESSAGE_PROGRAM_CHANGE** = **12** --- MIDI program change message. This message sent when the program patch number changes.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE** = ``32``
 
-- **MIDI_MESSAGE_CHANNEL_PRESSURE** = **13** --- MIDI channel pressure message. This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch as it indicates the highest pressure across all keys.
 
-- **MIDI_MESSAGE_PITCH_BEND** = **14** --- MIDI pitch bend message. This message is sent to indicate a change in the pitch bender (wheel or lever, typically).
 
-- **MIDI_MESSAGE_SYSTEM_EXCLUSIVE** = **240** --- MIDI system exclusive message. This has behavior exclusive to the device you're receiving input from. Getting this data is not implemented in Godot.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE:
 
-- **MIDI_MESSAGE_QUARTER_FRAME** = **241** --- MIDI quarter frame message. Contains timing information that is used to synchronize MIDI devices. Getting this data is not implemented in Godot.
+.. rst-class:: classref-enumeration-constant
 
-- **MIDI_MESSAGE_SONG_POSITION_POINTER** = **242** --- MIDI song position pointer message. Gives the number of 16th notes since the start of the song. Getting this data is not implemented in Godot.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_PROPERTY_OF_BASE_TYPE** = ``33``
 
-- **MIDI_MESSAGE_SONG_SELECT** = **243** --- MIDI song select message. Specifies which sequence or song is to be played. Getting this data is not implemented in Godot.
 
-- **MIDI_MESSAGE_TUNE_REQUEST** = **246** --- MIDI tune request message. Upon receiving a tune request, all analog synthesizers should tune their oscillators.
 
-- **MIDI_MESSAGE_TIMING_CLOCK** = **248** --- MIDI timing clock message. Sent 24 times per quarter note when synchronization is required.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_INSTANCE:
 
-- **MIDI_MESSAGE_START** = **250** --- MIDI start message. Start the current sequence playing. This message will be followed with Timing Clocks.
+.. rst-class:: classref-enumeration-constant
 
-- **MIDI_MESSAGE_CONTINUE** = **251** --- MIDI continue message. Continue at the point the sequence was stopped.
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_PROPERTY_OF_INSTANCE** = ``34``
 
-- **MIDI_MESSAGE_STOP** = **252** --- MIDI stop message. Stop the current sequence.
 
-- **MIDI_MESSAGE_ACTIVE_SENSING** = **254** --- MIDI active sensing message. This message is intended to be sent repeatedly to tell the receiver that a connection is alive.
 
-- **MIDI_MESSAGE_SYSTEM_RESET** = **255** --- MIDI system reset message. Reset all receivers in the system to power-up status. It should not be sent on power-up itself.
+.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_SCRIPT:
 
-----
+.. rst-class:: classref-enumeration-constant
 
-.. _enum_@GlobalScope_Error:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_PROPERTY_OF_SCRIPT** = ``35``
 
-.. _class_@GlobalScope_constant_OK:
 
-.. _class_@GlobalScope_constant_FAILED:
 
-.. _class_@GlobalScope_constant_ERR_UNAVAILABLE:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_OBJECT_TOO_BIG:
 
-.. _class_@GlobalScope_constant_ERR_UNCONFIGURED:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_UNAUTHORIZED:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_OBJECT_TOO_BIG** = ``36``
 
-.. _class_@GlobalScope_constant_ERR_PARAMETER_RANGE_ERROR:
 
-.. _class_@GlobalScope_constant_ERR_OUT_OF_MEMORY:
 
-.. _class_@GlobalScope_constant_ERR_FILE_NOT_FOUND:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_NODE_PATH_VALID_TYPES:
 
-.. _class_@GlobalScope_constant_ERR_FILE_BAD_DRIVE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_FILE_BAD_PATH:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_NODE_PATH_VALID_TYPES** = ``37``
 
-.. _class_@GlobalScope_constant_ERR_FILE_NO_PERMISSION:
 
-.. _class_@GlobalScope_constant_ERR_FILE_ALREADY_IN_USE:
 
-.. _class_@GlobalScope_constant_ERR_FILE_CANT_OPEN:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_SAVE_FILE:
 
-.. _class_@GlobalScope_constant_ERR_FILE_CANT_WRITE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_FILE_CANT_READ:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_SAVE_FILE** = ``38``
 
-.. _class_@GlobalScope_constant_ERR_FILE_UNRECOGNIZED:
 
-.. _class_@GlobalScope_constant_ERR_FILE_CORRUPT:
 
-.. _class_@GlobalScope_constant_ERR_FILE_MISSING_DEPENDENCIES:
+.. _class_@GlobalScope_constant_PROPERTY_HINT_MAX:
 
-.. _class_@GlobalScope_constant_ERR_FILE_EOF:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_CANT_OPEN:
+:ref:`PropertyHint<enum_@GlobalScope_PropertyHint>` **PROPERTY_HINT_MAX** = ``40``
 
-.. _class_@GlobalScope_constant_ERR_CANT_CREATE:
 
-.. _class_@GlobalScope_constant_ERR_QUERY_FAILED:
 
-.. _class_@GlobalScope_constant_ERR_ALREADY_IN_USE:
+.. rst-class:: classref-item-separator
 
-.. _class_@GlobalScope_constant_ERR_LOCKED:
+----
 
-.. _class_@GlobalScope_constant_ERR_TIMEOUT:
+.. _enum_@GlobalScope_PropertyUsageFlags:
 
-.. _class_@GlobalScope_constant_ERR_CANT_CONNECT:
+.. rst-class:: classref-enumeration
 
-.. _class_@GlobalScope_constant_ERR_CANT_RESOLVE:
+enum **PropertyUsageFlags**:
 
-.. _class_@GlobalScope_constant_ERR_CONNECTION_ERROR:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_STORAGE:
 
-.. _class_@GlobalScope_constant_ERR_CANT_ACQUIRE_RESOURCE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_CANT_FORK:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_STORAGE** = ``1``
 
-.. _class_@GlobalScope_constant_ERR_INVALID_DATA:
+The property is serialized and saved in the scene file (default).
 
-.. _class_@GlobalScope_constant_ERR_INVALID_PARAMETER:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR:
 
-.. _class_@GlobalScope_constant_ERR_ALREADY_EXISTS:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_DOES_NOT_EXIST:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_EDITOR** = ``2``
 
-.. _class_@GlobalScope_constant_ERR_DATABASE_CANT_READ:
+The property is shown in the editor inspector (default).
 
-.. _class_@GlobalScope_constant_ERR_DATABASE_CANT_WRITE:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_NETWORK:
 
-.. _class_@GlobalScope_constant_ERR_COMPILATION_FAILED:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_METHOD_NOT_FOUND:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_NETWORK** = ``4``
 
-.. _class_@GlobalScope_constant_ERR_LINK_FAILED:
+Deprecated usage flag, unused.
 
-.. _class_@GlobalScope_constant_ERR_SCRIPT_FAILED:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR_HELPER:
 
-.. _class_@GlobalScope_constant_ERR_CYCLIC_LINK:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_INVALID_DECLARATION:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_EDITOR_HELPER** = ``8``
 
-.. _class_@GlobalScope_constant_ERR_DUPLICATE_SYMBOL:
+Deprecated usage flag, unused.
 
-.. _class_@GlobalScope_constant_ERR_PARSE_ERROR:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKABLE:
 
-.. _class_@GlobalScope_constant_ERR_BUSY:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_ERR_SKIP:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_CHECKABLE** = ``16``
 
-.. _class_@GlobalScope_constant_ERR_HELP:
+The property can be checked in the editor inspector.
 
-.. _class_@GlobalScope_constant_ERR_BUG:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKED:
 
-.. _class_@GlobalScope_constant_ERR_PRINTER_ON_FIRE:
+.. rst-class:: classref-enumeration-constant
 
-enum **Error**:
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_CHECKED** = ``32``
 
-- **OK** = **0** --- Methods that return :ref:`Error<enum_@GlobalScope_Error>` return :ref:`OK<class_@GlobalScope_constant_OK>` when no error occurred. Note that many functions don't return an error code but will print error messages to standard output.
+The property is checked in the editor inspector.
 
-Since :ref:`OK<class_@GlobalScope_constant_OK>` has value 0, and all other failure codes are positive integers, it can also be used in boolean checks, e.g.:
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_INTERNATIONALIZED:
 
-::
+.. rst-class:: classref-enumeration-constant
 
-    var err = method_that_returns_error()
-    if err != OK:
-        print("Failure!")
-    # Or, equivalent:
-    if err:
-        print("Still failing!")
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_INTERNATIONALIZED** = ``64``
 
-- **FAILED** = **1** --- Generic error.
+The property is a translatable string.
 
-- **ERR_UNAVAILABLE** = **2** --- Unavailable error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_GROUP:
 
-- **ERR_UNCONFIGURED** = **3** --- Unconfigured error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_UNAUTHORIZED** = **4** --- Unauthorized error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_GROUP** = ``128``
 
-- **ERR_PARAMETER_RANGE_ERROR** = **5** --- Parameter range error.
+Used to group properties together in the editor. See :ref:`EditorInspector<class_EditorInspector>`.
 
-- **ERR_OUT_OF_MEMORY** = **6** --- Out of memory (OOM) error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_CATEGORY:
 
-- **ERR_FILE_NOT_FOUND** = **7** --- File: Not found error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_FILE_BAD_DRIVE** = **8** --- File: Bad drive error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_CATEGORY** = ``256``
 
-- **ERR_FILE_BAD_PATH** = **9** --- File: Bad path error.
+Used to categorize properties together in the editor.
 
-- **ERR_FILE_NO_PERMISSION** = **10** --- File: No permission error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_NO_INSTANCE_STATE:
 
-- **ERR_FILE_ALREADY_IN_USE** = **11** --- File: Already in use error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_FILE_CANT_OPEN** = **12** --- File: Can't open error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_NO_INSTANCE_STATE** = ``2048``
 
-- **ERR_FILE_CANT_WRITE** = **13** --- File: Can't write error.
+The property does not save its state in :ref:`PackedScene<class_PackedScene>`.
 
-- **ERR_FILE_CANT_READ** = **14** --- File: Can't read error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_RESTART_IF_CHANGED:
 
-- **ERR_FILE_UNRECOGNIZED** = **15** --- File: Unrecognized error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_FILE_CORRUPT** = **16** --- File: Corrupt error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_RESTART_IF_CHANGED** = ``4096``
 
-- **ERR_FILE_MISSING_DEPENDENCIES** = **17** --- File: Missing dependencies error.
+Editing the property prompts the user for restarting the editor.
 
-- **ERR_FILE_EOF** = **18** --- File: End of file (EOF) error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_SCRIPT_VARIABLE:
 
-- **ERR_CANT_OPEN** = **19** --- Can't open error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_CANT_CREATE** = **20** --- Can't create error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_SCRIPT_VARIABLE** = ``8192``
 
-- **ERR_QUERY_FAILED** = **21** --- Query failed error.
+The property is a script variable which should be serialized and saved in the scene file.
 
-- **ERR_ALREADY_IN_USE** = **22** --- Already in use error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_DEFAULT:
 
-- **ERR_LOCKED** = **23** --- Locked error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_TIMEOUT** = **24** --- Timeout error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_DEFAULT** = ``7``
 
-- **ERR_CANT_CONNECT** = **25** --- Can't connect error.
+Default usage (storage, editor and network).
 
-- **ERR_CANT_RESOLVE** = **26** --- Can't resolve error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_DEFAULT_INTL:
 
-- **ERR_CONNECTION_ERROR** = **27** --- Connection error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_CANT_ACQUIRE_RESOURCE** = **28** --- Can't acquire resource error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_DEFAULT_INTL** = ``71``
 
-- **ERR_CANT_FORK** = **29** --- Can't fork process error.
+Default usage for translatable strings (storage, editor, network and internationalized).
 
-- **ERR_INVALID_DATA** = **30** --- Invalid data error.
+.. _class_@GlobalScope_constant_PROPERTY_USAGE_NOEDITOR:
 
-- **ERR_INVALID_PARAMETER** = **31** --- Invalid parameter error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_ALREADY_EXISTS** = **32** --- Already exists error.
+:ref:`PropertyUsageFlags<enum_@GlobalScope_PropertyUsageFlags>` **PROPERTY_USAGE_NOEDITOR** = ``5``
 
-- **ERR_DOES_NOT_EXIST** = **33** --- Does not exist error.
+Default usage but without showing the property in the editor (storage, network).
 
-- **ERR_DATABASE_CANT_READ** = **34** --- Database: Read error.
+.. rst-class:: classref-item-separator
 
-- **ERR_DATABASE_CANT_WRITE** = **35** --- Database: Write error.
+----
 
-- **ERR_COMPILATION_FAILED** = **36** --- Compilation failed error.
+.. _enum_@GlobalScope_MethodFlags:
 
-- **ERR_METHOD_NOT_FOUND** = **37** --- Method not found error.
+.. rst-class:: classref-enumeration
 
-- **ERR_LINK_FAILED** = **38** --- Linking failed error.
+enum **MethodFlags**:
 
-- **ERR_SCRIPT_FAILED** = **39** --- Script failed error.
+.. _class_@GlobalScope_constant_METHOD_FLAG_NORMAL:
 
-- **ERR_CYCLIC_LINK** = **40** --- Cycling link (import cycle) error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_INVALID_DECLARATION** = **41** --- Invalid declaration error.
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_NORMAL** = ``1``
 
-- **ERR_DUPLICATE_SYMBOL** = **42** --- Duplicate symbol error.
+Flag for a normal method.
 
-- **ERR_PARSE_ERROR** = **43** --- Parse error.
+.. _class_@GlobalScope_constant_METHOD_FLAG_EDITOR:
 
-- **ERR_BUSY** = **44** --- Busy error.
+.. rst-class:: classref-enumeration-constant
 
-- **ERR_SKIP** = **45** --- Skip error.
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_EDITOR** = ``2``
 
-- **ERR_HELP** = **46** --- Help error.
+Flag for an editor method.
 
-- **ERR_BUG** = **47** --- Bug error.
+.. _class_@GlobalScope_constant_METHOD_FLAG_NOSCRIPT:
 
-- **ERR_PRINTER_ON_FIRE** = **48** --- Printer on fire error. (This is an easter egg, no engine methods return this error code.)
+.. rst-class:: classref-enumeration-constant
 
-----
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_NOSCRIPT** = ``4``
 
-.. _enum_@GlobalScope_PropertyHint:
+Deprecated method flag, unused.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_NONE:
+.. _class_@GlobalScope_constant_METHOD_FLAG_CONST:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_RANGE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_EXP_RANGE:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_CONST** = ``8``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_ENUM:
+Flag for a constant method.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_ENUM_SUGGESTION:
+.. _class_@GlobalScope_constant_METHOD_FLAG_REVERSE:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_EXP_EASING:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LENGTH:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_REVERSE** = ``16``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_KEY_ACCEL:
+Deprecated method flag, unused.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_FLAGS:
+.. _class_@GlobalScope_constant_METHOD_FLAG_VIRTUAL:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_RENDER:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_PHYSICS:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_VIRTUAL** = ``32``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_2D_NAVIGATION:
+Flag for a virtual method.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_RENDER:
+.. _class_@GlobalScope_constant_METHOD_FLAG_FROM_SCRIPT:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_PHYSICS:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_LAYERS_3D_NAVIGATION:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_FROM_SCRIPT** = ``64``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_FILE:
+Deprecated method flag, unused.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_DIR:
+.. _class_@GlobalScope_constant_METHOD_FLAG_VARARG:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_GLOBAL_FILE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_GLOBAL_DIR:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAG_VARARG** = ``128``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_RESOURCE_TYPE:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_MULTILINE_TEXT:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_PLACEHOLDER_TEXT:
+.. _class_@GlobalScope_constant_METHOD_FLAGS_DEFAULT:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_COLOR_NO_ALPHA:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_IMAGE_COMPRESS_LOSSY:
+:ref:`MethodFlags<enum_@GlobalScope_MethodFlags>` **METHOD_FLAGS_DEFAULT** = ``1``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS:
+Default method flags.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_OBJECT_ID:
+.. rst-class:: classref-item-separator
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_TYPE_STRING:
+----
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE:
+.. _enum_@GlobalScope_Variant.Type:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_VARIANT_TYPE:
+.. rst-class:: classref-enumeration
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_BASE_TYPE:
+enum **Variant.Type**:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_INSTANCE:
+.. _class_@GlobalScope_constant_TYPE_NIL:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_METHOD_OF_SCRIPT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_NIL** = ``0``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_BASE_TYPE:
+Variable is ``null``.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_INSTANCE:
+.. _class_@GlobalScope_constant_TYPE_BOOL:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_PROPERTY_OF_SCRIPT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_OBJECT_TOO_BIG:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_BOOL** = ``1``
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_NODE_PATH_VALID_TYPES:
+Variable is of type :ref:`bool<class_bool>`.
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_SAVE_FILE:
+.. _class_@GlobalScope_constant_TYPE_INT:
 
-.. _class_@GlobalScope_constant_PROPERTY_HINT_MAX:
+.. rst-class:: classref-enumeration-constant
 
-enum **PropertyHint**:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_INT** = ``2``
 
-- **PROPERTY_HINT_NONE** = **0** --- No hint for the edited property.
+Variable is of type :ref:`int<class_int>`.
 
-- **PROPERTY_HINT_RANGE** = **1** --- Hints that an integer or float property should be within a range specified via the hint string ``"min,max"`` or ``"min,max,step"``. The hint string can optionally include ``"or_greater"`` and/or ``"or_lesser"`` to allow manual input going respectively above the max or below the min values. Example: ``"-360,360,1,or_greater,or_lesser"``.
+.. _class_@GlobalScope_constant_TYPE_REAL:
 
-- **PROPERTY_HINT_EXP_RANGE** = **2** --- Hints that a float property should be within an exponential range specified via the hint string ``"min,max"`` or ``"min,max,step"``. The hint string can optionally include ``"or_greater"`` and/or ``"or_lesser"`` to allow manual input going respectively above the max or below the min values. Example: ``"0.01,100,0.01,or_greater"``.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_ENUM** = **3** --- Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_REAL** = ``3``
 
-The hint string is a comma separated list of names such as ``"Hello,Something,Else"``. For integer and float properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending ``:integer`` to the name, e.g. ``"Zero,One,Three:3,Four,Six:6"``.
+Variable is of type :ref:`float<class_float>` (real).
 
-- **PROPERTY_HINT_ENUM_SUGGESTION** = **39** --- Hints that a string property can be an enumerated value to pick in a list specified via a hint string such as ``"Hello,Something,Else"``.
+.. _class_@GlobalScope_constant_TYPE_STRING:
 
-Unlike :ref:`PROPERTY_HINT_ENUM<class_@GlobalScope_constant_PROPERTY_HINT_ENUM>` a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_EXP_EASING** = **4** --- Hints that a float property should be edited via an exponential easing function. The hint string can include ``"attenuation"`` to flip the curve horizontally and/or ``"inout"`` to also include in/out easing.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_STRING** = ``4``
 
-- **PROPERTY_HINT_LENGTH** = **5** --- Deprecated hint, unused.
+Variable is of type :ref:`String<class_String>`.
 
-- **PROPERTY_HINT_KEY_ACCEL** = **7** --- Deprecated hint, unused.
+.. _class_@GlobalScope_constant_TYPE_VECTOR2:
 
-- **PROPERTY_HINT_FLAGS** = **8** --- Hints that an integer property is a bitmask with named bit flags. For example, to allow toggling bits 0, 1, 2 and 4, the hint could be something like ``"Bit0,Bit1,Bit2,,Bit4"``.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_LAYERS_2D_RENDER** = **9** --- Hints that an integer property is a bitmask using the optionally named 2D render layers.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_VECTOR2** = ``5``
 
-- **PROPERTY_HINT_LAYERS_2D_PHYSICS** = **10** --- Hints that an integer property is a bitmask using the optionally named 2D physics layers.
+Variable is of type :ref:`Vector2<class_Vector2>`.
 
-- **PROPERTY_HINT_LAYERS_2D_NAVIGATION** = **11** --- Hints that an integer property is a bitmask using the optionally named 2D navigation layers.
+.. _class_@GlobalScope_constant_TYPE_RECT2:
 
-- **PROPERTY_HINT_LAYERS_3D_RENDER** = **12** --- Hints that an integer property is a bitmask using the optionally named 3D render layers.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_LAYERS_3D_PHYSICS** = **13** --- Hints that an integer property is a bitmask using the optionally named 3D physics layers.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_RECT2** = ``6``
 
-- **PROPERTY_HINT_LAYERS_3D_NAVIGATION** = **14** --- Hints that an integer property is a bitmask using the optionally named 3D navigation layers.
+Variable is of type :ref:`Rect2<class_Rect2>`.
 
-- **PROPERTY_HINT_FILE** = **15** --- Hints that a string property is a path to a file. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
+.. _class_@GlobalScope_constant_TYPE_VECTOR3:
 
-- **PROPERTY_HINT_DIR** = **16** --- Hints that a string property is a path to a directory. Editing it will show a file dialog for picking the path.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_GLOBAL_FILE** = **17** --- Hints that a string property is an absolute path to a file outside the project folder. Editing it will show a file dialog for picking the path. The hint string can be a set of filters with wildcards like ``"*.png,*.jpg"``.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_VECTOR3** = ``7``
 
-- **PROPERTY_HINT_GLOBAL_DIR** = **18** --- Hints that a string property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path.
+Variable is of type :ref:`Vector3<class_Vector3>`.
 
-- **PROPERTY_HINT_RESOURCE_TYPE** = **19** --- Hints that a property is an instance of a :ref:`Resource<class_Resource>`-derived type, optionally specified via the hint string (e.g. ``"Texture"``). Editing it will show a popup menu of valid resource types to instantiate.
+.. _class_@GlobalScope_constant_TYPE_TRANSFORM2D:
 
-- **PROPERTY_HINT_MULTILINE_TEXT** = **20** --- Hints that a string property is text with line breaks. Editing it will show a text input field where line breaks can be typed.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_PLACEHOLDER_TEXT** = **21** --- Hints that a string property should have a placeholder text visible on its input field, whenever the property is empty. The hint string is the placeholder text to use.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_TRANSFORM2D** = ``8``
 
-- **PROPERTY_HINT_COLOR_NO_ALPHA** = **22** --- Hints that a color property should be edited without changing its alpha component, i.e. only R, G and B channels are edited.
+Variable is of type :ref:`Transform2D<class_Transform2D>`.
 
-- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSY** = **23** --- Hints that an image is compressed using lossy compression.
+.. _class_@GlobalScope_constant_TYPE_PLANE:
 
-- **PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS** = **24** --- Hints that an image is compressed using lossless compression.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_OBJECT_ID** = **25**
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_PLANE** = ``9``
 
-- **PROPERTY_HINT_TYPE_STRING** = **26** --- Hint that a property represents a particular type. If a property is :ref:`TYPE_STRING<class_@GlobalScope_constant_TYPE_STRING>`, allows to set a type from the create dialog. If you need to create an :ref:`Array<class_Array>` to contain elements of a specific type, the ``hint_string`` must encode nested types using ``":"`` and ``"/"`` for specifying :ref:`Resource<class_Resource>` types. For instance:
+Variable is of type :ref:`Plane<class_Plane>`.
 
-::
+.. _class_@GlobalScope_constant_TYPE_QUAT:
 
-    hint_string = "%s:" % [TYPE_INT] # Array of inteters.
-    hint_string = "%s:%s:" % [TYPE_ARRAY, TYPE_REAL] # Two-dimensional array of floats.
-    hint_string = "%s/%s:Resource" % [TYPE_OBJECT, TYPE_OBJECT] # Array of resources.
-    hint_string = "%s:%s/%s:Resource" % [TYPE_ARRAY, TYPE_OBJECT, TYPE_OBJECT] # Two-dimensional array of resources.
+.. rst-class:: classref-enumeration-constant
 
-\ **Note:** The final colon is required to specify for properly detecting built-in types.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_QUAT** = ``10``
 
-- **PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE** = **27**
+Variable is of type :ref:`Quat<class_Quat>`.
 
-- **PROPERTY_HINT_METHOD_OF_VARIANT_TYPE** = **28**
+.. _class_@GlobalScope_constant_TYPE_AABB:
 
-- **PROPERTY_HINT_METHOD_OF_BASE_TYPE** = **29**
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_METHOD_OF_INSTANCE** = **30**
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_AABB** = ``11``
 
-- **PROPERTY_HINT_METHOD_OF_SCRIPT** = **31**
+Variable is of type :ref:`AABB<class_AABB>`.
 
-- **PROPERTY_HINT_PROPERTY_OF_VARIANT_TYPE** = **32**
+.. _class_@GlobalScope_constant_TYPE_BASIS:
 
-- **PROPERTY_HINT_PROPERTY_OF_BASE_TYPE** = **33**
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_PROPERTY_OF_INSTANCE** = **34**
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_BASIS** = ``12``
 
-- **PROPERTY_HINT_PROPERTY_OF_SCRIPT** = **35**
+Variable is of type :ref:`Basis<class_Basis>`.
 
-- **PROPERTY_HINT_OBJECT_TOO_BIG** = **36**
+.. _class_@GlobalScope_constant_TYPE_TRANSFORM:
 
-- **PROPERTY_HINT_NODE_PATH_VALID_TYPES** = **37**
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_HINT_SAVE_FILE** = **38**
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_TRANSFORM** = ``13``
 
-- **PROPERTY_HINT_MAX** = **40**
+Variable is of type :ref:`Transform<class_Transform>`.
 
-----
+.. _class_@GlobalScope_constant_TYPE_COLOR:
 
-.. _enum_@GlobalScope_PropertyUsageFlags:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_STORAGE:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_COLOR** = ``14``
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR:
+Variable is of type :ref:`Color<class_Color>`.
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_NETWORK:
+.. _class_@GlobalScope_constant_TYPE_NODE_PATH:
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_EDITOR_HELPER:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKABLE:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_NODE_PATH** = ``15``
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_CHECKED:
+Variable is of type :ref:`NodePath<class_NodePath>`.
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_INTERNATIONALIZED:
+.. _class_@GlobalScope_constant_TYPE_RID:
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_GROUP:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_CATEGORY:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_RID** = ``16``
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_NO_INSTANCE_STATE:
+Variable is of type :ref:`RID<class_RID>`.
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_RESTART_IF_CHANGED:
+.. _class_@GlobalScope_constant_TYPE_OBJECT:
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_SCRIPT_VARIABLE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_DEFAULT:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_OBJECT** = ``17``
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_DEFAULT_INTL:
+Variable is of type :ref:`Object<class_Object>`.
 
-.. _class_@GlobalScope_constant_PROPERTY_USAGE_NOEDITOR:
+.. _class_@GlobalScope_constant_TYPE_DICTIONARY:
 
-enum **PropertyUsageFlags**:
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_USAGE_STORAGE** = **1** --- The property is serialized and saved in the scene file (default).
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_DICTIONARY** = ``18``
 
-- **PROPERTY_USAGE_EDITOR** = **2** --- The property is shown in the editor inspector (default).
+Variable is of type :ref:`Dictionary<class_Dictionary>`.
 
-- **PROPERTY_USAGE_NETWORK** = **4** --- Deprecated usage flag, unused.
+.. _class_@GlobalScope_constant_TYPE_ARRAY:
 
-- **PROPERTY_USAGE_EDITOR_HELPER** = **8** --- Deprecated usage flag, unused.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_USAGE_CHECKABLE** = **16** --- The property can be checked in the editor inspector.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_ARRAY** = ``19``
 
-- **PROPERTY_USAGE_CHECKED** = **32** --- The property is checked in the editor inspector.
+Variable is of type :ref:`Array<class_Array>`.
 
-- **PROPERTY_USAGE_INTERNATIONALIZED** = **64** --- The property is a translatable string.
+.. _class_@GlobalScope_constant_TYPE_RAW_ARRAY:
 
-- **PROPERTY_USAGE_GROUP** = **128** --- Used to group properties together in the editor. See :ref:`EditorInspector<class_EditorInspector>`.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_USAGE_CATEGORY** = **256** --- Used to categorize properties together in the editor.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_RAW_ARRAY** = ``20``
 
-- **PROPERTY_USAGE_NO_INSTANCE_STATE** = **2048** --- The property does not save its state in :ref:`PackedScene<class_PackedScene>`.
+Variable is of type :ref:`PoolByteArray<class_PoolByteArray>`.
 
-- **PROPERTY_USAGE_RESTART_IF_CHANGED** = **4096** --- Editing the property prompts the user for restarting the editor.
+.. _class_@GlobalScope_constant_TYPE_INT_ARRAY:
 
-- **PROPERTY_USAGE_SCRIPT_VARIABLE** = **8192** --- The property is a script variable which should be serialized and saved in the scene file.
+.. rst-class:: classref-enumeration-constant
 
-- **PROPERTY_USAGE_DEFAULT** = **7** --- Default usage (storage, editor and network).
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_INT_ARRAY** = ``21``
 
-- **PROPERTY_USAGE_DEFAULT_INTL** = **71** --- Default usage for translatable strings (storage, editor, network and internationalized).
+Variable is of type :ref:`PoolIntArray<class_PoolIntArray>`.
 
-- **PROPERTY_USAGE_NOEDITOR** = **5** --- Default usage but without showing the property in the editor (storage, network).
+.. _class_@GlobalScope_constant_TYPE_REAL_ARRAY:
 
-----
+.. rst-class:: classref-enumeration-constant
 
-.. _enum_@GlobalScope_MethodFlags:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_REAL_ARRAY** = ``22``
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_NORMAL:
+Variable is of type :ref:`PoolRealArray<class_PoolRealArray>`.
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_EDITOR:
+.. _class_@GlobalScope_constant_TYPE_STRING_ARRAY:
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_NOSCRIPT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_CONST:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_STRING_ARRAY** = ``23``
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_REVERSE:
+Variable is of type :ref:`PoolStringArray<class_PoolStringArray>`.
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_VIRTUAL:
+.. _class_@GlobalScope_constant_TYPE_VECTOR2_ARRAY:
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_FROM_SCRIPT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_METHOD_FLAG_VARARG:
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_VECTOR2_ARRAY** = ``24``
 
-.. _class_@GlobalScope_constant_METHOD_FLAGS_DEFAULT:
+Variable is of type :ref:`PoolVector2Array<class_PoolVector2Array>`.
 
-enum **MethodFlags**:
+.. _class_@GlobalScope_constant_TYPE_VECTOR3_ARRAY:
 
-- **METHOD_FLAG_NORMAL** = **1** --- Flag for a normal method.
+.. rst-class:: classref-enumeration-constant
 
-- **METHOD_FLAG_EDITOR** = **2** --- Flag for an editor method.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_VECTOR3_ARRAY** = ``25``
 
-- **METHOD_FLAG_NOSCRIPT** = **4** --- Deprecated method flag, unused.
+Variable is of type :ref:`PoolVector3Array<class_PoolVector3Array>`.
 
-- **METHOD_FLAG_CONST** = **8** --- Flag for a constant method.
+.. _class_@GlobalScope_constant_TYPE_COLOR_ARRAY:
 
-- **METHOD_FLAG_REVERSE** = **16** --- Deprecated method flag, unused.
+.. rst-class:: classref-enumeration-constant
 
-- **METHOD_FLAG_VIRTUAL** = **32** --- Flag for a virtual method.
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_COLOR_ARRAY** = ``26``
 
-- **METHOD_FLAG_FROM_SCRIPT** = **64** --- Deprecated method flag, unused.
+Variable is of type :ref:`PoolColorArray<class_PoolColorArray>`.
 
-- **METHOD_FLAG_VARARG** = **128**
+.. _class_@GlobalScope_constant_TYPE_MAX:
 
-- **METHOD_FLAGS_DEFAULT** = **1** --- Default method flags.
+.. rst-class:: classref-enumeration-constant
 
-----
+:ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` **TYPE_MAX** = ``27``
 
-.. _enum_@GlobalScope_Variant.Type:
+Represents the size of the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` enum.
 
-.. _class_@GlobalScope_constant_TYPE_NIL:
+.. rst-class:: classref-item-separator
 
-.. _class_@GlobalScope_constant_TYPE_BOOL:
+----
 
-.. _class_@GlobalScope_constant_TYPE_INT:
+.. _enum_@GlobalScope_Variant.Operator:
 
-.. _class_@GlobalScope_constant_TYPE_REAL:
+.. rst-class:: classref-enumeration
 
-.. _class_@GlobalScope_constant_TYPE_STRING:
+enum **Variant.Operator**:
 
-.. _class_@GlobalScope_constant_TYPE_VECTOR2:
+.. _class_@GlobalScope_constant_OP_EQUAL:
 
-.. _class_@GlobalScope_constant_TYPE_RECT2:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_VECTOR3:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_EQUAL** = ``0``
 
-.. _class_@GlobalScope_constant_TYPE_TRANSFORM2D:
+Equality operator (``==``).
 
-.. _class_@GlobalScope_constant_TYPE_PLANE:
+.. _class_@GlobalScope_constant_OP_NOT_EQUAL:
 
-.. _class_@GlobalScope_constant_TYPE_QUAT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_AABB:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_NOT_EQUAL** = ``1``
 
-.. _class_@GlobalScope_constant_TYPE_BASIS:
+Inequality operator (``!=``).
 
-.. _class_@GlobalScope_constant_TYPE_TRANSFORM:
+.. _class_@GlobalScope_constant_OP_LESS:
 
-.. _class_@GlobalScope_constant_TYPE_COLOR:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_NODE_PATH:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_LESS** = ``2``
 
-.. _class_@GlobalScope_constant_TYPE_RID:
+Less than operator (``<``).
 
-.. _class_@GlobalScope_constant_TYPE_OBJECT:
+.. _class_@GlobalScope_constant_OP_LESS_EQUAL:
 
-.. _class_@GlobalScope_constant_TYPE_DICTIONARY:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_ARRAY:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_LESS_EQUAL** = ``3``
 
-.. _class_@GlobalScope_constant_TYPE_RAW_ARRAY:
+Less than or equal operator (``<=``).
 
-.. _class_@GlobalScope_constant_TYPE_INT_ARRAY:
+.. _class_@GlobalScope_constant_OP_GREATER:
 
-.. _class_@GlobalScope_constant_TYPE_REAL_ARRAY:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_STRING_ARRAY:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_GREATER** = ``4``
 
-.. _class_@GlobalScope_constant_TYPE_VECTOR2_ARRAY:
+Greater than operator (``>``).
 
-.. _class_@GlobalScope_constant_TYPE_VECTOR3_ARRAY:
+.. _class_@GlobalScope_constant_OP_GREATER_EQUAL:
 
-.. _class_@GlobalScope_constant_TYPE_COLOR_ARRAY:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_TYPE_MAX:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_GREATER_EQUAL** = ``5``
 
-enum **Variant.Type**:
+Greater than or equal operator (``>=``).
 
-- **TYPE_NIL** = **0** --- Variable is ``null``.
+.. _class_@GlobalScope_constant_OP_ADD:
 
-- **TYPE_BOOL** = **1** --- Variable is of type :ref:`bool<class_bool>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_INT** = **2** --- Variable is of type :ref:`int<class_int>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_ADD** = ``6``
 
-- **TYPE_REAL** = **3** --- Variable is of type :ref:`float<class_float>` (real).
+Addition operator (``+``).
 
-- **TYPE_STRING** = **4** --- Variable is of type :ref:`String<class_String>`.
+.. _class_@GlobalScope_constant_OP_SUBTRACT:
 
-- **TYPE_VECTOR2** = **5** --- Variable is of type :ref:`Vector2<class_Vector2>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_RECT2** = **6** --- Variable is of type :ref:`Rect2<class_Rect2>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_SUBTRACT** = ``7``
 
-- **TYPE_VECTOR3** = **7** --- Variable is of type :ref:`Vector3<class_Vector3>`.
+Subtraction operator (``-``).
 
-- **TYPE_TRANSFORM2D** = **8** --- Variable is of type :ref:`Transform2D<class_Transform2D>`.
+.. _class_@GlobalScope_constant_OP_MULTIPLY:
 
-- **TYPE_PLANE** = **9** --- Variable is of type :ref:`Plane<class_Plane>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_QUAT** = **10** --- Variable is of type :ref:`Quat<class_Quat>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_MULTIPLY** = ``8``
 
-- **TYPE_AABB** = **11** --- Variable is of type :ref:`AABB<class_AABB>`.
+Multiplication operator (``*``).
 
-- **TYPE_BASIS** = **12** --- Variable is of type :ref:`Basis<class_Basis>`.
+.. _class_@GlobalScope_constant_OP_DIVIDE:
 
-- **TYPE_TRANSFORM** = **13** --- Variable is of type :ref:`Transform<class_Transform>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_COLOR** = **14** --- Variable is of type :ref:`Color<class_Color>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_DIVIDE** = ``9``
 
-- **TYPE_NODE_PATH** = **15** --- Variable is of type :ref:`NodePath<class_NodePath>`.
+Division operator (``/``).
 
-- **TYPE_RID** = **16** --- Variable is of type :ref:`RID<class_RID>`.
+.. _class_@GlobalScope_constant_OP_NEGATE:
 
-- **TYPE_OBJECT** = **17** --- Variable is of type :ref:`Object<class_Object>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_DICTIONARY** = **18** --- Variable is of type :ref:`Dictionary<class_Dictionary>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_NEGATE** = ``10``
 
-- **TYPE_ARRAY** = **19** --- Variable is of type :ref:`Array<class_Array>`.
+Unary negation operator (``-``).
 
-- **TYPE_RAW_ARRAY** = **20** --- Variable is of type :ref:`PoolByteArray<class_PoolByteArray>`.
+.. _class_@GlobalScope_constant_OP_POSITIVE:
 
-- **TYPE_INT_ARRAY** = **21** --- Variable is of type :ref:`PoolIntArray<class_PoolIntArray>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_REAL_ARRAY** = **22** --- Variable is of type :ref:`PoolRealArray<class_PoolRealArray>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_POSITIVE** = ``11``
 
-- **TYPE_STRING_ARRAY** = **23** --- Variable is of type :ref:`PoolStringArray<class_PoolStringArray>`.
+Unary plus operator (``+``).
 
-- **TYPE_VECTOR2_ARRAY** = **24** --- Variable is of type :ref:`PoolVector2Array<class_PoolVector2Array>`.
+.. _class_@GlobalScope_constant_OP_MODULE:
 
-- **TYPE_VECTOR3_ARRAY** = **25** --- Variable is of type :ref:`PoolVector3Array<class_PoolVector3Array>`.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_COLOR_ARRAY** = **26** --- Variable is of type :ref:`PoolColorArray<class_PoolColorArray>`.
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_MODULE** = ``12``
 
-- **TYPE_MAX** = **27** --- Represents the size of the :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` enum.
+Remainder/modulo operator (``%``).
 
-----
+.. _class_@GlobalScope_constant_OP_STRING_CONCAT:
 
-.. _enum_@GlobalScope_Variant.Operator:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_EQUAL:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_STRING_CONCAT** = ``13``
 
-.. _class_@GlobalScope_constant_OP_NOT_EQUAL:
+String concatenation operator (``+``).
 
-.. _class_@GlobalScope_constant_OP_LESS:
+.. _class_@GlobalScope_constant_OP_SHIFT_LEFT:
 
-.. _class_@GlobalScope_constant_OP_LESS_EQUAL:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_GREATER:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_SHIFT_LEFT** = ``14``
 
-.. _class_@GlobalScope_constant_OP_GREATER_EQUAL:
+Left shift operator (``<<``).
 
-.. _class_@GlobalScope_constant_OP_ADD:
+.. _class_@GlobalScope_constant_OP_SHIFT_RIGHT:
 
-.. _class_@GlobalScope_constant_OP_SUBTRACT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_MULTIPLY:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_SHIFT_RIGHT** = ``15``
 
-.. _class_@GlobalScope_constant_OP_DIVIDE:
+Right shift operator (``>>``).
 
-.. _class_@GlobalScope_constant_OP_NEGATE:
+.. _class_@GlobalScope_constant_OP_BIT_AND:
 
-.. _class_@GlobalScope_constant_OP_POSITIVE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_MODULE:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_BIT_AND** = ``16``
 
-.. _class_@GlobalScope_constant_OP_STRING_CONCAT:
+Bitwise AND operator (``&``).
 
-.. _class_@GlobalScope_constant_OP_SHIFT_LEFT:
+.. _class_@GlobalScope_constant_OP_BIT_OR:
 
-.. _class_@GlobalScope_constant_OP_SHIFT_RIGHT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_BIT_AND:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_BIT_OR** = ``17``
 
-.. _class_@GlobalScope_constant_OP_BIT_OR:
+Bitwise OR operator (``|``).
 
 .. _class_@GlobalScope_constant_OP_BIT_XOR:
 
-.. _class_@GlobalScope_constant_OP_BIT_NEGATE:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_AND:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_BIT_XOR** = ``18``
 
-.. _class_@GlobalScope_constant_OP_OR:
+Bitwise XOR operator (``^``).
 
-.. _class_@GlobalScope_constant_OP_XOR:
+.. _class_@GlobalScope_constant_OP_BIT_NEGATE:
 
-.. _class_@GlobalScope_constant_OP_NOT:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_@GlobalScope_constant_OP_IN:
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_BIT_NEGATE** = ``19``
 
-.. _class_@GlobalScope_constant_OP_MAX:
+Bitwise NOT operator (``~``).
 
-enum **Variant.Operator**:
+.. _class_@GlobalScope_constant_OP_AND:
 
-- **OP_EQUAL** = **0** --- Equality operator (``==``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_NOT_EQUAL** = **1** --- Inequality operator (``!=``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_AND** = ``20``
 
-- **OP_LESS** = **2** --- Less than operator (``<``).
+Logical AND operator (``and`` or ``&&``).
 
-- **OP_LESS_EQUAL** = **3** --- Less than or equal operator (``<=``).
+.. _class_@GlobalScope_constant_OP_OR:
 
-- **OP_GREATER** = **4** --- Greater than operator (``>``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_GREATER_EQUAL** = **5** --- Greater than or equal operator (``>=``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_OR** = ``21``
 
-- **OP_ADD** = **6** --- Addition operator (``+``).
+Logical OR operator (``or`` or ``||``).
 
-- **OP_SUBTRACT** = **7** --- Subtraction operator (``-``).
+.. _class_@GlobalScope_constant_OP_XOR:
 
-- **OP_MULTIPLY** = **8** --- Multiplication operator (``*``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_DIVIDE** = **9** --- Division operator (``/``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_XOR** = ``22``
 
-- **OP_NEGATE** = **10** --- Unary negation operator (``-``).
+Logical XOR operator (not implemented in GDScript).
 
-- **OP_POSITIVE** = **11** --- Unary plus operator (``+``).
+.. _class_@GlobalScope_constant_OP_NOT:
 
-- **OP_MODULE** = **12** --- Remainder/modulo operator (``%``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_STRING_CONCAT** = **13** --- String concatenation operator (``+``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_NOT** = ``23``
 
-- **OP_SHIFT_LEFT** = **14** --- Left shift operator (``<<``).
+Logical NOT operator (``not`` or ``!``).
 
-- **OP_SHIFT_RIGHT** = **15** --- Right shift operator (``>>``).
+.. _class_@GlobalScope_constant_OP_IN:
 
-- **OP_BIT_AND** = **16** --- Bitwise AND operator (``&``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_BIT_OR** = **17** --- Bitwise OR operator (``|``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_IN** = ``24``
 
-- **OP_BIT_XOR** = **18** --- Bitwise XOR operator (``^``).
+Logical IN operator (``in``).
 
-- **OP_BIT_NEGATE** = **19** --- Bitwise NOT operator (``~``).
+.. _class_@GlobalScope_constant_OP_MAX:
 
-- **OP_AND** = **20** --- Logical AND operator (``and`` or ``&&``).
+.. rst-class:: classref-enumeration-constant
 
-- **OP_OR** = **21** --- Logical OR operator (``or`` or ``||``).
+:ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` **OP_MAX** = ``25``
 
-- **OP_XOR** = **22** --- Logical XOR operator (not implemented in GDScript).
+Represents the size of the :ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` enum.
 
-- **OP_NOT** = **23** --- Logical NOT operator (``not`` or ``!``).
+.. rst-class:: classref-section-separator
 
-- **OP_IN** = **24** --- Logical IN operator (``in``).
+----
 
-- **OP_MAX** = **25** --- Represents the size of the :ref:`Variant.Operator<enum_@GlobalScope_Variant.Operator>` enum.
+.. rst-class:: classref-descriptions-group
 
 Constants
 ---------
 
 .. _class_@GlobalScope_constant_SPKEY:
 
-- **SPKEY** = **16777216** --- Scancodes with this bit applied are non-printable.
+.. rst-class:: classref-constant
+
+**SPKEY** = ``16777216``
+
+Scancodes with this bit applied are non-printable.
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_@GlobalScope_property_ARVRServer:
 
-- :ref:`ARVRServer<class_ARVRServer>` **ARVRServer**
+.. rst-class:: classref-property
+
+:ref:`ARVRServer<class_ARVRServer>` **ARVRServer**
 
 The :ref:`ARVRServer<class_ARVRServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_AudioServer:
 
-- :ref:`AudioServer<class_AudioServer>` **AudioServer**
+.. rst-class:: classref-property
+
+:ref:`AudioServer<class_AudioServer>` **AudioServer**
 
 The :ref:`AudioServer<class_AudioServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_CameraServer:
 
-- :ref:`CameraServer<class_CameraServer>` **CameraServer**
+.. rst-class:: classref-property
+
+:ref:`CameraServer<class_CameraServer>` **CameraServer**
 
 The :ref:`CameraServer<class_CameraServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_ClassDB:
 
-- :ref:`ClassDB<class_ClassDB>` **ClassDB**
+.. rst-class:: classref-property
+
+:ref:`ClassDB<class_ClassDB>` **ClassDB**
 
 The :ref:`ClassDB<class_ClassDB>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Engine:
 
-- :ref:`Engine<class_Engine>` **Engine**
+.. rst-class:: classref-property
+
+:ref:`Engine<class_Engine>` **Engine**
 
 The :ref:`Engine<class_Engine>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Geometry:
 
-- :ref:`Geometry<class_Geometry>` **Geometry**
+.. rst-class:: classref-property
+
+:ref:`Geometry<class_Geometry>` **Geometry**
 
 The :ref:`Geometry<class_Geometry>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_IP:
 
-- :ref:`IP<class_IP>` **IP**
+.. rst-class:: classref-property
+
+:ref:`IP<class_IP>` **IP**
 
 The :ref:`IP<class_IP>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Input:
 
-- :ref:`Input<class_Input>` **Input**
+.. rst-class:: classref-property
+
+:ref:`Input<class_Input>` **Input**
 
 The :ref:`Input<class_Input>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_InputMap:
 
-- :ref:`InputMap<class_InputMap>` **InputMap**
+.. rst-class:: classref-property
+
+:ref:`InputMap<class_InputMap>` **InputMap**
 
 The :ref:`InputMap<class_InputMap>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_JSON:
 
-- :ref:`JSON<class_JSON>` **JSON**
+.. rst-class:: classref-property
+
+:ref:`JSON<class_JSON>` **JSON**
 
 The :ref:`JSON<class_JSON>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_JavaClassWrapper:
 
-- :ref:`JavaClassWrapper<class_JavaClassWrapper>` **JavaClassWrapper**
+.. rst-class:: classref-property
+
+:ref:`JavaClassWrapper<class_JavaClassWrapper>` **JavaClassWrapper**
 
 The :ref:`JavaClassWrapper<class_JavaClassWrapper>` singleton.
 
 \ **Note:** Only implemented on Android.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_JavaScript:
 
-- :ref:`JavaScript<class_JavaScript>` **JavaScript**
+.. rst-class:: classref-property
+
+:ref:`JavaScript<class_JavaScript>` **JavaScript**
 
 The :ref:`JavaScript<class_JavaScript>` singleton.
 
 \ **Note:** Only implemented on HTML5.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Marshalls:
 
-- :ref:`Marshalls<class_Marshalls>` **Marshalls**
+.. rst-class:: classref-property
+
+:ref:`Marshalls<class_Marshalls>` **Marshalls**
 
 The :ref:`Marshalls<class_Marshalls>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Navigation2DServer:
 
-- :ref:`Navigation2DServer<class_Navigation2DServer>` **Navigation2DServer**
+.. rst-class:: classref-property
+
+:ref:`Navigation2DServer<class_Navigation2DServer>` **Navigation2DServer**
 
 The :ref:`Navigation2DServer<class_Navigation2DServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_NavigationMeshGenerator:
 
-- :ref:`NavigationMeshGenerator<class_NavigationMeshGenerator>` **NavigationMeshGenerator**
+.. rst-class:: classref-property
+
+:ref:`NavigationMeshGenerator<class_NavigationMeshGenerator>` **NavigationMeshGenerator**
 
 The :ref:`NavigationMeshGenerator<class_NavigationMeshGenerator>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_NavigationServer:
 
-- :ref:`NavigationServer<class_NavigationServer>` **NavigationServer**
+.. rst-class:: classref-property
+
+:ref:`NavigationServer<class_NavigationServer>` **NavigationServer**
 
 The :ref:`NavigationServer<class_NavigationServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_OS:
 
-- :ref:`OS<class_OS>` **OS**
+.. rst-class:: classref-property
+
+:ref:`OS<class_OS>` **OS**
 
 The :ref:`OS<class_OS>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Performance:
 
-- :ref:`Performance<class_Performance>` **Performance**
+.. rst-class:: classref-property
+
+:ref:`Performance<class_Performance>` **Performance**
 
 The :ref:`Performance<class_Performance>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Physics2DServer:
 
-- :ref:`Physics2DServer<class_Physics2DServer>` **Physics2DServer**
+.. rst-class:: classref-property
+
+:ref:`Physics2DServer<class_Physics2DServer>` **Physics2DServer**
 
 The :ref:`Physics2DServer<class_Physics2DServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_PhysicsServer:
 
-- :ref:`PhysicsServer<class_PhysicsServer>` **PhysicsServer**
+.. rst-class:: classref-property
+
+:ref:`PhysicsServer<class_PhysicsServer>` **PhysicsServer**
 
 The :ref:`PhysicsServer<class_PhysicsServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_ProjectSettings:
 
-- :ref:`ProjectSettings<class_ProjectSettings>` **ProjectSettings**
+.. rst-class:: classref-property
+
+:ref:`ProjectSettings<class_ProjectSettings>` **ProjectSettings**
 
 The :ref:`ProjectSettings<class_ProjectSettings>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_ResourceLoader:
 
-- :ref:`ResourceLoader<class_ResourceLoader>` **ResourceLoader**
+.. rst-class:: classref-property
+
+:ref:`ResourceLoader<class_ResourceLoader>` **ResourceLoader**
 
 The :ref:`ResourceLoader<class_ResourceLoader>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_ResourceSaver:
 
-- :ref:`ResourceSaver<class_ResourceSaver>` **ResourceSaver**
+.. rst-class:: classref-property
+
+:ref:`ResourceSaver<class_ResourceSaver>` **ResourceSaver**
 
 The :ref:`ResourceSaver<class_ResourceSaver>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_Time:
 
-- :ref:`Time<class_Time>` **Time**
+.. rst-class:: classref-property
+
+:ref:`Time<class_Time>` **Time**
 
 The :ref:`Time<class_Time>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_TranslationServer:
 
-- :ref:`TranslationServer<class_TranslationServer>` **TranslationServer**
+.. rst-class:: classref-property
+
+:ref:`TranslationServer<class_TranslationServer>` **TranslationServer**
 
 The :ref:`TranslationServer<class_TranslationServer>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_VisualScriptEditor:
 
-- :ref:`VisualScriptEditor<class_VisualScriptEditor>` **VisualScriptEditor**
+.. rst-class:: classref-property
+
+:ref:`VisualScriptEditor<class_VisualScriptEditor>` **VisualScriptEditor**
 
 The :ref:`VisualScriptEditor<class_VisualScriptEditor>` singleton.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_@GlobalScope_property_VisualServer:
 
-- :ref:`VisualServer<class_VisualServer>` **VisualServer**
+.. rst-class:: classref-property
+
+:ref:`VisualServer<class_VisualServer>` **VisualServer**
 
 The :ref:`VisualServer<class_VisualServer>` singleton.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 236 - 117
classes/class_aabb.rst

@@ -12,14 +12,18 @@ 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>`.
+\ **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
 ---------
@@ -30,141 +34,175 @@ 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
 
 Methods
 -------
 
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`AABB<class_AABB_method_AABB>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**                       |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`abs<class_AABB_method_abs>` **(** **)**                                                                                                    |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`encloses<class_AABB_method_encloses>` **(** :ref:`AABB<class_AABB>` with **)**                                                             |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`expand<class_AABB_method_expand>` **(** :ref:`Vector3<class_Vector3>` to_point **)**                                                       |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_area<class_AABB_method_get_area>` **(** **)**                                                                                          |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_center<class_AABB_method_get_center>` **(** **)**                                                                                      |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_endpoint<class_AABB_method_get_endpoint>` **(** :ref:`int<class_int>` idx **)**                                                        |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_longest_axis<class_AABB_method_get_longest_axis>` **(** **)**                                                                          |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_longest_axis_index<class_AABB_method_get_longest_axis_index>` **(** **)**                                                              |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_longest_axis_size<class_AABB_method_get_longest_axis_size>` **(** **)**                                                                |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>` **(** **)**                                                                        |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_shortest_axis_index<class_AABB_method_get_shortest_axis_index>` **(** **)**                                                            |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_shortest_axis_size<class_AABB_method_get_shortest_axis_size>` **(** **)**                                                              |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_support<class_AABB_method_get_support>` **(** :ref:`Vector3<class_Vector3>` dir **)**                                                  |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`grow<class_AABB_method_grow>` **(** :ref:`float<class_float>` by **)**                                                                     |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_no_area<class_AABB_method_has_no_area>` **(** **)**                                                                                    |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_no_surface<class_AABB_method_has_no_surface>` **(** **)**                                                                              |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has_point<class_AABB_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point **)**                                                    |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`intersection<class_AABB_method_intersection>` **(** :ref:`AABB<class_AABB>` with **)**                                                     |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`intersects<class_AABB_method_intersects>` **(** :ref:`AABB<class_AABB>` with **)**                                                         |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`intersects_plane<class_AABB_method_intersects_plane>` **(** :ref:`Plane<class_Plane>` plane **)**                                          |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`intersects_segment<class_AABB_method_intersects_segment>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` **(** :ref:`AABB<class_AABB>` aabb **)**                                               |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AABB<class_AABB>`       | :ref:`merge<class_AABB_method_merge>` **(** :ref:`AABB<class_AABB>` with **)**                                                                   |
-+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`AABB<class_AABB_method_AABB>` **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**                       |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`abs<class_AABB_method_abs>` **(** **)**                                                                                                    |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`encloses<class_AABB_method_encloses>` **(** :ref:`AABB<class_AABB>` with **)**                                                             |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`expand<class_AABB_method_expand>` **(** :ref:`Vector3<class_Vector3>` to_point **)**                                                       |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_area<class_AABB_method_get_area>` **(** **)**                                                                                          |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_center<class_AABB_method_get_center>` **(** **)**                                                                                      |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_endpoint<class_AABB_method_get_endpoint>` **(** :ref:`int<class_int>` idx **)**                                                        |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_longest_axis<class_AABB_method_get_longest_axis>` **(** **)**                                                                          |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`get_longest_axis_index<class_AABB_method_get_longest_axis_index>` **(** **)**                                                              |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_longest_axis_size<class_AABB_method_get_longest_axis_size>` **(** **)**                                                                |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_shortest_axis<class_AABB_method_get_shortest_axis>` **(** **)**                                                                        |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`get_shortest_axis_index<class_AABB_method_get_shortest_axis_index>` **(** **)**                                                            |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_shortest_axis_size<class_AABB_method_get_shortest_axis_size>` **(** **)**                                                              |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_support<class_AABB_method_get_support>` **(** :ref:`Vector3<class_Vector3>` dir **)**                                                  |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`grow<class_AABB_method_grow>` **(** :ref:`float<class_float>` by **)**                                                                     |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_no_area<class_AABB_method_has_no_area>` **(** **)**                                                                                    |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_no_surface<class_AABB_method_has_no_surface>` **(** **)**                                                                              |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has_point<class_AABB_method_has_point>` **(** :ref:`Vector3<class_Vector3>` point **)**                                                    |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`intersection<class_AABB_method_intersection>` **(** :ref:`AABB<class_AABB>` with **)**                                                     |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`intersects<class_AABB_method_intersects>` **(** :ref:`AABB<class_AABB>` with **)**                                                         |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`intersects_plane<class_AABB_method_intersects_plane>` **(** :ref:`Plane<class_Plane>` plane **)**                                          |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`intersects_segment<class_AABB_method_intersects_segment>` **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)** |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` **(** :ref:`AABB<class_AABB>` aabb **)**                                               |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AABB<class_AABB>`       | :ref:`merge<class_AABB_method_merge>` **(** :ref:`AABB<class_AABB>` with **)**                                                                   |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. 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
+
 Method Descriptions
 -------------------
 
 .. _class_AABB_method_AABB:
 
-- :ref:`AABB<class_AABB>` **AABB** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **AABB** **(** :ref:`Vector3<class_Vector3>` position, :ref:`Vector3<class_Vector3>` size **)**
+
+Constructs an **AABB** from a position and size.
 
-Constructs an ``AABB`` from a position and size.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_abs:
 
-- :ref:`AABB<class_AABB>` **abs** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **abs** **(** **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **encloses** **(** :ref:`AABB<class_AABB>` with **)**
+
+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 **)**
+.. 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 **)**
+
+Returns a copy of this **AABB** expanded to include a given point.
 
 \ **Example:**\ 
 
@@ -175,166 +213,247 @@ Returns a copy of this ``AABB`` expanded to include a given point.
     # position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and Vector3(0, -1, 2)
     var box2 = box.expand(Vector3(0, -1, 2))
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_method_get_area:
 
-- :ref:`float<class_float>` **get_area** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_area** **(** **)**
+
+Returns the volume of the **AABB**.
 
-Returns the volume of the ``AABB``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_get_center:
 
-- :ref:`Vector3<class_Vector3>` **get_center** **(** **)**
+.. 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** **(** **)**
+
+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 **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_endpoint** **(** :ref:`int<class_int>` idx **)**
+
+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** **(** **)**
+.. rst-class:: classref-method
 
-Returns the normalized longest axis of the ``AABB``.
+:ref:`Vector3<class_Vector3>` **get_longest_axis** **(** **)**
+
+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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_longest_axis_index** **(** **)**
 
-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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_longest_axis_size** **(** **)**
 
-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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_shortest_axis** **(** **)**
 
-Returns the normalized shortest axis of the ``AABB``.
+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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_shortest_axis_index** **(** **)**
 
-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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_shortest_axis_size** **(** **)**
 
-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 **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_support** **(** :ref:`Vector3<class_Vector3>` dir **)**
 
 Returns the support point in a given direction. This is useful for collision detection algorithms.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AABB_method_grow:
 
-- :ref:`AABB<class_AABB>` **grow** **(** :ref:`float<class_float>` by **)**
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **grow** **(** :ref:`float<class_float>` by **)**
 
-Returns a copy of the ``AABB`` grown a given amount of units towards all the sides.
+Returns a copy of the **AABB** grown a given amount of units towards all the sides.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_no_area:
 
-- :ref:`bool<class_bool>` **has_no_area** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_no_area** **(** **)**
+
+Returns ``true`` if the **AABB** is flat or empty.
 
-Returns ``true`` if the ``AABB`` is flat or empty.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_no_surface:
 
-- :ref:`bool<class_bool>` **has_no_surface** **(** **)**
+.. rst-class:: classref-method
 
-Returns ``true`` if the ``AABB`` is empty.
+:ref:`bool<class_bool>` **has_no_surface** **(** **)**
+
+Returns ``true`` if the **AABB** is empty.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_has_point:
 
-- :ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_point** **(** :ref:`Vector3<class_Vector3>` point **)**
+
+Returns ``true`` if the **AABB** contains a point.
 
-Returns ``true`` if the ``AABB`` contains a point.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersection:
 
-- :ref:`AABB<class_AABB>` **intersection** **(** :ref:`AABB<class_AABB>` with **)**
+.. rst-class:: classref-method
 
-Returns the intersection between two ``AABB``. An empty AABB (size 0,0,0) is returned on failure.
+:ref:`AABB<class_AABB>` **intersection** **(** :ref:`AABB<class_AABB>` with **)**
+
+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 **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **intersects** **(** :ref:`AABB<class_AABB>` with **)**
+
+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 **)**
+.. rst-class:: classref-method
 
-Returns ``true`` if the ``AABB`` is on both sides of a plane.
+:ref:`bool<class_bool>` **intersects_plane** **(** :ref:`Plane<class_Plane>` plane **)**
+
+Returns ``true`` if the **AABB** is on both sides of a plane.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_intersects_segment:
 
-- :ref:`bool<class_bool>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **intersects_segment** **(** :ref:`Vector3<class_Vector3>` from, :ref:`Vector3<class_Vector3>` to **)**
+
+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 **)**
+.. rst-class:: classref-method
 
-Returns ``true`` if this ``AABB`` and ``aabb`` are approximately equal, by calling :ref:`@GDScript.is_equal_approx<class_@GDScript_method_is_equal_approx>` on each component.
+:ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`AABB<class_AABB>` aabb **)**
+
+Returns ``true`` if this **AABB** and ``aabb`` are approximately equal, by calling :ref:`@GDScript.is_equal_approx<class_@GDScript_method_is_equal_approx>` on each component.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_AABB_method_merge:
 
-- :ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)**
+.. rst-class:: classref-method
+
+:ref:`AABB<class_AABB>` **merge** **(** :ref:`AABB<class_AABB>` with **)**
 
-Returns a larger ``AABB`` that contains both this ``AABB`` and ``with``.
+Returns a larger **AABB** that contains both this **AABB** and ``with``.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 114 - 54
classes/class_acceptdialog.rst

@@ -16,115 +16,154 @@ 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_hide_on_ok<class_AcceptDialog_property_dialog_hide_on_ok>` | ``true``                                                                               |
-+-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | :ref:`dialog_text<class_AcceptDialog_property_dialog_text>`             | ``""``                                                                                 |
-+-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
-| :ref:`String<class_String>` | window_title                                                            | ``"Alert!"`` (overrides :ref:`WindowDialog<class_WindowDialog_property_window_title>`) |
-+-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`     | :ref:`dialog_autowrap<class_AcceptDialog_property_dialog_autowrap>`     | ``false``                                                                              |
+   +-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+   | :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:`String<class_String>` | window_title                                                            | ``"Alert!"`` (overrides :ref:`WindowDialog<class_WindowDialog_property_window_title>`) |
+   +-----------------------------+-------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
+
+.. 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<class_AcceptDialog_method_add_cancel>` **(** :ref:`String<class_String>` name **)**                                                                             |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Label<class_Label>`   | :ref:`get_label<class_AcceptDialog_method_get_label>` **(** **)**                                                                                                                |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Button<class_Button>` | :ref:`get_ok<class_AcceptDialog_method_get_ok>` **(** **)**                                                                                                                      |
-+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                        | :ref:`register_text_enter<class_AcceptDialog_method_register_text_enter>` **(** :ref:`Node<class_Node>` 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<class_AcceptDialog_method_add_cancel>` **(** :ref:`String<class_String>` name **)**                                                                             |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Label<class_Label>`   | :ref:`get_label<class_AcceptDialog_method_get_label>` **(** **)**                                                                                                                |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Button<class_Button>` | :ref:`get_ok<class_AcceptDialog_method_get_ok>` **(** **)**                                                                                                                      |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`register_text_enter<class_AcceptDialog_method_register_text_enter>` **(** :ref:`Node<class_Node>` line_edit **)**                                                          |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                        | :ref:`remove_button<class_AcceptDialog_method_remove_button>` **(** :ref:`Control<class_Control>` button **)**                                                                   |
+   +-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _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:`String<class_String>` action **)**
+.. rst-class:: classref-signal
+
+**custom_action** **(** :ref:`String<class_String>` 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_hide_on_ok:
 
-- :ref:`bool<class_bool>` **dialog_hide_on_ok**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **dialog_hide_on_ok** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_hide_on_ok(value) |
-+-----------+-----------------------+
-| *Getter*  | get_hide_on_ok()      |
-+-----------+-----------------------+
+- 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** = ``""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------+
-| *Default* | ``""``          |
-+-----------+-----------------+
-| *Setter*  | set_text(value) |
-+-----------+-----------------+
-| *Getter*  | get_text()      |
-+-----------+-----------------+
+- void **set_text** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_text** **(** **)**
 
 The text displayed by the dialog.
 
+.. 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.
 
@@ -132,52 +171,73 @@ 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:
 
-- :ref:`Button<class_Button>` **add_cancel** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+:ref:`Button<class_Button>` **add_cancel** **(** :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:
 
-- :ref:`Button<class_Button>` **get_ok** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Button<class_Button>` **get_ok** **(** **)**
 
 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:`Node<class_Node>` line_edit **)**
+.. rst-class:: classref-method
+
+void **register_text_enter** **(** :ref:`Node<class_Node>` 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<class_AcceptDialog_method_add_cancel>` method. After removal, pressing the ``button`` will no longer emit this dialog's :ref:`custom_action<class_AcceptDialog_signal_custom_action>` signal or cancel this dialog.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 75 - 19
classes/class_aescontext.rst

@@ -14,6 +14,8 @@ AESContext
 
 Interface to low level AES encryption features.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -51,78 +53,131 @@ This class provides access to AES encryption/decryption of raw data. Both AES-EC
         # Check CBC
         assert(decrypted == data.to_utf8())
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`finish<class_AESContext_method_finish>` **(** **)**                                                                                                                                                     |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolByteArray<class_PoolByteArray>` | :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:`PoolByteArray<class_PoolByteArray>` key, :ref:`PoolByteArray<class_PoolByteArray>` iv=PoolByteArray(  ) **)** |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`update<class_AESContext_method_update>` **(** :ref:`PoolByteArray<class_PoolByteArray>` src **)**                                                                                                       |
-+-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`finish<class_AESContext_method_finish>` **(** **)**                                                                                                                                                     |
+   +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolByteArray<class_PoolByteArray>` | :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:`PoolByteArray<class_PoolByteArray>` key, :ref:`PoolByteArray<class_PoolByteArray>` iv=PoolByteArray(  ) **)** |
+   +-------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`update<class_AESContext_method_update>` **(** :ref:`PoolByteArray<class_PoolByteArray>` 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:`PoolByteArray<class_PoolByteArray>` **get_iv_state** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PoolByteArray<class_PoolByteArray>` **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:`PoolByteArray<class_PoolByteArray>` key, :ref:`PoolByteArray<class_PoolByteArray>` iv=PoolByteArray(  ) **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`Mode<enum_AESContext_Mode>` mode, :ref:`PoolByteArray<class_PoolByteArray>` key, :ref:`PoolByteArray<class_PoolByteArray>` iv=PoolByteArray(  ) **)**
 
 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:`PoolByteArray<class_PoolByteArray>` **update** **(** :ref:`PoolByteArray<class_PoolByteArray>` src **)**
+.. rst-class:: classref-method
+
+:ref:`PoolByteArray<class_PoolByteArray>` **update** **(** :ref:`PoolByteArray<class_PoolByteArray>` src **)**
 
 Run the desired operation for this AES context. Will return a :ref:`PoolByteArray<class_PoolByteArray>` containing the result of encrypting (or decrypting) the given ``src``. See :ref:`start<class_AESContext_method_start>` for mode of operation.
 
@@ -131,3 +186,4 @@ Run the desired operation for this AES context. Will return a :ref:`PoolByteArra
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 153 - 99
classes/class_animatedsprite.rst

@@ -14,13 +14,17 @@ AnimatedSprite
 
 Sprite node that contains multiple textures as frames to play for animation.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-``AnimatedSprite`` is similar to the :ref:`Sprite<class_Sprite>` 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.
+**AnimatedSprite** is similar to the :ref:`Sprite<class_Sprite>` 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.
 
 \ **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
 ---------
 
@@ -28,215 +32,265 @@ Tutorials
 
 - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`String<class_String>`             | :ref:`animation<class_AnimatedSprite_property_animation>`     | ``"default"``       |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`bool<class_bool>`                 | :ref:`centered<class_AnimatedSprite_property_centered>`       | ``true``            |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`bool<class_bool>`                 | :ref:`flip_h<class_AnimatedSprite_property_flip_h>`           | ``false``           |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`bool<class_bool>`                 | :ref:`flip_v<class_AnimatedSprite_property_flip_v>`           | ``false``           |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite_property_frame>`             | ``0``               |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite_property_frames>`           |                     |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`Vector2<class_Vector2>`           | :ref:`offset<class_AnimatedSprite_property_offset>`           | ``Vector2( 0, 0 )`` |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite_property_playing>`         | ``false``           |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
-| :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite_property_speed_scale>` | ``1.0``             |
-+-----------------------------------------+---------------------------------------------------------------+---------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`String<class_String>`             | :ref:`animation<class_AnimatedSprite_property_animation>`     | ``"default"``       |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`centered<class_AnimatedSprite_property_centered>`       | ``true``            |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`flip_h<class_AnimatedSprite_property_flip_h>`           | ``false``           |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`flip_v<class_AnimatedSprite_property_flip_v>`           | ``false``           |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`int<class_int>`                   | :ref:`frame<class_AnimatedSprite_property_frame>`             | ``0``               |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`SpriteFrames<class_SpriteFrames>` | :ref:`frames<class_AnimatedSprite_property_frames>`           |                     |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`Vector2<class_Vector2>`           | :ref:`offset<class_AnimatedSprite_property_offset>`           | ``Vector2( 0, 0 )`` |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`bool<class_bool>`                 | :ref:`playing<class_AnimatedSprite_property_playing>`         | ``false``           |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+   | :ref:`float<class_float>`               | :ref:`speed_scale<class_AnimatedSprite_property_speed_scale>` | ``1.0``             |
+   +-----------------------------------------+---------------------------------------------------------------+---------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------+----------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`play<class_AnimatedSprite_method_play>` **(** :ref:`String<class_String>` anim="", :ref:`bool<class_bool>` backwards=false **)** |
-+------+----------------------------------------------------------------------------------------------------------------------------------------+
-| void | :ref:`stop<class_AnimatedSprite_method_stop>` **(** **)**                                                                              |
-+------+----------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------+----------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`play<class_AnimatedSprite_method_play>` **(** :ref:`String<class_String>` anim="", :ref:`bool<class_bool>` backwards=false **)** |
+   +------+----------------------------------------------------------------------------------------------------------------------------------------+
+   | void | :ref:`stop<class_AnimatedSprite_method_stop>` **(** **)**                                                                              |
+   +------+----------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_AnimatedSprite_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_AnimatedSprite_signal_frame_changed:
 
-- **frame_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**frame_changed** **(** **)**
 
 Emitted when :ref:`frame<class_AnimatedSprite_property_frame>` changed.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_AnimatedSprite_property_animation:
 
-- :ref:`String<class_String>` **animation**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``"default"``        |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+:ref:`String<class_String>` **animation** = ``"default"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_animation** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_animation** **(** **)**
 
 The current animation from the :ref:`frames<class_AnimatedSprite_property_frames>` resource. If this value changes, the ``frame`` counter is reset.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_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_AnimatedSprite_property_animation>` is currently playing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite_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.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedSprite_method_play:
 
-- void **play** **(** :ref:`String<class_String>` anim="", :ref:`bool<class_bool>` backwards=false **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`String<class_String>` 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 will be played in reverse.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the current animation (does not reset the frame counter).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 99 - 47
classes/class_animatedsprite3d.rst

@@ -14,141 +14,193 @@ AnimatedSprite3D
 
 2D sprite node in 3D world, that can use multiple 2D textures for animation.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Animations are created using a :ref:`SpriteFrames<class_SpriteFrames>` resource, which can be configured in the editor via the SpriteFrames panel.
 
+.. 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:`String<class_String>`             | :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``     |
-+-----------------------------------------+-------------------------------------------------------------+---------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------+-------------------------------------------------------------+---------------+
+   | :ref:`String<class_String>`             | :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``     |
+   +-----------------------------------------+-------------------------------------------------------------+---------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------+-------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`is_playing<class_AnimatedSprite3D_method_is_playing>` **(** **)** |const|                 |
-+-------------------------+-------------------------------------------------------------------------------------------------+
-| void                    | :ref:`play<class_AnimatedSprite3D_method_play>` **(** :ref:`String<class_String>` anim="" **)** |
-+-------------------------+-------------------------------------------------------------------------------------------------+
-| void                    | :ref:`stop<class_AnimatedSprite3D_method_stop>` **(** **)**                                     |
-+-------------------------+-------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------+-------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>` | :ref:`is_playing<class_AnimatedSprite3D_method_is_playing>` **(** **)** |const|                 |
+   +-------------------------+-------------------------------------------------------------------------------------------------+
+   | void                    | :ref:`play<class_AnimatedSprite3D_method_play>` **(** :ref:`String<class_String>` anim="" **)** |
+   +-------------------------+-------------------------------------------------------------------------------------------------+
+   | 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:`String<class_String>` **animation**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **animation** = ``"default"``
 
-+-----------+----------------------+
-| *Default* | ``"default"``        |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_animation** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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``
 
-+-----------+------------------+
-| *Default* | ``0``            |
-+-----------+------------------+
-| *Setter*  | set_frame(value) |
-+-----------+------------------+
-| *Getter*  | get_frame()      |
-+-----------+------------------+
+.. 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_AnimatedSprite3D_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).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_property_playing:
 
-- :ref:`bool<class_bool>` **playing**
+.. rst-class:: classref-property
 
-+-----------+-----------+
-| *Default* | ``false`` |
-+-----------+-----------+
+:ref:`bool<class_bool>` **playing** = ``false``
 
 If ``true``, the :ref:`animation<class_AnimatedSprite3D_property_animation>` is currently playing.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedSprite3D_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 currently being played.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_method_play:
 
-- void **play** **(** :ref:`String<class_String>` anim="" **)**
+.. rst-class:: classref-method
+
+void **play** **(** :ref:`String<class_String>` anim="" **)**
 
 Plays the animation named ``anim``. If no ``anim`` is provided, the current animation is played.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedSprite3D_method_stop:
 
-- void **stop** **(** **)**
+.. rst-class:: classref-method
+
+void **stop** **(** **)**
 
 Stops the current animation (does not reset the frame counter).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 121 - 67
classes/class_animatedtexture.rst

@@ -14,157 +14,206 @@ 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:`AnimatedSprite<class_AnimatedSprite>`, it isn't a :ref:`Node<class_Node>`, but has the advantage of being usable anywhere a :ref:`Texture<class_Texture>` 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:`AnimatedSprite<class_AnimatedSprite>`, it isn't a :ref:`Node<class_Node>`, but has the advantage of being usable anywhere a :ref:`Texture<class_Texture>` resource can be used, e.g. in a :ref:`TileSet<class_TileSet>`.
 
 The playback of the animation is controlled by the :ref:`fps<class_AnimatedTexture_property_fps>` property as well as each frame's optional delay (see :ref:`set_frame_delay<class_AnimatedTexture_method_set_frame_delay>`). 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:`Texture<class_Texture>`.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`current_frame<class_AnimatedTexture_property_current_frame>` |                                                                |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`int<class_int>`     | flags                                                              | ``0`` (overrides :ref:`Texture<class_Texture_property_flags>`) |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`fps<class_AnimatedTexture_property_fps>`                     | ``4.0``                                                        |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`int<class_int>`     | :ref:`frames<class_AnimatedTexture_property_frames>`               | ``1``                                                          |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`oneshot<class_AnimatedTexture_property_oneshot>`             | ``false``                                                      |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`pause<class_AnimatedTexture_property_pause>`                 | ``false``                                                      |
-+---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`current_frame<class_AnimatedTexture_property_current_frame>` |                                                                |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`int<class_int>`     | flags                                                              | ``0`` (overrides :ref:`Texture<class_Texture_property_flags>`) |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`fps<class_AnimatedTexture_property_fps>`                     | ``4.0``                                                        |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`int<class_int>`     | :ref:`frames<class_AnimatedTexture_property_frames>`               | ``1``                                                          |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`oneshot<class_AnimatedTexture_property_oneshot>`             | ``false``                                                      |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`pause<class_AnimatedTexture_property_pause>`                 | ``false``                                                      |
+   +---------------------------+--------------------------------------------------------------------+----------------------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`get_frame_delay<class_AnimatedTexture_method_get_frame_delay>` **(** :ref:`int<class_int>` frame **)** |const|                                    |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture<class_Texture>` | :ref:`get_frame_texture<class_AnimatedTexture_method_get_frame_texture>` **(** :ref:`int<class_int>` frame **)** |const|                                |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_frame_delay<class_AnimatedTexture_method_set_frame_delay>` **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` delay **)**           |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_frame_texture<class_AnimatedTexture_method_set_frame_texture>` **(** :ref:`int<class_int>` frame, :ref:`Texture<class_Texture>` texture **)** |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`get_frame_delay<class_AnimatedTexture_method_get_frame_delay>` **(** :ref:`int<class_int>` frame **)** |const|                                    |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Texture<class_Texture>` | :ref:`get_frame_texture<class_AnimatedTexture_method_get_frame_texture>` **(** :ref:`int<class_int>` frame **)** |const|                                |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`set_frame_delay<class_AnimatedTexture_method_set_frame_delay>` **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` delay **)**           |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`set_frame_texture<class_AnimatedTexture_method_set_frame_texture>` **(** :ref:`int<class_int>` frame, :ref:`Texture<class_Texture>` 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:`AnimatedSprite<class_AnimatedSprite>`.
+.. 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:`AnimatedSprite<class_AnimatedSprite>`.
+
+.. 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_fps:
 
-- :ref:`float<class_float>` **fps**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **fps** = ``4.0``
 
-+-----------+----------------+
-| *Default* | ``4.0``        |
-+-----------+----------------+
-| *Setter*  | set_fps(value) |
-+-----------+----------------+
-| *Getter*  | get_fps()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_fps** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_fps** **(** **)**
 
 Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the :ref:`frames<class_AnimatedTexture_property_frames>` property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see :ref:`set_frame_delay<class_AnimatedTexture_method_set_frame_delay>`).
 
 For example, an animation with 8 frames, no frame delay and a ``fps`` value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_property_frames:
 
-- :ref:`int<class_int>` **frames**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``1``             |
-+-----------+-------------------+
-| *Setter*  | set_frames(value) |
-+-----------+-------------------+
-| *Getter*  | get_frames()      |
-+-----------+-------------------+
+:ref:`int<class_int>` **frames** = ``1``
+
+.. 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_oneshot:
 
-- :ref:`bool<class_bool>` **oneshot**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **oneshot** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``false``          |
-+-----------+--------------------+
-| *Setter*  | set_oneshot(value) |
-+-----------+--------------------+
-| *Getter*  | get_oneshot()      |
-+-----------+--------------------+
+- void **set_oneshot** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_oneshot** **(** **)**
 
 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-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AnimatedTexture_method_get_frame_delay:
 
-- :ref:`float<class_float>` **get_frame_delay** **(** :ref:`int<class_int>` frame **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_frame_delay** **(** :ref:`int<class_int>` frame **)** |const|
 
 Returns the given frame's delay value.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_get_frame_texture:
 
-- :ref:`Texture<class_Texture>` **get_frame_texture** **(** :ref:`int<class_int>` frame **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Texture<class_Texture>` **get_frame_texture** **(** :ref:`int<class_int>` frame **)** |const|
 
 Returns the given frame's :ref:`Texture<class_Texture>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_set_frame_delay:
 
-- void **set_frame_delay** **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` delay **)**
+.. rst-class:: classref-method
+
+void **set_frame_delay** **(** :ref:`int<class_int>` frame, :ref:`float<class_float>` delay **)**
 
 Sets an additional delay (in seconds) between this frame and the next one, that will be added to the time interval defined by :ref:`fps<class_AnimatedTexture_property_fps>`. By default, frames have no delay defined. If a delay value is defined, the final time interval between this frame and the next will be ``1.0 / fps + delay``.
 
@@ -177,11 +226,15 @@ For example, for an animation with 3 frames, 2 FPS and a frame delay on the seco
     Frame 2: 0.5 s (1 / fps)
     Total duration: 2.7 s
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimatedTexture_method_set_frame_texture:
 
-- void **set_frame_texture** **(** :ref:`int<class_int>` frame, :ref:`Texture<class_Texture>` texture **)**
+.. rst-class:: classref-method
+
+void **set_frame_texture** **(** :ref:`int<class_int>` frame, :ref:`Texture<class_Texture>` texture **)**
 
 Assigns a :ref:`Texture<class_Texture>` 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.
 
@@ -190,3 +243,4 @@ You can define any number of textures up to :ref:`MAX_FRAMES<class_AnimatedTextu
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 565 - 227
classes/class_animation.rst

@@ -14,6 +14,8 @@ Animation
 
 Contains data used to animate everything in the engine.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -31,759 +33,1095 @@ An Animation resource contains data used to animate everything in the engine. An
 
 Animations are just data containers, and must be added to nodes such as an :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimationTreePlayer<class_AnimationTreePlayer>` to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check :ref:`TrackType<enum_Animation_TrackType>` to see available types.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/animation/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`length<class_Animation_property_length>` | ``1.0``   |
-+---------------------------+------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`   | :ref:`loop<class_Animation_property_loop>`     | ``false`` |
-+---------------------------+------------------------------------------------+-----------+
-| :ref:`float<class_float>` | :ref:`step<class_Animation_property_step>`     | ``0.1``   |
-+---------------------------+------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`length<class_Animation_property_length>` | ``1.0``   |
+   +---------------------------+------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`   | :ref:`loop<class_Animation_property_loop>`     | ``false`` |
+   +---------------------------+------------------------------------------------+-----------+
+   | :ref:`float<class_float>` | :ref:`step<class_Animation_property_step>`     | ``0.1``   |
+   +---------------------------+------------------------------------------------+-----------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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:`String<class_String>`                                | :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:`String<class_String>` 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:`String<class_String>` 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 **)**                                                                                               |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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 **)**                                                                                            |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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 **)**                                                                                                               |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                         |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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 **)** |const|                                                                                                                                                                                                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                             |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolIntArray<class_PoolIntArray>`                    | :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:`String<class_String>`                                | :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|                                                                                                                                              |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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|                                                                                                                                                                                               |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :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_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_position<class_Animation_method_track_remove_key_at_position>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` position **)**                                                                                                                                       |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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:`int<class_int>`                                      | :ref:`transform_track_insert_key<class_Animation_method_transform_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)**                                |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                  | :ref:`transform_track_interpolate<class_Animation_method_transform_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                 |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolIntArray<class_PoolIntArray>`                    | :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 **)**                                                                                                                          |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. 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:`String<class_String>`                                | :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:`String<class_String>` 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:`String<class_String>` 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 **)**                                                                                               |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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 **)**                                                                                            |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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 **)**                                                                                                               |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                         |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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 **)** |const|                                                                                                                                                                                                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                             |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolIntArray<class_PoolIntArray>`                    | :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:`String<class_String>`                                | :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|                                                                                                                                              |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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|                                                                                                                                                                                               |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                       | :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_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_position<class_Animation_method_track_remove_key_at_position>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` position **)**                                                                                                                                       |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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:`int<class_int>`                                      | :ref:`transform_track_insert_key<class_Animation_method_transform_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)**                                |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                  | :ref:`transform_track_interpolate<class_Animation_method_transform_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                 |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolIntArray<class_PoolIntArray>`                    | :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 **)**                                                                                                                          |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_Animation_signal_tracks_changed:
 
-- **tracks_changed** **(** **)**
+.. rst-class:: classref-signal
+
+**tracks_changed** **(** **)**
 
 Emitted when there's a change in the list of tracks, e.g. tracks are added, moved or have changed paths.
 
+.. 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.
+
 .. _class_Animation_constant_TYPE_TRANSFORM:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_TRANSFORM** = ``1``
+
+Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are interpolated.
+
 .. _class_Animation_constant_TYPE_METHOD:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_METHOD** = ``2``
+
+Method tracks call functions with given arguments per key.
+
 .. _class_Animation_constant_TYPE_BEZIER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_BEZIER** = ``3``
+
+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>`).
+
 .. _class_Animation_constant_TYPE_AUDIO:
 
-.. _class_Animation_constant_TYPE_ANIMATION:
+.. rst-class:: classref-enumeration-constant
 
-enum **TrackType**:
+:ref:`TrackType<enum_Animation_TrackType>` **TYPE_AUDIO** = ``4``
 
-- **TYPE_VALUE** = **0** --- Value tracks set values in node properties, but only those which can be Interpolated.
+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_TRANSFORM** = **1** --- Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are interpolated.
+.. _class_Animation_constant_TYPE_ANIMATION:
 
-- **TYPE_METHOD** = **2** --- Method tracks call functions with given arguments per key.
+.. rst-class:: classref-enumeration-constant
 
-- **TYPE_BEZIER** = **3** --- 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** = ``5``
 
-- **TYPE_AUDIO** = **4** --- 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** = **5** --- 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:
 
-enum **InterpolationType**:
+.. rst-class:: classref-enumeration-constant
 
-- **INTERPOLATION_NEAREST** = **0** --- No interpolation (nearest value).
+:ref:`InterpolationType<enum_Animation_InterpolationType>` **INTERPOLATION_CUBIC** = ``2``
 
-- **INTERPOLATION_LINEAR** = **1** --- Linear interpolation.
+Cubic interpolation.
 
-- **INTERPOLATION_CUBIC** = **2** --- Cubic interpolation.
+.. 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.
+
 .. _class_Animation_constant_UPDATE_DISCRETE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_DISCRETE** = ``1``
+
+Update at the keyframes and hold the value.
+
 .. _class_Animation_constant_UPDATE_TRIGGER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_TRIGGER** = ``2``
+
+Update at the keyframes.
+
 .. _class_Animation_constant_UPDATE_CAPTURE:
 
-enum **UpdateMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`UpdateMode<enum_Animation_UpdateMode>` **UPDATE_CAPTURE** = ``3``
 
-- **UPDATE_CONTINUOUS** = **0** --- Update between 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_DISCRETE** = **1** --- Update at the keyframes and hold the value.
+.. rst-class:: classref-section-separator
 
-- **UPDATE_TRIGGER** = **2** --- Update at the keyframes.
+----
 
-- **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-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Animation_property_length:
 
-- :ref:`float<class_float>` **length**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``1.0``           |
-+-----------+-------------------+
-| *Setter*  | set_length(value) |
-+-----------+-------------------+
-| *Getter*  | get_length()      |
-+-----------+-------------------+
+:ref:`float<class_float>` **length** = ``1.0``
+
+.. rst-class:: classref-property-setget
+
+- 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:
 
-- :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** **(** **)**
 
 A flag indicating that the animation must loop. 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:`String<class_String>` **animation_track_get_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`String<class_String>` 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:`String<class_String>` 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:`String<class_String>` animation **)**
+.. rst-class:: classref-method
+
+void **animation_track_set_key_animation** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`String<class_String>` 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 **)**
+.. 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 **)**
 
 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 **)**
+.. 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 **)**
 
 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_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_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 **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **find_track** **(** :ref:`NodePath<class_NodePath>` path **)** |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
+
+:ref:`int<class_int>` **get_track_count** **(** **)** |const|
 
 Returns the amount of tracks in the animation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_method_track_get_key_indices:
 
-- :ref:`PoolIntArray<class_PoolIntArray>` **method_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **method_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
 
 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:`String<class_String>` **method_track_get_name** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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_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_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 ``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 amount 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:`@GDScript.ease<class_@GDScript_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:
 
-- void **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
+
+void **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 **)**
 
 Insert a generic key in a given track.
 
+.. 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 ``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 ``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_position:
 
-- void **track_remove_key_at_position** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` position **)**
+.. rst-class:: classref-method
+
+void **track_remove_key_at_position** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` position **)**
 
 Removes a key by position (seconds) 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 ``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:`@GDScript.ease<class_@GDScript_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 **)**
+.. rst-class:: classref-method
+
+void **track_swap** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**
 
 Swaps the track ``idx``'s index position with the track ``with_idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_transform_track_insert_key:
 
-- :ref:`int<class_int>` **transform_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **transform_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)**
 
 Insert a transform key for a transform track.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_transform_track_interpolate:
 
-- :ref:`Array<class_Array>` **transform_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **transform_track_interpolate** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|
 
 Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position (:ref:`Vector3<class_Vector3>`), rotation (:ref:`Quat<class_Quat>`) and scale (:ref:`Vector3<class_Vector3>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Animation_method_value_track_get_key_indices:
 
-- :ref:`PoolIntArray<class_PoolIntArray>` **value_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **value_track_get_key_indices** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|
 
 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 205 - 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,232 +25,351 @@ 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:`../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
 -------
 
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                        |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`String<class_String>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`float<class_float>` blend **)**                                                                                                     |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**                                              |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`           | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)** |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`         | :ref:`get_caption<class_AnimationNode_method_get_caption>` **(** **)** |virtual|                                                                                                                                                                                                                                                                           |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Object<class_Object>`         | :ref:`get_child_by_name<class_AnimationNode_method_get_child_by_name>` **(** :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                                              |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Dictionary<class_Dictionary>` | :ref:`get_child_nodes<class_AnimationNode_method_get_child_nodes>` **(** **)** |virtual|                                                                                                                                                                                                                                                                   |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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:`String<class_String>` name **)** |const|                                                                                                                                                                                                                                        |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`       | :ref:`get_parameter_default_value<class_AnimationNode_method_get_parameter_default_value>` **(** :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                          |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`           | :ref:`get_parameter_list<class_AnimationNode_method_get_parameter_list>` **(** **)** |virtual|                                                                                                                                                                                                                                                             |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`             | :ref:`has_filter<class_AnimationNode_method_has_filter>` **(** **)** |virtual|                                                                                                                                                                                                                                                                             |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`             | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                              |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                | :ref:`process<class_AnimationNode_method_process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek **)** |virtual|                                                                                                                                                                                                                      |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                                           |
-+-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)**                                                                                                                                                                                                                                                        |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`String<class_String>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`float<class_float>` blend **)**                                                                                                     |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**                                              |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`           | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)** |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`         | :ref:`get_caption<class_AnimationNode_method_get_caption>` **(** **)** |virtual|                                                                                                                                                                                                                                                                           |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Object<class_Object>`         | :ref:`get_child_by_name<class_AnimationNode_method_get_child_by_name>` **(** :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                                              |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Dictionary<class_Dictionary>` | :ref:`get_child_nodes<class_AnimationNode_method_get_child_nodes>` **(** **)** |virtual|                                                                                                                                                                                                                                                                   |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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:`String<class_String>` name **)** |const|                                                                                                                                                                                                                                        |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>`       | :ref:`get_parameter_default_value<class_AnimationNode_method_get_parameter_default_value>` **(** :ref:`String<class_String>` name **)** |virtual|                                                                                                                                                                                                          |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`           | :ref:`get_parameter_list<class_AnimationNode_method_get_parameter_list>` **(** **)** |virtual|                                                                                                                                                                                                                                                             |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`has_filter<class_AnimationNode_method_has_filter>` **(** **)** |virtual|                                                                                                                                                                                                                                                                             |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const|                                                                                                                                                                                                                              |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                | :ref:`process<class_AnimationNode_method_process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek **)** |virtual|                                                                                                                                                                                                                      |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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:`String<class_String>` 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_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:`String<class_String>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`float<class_float>` blend **)**
+.. rst-class:: classref-method
+
+void **blend_animation** **(** :ref:`String<class_String>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`float<class_float>` blend **)**
 
 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 ``seek`` happened.
 
+.. 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:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=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:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=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:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=true **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **blend_node** **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` optimize=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_caption:
 
-- :ref:`String<class_String>` **get_caption** **(** **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_caption** **(** **)** |virtual|
 
 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:`Object<class_Object>` **get_child_by_name** **(** :ref:`String<class_String>` name **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`Object<class_Object>` **get_child_by_name** **(** :ref:`String<class_String>` name **)** |virtual|
 
 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|
+.. rst-class:: classref-method
+
+:ref:`Dictionary<class_Dictionary>` **get_child_nodes** **(** **)** |virtual|
 
 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_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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **get_parameter** **(** :ref:`String<class_String>` 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_get_parameter_default_value:
 
-- :ref:`Variant<class_Variant>` **get_parameter_default_value** **(** :ref:`String<class_String>` name **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **get_parameter_default_value** **(** :ref:`String<class_String>` name **)** |virtual|
 
 When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return the default value of parameter "``name``". 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|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_parameter_list** **(** **)** |virtual|
 
 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|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_filter** **(** **)** |virtual|
 
 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_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_process:
 
-- void **process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek **)** |virtual|
+.. rst-class:: classref-method
+
+void **process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek **)** |virtual|
 
 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.
 
@@ -256,30 +377,43 @@ 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_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:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **set_parameter** **(** :ref:`String<class_String>` 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
classes/class_animationnodeadd2.rst

@@ -14,40 +14,55 @@ 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
 ---------
 
 - :doc:`../tutorials/animation/animation_tree`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+----------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd2_property_sync>` | ``false`` |
-+-------------------------+----------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+----------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd2_property_sync>` | ``false`` |
+   +-------------------------+----------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeAdd2_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 ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
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
 ---------
 
@@ -34,30 +38,41 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+----------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd3_property_sync>` | ``false`` |
-+-------------------------+----------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+----------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeAdd3_property_sync>` | ``false`` |
+   +-------------------------+----------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeAdd3_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 ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
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,30 +32,41 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+-------------------------------------------------------------------+--------+
-| :ref:`String<class_String>` | :ref:`animation<class_AnimationNodeAnimation_property_animation>` | ``""`` |
-+-----------------------------+-------------------------------------------------------------------+--------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+-------------------------------------------------------------------+--------+
+   | :ref:`String<class_String>` | :ref:`animation<class_AnimationNodeAnimation_property_animation>` | ``""`` |
+   +-----------------------------+-------------------------------------------------------------------+--------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeAnimation_property_animation:
 
-- :ref:`String<class_String>` **animation**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **animation** = ``""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``""``               |
-+-----------+----------------------+
-| *Setter*  | set_animation(value) |
-+-----------+----------------------+
-| *Getter*  | get_animation()      |
-+-----------+----------------------+
+- void **set_animation** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
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
 ---------
 
@@ -28,30 +32,41 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend2_property_sync>` | ``false`` |
-+-------------------------+------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend2_property_sync>` | ``false`` |
+   +-------------------------+------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeBlend2_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 ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
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,35 +29,48 @@ 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
 ---------
 
 - :doc:`../tutorials/animation/animation_tree`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend3_property_sync>` | ``false`` |
-+-------------------------+------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`sync<class_AnimationNodeBlend3_property_sync>` | ``false`` |
+   +-------------------------+------------------------------------------------------+-----------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeBlend3_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 ``true``, sets the ``optimization`` to ``false`` when calling :ref:`AnimationNode.blend_input<class_AnimationNode_method_blend_input>`, forcing the blended animations to update every frame.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 118 - 63
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,165 +27,218 @@ 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:`../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:`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:`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``
 
-+-----------+----------------------+
-| *Default* | ``1.0``              |
-+-----------+----------------------+
-| *Setter*  | set_max_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_max_space()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- 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``
 
-+-----------+----------------------+
-| *Default* | ``-1.0``             |
-+-----------+----------------------+
-| *Setter*  | set_min_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_min_space()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-----------------+
-| *Default* | ``0.1``         |
-+-----------+-----------------+
-| *Setter*  | set_snap(value) |
-+-----------+-----------------+
-| *Getter*  | get_snap()      |
-+-----------+-----------------+
+:ref:`float<class_float>` **snap** = ``0.1``
+
+.. 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_value_label:
 
-- :ref:`String<class_String>` **value_label**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **value_label** = ``"value"``
 
-+-----------+------------------------+
-| *Default* | ``"value"``            |
-+-----------+------------------------+
-| *Setter*  | set_value_label(value) |
-+-----------+------------------------+
-| *Getter*  | get_value_label()      |
-+-----------+------------------------+
+.. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 212 - 110
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,282 +34,380 @@ 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:`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:`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 )``
 
-+-----------+----------------------+
-| *Default* | ``Vector2( 1, 1 )``  |
-+-----------+----------------------+
-| *Setter*  | set_max_space(value) |
-+-----------+----------------------+
-| *Getter*  | get_max_space()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- 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 )``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``Vector2( -1, -1 )`` |
-+-----------+-----------------------+
-| *Setter*  | set_min_space(value)  |
-+-----------+-----------------------+
-| *Getter*  | get_min_space()       |
-+-----------+-----------------------+
+- 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
+
+:ref:`Vector2<class_Vector2>` **snap** = ``Vector2( 0.1, 0.1 )``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``Vector2( 0.1, 0.1 )`` |
-+-----------+-------------------------+
-| *Setter*  | set_snap(value)         |
-+-----------+-------------------------+
-| *Getter*  | get_snap()              |
-+-----------+-------------------------+
+- 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_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
+
+:ref:`String<class_String>` **y_label** = ``"y"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``"y"``            |
-+-----------+--------------------+
-| *Setter*  | set_y_label(value) |
-+-----------+--------------------+
-| *Getter*  | get_y_label()      |
-+-----------+--------------------+
+- 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 135 - 45
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,158 +23,246 @@ 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:`../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:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)** |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`connect_node<class_AnimationNodeBlendTree_method_connect_node>` **(** :ref:`String<class_String>` input_node, :ref:`int<class_int>` input_index, :ref:`String<class_String>` output_node **)**               |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`disconnect_node<class_AnimationNodeBlendTree_method_disconnect_node>` **(** :ref:`String<class_String>` input_node, :ref:`int<class_int>` input_index **)**                                                  |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AnimationNode<class_AnimationNode>` | :ref:`get_node<class_AnimationNodeBlendTree_method_get_node>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                 |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`             | :ref:`get_node_position<class_AnimationNodeBlendTree_method_get_node_position>` **(** :ref:`String<class_String>` name **)** |const|                                                                               |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`has_node<class_AnimationNodeBlendTree_method_has_node>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                 |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`remove_node<class_AnimationNodeBlendTree_method_remove_node>` **(** :ref:`String<class_String>` name **)**                                                                                                   |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`rename_node<class_AnimationNodeBlendTree_method_rename_node>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` new_name **)**                                                             |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                      | :ref:`set_node_position<class_AnimationNodeBlendTree_method_set_node_position>` **(** :ref:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**                                               |
-+-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`add_node<class_AnimationNodeBlendTree_method_add_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)** |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`connect_node<class_AnimationNodeBlendTree_method_connect_node>` **(** :ref:`String<class_String>` input_node, :ref:`int<class_int>` input_index, :ref:`String<class_String>` output_node **)**               |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`disconnect_node<class_AnimationNodeBlendTree_method_disconnect_node>` **(** :ref:`String<class_String>` input_node, :ref:`int<class_int>` input_index **)**                                                  |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`AnimationNode<class_AnimationNode>` | :ref:`get_node<class_AnimationNodeBlendTree_method_get_node>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                 |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`             | :ref:`get_node_position<class_AnimationNodeBlendTree_method_get_node_position>` **(** :ref:`String<class_String>` name **)** |const|                                                                               |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`has_node<class_AnimationNodeBlendTree_method_has_node>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                 |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`remove_node<class_AnimationNodeBlendTree_method_remove_node>` **(** :ref:`String<class_String>` name **)**                                                                                                   |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`rename_node<class_AnimationNodeBlendTree_method_rename_node>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` new_name **)**                                                             |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                      | :ref:`set_node_position<class_AnimationNodeBlendTree_method_set_node_position>` **(** :ref:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**                                               |
+   +-------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. 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
 
-+-----------+-------------------------+
-| *Default* | ``Vector2( 0, 0 )``     |
-+-----------+-------------------------+
-| *Setter*  | set_graph_offset(value) |
-+-----------+-------------------------+
-| *Getter*  | get_graph_offset()      |
-+-----------+-------------------------+
+:ref:`Vector2<class_Vector2>` **graph_offset** = ``Vector2( 0, 0 )``
+
+.. 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:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)**
+.. rst-class:: classref-method
+
+void **add_node** **(** :ref:`String<class_String>` 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:`String<class_String>` input_node, :ref:`int<class_int>` input_index, :ref:`String<class_String>` output_node **)**
+.. rst-class:: classref-method
+
+void **connect_node** **(** :ref:`String<class_String>` input_node, :ref:`int<class_int>` input_index, :ref:`String<class_String>` 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:`String<class_String>` input_node, :ref:`int<class_int>` input_index **)**
+.. rst-class:: classref-method
+
+void **disconnect_node** **(** :ref:`String<class_String>` 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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`String<class_String>` 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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`String<class_String>` 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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_node** **(** :ref:`String<class_String>` 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:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **remove_node** **(** :ref:`String<class_String>` name **)**
 
 Removes a sub-node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeBlendTree_method_rename_node:
 
-- void **rename_node** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` new_name **)**
+.. rst-class:: classref-method
+
+void **rename_node** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` 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:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**
+.. rst-class:: classref-method
+
+void **set_node_position** **(** :ref:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**
 
 Modifies the position of a sub-node.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 127 - 74
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,145 +30,194 @@ 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.1``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`                         | :ref:`fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`                         | ``0.1``   |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` | :ref:`mix_mode<class_AnimationNodeOneShot_property_mix_mode>`                                 | ``0``     |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`                           | :ref:`sync<class_AnimationNodeOneShot_property_sync>`                                         | ``false`` |
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+.. 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.1``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`                         | :ref:`fadeout_time<class_AnimationNodeOneShot_property_fadeout_time>`                         | ``0.1``   |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` | :ref:`mix_mode<class_AnimationNodeOneShot_property_mix_mode>`                                 | ``0``     |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`                           | :ref:`sync<class_AnimationNodeOneShot_property_sync>`                                         | ``false`` |
+   +---------------------------------------------------+-----------------------------------------------------------------------------------------------+-----------+
+
+.. 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``1.0``                      |
-+-----------+------------------------------+
-| *Setter*  | set_autorestart_delay(value) |
-+-----------+------------------------------+
-| *Getter*  | get_autorestart_delay()      |
-+-----------+------------------------------+
+- 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.1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``0.1``                |
-+-----------+------------------------+
-| *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.1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_fadeout_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_fadeout_time** **(** **)**
 
-+-----------+-------------------------+
-| *Default* | ``0.1``                 |
-+-----------+-------------------------+
-| *Setter*  | set_fadeout_time(value) |
-+-----------+-------------------------+
-| *Getter*  | 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
+
+- void **set_mix_mode** **(** :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` value **)**
+- :ref:`MixMode<enum_AnimationNodeOneShot_MixMode>` **get_mix_mode** **(** **)**
+
+.. container:: contribute
 
-+-----------+---------------------+
-| *Default* | ``0``               |
-+-----------+---------------------+
-| *Setter*  | set_mix_mode(value) |
-+-----------+---------------------+
-| *Getter*  | get_mix_mode()      |
-+-----------+---------------------+
+	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_sync:
 
-- :ref:`bool<class_bool>` **sync**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sync** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_use_sync** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_sync** **(** **)**
+
+.. container:: contribute
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_use_sync(value) |
-+-----------+---------------------+
-| *Getter*  | is_using_sync()     |
-+-----------+---------------------+
+	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 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
 ---------
 
@@ -26,3 +28,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 176 - 70
classes/class_animationnodestatemachine.rst

@@ -14,6 +14,8 @@ AnimationNodeStateMachine
 
 State machine for control of animations.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -26,247 +28,351 @@ Contains multiple nodes representing animation states, connected in a graph. Nod
     var state_machine = $AnimationTree.get("parameters/playback")
     state_machine.travel("some_state")
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/animation/animation_tree`
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`add_node<class_AnimationNodeStateMachine_method_add_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)**                                       |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`add_transition<class_AnimationNodeStateMachine_method_add_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)** |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                                           | :ref:`get_end_node<class_AnimationNodeStateMachine_method_get_end_node>` **(** **)** |const|                                                                                                                                                                |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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:`String<class_String>` name **)** |const|                                                                                                                                       |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                                           | :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:`String<class_String>` name **)** |const|                                                                                                                     |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                                           | :ref:`get_start_node<class_AnimationNodeStateMachine_method_get_start_node>` **(** **)** |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:`String<class_String>`                                                           | :ref:`get_transition_from<class_AnimationNodeStateMachine_method_get_transition_from>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                        |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                                           | :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:`String<class_String>` name **)** |const|                                                                                                                                       |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                                               | :ref:`has_transition<class_AnimationNodeStateMachine_method_has_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to **)** |const|                                                                                           |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`remove_node<class_AnimationNodeStateMachine_method_remove_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                         |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`remove_transition<class_AnimationNodeStateMachine_method_remove_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` 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:`String<class_String>` name, :ref:`String<class_String>` new_name **)**                                                                                                   |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`replace_node<class_AnimationNodeStateMachine_method_replace_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**                                                                                       |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`set_end_node<class_AnimationNodeStateMachine_method_set_end_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                       |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**                                                                                     |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                                                  | :ref:`set_start_node<class_AnimationNodeStateMachine_method_set_start_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                   |
-+---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`add_node<class_AnimationNodeStateMachine_method_add_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)**                                       |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`add_transition<class_AnimationNodeStateMachine_method_add_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)** |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                                           | :ref:`get_end_node<class_AnimationNodeStateMachine_method_get_end_node>` **(** **)** |const|                                                                                                                                                                |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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:`String<class_String>` name **)** |const|                                                                                                                                       |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                                           | :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:`String<class_String>` name **)** |const|                                                                                                                     |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                                           | :ref:`get_start_node<class_AnimationNodeStateMachine_method_get_start_node>` **(** **)** |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:`String<class_String>`                                                           | :ref:`get_transition_from<class_AnimationNodeStateMachine_method_get_transition_from>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                        |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                                           | :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:`String<class_String>` name **)** |const|                                                                                                                                       |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                                               | :ref:`has_transition<class_AnimationNodeStateMachine_method_has_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to **)** |const|                                                                                           |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`remove_node<class_AnimationNodeStateMachine_method_remove_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                         |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`remove_transition<class_AnimationNodeStateMachine_method_remove_transition>` **(** :ref:`String<class_String>` from, :ref:`String<class_String>` 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:`String<class_String>` name, :ref:`String<class_String>` new_name **)**                                                                                                   |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`replace_node<class_AnimationNodeStateMachine_method_replace_node>` **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**                                                                                       |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`set_end_node<class_AnimationNodeStateMachine_method_set_end_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                       |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**                                                                                     |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                                                  | :ref:`set_start_node<class_AnimationNodeStateMachine_method_set_start_node>` **(** :ref:`String<class_String>` name **)**                                                                                                                                   |
+   +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_AnimationNodeStateMachine_method_add_node:
 
-- void **add_node** **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`Vector2<class_Vector2>` position=Vector2( 0, 0 ) **)**
+.. rst-class:: classref-method
+
+void **add_node** **(** :ref:`String<class_String>` 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:`String<class_String>` from, :ref:`String<class_String>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)**
+.. rst-class:: classref-method
+
+void **add_transition** **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to, :ref:`AnimationNodeStateMachineTransition<class_AnimationNodeStateMachineTransition>` transition **)**
 
 Adds a transition between the given nodes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_end_node:
 
-- :ref:`String<class_String>` **get_end_node** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_end_node** **(** **)** |const|
 
 Returns the graph's end node.
 
+.. 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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AnimationNode<class_AnimationNode>` **get_node** **(** :ref:`String<class_String>` name **)** |const|
 
 Returns the animation node with the given name.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_node_name:
 
-- :ref:`String<class_String>` **get_node_name** **(** :ref:`AnimationNode<class_AnimationNode>` node **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_node_position** **(** :ref:`String<class_String>` name **)** |const|
 
 Returns the given node's coordinates. Used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_get_start_node:
 
-- :ref:`String<class_String>` **get_start_node** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_start_node** **(** **)** |const|
 
 Returns the graph's end node.
 
+.. 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:`String<class_String>` **get_transition_from** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`String<class_String>` **get_transition_to** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_node** **(** :ref:`String<class_String>` 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:`String<class_String>` from, :ref:`String<class_String>` to **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_transition** **(** :ref:`String<class_String>` from, :ref:`String<class_String>` 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:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **remove_node** **(** :ref:`String<class_String>` name **)**
 
 Deletes the given node from the graph.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_remove_transition:
 
-- void **remove_transition** **(** :ref:`String<class_String>` from, :ref:`String<class_String>` to **)**
+.. rst-class:: classref-method
+
+void **remove_transition** **(** :ref:`String<class_String>` from, :ref:`String<class_String>` 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:`String<class_String>` name, :ref:`String<class_String>` new_name **)**
+.. rst-class:: classref-method
+
+void **rename_node** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` new_name **)**
 
 Renames the given node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_replace_node:
 
-- void **replace_node** **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**
+.. rst-class:: classref-method
+
+void **replace_node** **(** :ref:`String<class_String>` name, :ref:`AnimationNode<class_AnimationNode>` node **)**
 
 Replaces the node and keeps its transitions unchanged.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_set_end_node:
 
-- void **set_end_node** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **set_end_node** **(** :ref:`String<class_String>` name **)**
 
 Sets the given node as the graph end point.
 
+.. 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:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**
+.. rst-class:: classref-method
+
+void **set_node_position** **(** :ref:`String<class_String>` name, :ref:`Vector2<class_Vector2>` position **)**
 
 Sets the node's coordinates. Used for display in the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachine_method_set_start_node:
 
-- void **set_start_node** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **set_start_node** **(** :ref:`String<class_String>` name **)**
 
 Sets the given node as the graph start point.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 83 - 28
classes/class_animationnodestatemachineplayback.rst

@@ -14,6 +14,8 @@ AnimationNodeStateMachinePlayback
 
 Playback control for :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -26,102 +28,155 @@ Allows control of :ref:`AnimationTree<class_AnimationTree>` state machines creat
     var state_machine = $AnimationTree.get("parameters/playback")
     state_machine.travel("some_state")
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../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:`String<class_String>`                   | :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:`PoolStringArray<class_PoolStringArray>` | :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:`String<class_String>` node **)**                |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`stop<class_AnimationNodeStateMachinePlayback_method_stop>` **(** **)**                                                   |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`travel<class_AnimationNodeStateMachinePlayback_method_travel>` **(** :ref:`String<class_String>` to_node **)**           |
-+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                     | :ref:`get_current_length<class_AnimationNodeStateMachinePlayback_method_get_current_length>` **(** **)** |const|               |
+   +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                   | :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:`PoolStringArray<class_PoolStringArray>` | :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:`String<class_String>` node **)**                |
+   +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`stop<class_AnimationNodeStateMachinePlayback_method_stop>` **(** **)**                                                   |
+   +-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`travel<class_AnimationNodeStateMachinePlayback_method_travel>` **(** :ref:`String<class_String>` 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:`String<class_String>` **get_current_node** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`PoolStringArray<class_PoolStringArray>` **get_travel_path** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PoolStringArray<class_PoolStringArray>` **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:`String<class_String>` node **)**
+.. rst-class:: classref-method
+
+void **start** **(** :ref:`String<class_String>` 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:`String<class_String>` to_node **)**
+.. rst-class:: classref-method
+
+void **travel** **(** :ref:`String<class_String>` to_node **)**
 
 Transitions from the current state to another one, following the shortest path.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 114 - 66
classes/class_animationnodestatemachinetransition.rst

@@ -12,72 +12,114 @@ AnimationNodeStateMachineTransition
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+.. container:: contribute
 
+	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:`../tutorials/animation/animation_tree`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :ref:`String<class_String>`                                            | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` | ``""``    |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
-| :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:`float<class_float>`                                              | :ref:`xfade_time<class_AnimationNodeStateMachineTransition_property_xfade_time>`               | ``0.0``   |
-+------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`String<class_String>`                                            | :ref:`advance_condition<class_AnimationNodeStateMachineTransition_property_advance_condition>` | ``""``    |
+   +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-----------+
+   | :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:`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
 
-- **SWITCH_MODE_IMMEDIATE** = **0** --- Switch to the next state immediately. The current state will end and blend into the beginning of the new one.
+:ref:`SwitchMode<enum_AnimationNodeStateMachineTransition_SwitchMode>` **SWITCH_MODE_AT_END** = ``2``
 
-- **SWITCH_MODE_SYNC** = **1** --- Switch to the next state immediately, but will seek the new state to the playback position of the old state.
+Wait for the current state playback to end, then switch to the beginning of the next state animation.
 
-- **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-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AnimationNodeStateMachineTransition_property_advance_condition:
 
-- :ref:`String<class_String>` **advance_condition**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **advance_condition** = ``""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``""``                       |
-+-----------+------------------------------+
-| *Setter*  | set_advance_condition(value) |
-+-----------+------------------------------+
-| *Getter*  | get_advance_condition()      |
-+-----------+------------------------------+
+- void **set_advance_condition** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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"``:
 
@@ -85,86 +127,92 @@ Turn on auto advance when this condition is set. The provided name will become a
 
     $animation_tree["parameters/conditions/idle"] = is_on_floor and (linear_velocity.x == 0)
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeStateMachineTransition_property_auto_advance:
 
-- :ref:`bool<class_bool>` **auto_advance**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **auto_advance** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``false``               |
-+-----------+-------------------------+
-| *Setter*  | set_auto_advance(value) |
-+-----------+-------------------------+
-| *Getter*  | has_auto_advance()      |
-+-----------+-------------------------+
+- 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
+
+: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** **(** **)**
 
 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
+
+:ref:`int<class_int>` **priority** = ``1``
 
-+-----------+---------------------+
-| *Default* | ``1``               |
-+-----------+---------------------+
-| *Setter*  | set_priority(value) |
-+-----------+---------------------+
-| *Getter*  | get_priority()      |
-+-----------+---------------------+
+.. 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_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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 5 - 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
 ---------
 
@@ -29,3 +33,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 5 - 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
 -----------
 
@@ -31,6 +33,8 @@ This node can be used to cause a seek command to happen to any sub-children of t
     # Alternative syntax (same result as above).
     animation_tree["parameters/Seek/seek_position"] = 12.0
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -39,3 +43,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 91 - 34
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,86 +32,139 @@ Tutorials
 
 - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------------------+---------+
-| :ref:`int<class_int>`     | :ref:`input_count<class_AnimationNodeTransition_property_input_count>` | ``0``   |
-+---------------------------+------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`xfade_time<class_AnimationNodeTransition_property_xfade_time>`   | ``0.0`` |
-+---------------------------+------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------------------+---------+
+   | :ref:`int<class_int>`     | :ref:`input_count<class_AnimationNodeTransition_property_input_count>` | ``0``   |
+   +---------------------------+------------------------------------------------------------------------+---------+
+   | :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_input_count:
 
-- :ref:`int<class_int>` **input_count**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **input_count** = ``0``
 
-+-----------+---------------------------+
-| *Default* | ``0``                     |
-+-----------+---------------------------+
-| *Setter*  | set_enabled_inputs(value) |
-+-----------+---------------------------+
-| *Getter*  | get_enabled_inputs()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_enabled_inputs** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_enabled_inputs** **(** **)**
 
 The number of available input ports for this node.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationNodeTransition_property_xfade_time:
 
-- :ref:`float<class_float>` **xfade_time**
+.. rst-class:: classref-property
 
-+-----------+----------------------------+
-| *Default* | ``0.0``                    |
-+-----------+----------------------------+
-| *Setter*  | set_cross_fade_time(value) |
-+-----------+----------------------------+
-| *Getter*  | get_cross_fade_time()      |
-+-----------+----------------------------+
+:ref:`float<class_float>` **xfade_time** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_cross_fade_time** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_cross_fade_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
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 377 - 192
classes/class_animationplayer.rst

@@ -14,15 +14,19 @@ AnimationPlayer
 
 Container and player of :ref:`Animation<class_Animation>` resources.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 An animation player is used for general-purpose playback of :ref:`Animation<class_Animation>` resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels.
 
-\ ``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>` node, 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>` node, but it requires doing everything by code.
 
 Updating the target properties of animations occurs at process time.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -32,521 +36,701 @@ 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:`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:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>`       | :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:`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:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>`       | :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<class_AnimationPlayer_method_add_animation>` **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)**                                                                    |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`advance<class_AnimationPlayer_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                                                                                              |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`animation_get_next<class_AnimationPlayer_method_animation_get_next>` **(** :ref:`String<class_String>` anim_from **)** |const|                                                                                          |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`animation_set_next<class_AnimationPlayer_method_animation_set_next>` **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)**                                                             |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` **(** **)**                                                                                                                                                    |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`clear_queue<class_AnimationPlayer_method_clear_queue>` **(** **)**                                                                                                                                                      |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`find_animation<class_AnimationPlayer_method_find_animation>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                            |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Animation<class_Animation>`             | :ref:`get_animation<class_AnimationPlayer_method_get_animation>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                         |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :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:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** |const|                                                             |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                     | :ref:`get_playing_speed<class_AnimationPlayer_method_get_playing_speed>` **(** **)** |const|                                                                                                                                  |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_queue<class_AnimationPlayer_method_get_queue>` **(** **)**                                                                                                                                                          |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`has_animation<class_AnimationPlayer_method_has_animation>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                         |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`is_playing<class_AnimationPlayer_method_is_playing>` **(** **)** |const|                                                                                                                                                |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`play<class_AnimationPlayer_method_play>` **(** :ref:`String<class_String>` 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:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1 **)**                                                                 |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`queue<class_AnimationPlayer_method_queue>` **(** :ref:`String<class_String>` name **)**                                                                                                                                 |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`remove_animation<class_AnimationPlayer_method_remove_animation>` **(** :ref:`String<class_String>` name **)**                                                                                                           |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`rename_animation<class_AnimationPlayer_method_rename_animation>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` 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:`String<class_String>` anim_from, :ref:`String<class_String>` 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<class_AnimationPlayer_method_add_animation>` **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)**                                                                    |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`advance<class_AnimationPlayer_method_advance>` **(** :ref:`float<class_float>` delta **)**                                                                                                                              |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                   | :ref:`animation_get_next<class_AnimationPlayer_method_animation_get_next>` **(** :ref:`String<class_String>` anim_from **)** |const|                                                                                          |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`animation_set_next<class_AnimationPlayer_method_animation_set_next>` **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)**                                                             |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` **(** **)**                                                                                                                                                    |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`clear_queue<class_AnimationPlayer_method_clear_queue>` **(** **)**                                                                                                                                                      |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                   | :ref:`find_animation<class_AnimationPlayer_method_find_animation>` **(** :ref:`Animation<class_Animation>` animation **)** |const|                                                                                            |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Animation<class_Animation>`             | :ref:`get_animation<class_AnimationPlayer_method_get_animation>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                         |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolStringArray<class_PoolStringArray>` | :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:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** |const|                                                             |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                     | :ref:`get_playing_speed<class_AnimationPlayer_method_get_playing_speed>` **(** **)** |const|                                                                                                                                  |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_queue<class_AnimationPlayer_method_get_queue>` **(** **)**                                                                                                                                                          |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`has_animation<class_AnimationPlayer_method_has_animation>` **(** :ref:`String<class_String>` name **)** |const|                                                                                                         |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`is_playing<class_AnimationPlayer_method_is_playing>` **(** **)** |const|                                                                                                                                                |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`play<class_AnimationPlayer_method_play>` **(** :ref:`String<class_String>` 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:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1 **)**                                                                 |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`queue<class_AnimationPlayer_method_queue>` **(** :ref:`String<class_String>` name **)**                                                                                                                                 |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`remove_animation<class_AnimationPlayer_method_remove_animation>` **(** :ref:`String<class_String>` name **)**                                                                                                           |
+   +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`rename_animation<class_AnimationPlayer_method_rename_animation>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` 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:`String<class_String>` anim_from, :ref:`String<class_String>` 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:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
+.. rst-class:: classref-signal
+
+**animation_changed** **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
 
 Emitted when a queued animation plays after the previous animation was 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 from :ref:`AnimationTree<class_AnimationTree>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_finished:
 
-- **animation_finished** **(** :ref:`String<class_String>` anim_name **)**
+.. rst-class:: classref-signal
+
+**animation_finished** **(** :ref:`String<class_String>` anim_name **)**
 
 Notifies when an animation finished playing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_signal_animation_started:
 
-- **animation_started** **(** :ref:`String<class_String>` anim_name **)**
+.. rst-class:: classref-signal
+
+**animation_started** **(** :ref:`String<class_String>` 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_AnimationProcessMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AnimationProcessMode**:
+
 .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **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:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **ANIMATION_PROCESS_IDLE** = ``1``
+
+Process animation during the idle process.
+
 .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_MANUAL:
 
-enum **AnimationProcessMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **ANIMATION_PROCESS_PHYSICS** = **0** --- Process animation during the physics process. This is especially useful when animating physics bodies.
+:ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **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``
+
+Make method calls immediately when reached in the animation.
+
+.. rst-class:: classref-section-separator
 
-- **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.
+----
 
-- **ANIMATION_METHOD_CALL_IMMEDIATE** = **1** --- Make method calls immediately when reached in the animation.
+.. 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 current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently 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 name 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 name 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**
 
-+----------+--------------------------------+
-| *Getter* | get_current_animation_length() |
-+----------+--------------------------------+
+.. rst-class:: classref-property-setget
+
+- :ref:`float<class_float>` **get_current_animation_length** **(** **)**
 
 The length (in seconds) of the currently being played 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**
+
+.. rst-class:: classref-property-setget
 
-+----------+----------------------------------+
-| *Getter* | get_current_animation_position() |
-+----------+----------------------------------+
+- :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
+
+:ref:`AnimationMethodCallMode<enum_AnimationPlayer_AnimationMethodCallMode>` **method_call_mode** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_method_call_mode(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_method_call_mode()      |
-+-----------+-----------------------------+
+- 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_playback_active:
 
-- :ref:`bool<class_bool>` **playback_active**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **playback_active**
 
-+----------+-------------------+
-| *Setter* | set_active(value) |
-+----------+-------------------+
-| *Getter* | is_active()       |
-+----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-------------------------------+
-| *Default* | ``0.0``                       |
-+-----------+-------------------------------+
-| *Setter*  | set_default_blend_time(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_default_blend_time()      |
-+-----------+-------------------------------+
+:ref:`float<class_float>` **playback_default_blend_time** = ``0.0``
+
+.. 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:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **playback_process_mode**
+.. rst-class:: classref-property
 
-+-----------+-----------------------------------+
-| *Default* | ``1``                             |
-+-----------+-----------------------------------+
-| *Setter*  | set_animation_process_mode(value) |
-+-----------+-----------------------------------+
-| *Getter*  | get_animation_process_mode()      |
-+-----------+-----------------------------------+
+:ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **playback_process_mode** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_animation_process_mode** **(** :ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` value **)**
+- :ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **get_animation_process_mode** **(** **)**
 
 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``
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_speed_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_speed_scale()      |
-+-----------+------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_speed_scale** **(** **)**
 
 The speed scaling ratio. For instance, 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------------+
-| *Default* | ``true``                         |
-+-----------+----------------------------------+
-| *Setter*  | set_reset_on_save_enabled(value) |
-+-----------+----------------------------------+
-| *Getter*  | is_reset_on_save_enabled()       |
-+-----------+----------------------------------+
+- 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 applied (as if it had been seeked to time 0), then reverted after saving.
 
 In other words, the saved scene file will contain the "default pose", as defined by the reset animation, if any, with the editor keeping the values that the nodes had before saving.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_property_root_node:
 
-- :ref:`NodePath<class_NodePath>` **root_node**
+.. rst-class:: classref-property
+
+:ref:`NodePath<class_NodePath>` **root_node** = ``NodePath("..")``
 
-+-----------+--------------------+
-| *Default* | ``NodePath("..")`` |
-+-----------+--------------------+
-| *Setter*  | set_root(value)    |
-+-----------+--------------------+
-| *Getter*  | get_root()         |
-+-----------+--------------------+
+.. 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:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **add_animation** **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **add_animation** **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)**
 
 Adds ``animation`` to the player accessible with 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:`String<class_String>` **animation_get_next** **(** :ref:`String<class_String>` anim_from **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **animation_get_next** **(** :ref:`String<class_String>` anim_from **)** |const|
 
 Returns the name of the next animation in the queue.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_animation_set_next:
 
-- void **animation_set_next** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)**
+.. rst-class:: classref-method
+
+void **animation_set_next** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` 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:`String<class_String>` **find_animation** **(** :ref:`Animation<class_Animation>` animation **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **find_animation** **(** :ref:`Animation<class_Animation>` animation **)** |const|
 
 Returns the name of ``animation`` or an empty string if not found.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_animation:
 
-- :ref:`Animation<class_Animation>` **get_animation** **(** :ref:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Animation<class_Animation>` **get_animation** **(** :ref:`String<class_String>` 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_list:
 
-- :ref:`PoolStringArray<class_PoolStringArray>` **get_animation_list** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`PoolStringArray<class_PoolStringArray>` **get_animation_list** **(** **)** |const|
 
 Returns the list of stored animation names.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_get_blend_time:
 
-- :ref:`float<class_float>` **get_blend_time** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_blend_time** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** |const|
 
 Gets the blend time (in seconds) between two animations, referenced by their names.
 
+.. 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:`PoolStringArray<class_PoolStringArray>` **get_queue** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`PoolStringArray<class_PoolStringArray>` **get_queue** **(** **)**
 
 Returns a list of the animation names that are currently queued to play.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_has_animation:
 
-- :ref:`bool<class_bool>` **has_animation** **(** :ref:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_animation** **(** :ref:`String<class_String>` 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_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:`String<class_String>` 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:`String<class_String>` 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:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1 **)**
+.. rst-class:: classref-method
+
+void **play_backwards** **(** :ref:`String<class_String>` 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:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **queue** **(** :ref:`String<class_String>` 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:
 
-- void **remove_animation** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **remove_animation** **(** :ref:`String<class_String>` name **)**
 
 Removes the animation with key ``name``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AnimationPlayer_method_rename_animation:
 
-- void **rename_animation** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` newname **)**
+.. rst-class:: classref-method
+
+void **rename_animation** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` newname **)**
 
 Renames an existing animation with key ``name`` to ``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:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to, :ref:`float<class_float>` sec **)**
+.. rst-class:: classref-method
+
+void **set_blend_time** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to, :ref:`float<class_float>` sec **)**
 
 Specifies a blend time (in seconds) between two animations, referenced by their names.
 
+.. 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``.
 
@@ -555,3 +739,4 @@ If ``reset`` is ``false``, the :ref:`current_animation_position<class_AnimationP
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_animationrootnode.rst

@@ -14,8 +14,11 @@ AnimationRootNode
 
 **Inherited By:** :ref:`AnimationNodeAnimation<class_AnimationNodeAnimation>`, :ref:`AnimationNodeBlendSpace1D<class_AnimationNodeBlendSpace1D>`, :ref:`AnimationNodeBlendSpace2D<class_AnimationNodeBlendSpace2D>`, :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`, :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`
 
+.. container:: contribute
 
+	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_animationtrackeditplugin.rst

@@ -12,8 +12,11 @@ AnimationTrackEditPlugin
 
 **Inherits:** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+.. container:: contribute
 
+	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 133 - 67
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,155 +32,217 @@ 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:`anim_player<class_AnimationTree_property_anim_player>`             | ``NodePath("")`` |
-+----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
-| :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` | :ref:`process_mode<class_AnimationTree_property_process_mode>`           | ``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:`anim_player<class_AnimationTree_property_anim_player>`             | ``NodePath("")`` |
+   +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
+   | :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` | :ref:`process_mode<class_AnimationTree_property_process_mode>`           | ``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:`Transform<class_Transform>` | :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:`Transform<class_Transform>` | :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 **)** |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AnimationTree_AnimationProcessMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AnimationProcessMode**:
+
 .. _class_AnimationTree_constant_ANIMATION_PROCESS_PHYSICS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **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:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **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 **AnimationProcessMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **ANIMATION_PROCESS_MANUAL** = ``2``
 
-- **ANIMATION_PROCESS_PHYSICS** = **0** --- The animations will progress during the physics frame (i.e. :ref:`Node._physics_process<class_Node_method__physics_process>`).
+The animations will only progress manually (see :ref:`advance<class_AnimationTree_method_advance>`).
 
-- **ANIMATION_PROCESS_IDLE** = **1** --- The animations will progress during the idle frame (i.e. :ref:`Node._process<class_Node_method__process>`).
+.. rst-class:: classref-section-separator
 
-- **ANIMATION_PROCESS_MANUAL** = **2** --- The animations will only progress manually (see :ref:`advance<class_AnimationTree_method_advance>`).
+----
+
+.. 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_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_mode:
 
-- :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **process_mode**
+.. rst-class:: classref-property
+
+:ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **process_mode** = ``1``
 
-+-----------+-------------------------+
-| *Default* | ``1``                   |
-+-----------+-------------------------+
-| *Setter*  | set_process_mode(value) |
-+-----------+-------------------------+
-| *Getter*  | get_process_mode()      |
-+-----------+-------------------------+
+.. rst-class:: classref-property-setget
 
-The process mode of this ``AnimationTree``. See :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` for available modes.
+- void **set_process_mode** **(** :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` value **)**
+- :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` **get_process_mode** **(** **)**
+
+The process mode of this **AnimationTree**. See :ref:`AnimationProcessMode<enum_AnimationTree_AnimationProcessMode>` 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_TRANSFORM<class_Animation_constant_TYPE_TRANSFORM>`, 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>`.
 
+.. 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
 
-The root animation node of this ``AnimationTree``. See :ref:`AnimationNode<class_AnimationNode>`.
+- 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
+
+----
+
+.. 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_transform:
 
-- :ref:`Transform<class_Transform>` **get_root_motion_transform** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Transform<class_Transform>` **get_root_motion_transform** **(** **)** |const|
 
 Retrieve the motion of the :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` as a :ref:`Transform<class_Transform>` 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_TRANSFORM<class_Animation_constant_TYPE_TRANSFORM>`, returns an identity transformation. See also :ref:`root_motion_track<class_AnimationTree_property_root_motion_track>` and :ref:`RootMotionView<class_RootMotionView>`.
 
+.. 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
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

Dosya farkı çok büyük olduğundan ihmal edildi
+ 500 - 226
classes/class_animationtreeplayer.rst


+ 310 - 189
classes/class_area.rst

@@ -14,6 +14,8 @@ Area
 
 3D area for detection and physics and audio influence.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,6 +25,10 @@ To give the area its shape, add a :ref:`CollisionShape<class_CollisionShape>` or
 
 \ **Warning:** See :ref:`ConcavePolygonShape<class_ConcavePolygonShape>` (also called "trimesh") for a warning about possibly unexpected behavior when using that shape for an area.
 
+\ **Warning:** With a non-uniform scale this node will probably not function as expected. Please make sure to keep its scale uniform (i.e. the same on all axes), and change the size(s) of its collision shape(s) instead.
+
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -30,82 +36,108 @@ 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_Area_property_angular_damp>`                     | ``0.1``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`String<class_String>`                   | :ref:`audio_bus_name<class_Area_property_audio_bus_name>`                 | ``"Master"``            |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`audio_bus_override<class_Area_property_audio_bus_override>`         | ``false``               |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`gravity<class_Area_property_gravity>`                               | ``9.8``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`gravity_distance_scale<class_Area_property_gravity_distance_scale>` | ``0.0``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`gravity_point<class_Area_property_gravity_point>`                   | ``false``               |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`Vector3<class_Vector3>`                 | :ref:`gravity_vec<class_Area_property_gravity_vec>`                       | ``Vector3( 0, -1, 0 )`` |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`linear_damp<class_Area_property_linear_damp>`                       | ``0.1``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`monitorable<class_Area_property_monitorable>`                       | ``true``                |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`monitoring<class_Area_property_monitoring>`                         | ``true``                |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`priority<class_Area_property_priority>`                             | ``0.0``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`reverb_bus_amount<class_Area_property_reverb_bus_amount>`           | ``0.0``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`reverb_bus_enable<class_Area_property_reverb_bus_enable>`           | ``false``               |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`String<class_String>`                   | :ref:`reverb_bus_name<class_Area_property_reverb_bus_name>`               | ``"Master"``            |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`float<class_float>`                     | :ref:`reverb_bus_uniformity<class_Area_property_reverb_bus_uniformity>`   | ``0.0``                 |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
-| :ref:`SpaceOverride<enum_Area_SpaceOverride>` | :ref:`space_override<class_Area_property_space_override>`                 | ``0``                   |
-+-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`angular_damp<class_Area_property_angular_damp>`                     | ``0.1``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`String<class_String>`                   | :ref:`audio_bus_name<class_Area_property_audio_bus_name>`                 | ``"Master"``            |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`audio_bus_override<class_Area_property_audio_bus_override>`         | ``false``               |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`gravity<class_Area_property_gravity>`                               | ``9.8``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`gravity_distance_scale<class_Area_property_gravity_distance_scale>` | ``0.0``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`gravity_point<class_Area_property_gravity_point>`                   | ``false``               |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`Vector3<class_Vector3>`                 | :ref:`gravity_vec<class_Area_property_gravity_vec>`                       | ``Vector3( 0, -1, 0 )`` |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`linear_damp<class_Area_property_linear_damp>`                       | ``0.1``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`monitorable<class_Area_property_monitorable>`                       | ``true``                |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`monitoring<class_Area_property_monitoring>`                         | ``true``                |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`priority<class_Area_property_priority>`                             | ``0.0``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`reverb_bus_amount<class_Area_property_reverb_bus_amount>`           | ``0.0``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`reverb_bus_enable<class_Area_property_reverb_bus_enable>`           | ``false``               |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`String<class_String>`                   | :ref:`reverb_bus_name<class_Area_property_reverb_bus_name>`               | ``"Master"``            |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`float<class_float>`                     | :ref:`reverb_bus_uniformity<class_Area_property_reverb_bus_uniformity>`   | ``0.0``                 |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+   | :ref:`SpaceOverride<enum_Area_SpaceOverride>` | :ref:`space_override<class_Area_property_space_override>`                 | ``0``                   |
+   +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>` | :ref:`get_overlapping_areas<class_Area_method_get_overlapping_areas>` **(** **)** |const|              |
-+---------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>` | :ref:`get_overlapping_bodies<class_Area_method_get_overlapping_bodies>` **(** **)** |const|            |
-+---------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`overlaps_area<class_Area_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
-+---------------------------+--------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`   | :ref:`overlaps_body<class_Area_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
-+---------------------------+--------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>` | :ref:`get_overlapping_areas<class_Area_method_get_overlapping_areas>` **(** **)** |const|              |
+   +---------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>` | :ref:`get_overlapping_bodies<class_Area_method_get_overlapping_bodies>` **(** **)** |const|            |
+   +---------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`overlaps_area<class_Area_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
+   +---------------------------+--------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`   | :ref:`overlaps_body<class_Area_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
+   +---------------------------+--------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_Area_signal_area_entered:
 
-- **area_entered** **(** :ref:`Area<class_Area>` area **)**
+.. rst-class:: classref-signal
+
+**area_entered** **(** :ref:`Area<class_Area>` area **)**
 
 Emitted when another Area enters this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_area_exited:
 
-- **area_exited** **(** :ref:`Area<class_Area>` area **)**
+.. rst-class:: classref-signal
+
+**area_exited** **(** :ref:`Area<class_Area>` area **)**
 
 Emitted when another Area exits this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
 
 \ ``area`` the other Area.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_area_shape_entered:
 
-- **area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area<class_Area>` 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:`Area<class_Area>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
 
@@ -117,11 +149,15 @@ Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of th
 
 \ ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_area_shape_exited:
 
-- **area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area<class_Area>` 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:`Area<class_Area>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
 
@@ -133,31 +169,43 @@ Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of th
 
 \ ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_body_entered:
 
-- **body_entered** **(** :ref:`Node<class_Node>` body **)**
+.. rst-class:: classref-signal
+
+**body_entered** **(** :ref:`Node<class_Node>` body **)**
 
 Emitted when a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` enters this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_body_exited:
 
-- **body_exited** **(** :ref:`Node<class_Node>` body **)**
+.. rst-class:: classref-signal
+
+**body_exited** **(** :ref:`Node<class_Node>` body **)**
 
 Emitted when a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` exits this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
 
 \ ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_body_shape_entered:
 
-- **body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node<class_Node>` 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:`Node<class_Node>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
 
@@ -169,11 +217,15 @@ Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<cla
 
 \ ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_signal_body_shape_exited:
 
-- **body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node<class_Node>` 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:`Node<class_Node>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
 
 Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
 
@@ -185,330 +237,398 @@ Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<cla
 
 \ ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_Area_SpaceOverride:
 
+.. rst-class:: classref-enumeration
+
+enum **SpaceOverride**:
+
 .. _class_Area_constant_SPACE_OVERRIDE_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area_SpaceOverride>` **SPACE_OVERRIDE_DISABLED** = ``0``
+
+This area does not affect gravity/damping.
+
 .. _class_Area_constant_SPACE_OVERRIDE_COMBINE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area_SpaceOverride>` **SPACE_OVERRIDE_COMBINE** = ``1``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area_property_priority>` order).
+
 .. _class_Area_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area_SpaceOverride>` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
+
+This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area_property_priority>` order), ignoring any lower priority areas.
+
 .. _class_Area_constant_SPACE_OVERRIDE_REPLACE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`SpaceOverride<enum_Area_SpaceOverride>` **SPACE_OVERRIDE_REPLACE** = ``3``
+
+This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
+
 .. _class_Area_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_Area_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_Area_property_priority>` order).
+This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area_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_Area_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_Area_property_priority>` order), but keeps calculating the rest of the areas.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Area_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_Area_property_audio_bus_name:
 
-- :ref:`String<class_String>` **audio_bus_name**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **audio_bus_name** = ``"Master"``
 
-+-----------+----------------------+
-| *Default* | ``"Master"``         |
-+-----------+----------------------+
-| *Setter*  | set_audio_bus(value) |
-+-----------+----------------------+
-| *Getter*  | get_audio_bus()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_audio_bus** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_audio_bus** **(** **)**
 
 The name of the area's audio bus.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_property_audio_bus_override:
 
-- :ref:`bool<class_bool>` **audio_bus_override**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **audio_bus_override** = ``false``
 
-+-----------+-------------------------------+
-| *Default* | ``false``                     |
-+-----------+-------------------------------+
-| *Setter*  | set_audio_bus_override(value) |
-+-----------+-------------------------------+
-| *Getter*  | is_overriding_audio_bus()     |
-+-----------+-------------------------------+
+.. 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_Area_property_gravity:
 
-- :ref:`float<class_float>` **gravity**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity** = ``9.8``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``9.8``            |
-+-----------+--------------------+
-| *Setter*  | set_gravity(value) |
-+-----------+--------------------+
-| *Getter*  | get_gravity()      |
-+-----------+--------------------+
+- 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 vector. This is useful to alter the force of gravity without altering its direction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_property_gravity_distance_scale:
 
-- :ref:`float<class_float>` **gravity_distance_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity_distance_scale** = ``0.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------------+
-| *Default* | ``0.0``                           |
-+-----------+-----------------------------------+
-| *Setter*  | set_gravity_distance_scale(value) |
-+-----------+-----------------------------------+
-| *Getter*  | get_gravity_distance_scale()      |
-+-----------+-----------------------------------+
+- void **set_gravity_distance_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity_distance_scale** **(** **)**
 
 The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_property_gravity_point:
 
-- :ref:`bool<class_bool>` **gravity_point**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **gravity_point** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------+
-| *Default* | ``false``                   |
-+-----------+-----------------------------+
-| *Setter*  | set_gravity_is_point(value) |
-+-----------+-----------------------------+
-| *Getter*  | is_gravity_a_point()        |
-+-----------+-----------------------------+
+- 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_vec<class_Area_property_gravity_vec>`). See also :ref:`space_override<class_Area_property_space_override>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_property_gravity_vec:
 
-- :ref:`Vector3<class_Vector3>` **gravity_vec**
+.. rst-class:: classref-property
+
+:ref:`Vector3<class_Vector3>` **gravity_vec** = ``Vector3( 0, -1, 0 )``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``Vector3( 0, -1, 0 )``   |
-+-----------+---------------------------+
-| *Setter*  | set_gravity_vector(value) |
-+-----------+---------------------------+
-| *Getter*  | get_gravity_vector()      |
-+-----------+---------------------------+
+- void **set_gravity_vector** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_gravity_vector** **(** **)**
 
 The area's gravity vector (not normalized). If gravity is a point (see :ref:`gravity_point<class_Area_property_gravity_point>`), this will be the point of attraction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_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/3d/default_linear_damp<class_ProjectSettings_property_physics/3d/default_linear_damp>` for more details about damping.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_property_monitorable:
 
-- :ref:`bool<class_bool>` **monitorable**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_monitorable(value) |
-+-----------+------------------------+
-| *Getter*  | is_monitorable()       |
-+-----------+------------------------+
+:ref:`bool<class_bool>` **monitorable** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- 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_Area_property_monitoring:
 
-- :ref:`bool<class_bool>` **monitoring**
+.. rst-class:: classref-property
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_monitoring(value) |
-+-----------+-----------------------+
-| *Getter*  | is_monitoring()       |
-+-----------+-----------------------+
+:ref:`bool<class_bool>` **monitoring** = ``true``
+
+.. 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_Area_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_Area_property_reverb_bus_amount:
 
-- :ref:`float<class_float>` **reverb_bus_amount**
+.. rst-class:: classref-property
 
-+-----------+--------------------------+
-| *Default* | ``0.0``                  |
-+-----------+--------------------------+
-| *Setter*  | set_reverb_amount(value) |
-+-----------+--------------------------+
-| *Getter*  | get_reverb_amount()      |
-+-----------+--------------------------+
+:ref:`float<class_float>` **reverb_bus_amount** = ``0.0``
+
+.. 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_Area_property_reverb_bus_enable:
 
-- :ref:`bool<class_bool>` **reverb_bus_enable**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **reverb_bus_enable** = ``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_Area_property_reverb_bus_name:
 
-- :ref:`String<class_String>` **reverb_bus_name**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **reverb_bus_name** = ``"Master"``
 
-+-----------+-----------------------+
-| *Default* | ``"Master"``          |
-+-----------+-----------------------+
-| *Setter*  | set_reverb_bus(value) |
-+-----------+-----------------------+
-| *Getter*  | get_reverb_bus()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_reverb_bus** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_reverb_bus** **(** **)**
 
 The reverb bus name to use for this area's associated audio.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area_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_Area_property_space_override:
 
-- :ref:`SpaceOverride<enum_Area_SpaceOverride>` **space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area_SpaceOverride>` **space_override** = ``0``
 
-+-----------+--------------------------------+
-| *Default* | ``0``                          |
-+-----------+--------------------------------+
-| *Setter*  | set_space_override_mode(value) |
-+-----------+--------------------------------+
-| *Getter*  | get_space_override_mode()      |
-+-----------+--------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_space_override_mode** **(** :ref:`SpaceOverride<enum_Area_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area_SpaceOverride>` **get_space_override_mode** **(** **)**
 
 Override mode for gravity and damping calculations within this area. See :ref:`SpaceOverride<enum_Area_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Area_method_get_overlapping_areas:
 
-- :ref:`Array<class_Array>` **get_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_overlapping_areas** **(** **)** |const|
 
-Returns a list of intersecting ``Area``\ s. The overlapping area's :ref:`CollisionObject.collision_layer<class_CollisionObject_property_collision_layer>` must be part of this area's :ref:`CollisionObject.collision_mask<class_CollisionObject_property_collision_mask>` in order to be detected.
+Returns a list of intersecting **Area**\ s. The overlapping area's :ref:`CollisionObject.collision_layer<class_CollisionObject_property_collision_layer>` must be part of this area's :ref:`CollisionObject.collision_mask<class_CollisionObject_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_Area_method_get_overlapping_bodies:
 
-- :ref:`Array<class_Array>` **get_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_overlapping_bodies** **(** **)** |const|
 
 Returns a list of intersecting :ref:`PhysicsBody<class_PhysicsBody>`\ s. The overlapping body's :ref:`CollisionObject.collision_layer<class_CollisionObject_property_collision_layer>` must be part of this area's :ref:`CollisionObject.collision_mask<class_CollisionObject_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_Area_method_overlaps_area:
 
-- :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
 
 If ``true``, the given area overlaps the Area.
 
 \ **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_Area_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|
 
 If ``true``, the given physics body overlaps the Area.
 
@@ -519,3 +639,4 @@ The ``body`` argument can either be a :ref:`PhysicsBody<class_PhysicsBody>` or a
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 264 - 149
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,74 +38,100 @@ 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:`String<class_String>`                     | :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>`                               | ``98.0``            |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :ref:`float<class_float>`                       | :ref:`gravity_distance_scale<class_Area2D_property_gravity_distance_scale>` | ``0.0``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area2D_property_gravity_point>`                   | ``false``           |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_vec<class_Area2D_property_gravity_vec>`                       | ``Vector2( 0, 1 )`` |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area2D_property_linear_damp>`                       | ``0.1``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :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``             |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
-| :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`space_override<class_Area2D_property_space_override>`                 | ``0``               |
-+-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`float<class_float>`                       | :ref:`angular_damp<class_Area2D_property_angular_damp>`                     | ``1.0``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`String<class_String>`                     | :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>`                               | ``98.0``            |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`float<class_float>`                       | :ref:`gravity_distance_scale<class_Area2D_property_gravity_distance_scale>` | ``0.0``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`gravity_point<class_Area2D_property_gravity_point>`                   | ``false``           |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`Vector2<class_Vector2>`                   | :ref:`gravity_vec<class_Area2D_property_gravity_vec>`                       | ``Vector2( 0, 1 )`` |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`float<class_float>`                       | :ref:`linear_damp<class_Area2D_property_linear_damp>`                       | ``0.1``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :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``             |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+   | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`space_override<class_Area2D_property_space_override>`                 | ``0``               |
+   +-------------------------------------------------+-----------------------------------------------------------------------------+---------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>` | :ref:`get_overlapping_areas<class_Area2D_method_get_overlapping_areas>` **(** **)** |const|              |
-+---------------------------+----------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>` | :ref:`get_overlapping_bodies<class_Area2D_method_get_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:`Array<class_Array>` | :ref:`get_overlapping_areas<class_Area2D_method_get_overlapping_areas>` **(** **)** |const|              |
+   +---------------------------+----------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>` | :ref:`get_overlapping_bodies<class_Area2D_method_get_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``.
 
@@ -113,11 +143,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:`Physics2DServer<class_Physics2DServer>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_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``.
 
@@ -129,31 +163,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:`Physics2DServer<class_Physics2DServer>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_owner(local_shape_index)``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_signal_body_entered:
 
-- **body_entered** **(** :ref:`Node<class_Node>` body **)**
+.. rst-class:: classref-signal
+
+**body_entered** **(** :ref:`Node<class_Node>` 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:`Node<class_Node>` body **)**
+.. rst-class:: classref-signal
+
+**body_exited** **(** :ref:`Node<class_Node>` 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:`Node<class_Node>` 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:`Node<class_Node>` 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.
 
@@ -165,11 +211,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:`Physics2DServer<class_Physics2DServer>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_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:`Node<class_Node>` 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:`Node<class_Node>` 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.
 
@@ -181,266 +231,330 @@ 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:`Physics2DServer<class_Physics2DServer>`. Get the :ref:`CollisionShape2D<class_CollisionShape2D>` node with ``self.shape_owner_get_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
+
+:ref:`float<class_float>` **angular_damp** = ``1.0``
 
-+-----------+-------------------------+
-| *Default* | ``1.0``                 |
-+-----------+-------------------------+
-| *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/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_audio_bus_name:
 
-- :ref:`String<class_String>` **audio_bus_name**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **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:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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
+
+:ref:`bool<class_bool>` **audio_bus_override** = ``false``
 
-+-----------+-------------------------------+
-| *Default* | ``false``                     |
-+-----------+-------------------------------+
-| *Setter*  | set_audio_bus_override(value) |
-+-----------+-------------------------------+
-| *Getter*  | is_overriding_audio_bus()     |
-+-----------+-------------------------------+
+.. 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** = ``98.0``
 
-+-----------+--------------------+
-| *Default* | ``98.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 vector. This is useful to alter the force of gravity without altering its direction.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_distance_scale:
 
-- :ref:`float<class_float>` **gravity_distance_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **gravity_distance_scale** = ``0.0``
 
-+-----------+-----------------------------------+
-| *Default* | ``0.0``                           |
-+-----------+-----------------------------------+
-| *Setter*  | set_gravity_distance_scale(value) |
-+-----------+-----------------------------------+
-| *Getter*  | get_gravity_distance_scale()      |
-+-----------+-----------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_distance_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_gravity_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_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_vec<class_Area2D_property_gravity_vec>`). See also :ref:`space_override<class_Area2D_property_space_override>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Area2D_property_gravity_vec:
 
-- :ref:`Vector2<class_Vector2>` **gravity_vec**
+.. rst-class:: classref-property
+
+:ref:`Vector2<class_Vector2>` **gravity_vec** = ``Vector2( 0, 1 )``
 
-+-----------+---------------------------+
-| *Default* | ``Vector2( 0, 1 )``       |
-+-----------+---------------------------+
-| *Setter*  | set_gravity_vector(value) |
-+-----------+---------------------------+
-| *Getter*  | get_gravity_vector()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_gravity_vector** **(** :ref:`Vector2<class_Vector2>` value **)**
+- :ref:`Vector2<class_Vector2>` **get_gravity_vector** **(** **)**
 
 The area's gravity vector (not normalized). 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_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_monitorable:
 
-- :ref:`bool<class_bool>` **monitorable**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_monitorable(value) |
-+-----------+------------------------+
-| *Getter*  | is_monitorable()       |
-+-----------+------------------------+
+:ref:`bool<class_bool>` **monitorable** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-----------------------+
-| *Default* | ``true``              |
-+-----------+-----------------------+
-| *Setter*  | set_monitoring(value) |
-+-----------+-----------------------+
-| *Getter*  | is_monitoring()       |
-+-----------+-----------------------+
+:ref:`bool<class_bool>` **monitoring** = ``true``
+
+.. 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_Area2D_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_Area2D_property_space_override:
 
-- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **space_override**
+.. rst-class:: classref-property
+
+:ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **space_override** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------------+
-| *Default* | ``0``                          |
-+-----------+--------------------------------+
-| *Setter*  | set_space_override_mode(value) |
-+-----------+--------------------------------+
-| *Getter*  | get_space_override_mode()      |
-+-----------+--------------------------------+
+- void **set_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
+- :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_space_override_mode** **(** **)**
 
 Override mode for gravity and damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_Area2D_method_get_overlapping_areas:
 
-- :ref:`Array<class_Array>` **get_overlapping_areas** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **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:`Array<class_Array>` **get_overlapping_bodies** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_overlapping_bodies** **(** **)** |const|
 
 Returns a list of intersecting :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ 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_overlaps_area:
 
-- :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
 
 If ``true``, the given area overlaps the Area2D.
 
 \ **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|
 
 If ``true``, the given physics body overlaps the Area2D.
 
@@ -451,3 +565,4 @@ The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 295 - 123
classes/class_array.rst

@@ -12,6 +12,8 @@ Array
 
 A generic array datatype.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -42,149 +44,194 @@ Arrays can be concatenated using the ``+`` operator:
 
 \ **Note:** When declaring an array with ``const``, the array itself can still be mutated by defining the values at individual indices or pushing/removing elements. Using ``const`` will only prevent assigning the constant with another value after it was initialized.
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)**                                                                                                              |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)**                                                                                                          |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)**                                                                                                          |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)**                                                                                                            |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)**                                                                                                                |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)**                                                                                                                  |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)**                                                                                                                |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`append<class_Array_method_append>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                         |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`append_array<class_Array_method_append_array>` **(** :ref:`Array<class_Array>` array **)**                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`back<class_Array_method_back>` **(** **)**                                                                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`bsearch<class_Array_method_bsearch>` **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` before=true **)**                                                                                  |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`bsearch_custom<class_Array_method_bsearch_custom>` **(** :ref:`Variant<class_Variant>` value, :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func, :ref:`bool<class_bool>` before=true **)** |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`clear<class_Array_method_clear>` **(** **)**                                                                                                                                                               |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`count<class_Array_method_count>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                           |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`duplicate<class_Array_method_duplicate>` **(** :ref:`bool<class_bool>` deep=false **)**                                                                                                                    |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`empty<class_Array_method_empty>` **(** **)**                                                                                                                                                               |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`erase<class_Array_method_erase>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                           |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`fill<class_Array_method_fill>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                             |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`find<class_Array_method_find>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=0 **)**                                                                                                |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`find_last<class_Array_method_find_last>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                   |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`front<class_Array_method_front>` **(** **)**                                                                                                                                                               |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`has<class_Array_method_has>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                               |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`hash<class_Array_method_hash>` **(** **)**                                                                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`insert<class_Array_method_insert>` **(** :ref:`int<class_int>` position, :ref:`Variant<class_Variant>` value **)**                                                                                         |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`invert<class_Array_method_invert>` **(** **)**                                                                                                                                                             |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`max<class_Array_method_max>` **(** **)**                                                                                                                                                                   |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`min<class_Array_method_min>` **(** **)**                                                                                                                                                                   |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`pop_at<class_Array_method_pop_at>` **(** :ref:`int<class_int>` position **)**                                                                                                                              |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`pop_back<class_Array_method_pop_back>` **(** **)**                                                                                                                                                         |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>` | :ref:`pop_front<class_Array_method_pop_front>` **(** **)**                                                                                                                                                       |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`push_back<class_Array_method_push_back>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                   |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`push_front<class_Array_method_push_front>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`remove<class_Array_method_remove>` **(** :ref:`int<class_int>` position **)**                                                                                                                              |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`resize<class_Array_method_resize>` **(** :ref:`int<class_int>` size **)**                                                                                                                                  |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`rfind<class_Array_method_rfind>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=-1 **)**                                                                                             |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`shuffle<class_Array_method_shuffle>` **(** **)**                                                                                                                                                           |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`size<class_Array_method_size>` **(** **)**                                                                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`slice<class_Array_method_slice>` **(** :ref:`int<class_int>` begin, :ref:`int<class_int>` end, :ref:`int<class_int>` step=1, :ref:`bool<class_bool>` deep=false **)**                                      |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`sort<class_Array_method_sort>` **(** **)**                                                                                                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`sort_custom<class_Array_method_sort_custom>` **(** :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func **)**                                                                                 |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)**                                                                                                              |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)**                                                                                                          |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)**                                                                                                          |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)**                                                                                                            |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)**                                                                                                                |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)**                                                                                                                  |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`Array<class_Array_method_Array>` **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)**                                                                                                                |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`append<class_Array_method_append>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                         |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`append_array<class_Array_method_append_array>` **(** :ref:`Array<class_Array>` array **)**                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`back<class_Array_method_back>` **(** **)**                                                                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`bsearch<class_Array_method_bsearch>` **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` before=true **)**                                                                                  |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`bsearch_custom<class_Array_method_bsearch_custom>` **(** :ref:`Variant<class_Variant>` value, :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func, :ref:`bool<class_bool>` before=true **)** |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`clear<class_Array_method_clear>` **(** **)**                                                                                                                                                               |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`count<class_Array_method_count>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                           |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`duplicate<class_Array_method_duplicate>` **(** :ref:`bool<class_bool>` deep=false **)**                                                                                                                    |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`empty<class_Array_method_empty>` **(** **)**                                                                                                                                                               |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`erase<class_Array_method_erase>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                           |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`fill<class_Array_method_fill>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                             |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`find<class_Array_method_find>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=0 **)**                                                                                                |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`find_last<class_Array_method_find_last>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                   |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`front<class_Array_method_front>` **(** **)**                                                                                                                                                               |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`has<class_Array_method_has>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                               |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`hash<class_Array_method_hash>` **(** **)**                                                                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`insert<class_Array_method_insert>` **(** :ref:`int<class_int>` position, :ref:`Variant<class_Variant>` value **)**                                                                                         |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`invert<class_Array_method_invert>` **(** **)**                                                                                                                                                             |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`max<class_Array_method_max>` **(** **)**                                                                                                                                                                   |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`min<class_Array_method_min>` **(** **)**                                                                                                                                                                   |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`pop_at<class_Array_method_pop_at>` **(** :ref:`int<class_int>` position **)**                                                                                                                              |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`pop_back<class_Array_method_pop_back>` **(** **)**                                                                                                                                                         |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Variant<class_Variant>` | :ref:`pop_front<class_Array_method_pop_front>` **(** **)**                                                                                                                                                       |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`push_back<class_Array_method_push_back>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                   |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`push_front<class_Array_method_push_front>` **(** :ref:`Variant<class_Variant>` value **)**                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`remove<class_Array_method_remove>` **(** :ref:`int<class_int>` position **)**                                                                                                                              |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`resize<class_Array_method_resize>` **(** :ref:`int<class_int>` size **)**                                                                                                                                  |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`rfind<class_Array_method_rfind>` **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=-1 **)**                                                                                             |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`shuffle<class_Array_method_shuffle>` **(** **)**                                                                                                                                                           |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`size<class_Array_method_size>` **(** **)**                                                                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`slice<class_Array_method_slice>` **(** :ref:`int<class_int>` begin, :ref:`int<class_int>` end, :ref:`int<class_int>` step=1, :ref:`bool<class_bool>` deep=false **)**                                      |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`sort<class_Array_method_sort>` **(** **)**                                                                                                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`sort_custom<class_Array_method_sort_custom>` **(** :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func **)**                                                                                 |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _class_Array_method_Array:
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)**
 
 Constructs an array from a :ref:`PoolColorArray<class_PoolColorArray>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)**
 
 Constructs an array from a :ref:`PoolVector3Array<class_PoolVector3Array>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)**
 
 Constructs an array from a :ref:`PoolVector2Array<class_PoolVector2Array>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)**
 
 Constructs an array from a :ref:`PoolStringArray<class_PoolStringArray>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)**
 
 Constructs an array from a :ref:`PoolRealArray<class_PoolRealArray>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)**
 
 Constructs an array from a :ref:`PoolIntArray<class_PoolIntArray>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Array<class_Array>` **Array** **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **Array** **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)**
 
 Constructs an array from a :ref:`PoolByteArray<class_PoolByteArray>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_append:
 
-- void **append** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **append** **(** :ref:`Variant<class_Variant>` value **)**
 
 Appends an element at the end of the array (alias of :ref:`push_back<class_Array_method_push_back>`).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_append_array:
 
-- void **append_array** **(** :ref:`Array<class_Array>` array **)**
+.. rst-class:: classref-method
+
+void **append_array** **(** :ref:`Array<class_Array>` array **)**
 
 Appends another array at the end of this array.
 
@@ -195,31 +242,43 @@ Appends another array at the end of this array.
     array1.append_array(array2)
     print(array1) # Prints [1, 2, 3, 4, 5, 6].
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_back:
 
-- :ref:`Variant<class_Variant>` **back** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **back** **(** **)**
 
 Returns the last element of the array. Prints an error and returns ``null`` if the array is empty.
 
 \ **Note:** Calling this function is not the same as writing ``array[-1]``. If the array is empty, accessing by index will pause project execution when running from the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_bsearch:
 
-- :ref:`int<class_int>` **bsearch** **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` before=true **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **bsearch** **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` before=true **)**
 
 Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a ``before`` specifier can be passed. If ``false``, the returned index comes after all existing entries of the value in the array.
 
 \ **Note:** Calling :ref:`bsearch<class_Array_method_bsearch>` on an unsorted array results in unexpected behavior.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_bsearch_custom:
 
-- :ref:`int<class_int>` **bsearch_custom** **(** :ref:`Variant<class_Variant>` value, :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func, :ref:`bool<class_bool>` before=true **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **bsearch_custom** **(** :ref:`Variant<class_Variant>` value, :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func, :ref:`bool<class_bool>` before=true **)**
 
 Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search and a custom comparison method declared in the ``obj``. Optionally, a ``before`` specifier can be passed. If ``false``, the returned index comes after all existing entries of the value in the array. The custom method receives two arguments (an element from the array and the value searched for) and must return ``true`` if the first argument is less than the second, and return ``false`` otherwise.
 
@@ -248,45 +307,65 @@ Finds the index of an existing value (or the insertion index that maintains sort
 
 \ **Note:** Calling :ref:`bsearch_custom<class_Array_method_bsearch_custom>` on an unsorted array results in unexpected behavior.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears the array. This is equivalent to using :ref:`resize<class_Array_method_resize>` with a size of ``0``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_count:
 
-- :ref:`int<class_int>` **count** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **count** **(** :ref:`Variant<class_Variant>` value **)**
 
 Returns the number of times an element is in the array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_duplicate:
 
-- :ref:`Array<class_Array>` **duplicate** **(** :ref:`bool<class_bool>` deep=false **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **duplicate** **(** :ref:`bool<class_bool>` deep=false **)**
 
 Returns a copy of the array.
 
 If ``deep`` is ``true``, a deep copy is performed: all nested arrays and dictionaries are duplicated and will not be shared with the original array. If ``false``, a shallow copy is made and references to the original nested arrays and dictionaries are kept, so that modifying a sub-array or dictionary in the copy will also impact those referenced in the source array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_empty:
 
-- :ref:`bool<class_bool>` **empty** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **empty** **(** **)**
 
 Returns ``true`` if the array is empty.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_erase:
 
-- void **erase** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **erase** **(** :ref:`Variant<class_Variant>` value **)**
 
 Removes the first occurrence of a value from the array. If the value does not exist in the array, nothing happens. To remove an element by index, use :ref:`remove<class_Array_method_remove>` instead.
 
@@ -294,11 +373,15 @@ Removes the first occurrence of a value from the array. If the value does not ex
 
 \ **Note:** On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_fill:
 
-- void **fill** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **fill** **(** :ref:`Variant<class_Variant>` value **)**
 
 Assigns the given value to all elements in the array. This can typically be used together with :ref:`resize<class_Array_method_resize>` to create an array with a given size and initialized elements:
 
@@ -308,39 +391,55 @@ Assigns the given value to all elements in the array. This can typically be used
     array.resize(10)
     array.fill(0) # Initialize the 10 elements to 0.
 
-\ **Note:** If ``value`` is of a reference type (:ref:`Object<class_Object>`-derived, ``Array``, :ref:`Dictionary<class_Dictionary>`, etc.) then the array is filled with the references to the same object, i.e. no duplicates are created.
+\ **Note:** If ``value`` is of a reference type (:ref:`Object<class_Object>`-derived, **Array**, :ref:`Dictionary<class_Dictionary>`, etc.) then the array is filled with the references to the same object, i.e. no duplicates are created.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_Array_method_find:
 
-- :ref:`int<class_int>` **find** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=0 **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **find** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=0 **)**
 
 Searches the array for a value and returns its index or ``-1`` if not found. Optionally, the initial search index can be passed. Returns ``-1`` if ``from`` is out of bounds.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_find_last:
 
-- :ref:`int<class_int>` **find_last** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **find_last** **(** :ref:`Variant<class_Variant>` value **)**
 
 Searches the array in reverse order for a value and returns its index or ``-1`` if not found.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_front:
 
-- :ref:`Variant<class_Variant>` **front** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **front** **(** **)**
 
 Returns the first element of the array. Prints an error and returns ``null`` if the array is empty.
 
 \ **Note:** Calling this function is not the same as writing ``array[0]``. If the array is empty, accessing by index will pause project execution when running from the editor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_has:
 
-- :ref:`bool<class_bool>` **has** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has** **(** :ref:`Variant<class_Variant>` value **)**
 
 Returns ``true`` if the array contains the given value.
 
@@ -359,21 +458,29 @@ Returns ``true`` if the array contains the given value.
     if 2 in [2, 4, 6, 8]:
         pass
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_hash:
 
-- :ref:`int<class_int>` **hash** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **hash** **(** **)**
 
 Returns a hashed 32-bit integer value representing the array and its contents.
 
-\ **Note:** ``Array``\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the arrays are equal, because different arrays can have identical hash values due to hash collisions.
+\ **Note:** **Array**\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the arrays are equal, because different arrays can have identical hash values due to hash collisions.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_Array_method_insert:
 
-- void **insert** **(** :ref:`int<class_int>` position, :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **insert** **(** :ref:`int<class_int>` position, :ref:`Variant<class_Variant>` value **)**
 
 Inserts a new element at a given position in the array. The position must be valid, or at the end of the array (``pos == size()``).
 
@@ -381,81 +488,117 @@ Inserts a new element at a given position in the array. The position must be val
 
 \ **Note:** On large arrays, this method will be slower if the inserted element is close to the beginning of the array (index 0). This is because all elements placed after the newly inserted element have to be reindexed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_invert:
 
-- void **invert** **(** **)**
+.. rst-class:: classref-method
+
+void **invert** **(** **)**
 
 Reverses the order of the elements in the array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_max:
 
-- :ref:`Variant<class_Variant>` **max** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **max** **(** **)**
 
 Returns the maximum value contained in the array if all elements are of comparable types. If the elements can't be compared, ``null`` is returned.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_min:
 
-- :ref:`Variant<class_Variant>` **min** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **min** **(** **)**
 
 Returns the minimum value contained in the array if all elements are of comparable types. If the elements can't be compared, ``null`` is returned.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_pop_at:
 
-- :ref:`Variant<class_Variant>` **pop_at** **(** :ref:`int<class_int>` position **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **pop_at** **(** :ref:`int<class_int>` position **)**
 
 Removes and returns the element of the array at index ``position``. If negative, ``position`` is considered relative to the end of the array. Leaves the array untouched and returns ``null`` if the array is empty or if it's accessed out of bounds. An error message is printed when the array is accessed out of bounds, but not when the array is empty.
 
 \ **Note:** On large arrays, this method can be slower than :ref:`pop_back<class_Array_method_pop_back>` as it will reindex the array's elements that are located after the removed element. The larger the array and the lower the index of the removed element, the slower :ref:`pop_at<class_Array_method_pop_at>` will be.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_pop_back:
 
-- :ref:`Variant<class_Variant>` **pop_back** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **pop_back** **(** **)**
 
 Removes and returns the last element of the array. Returns ``null`` if the array is empty, without printing an error message. See also :ref:`pop_front<class_Array_method_pop_front>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_pop_front:
 
-- :ref:`Variant<class_Variant>` **pop_front** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Variant<class_Variant>` **pop_front** **(** **)**
 
 Removes and returns the first element of the array. Returns ``null`` if the array is empty, without printing an error message. See also :ref:`pop_back<class_Array_method_pop_back>`.
 
 \ **Note:** On large arrays, this method is much slower than :ref:`pop_back<class_Array_method_pop_back>` as it will reindex all the array's elements every time it's called. The larger the array, the slower :ref:`pop_front<class_Array_method_pop_front>` will be.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_push_back:
 
-- void **push_back** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **push_back** **(** :ref:`Variant<class_Variant>` value **)**
 
 Appends an element at the end of the array. See also :ref:`push_front<class_Array_method_push_front>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_push_front:
 
-- void **push_front** **(** :ref:`Variant<class_Variant>` value **)**
+.. rst-class:: classref-method
+
+void **push_front** **(** :ref:`Variant<class_Variant>` value **)**
 
 Adds an element at the beginning of the array. See also :ref:`push_back<class_Array_method_push_back>`.
 
 \ **Note:** On large arrays, this method is much slower than :ref:`push_back<class_Array_method_push_back>` as it will reindex all the array's elements every time it's called. The larger the array, the slower :ref:`push_front<class_Array_method_push_front>` will be.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_remove:
 
-- void **remove** **(** :ref:`int<class_int>` position **)**
+.. rst-class:: classref-method
+
+void **remove** **(** :ref:`int<class_int>` position **)**
 
 Removes an element from the array by index. If the index does not exist in the array, nothing happens. To remove an element by searching for its value, use :ref:`erase<class_Array_method_erase>` instead.
 
@@ -463,51 +606,75 @@ Removes an element from the array by index. If the index does not exist in the a
 
 \ **Note:** On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_resize:
 
-- void **resize** **(** :ref:`int<class_int>` size **)**
+.. rst-class:: classref-method
+
+void **resize** **(** :ref:`int<class_int>` size **)**
 
 Resizes the array to contain a different number of elements. If the array size is smaller, elements are cleared, if bigger, new elements are ``null``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_rfind:
 
-- :ref:`int<class_int>` **rfind** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=-1 **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **rfind** **(** :ref:`Variant<class_Variant>` what, :ref:`int<class_int>` from=-1 **)**
 
 Searches the array in reverse order. Optionally, a start search index can be passed. If negative, the start index is considered relative to the end of the array. If the adjusted start index is out of bounds, this method searches from the end of the array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_shuffle:
 
-- void **shuffle** **(** **)**
+.. rst-class:: classref-method
+
+void **shuffle** **(** **)**
 
 Shuffles the array such that the items will have a random order. This method uses the global random number generator common to methods such as :ref:`@GDScript.randi<class_@GDScript_method_randi>`. Call :ref:`@GDScript.randomize<class_@GDScript_method_randomize>` to ensure that a new seed will be used each time if you want non-reproducible shuffling.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_size:
 
-- :ref:`int<class_int>` **size** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **size** **(** **)**
 
 Returns the number of elements in the array.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_slice:
 
-- :ref:`Array<class_Array>` **slice** **(** :ref:`int<class_int>` begin, :ref:`int<class_int>` end, :ref:`int<class_int>` step=1, :ref:`bool<class_bool>` deep=false **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **slice** **(** :ref:`int<class_int>` begin, :ref:`int<class_int>` end, :ref:`int<class_int>` step=1, :ref:`bool<class_bool>` deep=false **)**
 
 Duplicates the subset described in the function and returns it in an array, deeply copying the array if ``deep`` is ``true``. Lower and upper index are inclusive, with the ``step`` describing the change between indices while slicing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_sort:
 
-- void **sort** **(** **)**
+.. rst-class:: classref-method
+
+void **sort** **(** **)**
 
 Sorts the array.
 
@@ -521,11 +688,15 @@ Sorts the array.
     strings.sort()
     print(strings) # Prints [string1, string10, string11, string2]
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Array_method_sort_custom:
 
-- void **sort_custom** **(** :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func **)**
+.. rst-class:: classref-method
+
+void **sort_custom** **(** :ref:`Object<class_Object>` obj, :ref:`String<class_String>` func **)**
 
 Sorts the array using a custom method. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return either ``true`` or ``false``.
 
@@ -550,3 +721,4 @@ For two elements ``a`` and ``b``, if the given method returns ``true``, element
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 315 - 112
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:
 
@@ -43,210 +45,342 @@ See also :ref:`ImmediateGeometry<class_ImmediateGeometry>`, :ref:`MeshDataTool<c
 
 \ **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:`../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 )`` |
-+-------------------------------------------------+--------------------------------------------------------------------+------------------------------+
+.. 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 )`` |
+   +-------------------------------------------------+--------------------------------------------------------------------+------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`add_blend_shape<class_ArrayMesh_method_add_blend_shape>` **(** :ref:`String<class_String>` 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:`int<class_int>` compress_flags=2194432 **)** |
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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:`String<class_String>`                   | :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:`Transform<class_Transform>` transform, :ref:`float<class_float>` texel_size **)**                                                                                                                    |
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`regen_normalmaps<class_ArrayMesh_method_regen_normalmaps>` **(** **)**                                                                                                                                                                                                    |
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                          | :ref:`set_blend_shape_name<class_ArrayMesh_method_set_blend_shape_name>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` 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_remove<class_ArrayMesh_method_surface_remove>` **(** :ref:`int<class_int>` surf_idx **)**                                                                                                                                                                         |
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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_region<class_ArrayMesh_method_surface_update_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PoolByteArray<class_PoolByteArray>` data **)**                                                                             |
-+-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`add_blend_shape<class_ArrayMesh_method_add_blend_shape>` **(** :ref:`String<class_String>` 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:`int<class_int>` compress_flags=2194432 **)** |
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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:`String<class_String>`                   | :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:`Transform<class_Transform>` transform, :ref:`float<class_float>` texel_size **)**                                                                                                                    |
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`regen_normalmaps<class_ArrayMesh_method_regen_normalmaps>` **(** **)**                                                                                                                                                                                                    |
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                          | :ref:`set_blend_shape_name<class_ArrayMesh_method_set_blend_shape_name>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` 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_remove<class_ArrayMesh_method_surface_remove>` **(** :ref:`int<class_int>` surf_idx **)**                                                                                                                                                                         |
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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_region<class_ArrayMesh_method_surface_update_region>` **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PoolByteArray<class_PoolByteArray>` data **)**                                                                             |
+   +-----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_ArrayMesh_ArrayType:
 
+.. rst-class:: classref-enumeration
+
+enum **ArrayType**:
+
 .. _class_ArrayMesh_constant_ARRAY_VERTEX:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_VERTEX** = ``0``
+
+:ref:`PoolVector3Array<class_PoolVector3Array>`, :ref:`PoolVector2Array<class_PoolVector2Array>`, or :ref:`Array<class_Array>` of vertex positions.
+
 .. _class_ArrayMesh_constant_ARRAY_NORMAL:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_NORMAL** = ``1``
+
+:ref:`PoolVector3Array<class_PoolVector3Array>` of vertex normals.
+
 .. _class_ArrayMesh_constant_ARRAY_TANGENT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_TANGENT** = ``2``
+
+:ref:`PoolRealArray<class_PoolRealArray>` of vertex tangents. Each element in groups of 4 floats, first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.
+
 .. _class_ArrayMesh_constant_ARRAY_COLOR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_COLOR** = ``3``
+
+:ref:`PoolColorArray<class_PoolColorArray>` of vertex colors.
+
 .. _class_ArrayMesh_constant_ARRAY_TEX_UV:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_TEX_UV** = ``4``
+
+:ref:`PoolVector2Array<class_PoolVector2Array>` for UV coordinates.
+
 .. _class_ArrayMesh_constant_ARRAY_TEX_UV2:
 
-.. _class_ArrayMesh_constant_ARRAY_BONES:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_ArrayMesh_constant_ARRAY_WEIGHTS:
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_TEX_UV2** = ``5``
 
-.. _class_ArrayMesh_constant_ARRAY_INDEX:
+:ref:`PoolVector2Array<class_PoolVector2Array>` for second UV coordinates.
 
-.. _class_ArrayMesh_constant_ARRAY_MAX:
+.. _class_ArrayMesh_constant_ARRAY_BONES:
 
-enum **ArrayType**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_BONES** = ``6``
 
-- **ARRAY_VERTEX** = **0** --- :ref:`PoolVector3Array<class_PoolVector3Array>`, :ref:`PoolVector2Array<class_PoolVector2Array>`, or :ref:`Array<class_Array>` of vertex positions.
+:ref:`PoolRealArray<class_PoolRealArray>` or :ref:`PoolIntArray<class_PoolIntArray>` of bone indices. Each element in groups of 4 floats.
 
-- **ARRAY_NORMAL** = **1** --- :ref:`PoolVector3Array<class_PoolVector3Array>` of vertex normals.
+.. _class_ArrayMesh_constant_ARRAY_WEIGHTS:
 
-- **ARRAY_TANGENT** = **2** --- :ref:`PoolRealArray<class_PoolRealArray>` of vertex tangents. Each element in groups of 4 floats, first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.
+.. rst-class:: classref-enumeration-constant
 
-- **ARRAY_COLOR** = **3** --- :ref:`PoolColorArray<class_PoolColorArray>` of vertex colors.
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_WEIGHTS** = ``7``
 
-- **ARRAY_TEX_UV** = **4** --- :ref:`PoolVector2Array<class_PoolVector2Array>` for UV coordinates.
+:ref:`PoolRealArray<class_PoolRealArray>` of bone weights. Each element in groups of 4 floats.
 
-- **ARRAY_TEX_UV2** = **5** --- :ref:`PoolVector2Array<class_PoolVector2Array>` for second UV coordinates.
+.. _class_ArrayMesh_constant_ARRAY_INDEX:
 
-- **ARRAY_BONES** = **6** --- :ref:`PoolRealArray<class_PoolRealArray>` or :ref:`PoolIntArray<class_PoolIntArray>` of bone indices. Each element in groups of 4 floats.
+.. rst-class:: classref-enumeration-constant
 
-- **ARRAY_WEIGHTS** = **7** --- :ref:`PoolRealArray<class_PoolRealArray>` of bone weights. Each element in groups of 4 floats.
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_INDEX** = ``8``
 
-- **ARRAY_INDEX** = **8** --- :ref:`PoolIntArray<class_PoolIntArray>` of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the \*i\*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
+:ref:`PoolIntArray<class_PoolIntArray>` of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the \*i\*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
 
 For triangles, the index array is interpreted as triples, referring to the vertices of each triangle. For lines, the index array is in pairs indicating the start and end of each line.
 
-- **ARRAY_MAX** = **9** --- Represents the size of the :ref:`ArrayType<enum_ArrayMesh_ArrayType>` enum.
+.. _class_ArrayMesh_constant_ARRAY_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayType<enum_ArrayMesh_ArrayType>` **ARRAY_MAX** = ``9``
+
+Represents the size of the :ref:`ArrayType<enum_ArrayMesh_ArrayType>` enum.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_ArrayMesh_ArrayFormat:
 
+.. rst-class:: classref-enumeration
+
+enum **ArrayFormat**:
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_VERTEX:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_VERTEX** = ``1``
+
+Array format will include vertices (mandatory).
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_NORMAL:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_NORMAL** = ``2``
+
+Array format will include normals.
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_TANGENT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_TANGENT** = ``4``
+
+Array format will include tangents.
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_COLOR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_COLOR** = ``8``
+
+Array format will include a color array.
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_TEX_UV:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV** = ``16``
+
+Array format will include UVs.
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_TEX_UV2:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_TEX_UV2** = ``32``
+
+Array format will include another set of UVs.
+
 .. _class_ArrayMesh_constant_ARRAY_FORMAT_BONES:
 
-.. _class_ArrayMesh_constant_ARRAY_FORMAT_WEIGHTS:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_ArrayMesh_constant_ARRAY_FORMAT_INDEX:
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_BONES** = ``64``
 
-enum **ArrayFormat**:
+Array format will include bone indices.
+
+.. _class_ArrayMesh_constant_ARRAY_FORMAT_WEIGHTS:
 
-- **ARRAY_FORMAT_VERTEX** = **1** --- Array format will include vertices (mandatory).
+.. rst-class:: classref-enumeration-constant
 
-- **ARRAY_FORMAT_NORMAL** = **2** --- Array format will include normals.
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_WEIGHTS** = ``128``
 
-- **ARRAY_FORMAT_TANGENT** = **4** --- Array format will include tangents.
+Array format will include bone weights.
 
-- **ARRAY_FORMAT_COLOR** = **8** --- Array format will include a color array.
+.. _class_ArrayMesh_constant_ARRAY_FORMAT_INDEX:
+
+.. rst-class:: classref-enumeration-constant
 
-- **ARRAY_FORMAT_TEX_UV** = **16** --- Array format will include UVs.
+:ref:`ArrayFormat<enum_ArrayMesh_ArrayFormat>` **ARRAY_FORMAT_INDEX** = ``256``
 
-- **ARRAY_FORMAT_TEX_UV2** = **32** --- Array format will include another set of UVs.
+Index array will be used.
 
-- **ARRAY_FORMAT_BONES** = **64** --- Array format will include bone indices.
+.. rst-class:: classref-section-separator
 
-- **ARRAY_FORMAT_WEIGHTS** = **128** --- Array format will include bone weights.
+----
 
-- **ARRAY_FORMAT_INDEX** = **256** --- Index array will be used.
+.. rst-class:: classref-descriptions-group
 
 Constants
 ---------
 
 .. _class_ArrayMesh_constant_NO_INDEX_ARRAY:
 
+.. rst-class:: classref-constant
+
+**NO_INDEX_ARRAY** = ``-1``
+
+Value used internally when no indices are present.
+
 .. _class_ArrayMesh_constant_ARRAY_WEIGHTS_SIZE:
 
-- **NO_INDEX_ARRAY** = **-1** --- Value used internally when no indices are present.
+.. rst-class:: classref-constant
+
+**ARRAY_WEIGHTS_SIZE** = ``4``
+
+Amount of weights/bone indices per vertex (always 4).
 
-- **ARRAY_WEIGHTS_SIZE** = **4** --- Amount of weights/bone indices per vertex (always 4).
+.. 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
+
+:ref:`BlendShapeMode<enum_Mesh_BlendShapeMode>` **blend_shape_mode** = ``1``
 
-+-----------+-----------------------------+
-| *Default* | ``1``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_blend_shape_mode(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_blend_shape_mode()      |
-+-----------+-----------------------------+
+.. 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 )``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``AABB( 0, 0, 0, 0, 0, 0 )`` |
-+-----------+------------------------------+
-| *Setter*  | set_custom_aabb(value)       |
-+-----------+------------------------------+
-| *Getter*  | get_custom_aabb()            |
-+-----------+------------------------------+
+- 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-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ArrayMesh_method_add_blend_shape:
 
-- void **add_blend_shape** **(** :ref:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **add_blend_shape** **(** :ref:`String<class_String>` 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:`int<class_int>` compress_flags=2194432 **)**
+.. 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:`int<class_int>` compress_flags=2194432 **)**
 
 Creates a new surface.
 
@@ -258,129 +392,197 @@ The ``arrays`` argument is an array of arrays. See :ref:`ArrayType<enum_ArrayMes
 
 \ **Note:** The default ``compress_flags`` enable :ref:`Mesh.ARRAY_COMPRESS_COLOR<class_Mesh_constant_ARRAY_COMPRESS_COLOR>`, which makes vertex colors stored as 8-bit unsigned integers. This will clamp overbright vertex colors to ``Color(1, 1, 1, 1)`` and reduce their precision. To store HDR vertex colors, remove the vertex color compression flag by passing ``Mesh.ARRAY_COMPRESS_DEFAULT ^ Mesh.ARRAY_COMPRESS_COLOR`` as the value of ``compress_flags``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ArrayMesh_method_clear_blend_shapes:
 
-- void **clear_blend_shapes** **(** **)**
+.. rst-class:: classref-method
 
-Removes all blend shapes from this ``ArrayMesh``.
+void **clear_blend_shapes** **(** **)**
+
+Removes all blend shapes from this **ArrayMesh**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ArrayMesh_method_clear_surfaces:
 
-- void **clear_surfaces** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_surfaces** **(** **)**
 
-Removes all surfaces from this ``ArrayMesh``.
+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:`String<class_String>` **get_blend_shape_name** **(** :ref:`int<class_int>` index **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`Transform<class_Transform>` transform, :ref:`float<class_float>` texel_size **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **lightmap_unwrap** **(** :ref:`Transform<class_Transform>` 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_normalmaps:
 
-- void **regen_normalmaps** **(** **)**
+.. rst-class:: classref-method
+
+void **regen_normalmaps** **(** **)**
 
-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:`String<class_String>` name **)**
+.. rst-class:: classref-method
+
+void **set_blend_shape_name** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` name **)**
+
+.. 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_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_remove:
 
-- void **surface_remove** **(** :ref:`int<class_int>` surf_idx **)**
+.. rst-class:: classref-method
+
+void **surface_remove** **(** :ref:`int<class_int>` surf_idx **)**
 
 Removes a surface at position ``surf_idx``, shifting greater surfaces one ``surf_idx`` slot down.
 
+.. 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_region:
 
-- void **surface_update_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PoolByteArray<class_PoolByteArray>` data **)**
+.. rst-class:: classref-method
+
+void **surface_update_region** **(** :ref:`int<class_int>` surf_idx, :ref:`int<class_int>` offset, :ref:`PoolByteArray<class_PoolByteArray>` data **)**
 
 Updates a specified region of mesh arrays on the GPU.
 
@@ -389,3 +591,4 @@ Updates a specified region of mesh arrays on the GPU.
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 79 - 29
classes/class_arvranchor.rst

@@ -14,104 +14,154 @@ ARVRAnchor
 
 An anchor point in AR space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
-The ``ARVRAnchor`` point is a spatial node that maps a real world location identified by the AR platform to a position within the game world. For example, as long as plane detection in ARKit is on, ARKit will identify and update the position of planes (tables, floors, etc) and create anchors for them.
+The **ARVRAnchor** point is a spatial node that maps a real world location identified by the AR platform to a position within the game world. For example, as long as plane detection in ARKit is on, ARKit will identify and update the position of planes (tables, floors, etc) and create anchors for them.
 
 This node is mapped to one of the anchors through its unique ID. When you receive a signal that a new anchor is available, you should add this node to your scene for that anchor. You can predefine nodes and set the ID; the nodes will simply remain on 0,0,0 until a plane is recognized.
 
 Keep in mind that, as long as plane detection is enabled, the size, placing and orientation of an anchor will be updated as the detection logic learns more about the real world out there especially if only part of the surface is in view.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------+-------------------------------------------------------+-------+
-| :ref:`int<class_int>` | :ref:`anchor_id<class_ARVRAnchor_property_anchor_id>` | ``1`` |
-+-----------------------+-------------------------------------------------------+-------+
+.. table::
+   :widths: auto
+
+   +-----------------------+-------------------------------------------------------+-------+
+   | :ref:`int<class_int>` | :ref:`anchor_id<class_ARVRAnchor_property_anchor_id>` | ``1`` |
+   +-----------------------+-------------------------------------------------------+-------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`   | :ref:`get_anchor_name<class_ARVRAnchor_method_get_anchor_name>` **(** **)** |const| |
-+-------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`get_is_active<class_ARVRAnchor_method_get_is_active>` **(** **)** |const|     |
-+-------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Mesh<class_Mesh>`       | :ref:`get_mesh<class_ARVRAnchor_method_get_mesh>` **(** **)** |const|               |
-+-------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Plane<class_Plane>`     | :ref:`get_plane<class_ARVRAnchor_method_get_plane>` **(** **)** |const|             |
-+-------------------------------+-------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_size<class_ARVRAnchor_method_get_size>` **(** **)** |const|               |
-+-------------------------------+-------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`   | :ref:`get_anchor_name<class_ARVRAnchor_method_get_anchor_name>` **(** **)** |const| |
+   +-------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`get_is_active<class_ARVRAnchor_method_get_is_active>` **(** **)** |const|     |
+   +-------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Mesh<class_Mesh>`       | :ref:`get_mesh<class_ARVRAnchor_method_get_mesh>` **(** **)** |const|               |
+   +-------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Plane<class_Plane>`     | :ref:`get_plane<class_ARVRAnchor_method_get_plane>` **(** **)** |const|             |
+   +-------------------------------+-------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_size<class_ARVRAnchor_method_get_size>` **(** **)** |const|               |
+   +-------------------------------+-------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_ARVRAnchor_signal_mesh_updated:
 
-- **mesh_updated** **(** :ref:`Mesh<class_Mesh>` mesh **)**
+.. rst-class:: classref-signal
+
+**mesh_updated** **(** :ref:`Mesh<class_Mesh>` mesh **)**
 
 Emitted when the mesh associated with the anchor changes or when one becomes available. This is especially important for topology that is constantly being ``mesh_updated``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_ARVRAnchor_property_anchor_id:
 
-- :ref:`int<class_int>` **anchor_id**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **anchor_id** = ``1``
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_anchor_id(value) |
-+-----------+----------------------+
-| *Getter*  | get_anchor_id()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_anchor_id** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_anchor_id** **(** **)**
 
 The anchor's ID. You can set this before the anchor itself exists. The first anchor gets an ID of ``1``, the second an ID of ``2``, etc. When anchors get removed, the engine can then assign the corresponding ID to new anchors. The most common situation where anchors "disappear" is when the AR server identifies that two anchors represent different parts of the same plane and merges them.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ARVRAnchor_method_get_anchor_name:
 
-- :ref:`String<class_String>` **get_anchor_name** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_anchor_name** **(** **)** |const|
 
 Returns the name given to this anchor.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRAnchor_method_get_is_active:
 
-- :ref:`bool<class_bool>` **get_is_active** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_is_active** **(** **)** |const|
 
 Returns ``true`` if the anchor is being tracked and ``false`` if no anchor with this ID is currently known.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRAnchor_method_get_mesh:
 
-- :ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
 
 If provided by the :ref:`ARVRInterface<class_ARVRInterface>`, this returns a mesh object for the anchor. For an anchor, this can be a shape related to the object being tracked or it can be a mesh that provides topology related to the anchor and can be used to create shadows/reflections on surfaces or for generating collision shapes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRAnchor_method_get_plane:
 
-- :ref:`Plane<class_Plane>` **get_plane** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Plane<class_Plane>` **get_plane** **(** **)** |const|
 
 Returns a plane aligned with our anchor; handy for intersection testing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRAnchor_method_get_size:
 
-- :ref:`Vector3<class_Vector3>` **get_size** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_size** **(** **)** |const|
 
 Returns the estimated size of the plane that was detected. Say when the anchor relates to a table in the real world, this is the estimated size of the surface of that table.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 5 - 0
classes/class_arvrcamera.rst

@@ -14,6 +14,8 @@ ARVRCamera
 
 A camera node with a few overrules for AR/VR applied, such as location tracking.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,6 +23,8 @@ This is a helper spatial node for our camera; note that, if stereoscopic renderi
 
 The position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -29,3 +33,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 115 - 46
classes/class_arvrcontroller.rst

@@ -14,6 +14,8 @@ ARVRController
 
 A spatial node representing a spatially-tracked controller.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,78 +25,111 @@ Controllers are linked by their ID. You can create controller nodes before the c
 
 The position of the controller node is automatically updated by the :ref:`ARVRServer<class_ARVRServer>`. This makes this node ideal to add child nodes to visualize the controller.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/vr/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+-------------------------------------------------------------------+---------+
-| :ref:`int<class_int>`     | :ref:`controller_id<class_ARVRController_property_controller_id>` | ``1``   |
-+---------------------------+-------------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`rumble<class_ARVRController_property_rumble>`               | ``0.0`` |
-+---------------------------+-------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-------------------------------------------------------------------+---------+
+   | :ref:`int<class_int>`     | :ref:`controller_id<class_ARVRController_property_controller_id>` | ``1``   |
+   +---------------------------+-------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`rumble<class_ARVRController_property_rumble>`               | ``0.0`` |
+   +---------------------------+-------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                | :ref:`get_controller_name<class_ARVRController_method_get_controller_name>` **(** **)** |const|                          |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` | :ref:`get_hand<class_ARVRController_method_get_hand>` **(** **)** |const|                                                |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`get_is_active<class_ARVRController_method_get_is_active>` **(** **)** |const|                                      |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`get_joystick_axis<class_ARVRController_method_get_joystick_axis>` **(** :ref:`int<class_int>` axis **)** |const|   |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_joystick_id<class_ARVRController_method_get_joystick_id>` **(** **)** |const|                                  |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Mesh<class_Mesh>`                                    | :ref:`get_mesh<class_ARVRController_method_get_mesh>` **(** **)** |const|                                                |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`is_button_pressed<class_ARVRController_method_is_button_pressed>` **(** :ref:`int<class_int>` button **)** |const| |
-+------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                | :ref:`get_controller_name<class_ARVRController_method_get_controller_name>` **(** **)** |const|                          |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` | :ref:`get_hand<class_ARVRController_method_get_hand>` **(** **)** |const|                                                |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`get_is_active<class_ARVRController_method_get_is_active>` **(** **)** |const|                                      |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`get_joystick_axis<class_ARVRController_method_get_joystick_axis>` **(** :ref:`int<class_int>` axis **)** |const|   |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_joystick_id<class_ARVRController_method_get_joystick_id>` **(** **)** |const|                                  |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Mesh<class_Mesh>`                                    | :ref:`get_mesh<class_ARVRController_method_get_mesh>` **(** **)** |const|                                                |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`is_button_pressed<class_ARVRController_method_is_button_pressed>` **(** :ref:`int<class_int>` button **)** |const| |
+   +------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_ARVRController_signal_button_pressed:
 
-- **button_pressed** **(** :ref:`int<class_int>` button **)**
+.. rst-class:: classref-signal
+
+**button_pressed** **(** :ref:`int<class_int>` button **)**
 
 Emitted when a button on this controller is pressed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_signal_button_release:
 
-- **button_release** **(** :ref:`int<class_int>` button **)**
+.. rst-class:: classref-signal
+
+**button_release** **(** :ref:`int<class_int>` button **)**
 
 Emitted when a button on this controller is released.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_signal_mesh_updated:
 
-- **mesh_updated** **(** :ref:`Mesh<class_Mesh>` mesh **)**
+.. rst-class:: classref-signal
+
+**mesh_updated** **(** :ref:`Mesh<class_Mesh>` mesh **)**
 
 Emitted when the mesh associated with the controller changes or when one becomes available. Generally speaking this will be a static mesh after becoming available.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Property Descriptions
 ---------------------
 
 .. _class_ARVRController_property_controller_id:
 
-- :ref:`int<class_int>` **controller_id**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **controller_id** = ``1``
 
-+-----------+--------------------------+
-| *Default* | ``1``                    |
-+-----------+--------------------------+
-| *Setter*  | set_controller_id(value) |
-+-----------+--------------------------+
-| *Getter*  | get_controller_id()      |
-+-----------+--------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_controller_id** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_controller_id** **(** **)**
 
 The controller's ID.
 
@@ -104,81 +139,115 @@ For any other controller that the :ref:`ARVRServer<class_ARVRServer>` detects, w
 
 When a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_property_rumble:
 
-- :ref:`float<class_float>` **rumble**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``0.0``           |
-+-----------+-------------------+
-| *Setter*  | set_rumble(value) |
-+-----------+-------------------+
-| *Getter*  | get_rumble()      |
-+-----------+-------------------+
+:ref:`float<class_float>` **rumble** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_rumble** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_rumble** **(** **)**
 
 The degree to which the controller vibrates. Ranges from ``0.0`` to ``1.0``. If changed, updates :ref:`ARVRPositionalTracker.rumble<class_ARVRPositionalTracker_property_rumble>` accordingly.
 
 This is a useful property to animate if you want the controller to vibrate for a limited duration.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ARVRController_method_get_controller_name:
 
-- :ref:`String<class_String>` **get_controller_name** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_controller_name** **(** **)** |const|
 
 If active, returns the name of the associated controller if provided by the AR/VR SDK used.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_get_hand:
 
-- :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **get_hand** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **get_hand** **(** **)** |const|
 
 Returns the hand holding this controller, if known. See :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_get_is_active:
 
-- :ref:`bool<class_bool>` **get_is_active** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_is_active** **(** **)** |const|
 
 Returns ``true`` if the bound controller is active. ARVR systems attempt to track active controllers.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_get_joystick_axis:
 
-- :ref:`float<class_float>` **get_joystick_axis** **(** :ref:`int<class_int>` axis **)** |const|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_joystick_axis** **(** :ref:`int<class_int>` axis **)** |const|
 
 Returns the value of the given axis for things like triggers, touchpads, etc. that are embedded into the controller.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_get_joystick_id:
 
-- :ref:`int<class_int>` **get_joystick_id** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_joystick_id** **(** **)** |const|
 
 Returns the ID of the joystick object bound to this. Every controller tracked by the :ref:`ARVRServer<class_ARVRServer>` that has buttons and axis will also be registered as a joystick within Godot. This means that all the normal joystick tracking and input mapping will work for buttons and axis found on the AR/VR controllers. This ID is purely offered as information so you can link up the controller with its joystick entry.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_get_mesh:
 
-- :ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
 
 If provided by the :ref:`ARVRInterface<class_ARVRInterface>`, this returns a mesh associated with the controller. This can be used to visualize the controller.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRController_method_is_button_pressed:
 
-- :ref:`int<class_int>` **is_button_pressed** **(** :ref:`int<class_int>` button **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **is_button_pressed** **(** :ref:`int<class_int>` button **)** |const|
 
 Returns ``true`` if the button at index ``button`` is pressed. See :ref:`JoystickList<enum_@GlobalScope_JoystickList>`, in particular the ``JOY_VR_*`` constants.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 199 - 73
classes/class_arvrinterface.rst

@@ -16,6 +16,8 @@ ARVRInterface
 
 Base class for an AR/VR interface implementation.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,209 +25,324 @@ This class needs to be implemented to make an AR or VR platform available to God
 
 Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through :ref:`ARVRServer<class_ARVRServer>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/vr/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------+----------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`ar_is_anchor_detection_enabled<class_ARVRInterface_property_ar_is_anchor_detection_enabled>` | ``false`` |
-+-------------------------+----------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`interface_is_initialized<class_ARVRInterface_property_interface_is_initialized>`             | ``false`` |
-+-------------------------+----------------------------------------------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>` | :ref:`interface_is_primary<class_ARVRInterface_property_interface_is_primary>`                     | ``false`` |
-+-------------------------+----------------------------------------------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------+----------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`ar_is_anchor_detection_enabled<class_ARVRInterface_property_ar_is_anchor_detection_enabled>` | ``false`` |
+   +-------------------------+----------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`interface_is_initialized<class_ARVRInterface_property_interface_is_initialized>`             | ``false`` |
+   +-------------------------+----------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>` | :ref:`interface_is_primary<class_ARVRInterface_property_interface_is_primary>`                     | ``false`` |
+   +-------------------------+----------------------------------------------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_camera_feed_id<class_ARVRInterface_method_get_camera_feed_id>` **(** **)**           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_capabilities<class_ARVRInterface_method_get_capabilities>` **(** **)** |const|       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                | :ref:`get_name<class_ARVRInterface_method_get_name>` **(** **)** |const|                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`get_render_targetsize<class_ARVRInterface_method_get_render_targetsize>` **(** **)**     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` | :ref:`get_tracking_status<class_ARVRInterface_method_get_tracking_status>` **(** **)** |const| |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`initialize<class_ARVRInterface_method_initialize>` **(** **)**                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`is_stereo<class_ARVRInterface_method_is_stereo>` **(** **)**                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`uninitialize<class_ARVRInterface_method_uninitialize>` **(** **)**                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_camera_feed_id<class_ARVRInterface_method_get_camera_feed_id>` **(** **)**           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_capabilities<class_ARVRInterface_method_get_capabilities>` **(** **)** |const|       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                | :ref:`get_name<class_ARVRInterface_method_get_name>` **(** **)** |const|                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                              | :ref:`get_render_targetsize<class_ARVRInterface_method_get_render_targetsize>` **(** **)**     |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` | :ref:`get_tracking_status<class_ARVRInterface_method_get_tracking_status>` **(** **)** |const| |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`initialize<class_ARVRInterface_method_initialize>` **(** **)**                           |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`is_stereo<class_ARVRInterface_method_is_stereo>` **(** **)**                             |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+   | void                                                       | :ref:`uninitialize<class_ARVRInterface_method_uninitialize>` **(** **)**                       |
+   +------------------------------------------------------------+------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_ARVRInterface_Capabilities:
 
+.. rst-class:: classref-enumeration
+
+enum **Capabilities**:
+
 .. _class_ARVRInterface_constant_ARVR_NONE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Capabilities<enum_ARVRInterface_Capabilities>` **ARVR_NONE** = ``0``
+
+No ARVR capabilities.
+
 .. _class_ARVRInterface_constant_ARVR_MONO:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Capabilities<enum_ARVRInterface_Capabilities>` **ARVR_MONO** = ``1``
+
+This interface can work with normal rendering output (non-HMD based AR).
+
 .. _class_ARVRInterface_constant_ARVR_STEREO:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Capabilities<enum_ARVRInterface_Capabilities>` **ARVR_STEREO** = ``2``
+
+This interface supports stereoscopic rendering.
+
 .. _class_ARVRInterface_constant_ARVR_AR:
 
-.. _class_ARVRInterface_constant_ARVR_EXTERNAL:
+.. rst-class:: classref-enumeration-constant
 
-enum **Capabilities**:
+:ref:`Capabilities<enum_ARVRInterface_Capabilities>` **ARVR_AR** = ``4``
 
-- **ARVR_NONE** = **0** --- No ARVR capabilities.
+This interface supports AR (video background and real world tracking).
 
-- **ARVR_MONO** = **1** --- This interface can work with normal rendering output (non-HMD based AR).
+.. _class_ARVRInterface_constant_ARVR_EXTERNAL:
 
-- **ARVR_STEREO** = **2** --- This interface supports stereoscopic rendering.
+.. rst-class:: classref-enumeration-constant
 
-- **ARVR_AR** = **4** --- This interface supports AR (video background and real world tracking).
+:ref:`Capabilities<enum_ARVRInterface_Capabilities>` **ARVR_EXTERNAL** = ``8``
 
-- **ARVR_EXTERNAL** = **8** --- This interface outputs to an external device. If the main viewport is used, the on screen output is an unmodified buffer of either the left or right eye (stretched if the viewport size is not changed to the same aspect ratio of :ref:`get_render_targetsize<class_ARVRInterface_method_get_render_targetsize>`). Using a separate viewport node frees up the main viewport for other purposes.
+This interface outputs to an external device. If the main viewport is used, the on screen output is an unmodified buffer of either the left or right eye (stretched if the viewport size is not changed to the same aspect ratio of :ref:`get_render_targetsize<class_ARVRInterface_method_get_render_targetsize>`). Using a separate viewport node frees up the main viewport for other purposes.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_ARVRInterface_Eyes:
 
+.. rst-class:: classref-enumeration
+
+enum **Eyes**:
+
 .. _class_ARVRInterface_constant_EYE_MONO:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Eyes<enum_ARVRInterface_Eyes>` **EYE_MONO** = ``0``
+
+Mono output, this is mostly used internally when retrieving positioning information for our camera node or when stereo scopic rendering is not supported.
+
 .. _class_ARVRInterface_constant_EYE_LEFT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Eyes<enum_ARVRInterface_Eyes>` **EYE_LEFT** = ``1``
+
+Left eye output, this is mostly used internally when rendering the image for the left eye and obtaining positioning and projection information.
+
 .. _class_ARVRInterface_constant_EYE_RIGHT:
 
-enum **Eyes**:
+.. rst-class:: classref-enumeration-constant
 
-- **EYE_MONO** = **0** --- Mono output, this is mostly used internally when retrieving positioning information for our camera node or when stereo scopic rendering is not supported.
+:ref:`Eyes<enum_ARVRInterface_Eyes>` **EYE_RIGHT** = ``2``
 
-- **EYE_LEFT** = **1** --- Left eye output, this is mostly used internally when rendering the image for the left eye and obtaining positioning and projection information.
+Right eye output, this is mostly used internally when rendering the image for the right eye and obtaining positioning and projection information.
 
-- **EYE_RIGHT** = **2** --- Right eye output, this is mostly used internally when rendering the image for the right eye and obtaining positioning and projection information.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_ARVRInterface_Tracking_status:
 
+.. rst-class:: classref-enumeration
+
+enum **Tracking_status**:
+
 .. _class_ARVRInterface_constant_ARVR_NORMAL_TRACKING:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **ARVR_NORMAL_TRACKING** = ``0``
+
+Tracking is behaving as expected.
+
 .. _class_ARVRInterface_constant_ARVR_EXCESSIVE_MOTION:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **ARVR_EXCESSIVE_MOTION** = ``1``
+
+Tracking is hindered by excessive motion (the player is moving faster than tracking can keep up).
+
 .. _class_ARVRInterface_constant_ARVR_INSUFFICIENT_FEATURES:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **ARVR_INSUFFICIENT_FEATURES** = ``2``
+
+Tracking is hindered by insufficient features, it's too dark (for camera-based tracking), player is blocked, etc.
+
 .. _class_ARVRInterface_constant_ARVR_UNKNOWN_TRACKING:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **ARVR_UNKNOWN_TRACKING** = ``3``
+
+We don't know the status of the tracking or this interface does not provide feedback.
+
 .. _class_ARVRInterface_constant_ARVR_NOT_TRACKING:
 
-enum **Tracking_status**:
+.. rst-class:: classref-enumeration-constant
 
-- **ARVR_NORMAL_TRACKING** = **0** --- Tracking is behaving as expected.
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **ARVR_NOT_TRACKING** = ``4``
 
-- **ARVR_EXCESSIVE_MOTION** = **1** --- Tracking is hindered by excessive motion (the player is moving faster than tracking can keep up).
+Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.).
 
-- **ARVR_INSUFFICIENT_FEATURES** = **2** --- Tracking is hindered by insufficient features, it's too dark (for camera-based tracking), player is blocked, etc.
+.. rst-class:: classref-section-separator
 
-- **ARVR_UNKNOWN_TRACKING** = **3** --- We don't know the status of the tracking or this interface does not provide feedback.
+----
 
-- **ARVR_NOT_TRACKING** = **4** --- Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.).
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ARVRInterface_property_ar_is_anchor_detection_enabled:
 
-- :ref:`bool<class_bool>` **ar_is_anchor_detection_enabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **ar_is_anchor_detection_enabled** = ``false``
 
-+-----------+----------------------------------------+
-| *Default* | ``false``                              |
-+-----------+----------------------------------------+
-| *Setter*  | set_anchor_detection_is_enabled(value) |
-+-----------+----------------------------------------+
-| *Getter*  | get_anchor_detection_is_enabled()      |
-+-----------+----------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_anchor_detection_is_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_anchor_detection_is_enabled** **(** **)**
 
 On an AR interface, ``true`` if anchor detection is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_property_interface_is_initialized:
 
-- :ref:`bool<class_bool>` **interface_is_initialized**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``false``                 |
-+-----------+---------------------------+
-| *Setter*  | set_is_initialized(value) |
-+-----------+---------------------------+
-| *Getter*  | is_initialized()          |
-+-----------+---------------------------+
+:ref:`bool<class_bool>` **interface_is_initialized** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_is_initialized** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_initialized** **(** **)**
 
 ``true`` if this interface been initialized.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_property_interface_is_primary:
 
-- :ref:`bool<class_bool>` **interface_is_primary**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **interface_is_primary** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_is_primary(value) |
-+-----------+-----------------------+
-| *Getter*  | is_primary()          |
-+-----------+-----------------------+
+- void **set_is_primary** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_primary** **(** **)**
 
 ``true`` if this is the primary interface.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ARVRInterface_method_get_camera_feed_id:
 
-- :ref:`int<class_int>` **get_camera_feed_id** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_camera_feed_id** **(** **)**
 
 If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed ID in the :ref:`CameraServer<class_CameraServer>` for this interface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_get_capabilities:
 
-- :ref:`int<class_int>` **get_capabilities** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_capabilities** **(** **)** |const|
 
 Returns a combination of :ref:`Capabilities<enum_ARVRInterface_Capabilities>` flags providing information about the capabilities of this interface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_get_name:
 
-- :ref:`String<class_String>` **get_name** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_name** **(** **)** |const|
 
 Returns the name of this interface (OpenVR, OpenHMD, ARKit, etc).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_get_render_targetsize:
 
-- :ref:`Vector2<class_Vector2>` **get_render_targetsize** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **get_render_targetsize** **(** **)**
 
 Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_get_tracking_status:
 
-- :ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **get_tracking_status** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Tracking_status<enum_ARVRInterface_Tracking_status>` **get_tracking_status** **(** **)** |const|
 
 If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_initialize:
 
-- :ref:`bool<class_bool>` **initialize** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **initialize** **(** **)**
 
 Call this to initialize this interface. The first interface that is initialized is identified as the primary interface and it will be used for rendering output.
 
@@ -237,22 +354,31 @@ If you do this for a platform that handles its own output (such as OpenVR) Godot
 
 While currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_is_stereo:
 
-- :ref:`bool<class_bool>` **is_stereo** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_stereo** **(** **)**
 
 Returns ``true`` if the current output of this interface is in stereo.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRInterface_method_uninitialize:
 
-- void **uninitialize** **(** **)**
+.. rst-class:: classref-method
+
+void **uninitialize** **(** **)**
 
 Turns the interface off.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_arvrinterfacegdnative.rst

@@ -14,6 +14,8 @@ ARVRInterfaceGDNative
 
 GDNative wrapper for an ARVR interface.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ This is a wrapper class for GDNative implementations of the ARVR interface. To u
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 26 - 11
classes/class_arvrorigin.rst

@@ -14,6 +14,8 @@ ARVROrigin
 
 The origin point in AR/VR.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -25,32 +27,44 @@ It is the position of this node that you update when your character needs to mov
 
 For example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/vr/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+-----------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`world_scale<class_ARVROrigin_property_world_scale>` | ``1.0`` |
-+---------------------------+-----------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+-----------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`world_scale<class_ARVROrigin_property_world_scale>` | ``1.0`` |
+   +---------------------------+-----------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ARVROrigin_property_world_scale:
 
-- :ref:`float<class_float>` **world_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **world_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_world_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_world_scale()      |
-+-----------+------------------------+
+- void **set_world_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_world_scale** **(** **)**
 
 Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.
 
@@ -59,3 +73,4 @@ Allows you to adjust the scale to your game's units. Most AR/VR platforms assume
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 137 - 49
classes/class_arvrpositionaltracker.rst

@@ -14,6 +14,8 @@ ARVRPositionalTracker
 
 A tracked object.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,170 +25,256 @@ As controllers are turned on and the AR/VR interface detects them, instances of
 
 The :ref:`ARVRController<class_ARVRController>` and :ref:`ARVRAnchor<class_ARVRAnchor>` both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/vr/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------+------------------------------------------------------------+---------+
-| :ref:`float<class_float>` | :ref:`rumble<class_ARVRPositionalTracker_property_rumble>` | ``0.0`` |
-+---------------------------+------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------+------------------------------------------------------------+---------+
+   | :ref:`float<class_float>` | :ref:`rumble<class_ARVRPositionalTracker_property_rumble>` | ``0.0`` |
+   +---------------------------+------------------------------------------------------------+---------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` | :ref:`get_hand<class_ARVRPositionalTracker_method_get_hand>` **(** **)** |const|                                                             |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_joy_id<class_ARVRPositionalTracker_method_get_joy_id>` **(** **)** |const|                                                         |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Mesh<class_Mesh>`                                    | :ref:`get_mesh<class_ARVRPositionalTracker_method_get_mesh>` **(** **)** |const|                                                             |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                                | :ref:`get_name<class_ARVRPositionalTracker_method_get_name>` **(** **)** |const|                                                             |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`                                  | :ref:`get_orientation<class_ARVRPositionalTracker_method_get_orientation>` **(** **)** |const|                                               |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>`                              | :ref:`get_position<class_ARVRPositionalTracker_method_get_position>` **(** **)** |const|                                                     |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_tracker_id<class_ARVRPositionalTracker_method_get_tracker_id>` **(** **)** |const|                                                 |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`get_tracks_orientation<class_ARVRPositionalTracker_method_get_tracks_orientation>` **(** **)** |const|                                 |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`get_tracks_position<class_ARVRPositionalTracker_method_get_tracks_position>` **(** **)** |const|                                       |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform<class_Transform>`                          | :ref:`get_transform<class_ARVRPositionalTracker_method_get_transform>` **(** :ref:`bool<class_bool>` adjust_by_reference_frame **)** |const| |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TrackerType<enum_ARVRServer_TrackerType>`            | :ref:`get_type<class_ARVRPositionalTracker_method_get_type>` **(** **)** |const|                                                             |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` | :ref:`get_hand<class_ARVRPositionalTracker_method_get_hand>` **(** **)** |const|                                                             |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_joy_id<class_ARVRPositionalTracker_method_get_joy_id>` **(** **)** |const|                                                         |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Mesh<class_Mesh>`                                    | :ref:`get_mesh<class_ARVRPositionalTracker_method_get_mesh>` **(** **)** |const|                                                             |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                                | :ref:`get_name<class_ARVRPositionalTracker_method_get_name>` **(** **)** |const|                                                             |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`                                  | :ref:`get_orientation<class_ARVRPositionalTracker_method_get_orientation>` **(** **)** |const|                                               |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                              | :ref:`get_position<class_ARVRPositionalTracker_method_get_position>` **(** **)** |const|                                                     |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`get_tracker_id<class_ARVRPositionalTracker_method_get_tracker_id>` **(** **)** |const|                                                 |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`get_tracks_orientation<class_ARVRPositionalTracker_method_get_tracks_orientation>` **(** **)** |const|                                 |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`get_tracks_position<class_ARVRPositionalTracker_method_get_tracks_position>` **(** **)** |const|                                       |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Transform<class_Transform>`                          | :ref:`get_transform<class_ARVRPositionalTracker_method_get_transform>` **(** :ref:`bool<class_bool>` adjust_by_reference_frame **)** |const| |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`TrackerType<enum_ARVRServer_TrackerType>`            | :ref:`get_type<class_ARVRPositionalTracker_method_get_type>` **(** **)** |const|                                                             |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_ARVRPositionalTracker_TrackerHand:
 
+.. rst-class:: classref-enumeration
+
+enum **TrackerHand**:
+
 .. _class_ARVRPositionalTracker_constant_TRACKER_HAND_UNKNOWN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **TRACKER_HAND_UNKNOWN** = ``0``
+
+The hand this tracker is held in is unknown or not applicable.
+
 .. _class_ARVRPositionalTracker_constant_TRACKER_LEFT_HAND:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **TRACKER_LEFT_HAND** = ``1``
+
+This tracker is the left hand controller.
+
 .. _class_ARVRPositionalTracker_constant_TRACKER_RIGHT_HAND:
 
-enum **TrackerHand**:
+.. rst-class:: classref-enumeration-constant
 
-- **TRACKER_HAND_UNKNOWN** = **0** --- The hand this tracker is held in is unknown or not applicable.
+:ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **TRACKER_RIGHT_HAND** = ``2``
 
-- **TRACKER_LEFT_HAND** = **1** --- This tracker is the left hand controller.
+This tracker is the right hand controller.
 
-- **TRACKER_RIGHT_HAND** = **2** --- This tracker is the right hand controller.
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ARVRPositionalTracker_property_rumble:
 
-- :ref:`float<class_float>` **rumble**
+.. rst-class:: classref-property
 
-+-----------+-------------------+
-| *Default* | ``0.0``           |
-+-----------+-------------------+
-| *Setter*  | set_rumble(value) |
-+-----------+-------------------+
-| *Getter*  | get_rumble()      |
-+-----------+-------------------+
+:ref:`float<class_float>` **rumble** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_rumble** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_rumble** **(** **)**
 
 The degree to which the tracker rumbles. Ranges from ``0.0`` to ``1.0`` with precision ``.01``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ARVRPositionalTracker_method_get_hand:
 
-- :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **get_hand** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` **get_hand** **(** **)** |const|
 
 Returns the hand holding this tracker, if known. See :ref:`TrackerHand<enum_ARVRPositionalTracker_TrackerHand>` constants.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_joy_id:
 
-- :ref:`int<class_int>` **get_joy_id** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_joy_id** **(** **)** |const|
 
 If this is a controller that is being tracked, the controller will also be represented by a joystick entry with this ID.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_mesh:
 
-- :ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Mesh<class_Mesh>` **get_mesh** **(** **)** |const|
 
 Returns the mesh related to a controller or anchor point if one is available.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_name:
 
-- :ref:`String<class_String>` **get_name** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_name** **(** **)** |const|
 
 Returns the controller or anchor point's name if available.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_orientation:
 
-- :ref:`Basis<class_Basis>` **get_orientation** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **get_orientation** **(** **)** |const|
 
 Returns the controller's orientation matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_position:
 
-- :ref:`Vector3<class_Vector3>` **get_position** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_position** **(** **)** |const|
 
 Returns the world-space controller position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_tracker_id:
 
-- :ref:`int<class_int>` **get_tracker_id** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_tracker_id** **(** **)** |const|
 
 Returns the internal tracker ID. This uniquely identifies the tracker per tracker type and matches the ID you need to specify for nodes such as the :ref:`ARVRController<class_ARVRController>` and :ref:`ARVRAnchor<class_ARVRAnchor>` nodes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_tracks_orientation:
 
-- :ref:`bool<class_bool>` **get_tracks_orientation** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_tracks_orientation** **(** **)** |const|
 
 Returns ``true`` if this device tracks orientation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_tracks_position:
 
-- :ref:`bool<class_bool>` **get_tracks_position** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_tracks_position** **(** **)** |const|
 
 Returns ``true`` if this device tracks position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_transform:
 
-- :ref:`Transform<class_Transform>` **get_transform** **(** :ref:`bool<class_bool>` adjust_by_reference_frame **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Transform<class_Transform>` **get_transform** **(** :ref:`bool<class_bool>` adjust_by_reference_frame **)** |const|
 
 Returns the transform combining this device's orientation and position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRPositionalTracker_method_get_type:
 
-- :ref:`TrackerType<enum_ARVRServer_TrackerType>` **get_type** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **get_type** **(** **)** |const|
 
 Returns the tracker's type.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 253 - 90
classes/class_arvrserver.rst

@@ -14,199 +14,305 @@ ARVRServer
 
 Server for AR and VR features.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/vr/index`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------+-----------------------------------------------------------------------+---------+
-| :ref:`ARVRInterface<class_ARVRInterface>` | :ref:`primary_interface<class_ARVRServer_property_primary_interface>` |         |
-+-------------------------------------------+-----------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`                 | :ref:`world_scale<class_ARVRServer_property_world_scale>`             | ``1.0`` |
-+-------------------------------------------+-----------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+-----------------------------------------------------------------------+---------+
+   | :ref:`ARVRInterface<class_ARVRInterface>` | :ref:`primary_interface<class_ARVRServer_property_primary_interface>` |         |
+   +-------------------------------------------+-----------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`                 | :ref:`world_scale<class_ARVRServer_property_world_scale>`             | ``1.0`` |
+   +-------------------------------------------+-----------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`add_interface<class_ARVRServer_method_add_interface>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                                                  |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`add_tracker<class_ARVRServer_method_add_tracker>` **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**                                        |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`center_on_hmd<class_ARVRServer_method_center_on_hmd>` **(** :ref:`RotationMode<enum_ARVRServer_RotationMode>` rotation_mode, :ref:`bool<class_bool>` keep_height **)** |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`clear_primary_interface_if<class_ARVRServer_method_clear_primary_interface_if>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                        |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRInterface<class_ARVRInterface>`                 | :ref:`find_interface<class_ARVRServer_method_find_interface>` **(** :ref:`String<class_String>` name **)** |const|                                                           |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform<class_Transform>`                         | :ref:`get_hmd_transform<class_ARVRServer_method_get_hmd_transform>` **(** **)**                                                                                              |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRInterface<class_ARVRInterface>`                 | :ref:`get_interface<class_ARVRServer_method_get_interface>` **(** :ref:`int<class_int>` idx **)** |const|                                                                    |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                     | :ref:`get_interface_count<class_ARVRServer_method_get_interface_count>` **(** **)** |const|                                                                                  |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                 | :ref:`get_interfaces<class_ARVRServer_method_get_interfaces>` **(** **)** |const|                                                                                            |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                     | :ref:`get_last_commit_usec<class_ARVRServer_method_get_last_commit_usec>` **(** **)**                                                                                        |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                     | :ref:`get_last_frame_usec<class_ARVRServer_method_get_last_frame_usec>` **(** **)**                                                                                          |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                     | :ref:`get_last_process_usec<class_ARVRServer_method_get_last_process_usec>` **(** **)**                                                                                      |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Transform<class_Transform>`                         | :ref:`get_reference_frame<class_ARVRServer_method_get_reference_frame>` **(** **)** |const|                                                                                  |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` | :ref:`get_tracker<class_ARVRServer_method_get_tracker>` **(** :ref:`int<class_int>` idx **)** |const|                                                                        |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                     | :ref:`get_tracker_count<class_ARVRServer_method_get_tracker_count>` **(** **)** |const|                                                                                      |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`remove_interface<class_ARVRServer_method_remove_interface>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                                            |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                      | :ref:`remove_tracker<class_ARVRServer_method_remove_tracker>` **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**                                  |
-+-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`add_interface<class_ARVRServer_method_add_interface>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                                                  |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`add_tracker<class_ARVRServer_method_add_tracker>` **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**                                        |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`center_on_hmd<class_ARVRServer_method_center_on_hmd>` **(** :ref:`RotationMode<enum_ARVRServer_RotationMode>` rotation_mode, :ref:`bool<class_bool>` keep_height **)** |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`clear_primary_interface_if<class_ARVRServer_method_clear_primary_interface_if>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                        |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`ARVRInterface<class_ARVRInterface>`                 | :ref:`find_interface<class_ARVRServer_method_find_interface>` **(** :ref:`String<class_String>` name **)** |const|                                                           |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Transform<class_Transform>`                         | :ref:`get_hmd_transform<class_ARVRServer_method_get_hmd_transform>` **(** **)**                                                                                              |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`ARVRInterface<class_ARVRInterface>`                 | :ref:`get_interface<class_ARVRServer_method_get_interface>` **(** :ref:`int<class_int>` idx **)** |const|                                                                    |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                     | :ref:`get_interface_count<class_ARVRServer_method_get_interface_count>` **(** **)** |const|                                                                                  |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                                 | :ref:`get_interfaces<class_ARVRServer_method_get_interfaces>` **(** **)** |const|                                                                                            |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                     | :ref:`get_last_commit_usec<class_ARVRServer_method_get_last_commit_usec>` **(** **)**                                                                                        |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                     | :ref:`get_last_frame_usec<class_ARVRServer_method_get_last_frame_usec>` **(** **)**                                                                                          |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                     | :ref:`get_last_process_usec<class_ARVRServer_method_get_last_process_usec>` **(** **)**                                                                                      |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Transform<class_Transform>`                         | :ref:`get_reference_frame<class_ARVRServer_method_get_reference_frame>` **(** **)** |const|                                                                                  |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` | :ref:`get_tracker<class_ARVRServer_method_get_tracker>` **(** :ref:`int<class_int>` idx **)** |const|                                                                        |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                     | :ref:`get_tracker_count<class_ARVRServer_method_get_tracker_count>` **(** **)** |const|                                                                                      |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`remove_interface<class_ARVRServer_method_remove_interface>` **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**                                            |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                                      | :ref:`remove_tracker<class_ARVRServer_method_remove_tracker>` **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**                                  |
+   +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Signals
 -------
 
 .. _class_ARVRServer_signal_interface_added:
 
-- **interface_added** **(** :ref:`String<class_String>` interface_name **)**
+.. rst-class:: classref-signal
+
+**interface_added** **(** :ref:`String<class_String>` interface_name **)**
 
 Emitted when a new interface has been added.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_signal_interface_removed:
 
-- **interface_removed** **(** :ref:`String<class_String>` interface_name **)**
+.. rst-class:: classref-signal
+
+**interface_removed** **(** :ref:`String<class_String>` interface_name **)**
 
 Emitted when an interface is removed.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_signal_tracker_added:
 
-- **tracker_added** **(** :ref:`String<class_String>` tracker_name, :ref:`int<class_int>` type, :ref:`int<class_int>` id **)**
+.. rst-class:: classref-signal
+
+**tracker_added** **(** :ref:`String<class_String>` tracker_name, :ref:`int<class_int>` type, :ref:`int<class_int>` id **)**
 
 Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using :ref:`ARVRAnchor<class_ARVRAnchor>`\ s for an AR solution, it is important to react to this signal to add the appropriate :ref:`ARVRController<class_ARVRController>` or :ref:`ARVRAnchor<class_ARVRAnchor>` nodes related to this new tracker.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_signal_tracker_removed:
 
-- **tracker_removed** **(** :ref:`String<class_String>` tracker_name, :ref:`int<class_int>` type, :ref:`int<class_int>` id **)**
+.. rst-class:: classref-signal
+
+**tracker_removed** **(** :ref:`String<class_String>` tracker_name, :ref:`int<class_int>` type, :ref:`int<class_int>` id **)**
 
 Emitted when a tracker is removed. You should remove any :ref:`ARVRController<class_ARVRController>` or :ref:`ARVRAnchor<class_ARVRAnchor>` points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one).
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Enumerations
 ------------
 
 .. _enum_ARVRServer_TrackerType:
 
+.. rst-class:: classref-enumeration
+
+enum **TrackerType**:
+
 .. _class_ARVRServer_constant_TRACKER_CONTROLLER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_CONTROLLER** = ``1``
+
+The tracker tracks the location of a controller.
+
 .. _class_ARVRServer_constant_TRACKER_BASESTATION:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_BASESTATION** = ``2``
+
+The tracker tracks the location of a base station.
+
 .. _class_ARVRServer_constant_TRACKER_ANCHOR:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_ANCHOR** = ``4``
+
+The tracker tracks the location and size of an AR anchor.
+
 .. _class_ARVRServer_constant_TRACKER_ANY_KNOWN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_ANY_KNOWN** = ``127``
+
+Used internally to filter trackers of any known type.
+
 .. _class_ARVRServer_constant_TRACKER_UNKNOWN:
 
-.. _class_ARVRServer_constant_TRACKER_ANY:
+.. rst-class:: classref-enumeration-constant
 
-enum **TrackerType**:
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_UNKNOWN** = ``128``
 
-- **TRACKER_CONTROLLER** = **1** --- The tracker tracks the location of a controller.
+Used internally if we haven't set the tracker type yet.
 
-- **TRACKER_BASESTATION** = **2** --- The tracker tracks the location of a base station.
+.. _class_ARVRServer_constant_TRACKER_ANY:
 
-- **TRACKER_ANCHOR** = **4** --- The tracker tracks the location and size of an AR anchor.
+.. rst-class:: classref-enumeration-constant
 
-- **TRACKER_ANY_KNOWN** = **127** --- Used internally to filter trackers of any known type.
+:ref:`TrackerType<enum_ARVRServer_TrackerType>` **TRACKER_ANY** = ``255``
 
-- **TRACKER_UNKNOWN** = **128** --- Used internally if we haven't set the tracker type yet.
+Used internally to select all trackers.
 
-- **TRACKER_ANY** = **255** --- Used internally to select all trackers.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_ARVRServer_RotationMode:
 
+.. rst-class:: classref-enumeration
+
+enum **RotationMode**:
+
 .. _class_ARVRServer_constant_RESET_FULL_ROTATION:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`RotationMode<enum_ARVRServer_RotationMode>` **RESET_FULL_ROTATION** = ``0``
+
+Fully reset the orientation of the HMD. Regardless of what direction the user is looking to in the real world. The user will look dead ahead in the virtual world.
+
 .. _class_ARVRServer_constant_RESET_BUT_KEEP_TILT:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`RotationMode<enum_ARVRServer_RotationMode>` **RESET_BUT_KEEP_TILT** = ``1``
+
+Resets the orientation but keeps the tilt of the device. So if we're looking down, we keep looking down but heading will be reset.
+
 .. _class_ARVRServer_constant_DONT_RESET_ROTATION:
 
-enum **RotationMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`RotationMode<enum_ARVRServer_RotationMode>` **DONT_RESET_ROTATION** = ``2``
+
+Does not reset the orientation of the HMD, only the position of the player gets centered.
 
-- **RESET_FULL_ROTATION** = **0** --- Fully reset the orientation of the HMD. Regardless of what direction the user is looking to in the real world. The user will look dead ahead in the virtual world.
+.. rst-class:: classref-section-separator
 
-- **RESET_BUT_KEEP_TILT** = **1** --- Resets the orientation but keeps the tilt of the device. So if we're looking down, we keep looking down but heading will be reset.
+----
 
-- **DONT_RESET_ROTATION** = **2** --- Does not reset the orientation of the HMD, only the position of the player gets centered.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_ARVRServer_property_primary_interface:
 
-- :ref:`ARVRInterface<class_ARVRInterface>` **primary_interface**
+.. rst-class:: classref-property
+
+:ref:`ARVRInterface<class_ARVRInterface>` **primary_interface**
+
+.. rst-class:: classref-property-setget
 
-+----------+------------------------------+
-| *Setter* | set_primary_interface(value) |
-+----------+------------------------------+
-| *Getter* | get_primary_interface()      |
-+----------+------------------------------+
+- void **set_primary_interface** **(** :ref:`ARVRInterface<class_ARVRInterface>` value **)**
+- :ref:`ARVRInterface<class_ARVRInterface>` **get_primary_interface** **(** **)**
 
-The primary :ref:`ARVRInterface<class_ARVRInterface>` currently bound to the ``ARVRServer``.
+The primary :ref:`ARVRInterface<class_ARVRInterface>` currently bound to the **ARVRServer**.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ARVRServer_property_world_scale:
 
-- :ref:`float<class_float>` **world_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **world_scale** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_world_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_world_scale()      |
-+-----------+------------------------+
+- void **set_world_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_world_scale** **(** **)**
 
 Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_ARVRServer_method_add_interface:
 
-- void **add_interface** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
+.. rst-class:: classref-method
+
+void **add_interface** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
 
 Registers an :ref:`ARVRInterface<class_ARVRInterface>` object.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_add_tracker:
 
-- void **add_tracker** **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**
+.. rst-class:: classref-method
+
+void **add_tracker** **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**
 
 Registers a new :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` that tracks a spatial location in real space.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_center_on_hmd:
 
-- void **center_on_hmd** **(** :ref:`RotationMode<enum_ARVRServer_RotationMode>` rotation_mode, :ref:`bool<class_bool>` keep_height **)**
+.. rst-class:: classref-method
+
+void **center_on_hmd** **(** :ref:`RotationMode<enum_ARVRServer_RotationMode>` rotation_mode, :ref:`bool<class_bool>` keep_height **)**
 
 This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently.
 
@@ -220,118 +326,175 @@ For this method to produce usable results, tracking information must be availabl
 
 You should call this method after a few seconds have passed. For instance, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_clear_primary_interface_if:
 
-- void **clear_primary_interface_if** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
+.. rst-class:: classref-method
+
+void **clear_primary_interface_if** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
 
 Clears our current primary interface if it is set to the provided interface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_find_interface:
 
-- :ref:`ARVRInterface<class_ARVRInterface>` **find_interface** **(** :ref:`String<class_String>` name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`ARVRInterface<class_ARVRInterface>` **find_interface** **(** :ref:`String<class_String>` name **)** |const|
 
 Finds an interface by its name. For instance, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_hmd_transform:
 
-- :ref:`Transform<class_Transform>` **get_hmd_transform** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Transform<class_Transform>` **get_hmd_transform** **(** **)**
 
 Returns the primary interface's transformation.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_interface:
 
-- :ref:`ARVRInterface<class_ARVRInterface>` **get_interface** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`ARVRInterface<class_ARVRInterface>` **get_interface** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the interface registered at a given index in our list of interfaces.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_interface_count:
 
-- :ref:`int<class_int>` **get_interface_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_interface_count** **(** **)** |const|
 
 Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns ``true``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_interfaces:
 
-- :ref:`Array<class_Array>` **get_interfaces** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_interfaces** **(** **)** |const|
 
 Returns a list of available interfaces the ID and name of each interface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_last_commit_usec:
 
-- :ref:`int<class_int>` **get_last_commit_usec** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_last_commit_usec** **(** **)**
 
-Returns the absolute timestamp (in μs) of the last ``ARVRServer`` commit of the AR/VR eyes to :ref:`VisualServer<class_VisualServer>`. The value comes from an internal call to :ref:`OS.get_ticks_usec<class_OS_method_get_ticks_usec>`.
+Returns the absolute timestamp (in μs) of the last **ARVRServer** commit of the AR/VR eyes to :ref:`VisualServer<class_VisualServer>`. The value comes from an internal call to :ref:`OS.get_ticks_usec<class_OS_method_get_ticks_usec>`.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ARVRServer_method_get_last_frame_usec:
 
-- :ref:`int<class_int>` **get_last_frame_usec** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_last_frame_usec** **(** **)**
 
 Returns the duration (in μs) of the last frame. This is computed as the difference between :ref:`get_last_commit_usec<class_ARVRServer_method_get_last_commit_usec>` and :ref:`get_last_process_usec<class_ARVRServer_method_get_last_process_usec>` when committing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_last_process_usec:
 
-- :ref:`int<class_int>` **get_last_process_usec** **(** **)**
+.. rst-class:: classref-method
 
-Returns the absolute timestamp (in μs) of the last ``ARVRServer`` process callback. The value comes from an internal call to :ref:`OS.get_ticks_usec<class_OS_method_get_ticks_usec>`.
+:ref:`int<class_int>` **get_last_process_usec** **(** **)**
+
+Returns the absolute timestamp (in μs) of the last **ARVRServer** process callback. The value comes from an internal call to :ref:`OS.get_ticks_usec<class_OS_method_get_ticks_usec>`.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_ARVRServer_method_get_reference_frame:
 
-- :ref:`Transform<class_Transform>` **get_reference_frame** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Transform<class_Transform>` **get_reference_frame** **(** **)** |const|
 
 Returns the reference frame transform. Mostly used internally and exposed for GDNative build interfaces.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_tracker:
 
-- :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` **get_tracker** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` **get_tracker** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the positional tracker at the given ID.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_get_tracker_count:
 
-- :ref:`int<class_int>` **get_tracker_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_tracker_count** **(** **)** |const|
 
 Returns the number of trackers currently registered.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_remove_interface:
 
-- void **remove_interface** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
+.. rst-class:: classref-method
+
+void **remove_interface** **(** :ref:`ARVRInterface<class_ARVRInterface>` interface **)**
 
 Removes this interface.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_ARVRServer_method_remove_tracker:
 
-- void **remove_tracker** **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**
+.. rst-class:: classref-method
+
+void **remove_tracker** **(** :ref:`ARVRPositionalTracker<class_ARVRPositionalTracker>` tracker **)**
 
 Removes this positional tracker.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 109 - 51
classes/class_aspectratiocontainer.rst

@@ -14,137 +14,195 @@ 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:`AlignMode<enum_AspectRatioContainer_AlignMode>`     | :ref:`alignment_horizontal<class_AspectRatioContainer_property_alignment_horizontal>` | ``1``   |
-+-----------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
-| :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>`     | :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:`AlignMode<enum_AspectRatioContainer_AlignMode>`     | :ref:`alignment_horizontal<class_AspectRatioContainer_property_alignment_horizontal>` | ``1``   |
+   +-----------------------------------------------------------+---------------------------------------------------------------------------------------+---------+
+   | :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>`     | :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.rect_clip_content<class_Control_property_rect_clip_content>` is enabled, this allows to show only the container's area restricted by its own bounding rectangle.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _enum_AspectRatioContainer_AlignMode:
 
+.. rst-class:: classref-enumeration
+
+enum **AlignMode**:
+
 .. _class_AspectRatioContainer_constant_ALIGN_BEGIN:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **ALIGN_BEGIN** = ``0``
+
+Aligns child controls with the beginning (left or top) of the container.
+
 .. _class_AspectRatioContainer_constant_ALIGN_CENTER:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **ALIGN_CENTER** = ``1``
+
+Aligns child controls with the center of the container.
+
 .. _class_AspectRatioContainer_constant_ALIGN_END:
 
-enum **AlignMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **ALIGN_BEGIN** = **0** --- Aligns child controls with the beginning (left or top) of the container.
+:ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **ALIGN_END** = ``2``
 
-- **ALIGN_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
+
+----
 
-- **ALIGN_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:`AlignMode<enum_AspectRatioContainer_AlignMode>` **alignment_horizontal**
+.. rst-class:: classref-property
 
-+-----------+---------------------------------+
-| *Default* | ``1``                           |
-+-----------+---------------------------------+
-| *Setter*  | set_alignment_horizontal(value) |
-+-----------+---------------------------------+
-| *Getter*  | get_alignment_horizontal()      |
-+-----------+---------------------------------+
+:ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **alignment_horizontal** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_alignment_horizontal** **(** :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` value **)**
+- :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **get_alignment_horizontal** **(** **)**
 
 Specifies the horizontal relative position of child controls.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AspectRatioContainer_property_alignment_vertical:
 
-- :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **alignment_vertical**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------+
-| *Default* | ``1``                         |
-+-----------+-------------------------------+
-| *Setter*  | set_alignment_vertical(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_alignment_vertical()      |
-+-----------+-------------------------------+
+:ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **alignment_vertical** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_alignment_vertical** **(** :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` value **)**
+- :ref:`AlignMode<enum_AspectRatioContainer_AlignMode>` **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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 188 - 76
classes/class_astar.rst

@@ -14,6 +14,8 @@ AStar
 
 An implementation of A\* to find the shortest paths among connected points in space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -38,87 +40,108 @@ It is also possible to use non-Euclidean distances. To do so, create a class tha
 
 If the default :ref:`_estimate_cost<class_AStar_method__estimate_cost>` and :ref:`_compute_cost<class_AStar_method__compute_cost>` methods are used, or if the supplied :ref:`_estimate_cost<class_AStar_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_AStar_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_AStar_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|                                                    |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`_estimate_cost<class_AStar_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|                                                  |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`add_point<class_AStar_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_AStar_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_AStar_method_clear>` **(** **)**                                                                                                                                         |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`connect_points<class_AStar_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_AStar_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_AStar_method_get_available_point_id>` **(** **)** |const|                                                                                               |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`get_closest_point<class_AStar_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_AStar_method_get_closest_position_in_segment>` **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|                                   |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolIntArray<class_PoolIntArray>`         | :ref:`get_id_path<class_AStar_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_AStar_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolIntArray<class_PoolIntArray>`         | :ref:`get_point_connections<class_AStar_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                           | :ref:`get_point_count<class_AStar_method_get_point_count>` **(** **)** |const|                                                                                                             |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_point_path<class_AStar_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_AStar_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                       | :ref:`get_point_weight_scale<class_AStar_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                       | :ref:`get_points<class_AStar_method_get_points>` **(** **)**                                                                                                                               |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`has_point<class_AStar_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                         | :ref:`is_point_disabled<class_AStar_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`remove_point<class_AStar_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`reserve_space<class_AStar_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_disabled<class_AStar_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_position<class_AStar_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**                                              |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`set_point_weight_scale<class_AStar_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_AStar_method__compute_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|                                                    |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`_estimate_cost<class_AStar_method__estimate_cost>` **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|                                                  |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`add_point<class_AStar_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_AStar_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_AStar_method_clear>` **(** **)**                                                                                                                                         |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`connect_points<class_AStar_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_AStar_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_AStar_method_get_available_point_id>` **(** **)** |const|                                                                                               |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                           | :ref:`get_closest_point<class_AStar_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_AStar_method_get_closest_position_in_segment>` **(** :ref:`Vector3<class_Vector3>` to_position **)** |const|                                   |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolIntArray<class_PoolIntArray>`         | :ref:`get_id_path<class_AStar_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_AStar_method_get_point_capacity>` **(** **)** |const|                                                                                                       |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolIntArray<class_PoolIntArray>`         | :ref:`get_point_connections<class_AStar_method_get_point_connections>` **(** :ref:`int<class_int>` id **)**                                                                                |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                           | :ref:`get_point_count<class_AStar_method_get_point_count>` **(** **)** |const|                                                                                                             |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`get_point_path<class_AStar_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_AStar_method_get_point_position>` **(** :ref:`int<class_int>` id **)** |const|                                                                              |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                       | :ref:`get_point_weight_scale<class_AStar_method_get_point_weight_scale>` **(** :ref:`int<class_int>` id **)** |const|                                                                      |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`                       | :ref:`get_points<class_AStar_method_get_points>` **(** **)**                                                                                                                               |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`has_point<class_AStar_method_has_point>` **(** :ref:`int<class_int>` id **)** |const|                                                                                                |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                         | :ref:`is_point_disabled<class_AStar_method_is_point_disabled>` **(** :ref:`int<class_int>` id **)** |const|                                                                                |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`remove_point<class_AStar_method_remove_point>` **(** :ref:`int<class_int>` id **)**                                                                                                  |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`reserve_space<class_AStar_method_reserve_space>` **(** :ref:`int<class_int>` num_nodes **)**                                                                                         |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`set_point_disabled<class_AStar_method_set_point_disabled>` **(** :ref:`int<class_int>` id, :ref:`bool<class_bool>` disabled=true **)**                                               |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`set_point_position<class_AStar_method_set_point_position>` **(** :ref:`int<class_int>` id, :ref:`Vector3<class_Vector3>` position **)**                                              |
+   +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                            | :ref:`set_point_weight_scale<class_AStar_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_AStar_method__compute_cost:
 
-- :ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
 
 Called when computing the cost between two connected points.
 
 Note that this function is hidden in the default ``AStar`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_method__estimate_cost:
 
-- :ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
 
 Called when estimating the cost between a point and the path's ending point.
 
 Note that this function is hidden in the default ``AStar`` class.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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.
 
@@ -131,27 +154,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_AStar_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_AStar_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears all the points and segments.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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.
 
@@ -162,37 +197,53 @@ Creates a segment between the given points. If ``bidirectional`` is ``false``, o
     astar.add_point(2, Vector3(0, 5, 0))
     astar.connect_points(1, 2, false)
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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_AStar_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_AStar_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_AStar_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.
 
@@ -206,11 +257,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_AStar_method_get_id_path:
 
-- :ref:`PoolIntArray<class_PoolIntArray>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **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 AStar between the given points. The array is ordered from the starting point to the ending point of the path.
 
@@ -231,19 +286,27 @@ Returns an array with the IDs of the points that form the path found by AStar be
 
 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_AStar_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_AStar_method_get_point_connections:
 
-- :ref:`PoolIntArray<class_PoolIntArray>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **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.
 
@@ -260,104 +323,153 @@ Returns an array with the IDs of the points that form the connection with the gi
     
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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_AStar_method_get_point_path:
 
-- :ref:`PoolVector3Array<class_PoolVector3Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolVector3Array<class_PoolVector3Array>` **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 AStar 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:`PoolVector3Array<class_PoolVector3Array>` and will print an error message.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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_AStar_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_AStar_method_get_points:
 
-- :ref:`Array<class_Array>` **get_points** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_points** **(** **)**
 
 Returns an array of all points.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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_AStar_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_AStar_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_AStar_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, for a grid for instance. New capacity must be greater or equals to old capacity.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AStar_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_AStar_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_AStar_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_AStar_method__compute_cost>` when determining the overall cost of traveling across a segment from a neighboring point to this point.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 188 - 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:`AStar<class_AStar>` 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|                                                    |
-+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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|                                                  |
-+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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:`PoolIntArray<class_PoolIntArray>`         | :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:`PoolIntArray<class_PoolIntArray>`         | :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:`PoolVector2Array<class_PoolVector2Array>` | :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:`Array<class_Array>`                       | :ref:`get_points<class_AStar2D_method_get_points>` **(** **)**                                                                                                                               |
-+-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :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|                                                    |
+   +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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|                                                  |
+   +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | 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:`PoolIntArray<class_PoolIntArray>`         | :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:`PoolIntArray<class_PoolIntArray>`         | :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:`PoolVector2Array<class_PoolVector2Array>` | :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:`Array<class_Array>`                       | :ref:`get_points<class_AStar2D_method_get_points>` **(** **)**                                                                                                                               |
+   +-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :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|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_compute_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
 
 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|
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **_estimate_cost** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)** |virtual|
 
 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.
 
@@ -112,27 +135,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.
 
@@ -143,37 +178,53 @@ Creates a segment between the given points. If ``bidirectional`` is ``false``, o
     astar.add_point(2, Vector2(0, 5))
     astar.connect_points(1, 2, false)
 
+.. 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.
 
@@ -187,11 +238,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:`PoolIntArray<class_PoolIntArray>` **get_id_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **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.
 
@@ -212,19 +267,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:`PoolIntArray<class_PoolIntArray>` **get_point_connections** **(** :ref:`int<class_int>` id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolIntArray<class_PoolIntArray>` **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.
 
@@ -241,104 +304,153 @@ Returns an array with the IDs of the points that form the connection with the gi
     
     var neighbors = astar.get_point_connections(1) # Returns [2, 3]
 
+.. 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_path:
 
-- :ref:`PoolVector2Array<class_PoolVector2Array>` **get_point_path** **(** :ref:`int<class_int>` from_id, :ref:`int<class_int>` to_id **)**
+.. rst-class:: classref-method
+
+:ref:`PoolVector2Array<class_PoolVector2Array>` **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:`PoolVector2Array<class_PoolVector2Array>` 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_get_points:
 
-- :ref:`Array<class_Array>` **get_points** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **get_points** **(** **)**
 
 Returns an array of all points.
 
+.. 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, for a grid for instance. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 60 - 42
classes/class_atlastexture.rst

@@ -14,93 +14,111 @@ AtlasTexture
 
 Crops out one part of a texture, such as a texture from a texture atlas.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 :ref:`Texture<class_Texture>` resource that crops out one part of the :ref:`atlas<class_AtlasTexture_property_atlas>` texture, defined by :ref:`region<class_AtlasTexture_property_region>`. The main use case is cropping out textures from a texture atlas, which is a big texture file that packs multiple smaller textures. Consists of a :ref:`Texture<class_Texture>` for the :ref:`atlas<class_AtlasTexture_property_atlas>`, a :ref:`region<class_AtlasTexture_property_region>` that defines the area of :ref:`atlas<class_AtlasTexture_property_atlas>` to use, and a :ref:`margin<class_AtlasTexture_property_margin>` that defines the border width.
 
-\ ``AtlasTexture`` cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, cannot be tiled in nodes such as :ref:`TextureRect<class_TextureRect>`, and does not work properly if used inside of other ``AtlasTexture`` resources. Multiple ``AtlasTexture`` resources can be used to crop multiple textures from the atlas. Using a texture atlas helps to optimize video memory costs and render calls compared to using multiple small files.
+\ **AtlasTexture** cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, cannot be tiled in nodes such as :ref:`TextureRect<class_TextureRect>`, and does not work properly if used inside of other **AtlasTexture** resources. Multiple **AtlasTexture** resources can be used to crop multiple textures from the atlas. Using a texture atlas helps to optimize video memory costs and render calls compared to using multiple small files.
 
 \ **Note:** AtlasTextures don't support repetition. The :ref:`Texture.FLAG_REPEAT<class_Texture_constant_FLAG_REPEAT>` and :ref:`Texture.FLAG_MIRRORED_REPEAT<class_Texture_constant_FLAG_MIRRORED_REPEAT>` flags are ignored when using an AtlasTexture.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`Texture<class_Texture>` | :ref:`atlas<class_AtlasTexture_property_atlas>`             |                                                                |
-+-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`filter_clip<class_AtlasTexture_property_filter_clip>` | ``false``                                                      |
-+-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
-| :ref:`int<class_int>`         | flags                                                       | ``0`` (overrides :ref:`Texture<class_Texture_property_flags>`) |
-+-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
-| :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 )``                                        |
-+-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`Texture<class_Texture>` | :ref:`atlas<class_AtlasTexture_property_atlas>`             |                                                                |
+   +-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`filter_clip<class_AtlasTexture_property_filter_clip>` | ``false``                                                      |
+   +-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+   | :ref:`int<class_int>`         | flags                                                       | ``0`` (overrides :ref:`Texture<class_Texture_property_flags>`) |
+   +-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+   | :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 )``                                        |
+   +-------------------------------+-------------------------------------------------------------+----------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AtlasTexture_property_atlas:
 
-- :ref:`Texture<class_Texture>` **atlas**
+.. rst-class:: classref-property
+
+:ref:`Texture<class_Texture>` **atlas**
+
+.. rst-class:: classref-property-setget
 
-+----------+------------------+
-| *Setter* | set_atlas(value) |
-+----------+------------------+
-| *Getter* | get_atlas()      |
-+----------+------------------+
+- void **set_atlas** **(** :ref:`Texture<class_Texture>` value **)**
+- :ref:`Texture<class_Texture>` **get_atlas** **(** **)**
 
 The texture that contains the atlas. Can be any :ref:`Texture<class_Texture>` subtype.
 
+.. 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``, clips the area outside of the region 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 region. The :ref:`Rect2<class_Rect2>`'s :ref:`Rect2.size<class_Rect2_property_size>` parameter ("w" and "h" in the editor) resizes the texture so it fits 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 AtlasTexture's used region.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audiobuslayout.rst

@@ -14,6 +14,8 @@ AudioBusLayout
 
 Stores information about the audio buses.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Stores position, muting, solo, bypass, effects, effect position, volume, and the
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 5 - 0
classes/class_audioeffect.rst

@@ -16,11 +16,15 @@ 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
 ---------
 
@@ -29,3 +33,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 24 - 11
classes/class_audioeffectamplify.rst

@@ -16,35 +16,48 @@ Adds an amplifying audio effect to an audio bus.
 
 Increases or decreases the volume of the selected audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Increases or decreases the volume being routed through the audio bus.
 
+.. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectbandlimitfilter.rst

@@ -14,6 +14,8 @@ AudioEffectBandLimitFilter
 
 Adds a band limit filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Limits the frequencies in a range around the :ref:`AudioEffectFilter.cutoff_hz<c
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectbandpassfilter.rst

@@ -14,6 +14,8 @@ AudioEffectBandPassFilter
 
 Adds a band pass filter to the audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Attenuates the frequencies inside of a range around the :ref:`AudioEffectFilter.
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 85 - 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/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_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,108 +34,156 @@ 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:`PoolVector2Array<class_PoolVector2Array>` | :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:`PoolVector2Array<class_PoolVector2Array>` | :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:`PoolVector2Array<class_PoolVector2Array>` **get_buffer** **(** :ref:`int<class_int>` frames **)**
+.. rst-class:: classref-method
+
+:ref:`PoolVector2Array<class_PoolVector2Array>` **get_buffer** **(** :ref:`int<class_int>` frames **)**
 
 Gets the next ``frames`` audio samples from the internal ring buffer.
 
 Returns a :ref:`PoolVector2Array<class_PoolVector2Array>` containing exactly ``frames`` audio samples if available, or an empty :ref:`PoolVector2Array<class_PoolVector2Array>` 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 452 - 284
classes/class_audioeffectchorus.rst

@@ -14,581 +14,749 @@ 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-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
+
+:ref:`float<class_float>` **dry** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_dry(value) |
-+-----------+----------------+
-| *Getter*  | get_dry()      |
-+-----------+----------------+
+- 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
+
+:ref:`float<class_float>` **voice/1/cutoff_hz** = ``8000.0``
 
-+-----------+----------------------------+
-| *Default* | ``8000.0``                 |
-+-----------+----------------------------+
-| *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/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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``0.0``                   |
-+-----------+---------------------------+
-| *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/1/pan:
 
-- :ref:`float<class_float>` **voice/1/pan**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``-0.5``             |
-+-----------+----------------------+
-| *Setter*  | set_voice_pan(value) |
-+-----------+----------------------+
-| *Getter*  | get_voice_pan()      |
-+-----------+----------------------+
+:ref:`float<class_float>` **voice/1/pan** = ``-0.5``
+
+.. 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
+
+:ref:`float<class_float>` **voice/1/rate_hz** = ``0.8``
 
-+-----------+--------------------------+
-| *Default* | ``0.8``                  |
-+-----------+--------------------------+
-| *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/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
+
+:ref:`float<class_float>` **voice/2/depth_ms** = ``3.0``
 
-+-----------+---------------------------+
-| *Default* | ``3.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/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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``0.0``                   |
-+-----------+---------------------------+
-| *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/2/pan:
 
-- :ref:`float<class_float>` **voice/2/pan**
+.. rst-class:: classref-property
 
-+-----------+----------------------+
-| *Default* | ``0.5``              |
-+-----------+----------------------+
-| *Setter*  | set_voice_pan(value) |
-+-----------+----------------------+
-| *Getter*  | get_voice_pan()      |
-+-----------+----------------------+
+:ref:`float<class_float>` **voice/2/pan** = ``0.5``
+
+.. 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**
+
+.. rst-class:: classref-property-setget
 
-+----------+----------------------------+
-| *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/3/delay_ms:
 
-- :ref:`float<class_float>` **voice/3/delay_ms**
+.. rst-class:: classref-property
 
-+----------+---------------------------+
-| *Setter* | set_voice_delay_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_delay_ms()      |
-+----------+---------------------------+
+:ref:`float<class_float>` **voice/3/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/3/depth_ms:
 
-- :ref:`float<class_float>` **voice/3/depth_ms**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/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/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
 
-+----------+----------------------+
-| *Setter* | set_voice_pan(value) |
-+----------+----------------------+
-| *Getter* | get_voice_pan()      |
-+----------+----------------------+
+:ref:`float<class_float>` **voice/3/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/3/rate_hz:
 
-- :ref:`float<class_float>` **voice/3/rate_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/3/rate_hz**
 
-+----------+--------------------------+
-| *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/4/cutoff_hz:
 
-- :ref:`float<class_float>` **voice/4/cutoff_hz**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **voice/4/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/4/delay_ms:
 
-- :ref:`float<class_float>` **voice/4/delay_ms**
+.. rst-class:: classref-property
 
-+----------+---------------------------+
-| *Setter* | set_voice_delay_ms(value) |
-+----------+---------------------------+
-| *Getter* | get_voice_delay_ms()      |
-+----------+---------------------------+
+:ref:`float<class_float>` **voice/4/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**
+
+.. 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/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**
 
-+----------+--------------------------+
-| *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_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 amount 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
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 90 - 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,138 +33,155 @@ Compressor has many uses in the mix:
 
 - Accentuates transients by using a wider attack, making effects sound more punchy.
 
+.. 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:`String<class_String>` | :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:`String<class_String>` | :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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``20.0``             |
-+-----------+----------------------+
-| *Setter*  | set_attack_us(value) |
-+-----------+----------------------+
-| *Getter*  | get_attack_us()      |
-+-----------+----------------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------+
-| *Default* | ``0.0``         |
-+-----------+-----------------+
-| *Setter*  | set_gain(value) |
-+-----------+-----------------+
-| *Getter*  | get_gain()      |
-+-----------+-----------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``1.0``        |
-+-----------+----------------+
-| *Setter*  | set_mix(value) |
-+-----------+----------------+
-| *Getter*  | get_mix()      |
-+-----------+----------------+
+- 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:`String<class_String>` **sidechain**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **sidechain** = ``""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``""``               |
-+-----------+----------------------+
-| *Setter*  | set_sidechain(value) |
-+-----------+----------------------+
-| *Getter*  | get_sidechain()      |
-+-----------+----------------------+
+- void **set_sidechain** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 156 - 131
classes/class_audioeffectdelay.rst

@@ -16,251 +16,276 @@ 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-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
+
+: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 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``
 
-+-----------+----------------------------+
-| *Default* | ``false``                  |
-+-----------+----------------------------+
-| *Setter*  | set_feedback_active(value) |
-+-----------+----------------------------+
-| *Getter*  | is_feedback_active()       |
-+-----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+------------------------------+
-| *Default* | ``340.0``                    |
-+-----------+------------------------------+
-| *Setter*  | set_feedback_delay_ms(value) |
-+-----------+------------------------------+
-| *Getter*  | get_feedback_delay_ms()      |
-+-----------+------------------------------+
+:ref:`float<class_float>` **feedback/delay_ms** = ``340.0``
+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+------------------------------+
-| *Default* | ``-6.0``                     |
-+-----------+------------------------------+
-| *Setter*  | set_feedback_level_db(value) |
-+-----------+------------------------------+
-| *Getter*  | get_feedback_level_db()      |
-+-----------+------------------------------+
+:ref:`float<class_float>` **feedback/level_db** = ``-6.0``
+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-----------------------------+
-| *Default* | ``16000.0``                 |
-+-----------+-----------------------------+
-| *Setter*  | set_feedback_lowpass(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_feedback_lowpass()      |
-+-----------+-----------------------------+
+:ref:`float<class_float>` **feedback/lowpass** = ``16000.0``
+
+.. rst-class:: classref-property-setget
+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_tap1_active(value) |
-+-----------+------------------------+
-| *Getter*  | is_tap1_active()       |
-+-----------+------------------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------+
-| *Default* | ``250.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_tap1_delay_ms(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap1_delay_ms()      |
-+-----------+--------------------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------------+
-| *Default* | ``-6.0``                 |
-+-----------+--------------------------+
-| *Setter*  | set_tap1_level_db(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap1_level_db()      |
-+-----------+--------------------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``0.2``             |
-+-----------+---------------------+
-| *Setter*  | set_tap1_pan(value) |
-+-----------+---------------------+
-| *Getter*  | get_tap1_pan()      |
-+-----------+---------------------+
+- 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
+
+:ref:`bool<class_bool>` **tap2/active** = ``true``
 
-+-----------+------------------------+
-| *Default* | ``true``               |
-+-----------+------------------------+
-| *Setter*  | set_tap2_active(value) |
-+-----------+------------------------+
-| *Getter*  | is_tap2_active()       |
-+-----------+------------------------+
+.. 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
+
+:ref:`float<class_float>` **tap2/delay_ms** = ``500.0``
 
-+-----------+--------------------------+
-| *Default* | ``500.0``                |
-+-----------+--------------------------+
-| *Setter*  | set_tap2_delay_ms(value) |
-+-----------+--------------------------+
-| *Getter*  | get_tap2_delay_ms()      |
-+-----------+--------------------------+
+.. 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).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 104 - 57
classes/class_audioeffectdistortion.rst

@@ -16,6 +16,8 @@ Adds a distortion audio effect to an Audio bus.
 
 Modify the sound to make it distorted.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,134 +25,179 @@ Different types are available: clip, tan, lo-fi (bit crushing), overdrive, or wa
 
 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.
 
+.. 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. 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.
+
 .. _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``
+
+.. 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. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 34 - 10
classes/class_audioeffecteq.rst

@@ -18,47 +18,71 @@ 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-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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 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
 -----------
 
@@ -46,3 +48,4 @@ See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ6<class_A
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 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
 -----------
 
@@ -68,3 +70,4 @@ See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ6<class_A
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 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
 -----------
 
@@ -38,3 +40,4 @@ See also :ref:`AudioEffectEQ<class_AudioEffectEQ>`, :ref:`AudioEffectEQ10<class_
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 92 - 46
classes/class_audioeffectfilter.rst

@@ -16,115 +16,161 @@ 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
+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_24DB** = ``3``
 
-- **FILTER_6DB** = **0**
 
-- **FILTER_12DB** = **1**
 
-- **FILTER_18DB** = **2**
+.. rst-class:: classref-section-separator
 
-- **FILTER_24DB** = **3**
+----
+
+.. 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``
 
-+-----------+-------------------+
-| *Default* | ``2000.0``        |
-+-----------+-------------------+
-| *Setter*  | set_cutoff(value) |
-+-----------+-------------------+
-| *Getter*  | get_cutoff()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+---------------+
-| *Default* | ``0``         |
-+-----------+---------------+
-| *Setter*  | set_db(value) |
-+-----------+---------------+
-| *Getter*  | get_db()      |
-+-----------+---------------+
+:ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **db** = ``0``
+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-----------------+
-| *Default* | ``1.0``         |
-+-----------+-----------------+
-| *Setter*  | set_gain(value) |
-+-----------+-----------------+
-| *Getter*  | get_gain()      |
-+-----------+-----------------+
+:ref:`float<class_float>` **gain** = ``1.0``
+
+.. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffecthighpassfilter.rst

@@ -14,6 +14,8 @@ AudioEffectHighPassFilter
 
 Adds a high-pass filter to the Audio Bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Cuts frequencies lower than the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEff
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffecthighshelffilter.rst

@@ -14,6 +14,8 @@ AudioEffectHighShelfFilter
 
 Reduces all frequencies above the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -22,3 +24,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectinstance.rst

@@ -14,8 +14,11 @@ AudioEffectInstance
 
 **Inherited By:** :ref:`AudioEffectSpectrumAnalyzerInstance<class_AudioEffectSpectrumAnalyzerInstance>`
 
+.. container:: contribute
 
+	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 61 - 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,82 +23,100 @@ 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-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``
 
-+-----------+-----------------------+
-| *Default* | ``-0.1``              |
-+-----------+-----------------------+
-| *Setter*  | set_ceiling_db(value) |
-+-----------+-----------------------+
-| *Getter*  | get_ceiling_db()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+-------------------------+
-| *Default* | ``2.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_soft_clip_db(value) |
-+-----------+-------------------------+
-| *Getter*  | get_soft_clip_db()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **soft_clip_db** = ``2.0``
+
+.. rst-class:: classref-property-setget
+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------+
-| *Default* | ``10.0``                   |
-+-----------+----------------------------+
-| *Setter*  | set_soft_clip_ratio(value) |
-+-----------+----------------------------+
-| *Getter*  | get_soft_clip_ratio()      |
-+-----------+----------------------------+
+- 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectlowpassfilter.rst

@@ -14,6 +14,8 @@ AudioEffectLowPassFilter
 
 Adds a low-pass filter to the Audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Cuts frequencies higher than the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEf
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectlowshelffilter.rst

@@ -14,6 +14,8 @@ AudioEffectLowShelfFilter
 
 Reduces all frequencies below the :ref:`AudioEffectFilter.cutoff_hz<class_AudioEffectFilter_property_cutoff_hz>`.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -22,3 +24,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audioeffectnotchfilter.rst

@@ -14,6 +14,8 @@ AudioEffectNotchFilter
 
 Adds a notch filter to the Audio bus.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -22,3 +24,4 @@ Attenuates frequencies in a narrow band around the :ref:`AudioEffectFilter.cutof
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 24 - 11
classes/class_audioeffectpanner.rst

@@ -14,35 +14,48 @@ 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-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).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 68 - 51
classes/class_audioeffectphaser.rst

@@ -16,107 +16,124 @@ 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-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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------+
-| *Default* | ``1.0``          |
-+-----------+------------------+
-| *Setter*  | set_depth(value) |
-+-----------+------------------+
-| *Getter*  | get_depth()      |
-+-----------+------------------+
+- 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
+
+:ref:`float<class_float>` **feedback** = ``0.7``
 
-+-----------+---------------------+
-| *Default* | ``0.7``             |
-+-----------+---------------------+
-| *Setter*  | set_feedback(value) |
-+-----------+---------------------+
-| *Getter*  | get_feedback()      |
-+-----------+---------------------+
+.. 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
+
+:ref:`float<class_float>` **range_max_hz** = ``1600.0``
 
-+-----------+-------------------------+
-| *Default* | ``1600.0``              |
-+-----------+-------------------------+
-| *Setter*  | set_range_max_hz(value) |
-+-----------+-------------------------+
-| *Getter*  | get_range_max_hz()      |
-+-----------+-------------------------+
+.. 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 86 - 39
classes/class_audioeffectpitchshift.rst

@@ -16,102 +16,149 @@ 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-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------+------------------------------------------------------------------------+---------+
-| :ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` | :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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` | :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_FFT_Size:
 
+.. rst-class:: classref-enumeration
+
+enum **FFT_Size**:
+
 .. _class_AudioEffectPitchShift_constant_FFT_SIZE_256:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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 **FFT_Size**:
+:ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` 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:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` enum.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioEffectPitchShift_property_fft_size:
 
-- :ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **fft_size**
+.. rst-class:: classref-property
+
+:ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **fft_size** = ``3``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``3``               |
-+-----------+---------------------+
-| *Setter*  | set_fft_size(value) |
-+-----------+---------------------+
-| *Getter*  | get_fft_size()      |
-+-----------+---------------------+
+- void **set_fft_size** **(** :ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` value **)**
+- :ref:`FFT_Size<enum_AudioEffectPitchShift_FFT_Size>` **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).
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 57 - 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,66 +34,98 @@ Tutorials
 
 - `Audio Mic Record Demo <https://godotengine.org/asset-library/asset/527>`__
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+----------------------------------------------+--------------------------------------------------------+-------+
-| :ref:`Format<enum_AudioStreamSample_Format>` | :ref:`format<class_AudioEffectRecord_property_format>` | ``1`` |
-+----------------------------------------------+--------------------------------------------------------+-------+
+.. table::
+   :widths: auto
+
+   +----------------------------------------------+--------------------------------------------------------+-------+
+   | :ref:`Format<enum_AudioStreamSample_Format>` | :ref:`format<class_AudioEffectRecord_property_format>` | ``1`` |
+   +----------------------------------------------+--------------------------------------------------------+-------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+
-| :ref:`AudioStreamSample<class_AudioStreamSample>` | :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:`AudioStreamSample<class_AudioStreamSample>` | :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_AudioStreamSample_Format>` **format**
+.. rst-class:: classref-property
+
+:ref:`Format<enum_AudioStreamSample_Format>` **format** = ``1``
 
-+-----------+-------------------+
-| *Default* | ``1``             |
-+-----------+-------------------+
-| *Setter*  | set_format(value) |
-+-----------+-------------------+
-| *Getter*  | get_format()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_format** **(** :ref:`Format<enum_AudioStreamSample_Format>` value **)**
+- :ref:`Format<enum_AudioStreamSample_Format>` **get_format** **(** **)**
 
 Specifies the format in which the sample will be recorded. See :ref:`Format<enum_AudioStreamSample_Format>` for available formats.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_AudioEffectRecord_method_get_recording:
 
-- :ref:`AudioStreamSample<class_AudioStreamSample>` **get_recording** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`AudioStreamSample<class_AudioStreamSample>` **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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 103 - 81
classes/class_audioeffectreverb.rst

@@ -16,166 +16,188 @@ Adds a reverberation audio effect to an Audio bus.
 
 Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room.
 
+.. rst-class:: classref-introduction-group
+
 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 92 - 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,95 +32,144 @@ 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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` | :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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` | :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_FFT_Size:
 
+.. rst-class:: classref-enumeration
+
+enum **FFT_Size**:
+
 .. _class_AudioEffectSpectrumAnalyzer_constant_FFT_SIZE_256:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **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 **FFT_Size**:
+:ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **FFT_SIZE_4096** = ``4``
 
-- **FFT_SIZE_256** = **0** --- Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
+Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
 
-- **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_MAX:
+
+.. rst-class:: classref-enumeration-constant
 
-- **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.
+:ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **FFT_SIZE_MAX** = ``5``
 
-- **FFT_SIZE_2048** = **3** --- Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
+Represents the size of the :ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` enum.
 
-- **FFT_SIZE_4096** = **4** --- Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
+.. rst-class:: classref-section-separator
 
-- **FFT_SIZE_MAX** = **5** --- Represents the size of the :ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` 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``
 
-+-----------+--------------------------+
-| *Default* | ``2.0``                  |
-+-----------+--------------------------+
-| *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** **(** **)**
 
 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:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **fft_size**
+.. rst-class:: classref-property
+
+:ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **fft_size** = ``2``
 
-+-----------+---------------------+
-| *Default* | ``2``               |
-+-----------+---------------------+
-| *Setter*  | set_fft_size(value) |
-+-----------+---------------------+
-| *Getter*  | get_fft_size()      |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_fft_size** **(** :ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` value **)**
+- :ref:`FFT_Size<enum_AudioEffectSpectrumAnalyzer_FFT_Size>` **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
+
+- void **set_tap_back_pos** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_tap_back_pos** **(** **)**
+
+.. container:: contribute
 
-+-----------+-------------------------+
-| *Default* | ``0.01``                |
-+-----------+-------------------------+
-| *Setter*  | set_tap_back_pos(value) |
-+-----------+-------------------------+
-| *Getter*  | get_tap_back_pos()      |
-+-----------+-------------------------+
+	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 43 - 7
classes/class_audioeffectspectrumanalyzerinstance.rst

@@ -12,37 +12,73 @@ AudioEffectSpectrumAnalyzerInstance
 
 **Inherits:** :ref:`AudioEffectInstance<class_AudioEffectInstance>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+.. container:: contribute
 
+	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
+
+:ref:`MagnitudeMode<enum_AudioEffectSpectrumAnalyzerInstance_MagnitudeMode>` **MAGNITUDE_MAX** = ``1``
+
+Use the maximum value as magnitude.
 
-- **MAGNITUDE_AVERAGE** = **0** --- Use the average value as magnitude.
+.. rst-class:: classref-section-separator
 
-- **MAGNITUDE_MAX** = **1** --- Use the maximum value as magnitude.
+----
+
+.. 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
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 58 - 31
classes/class_audioeffectstereoenhance.rst

@@ -12,62 +12,89 @@ AudioEffectStereoEnhance
 
 **Inherits:** :ref:`AudioEffect<class_AudioEffect>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+.. container:: contribute
 
+	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:`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
+
+: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** **(** **)**
+
+.. container:: contribute
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pan_pullout(value) |
-+-----------+------------------------+
-| *Getter*  | get_pan_pullout()      |
-+-----------+------------------------+
+	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_surround:
 
-- :ref:`float<class_float>` **surround**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **surround** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_surround** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_surround** **(** **)**
+
+.. container:: contribute
 
-+-----------+---------------------+
-| *Default* | ``0.0``             |
-+-----------+---------------------+
-| *Setter*  | set_surround(value) |
-+-----------+---------------------+
-| *Getter*  | get_surround()      |
-+-----------+---------------------+
+	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
+
+- void **set_time_pullout** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_time_pullout** **(** **)**
+
+.. container:: contribute
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_time_pullout(value) |
-+-----------+-------------------------+
-| *Getter*  | get_time_pullout()      |
-+-----------+-------------------------+
+	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 375 - 164
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,508 +34,715 @@ 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:`global_rate_scale<class_AudioServer_property_global_rate_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:`global_rate_scale<class_AudioServer_property_global_rate_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:`Array<class_Array>`                             | :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:`String<class_String>` 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:`String<class_String>`                           | :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:`Array<class_Array>`                             | :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:`String<class_String>` 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:`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:`Array<class_Array>`                             | :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:`String<class_String>` 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:`String<class_String>`                           | :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:`Array<class_Array>`                             | :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:`String<class_String>` 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:`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
+
+:ref:`SpeakerMode<enum_AudioServer_SpeakerMode>` **SPEAKER_SURROUND_71** = ``3``
 
-- **SPEAKER_MODE_STEREO** = **0** --- Two or fewer speakers were detected.
+A 7.1 channel surround setup was detected.
 
-- **SPEAKER_SURROUND_31** = **1** --- A 3.1 channel surround setup was detected.
+.. rst-class:: classref-section-separator
 
-- **SPEAKER_SURROUND_51** = **2** --- A 5.1 channel surround setup was detected.
+----
 
-- **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``
 
-+-----------+----------------------+
-| *Default* | ``1``                |
-+-----------+----------------------+
-| *Setter*  | set_bus_count(value) |
-+-----------+----------------------+
-| *Getter*  | get_bus_count()      |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- 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"``
 
-+-----------+---------------------------+
-| *Default* | ``"Default"``             |
-+-----------+---------------------------+
-| *Setter*  | capture_set_device(value) |
-+-----------+---------------------------+
-| *Getter*  | capture_get_device()      |
-+-----------+---------------------------+
+.. rst-class:: classref-property-setget
+
+- 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/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_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"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------+
-| *Default* | ``"Default"``     |
-+-----------+-------------------+
-| *Setter*  | set_device(value) |
-+-----------+-------------------+
-| *Getter*  | get_device()      |
-+-----------+-------------------+
+- 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_global_rate_scale:
 
-- :ref:`float<class_float>` **global_rate_scale**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **global_rate_scale** = ``1.0``
 
-+-----------+------------------------------+
-| *Default* | ``1.0``                      |
-+-----------+------------------------------+
-| *Setter*  | set_global_rate_scale(value) |
-+-----------+------------------------------+
-| *Getter*  | get_global_rate_scale()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_global_rate_scale** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_global_rate_scale** **(** **)**
 
 Scales the rate at which audio is played (i.e. setting it to ``0.5`` will make the audio be played twice as fast).
 
+.. 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:`Array<class_Array>` **capture_get_device_list** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **capture_get_device_list** **(** **)**
 
 Returns the names of all audio input devices detected on the system.
 
 \ **Note:** :ref:`ProjectSettings.audio/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_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 amount 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:`String<class_String>` bus_name **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_bus_index** **(** :ref:`String<class_String>` 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:`String<class_String>` **get_bus_send** **(** :ref:`int<class_int>` bus_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **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:`Array<class_Array>` **get_device_list** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **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
 
-Returns the sample rate at the output of the ``AudioServer``.
+:ref:`float<class_float>` **get_mix_rate** **(** **)** |const|
+
+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:`String<class_String>` send **)**
+.. rst-class:: classref-method
+
+void **set_bus_send** **(** :ref:`int<class_int>` bus_idx, :ref:`String<class_String>` 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_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.)
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 23 - 5
classes/class_audiostream.rst

@@ -12,15 +12,19 @@ AudioStream
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-**Inherited By:** :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`, :ref:`AudioStreamMP3<class_AudioStreamMP3>`, :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, :ref:`AudioStreamOGGVorbis<class_AudioStreamOGGVorbis>`, :ref:`AudioStreamRandomPitch<class_AudioStreamRandomPitch>`, :ref:`AudioStreamSample<class_AudioStreamSample>`
+**Inherited By:** :ref:`AudioStreamGenerator<class_AudioStreamGenerator>`, :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`, :ref:`AudioStreamMP3<class_AudioStreamMP3>`, :ref:`AudioStreamOGGVorbis<class_AudioStreamOGGVorbis>`, :ref:`AudioStreamRandomPitch<class_AudioStreamRandomPitch>`, :ref:`AudioStreamSample<class_AudioStreamSample>`
 
 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:`AudioStreamSample<class_AudioStreamSample>`) and OGG (via :ref:`AudioStreamOGGVorbis<class_AudioStreamOGGVorbis>`) file formats.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
@@ -32,22 +36,36 @@ Tutorials
 
 - `Audio Spectrum Demo <https://godotengine.org/asset-library/asset/528>`__
 
+.. rst-class:: classref-reftable-group
+
 Methods
 -------
 
-+---------------------------+----------------------------------------------------------------------------+
-| :ref:`float<class_float>` | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const| |
-+---------------------------+----------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------+----------------------------------------------------------------------------+
+   | :ref:`float<class_float>` | :ref:`get_length<class_AudioStream_method_get_length>` **(** **)** |const| |
+   +---------------------------+----------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Method Descriptions
 -------------------
 
 .. _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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 37 - 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 GDNative. 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.
 
@@ -79,3 +94,4 @@ According to the `Nyquist-Shannon sampling theorem <https://en.wikipedia.org/wik
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 61 - 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,70 +30,108 @@ 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:`PoolVector2Array<class_PoolVector2Array>` 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:`PoolVector2Array<class_PoolVector2Array>` 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:`PoolVector2Array<class_PoolVector2Array>` frames **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **push_buffer** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` 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 GDNative, 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 GDNative, but :ref:`push_frame<class_AudioStreamGeneratorPlayback_method_push_frame>` may be *more* efficient in GDScript.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 6 - 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/enable_audio_input<class_ProjectSettings_property_audio/enable_audio_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
 ---------
 
@@ -29,3 +33,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 46 - 31
classes/class_audiostreammp3.rst

@@ -14,71 +14,86 @@ AudioStreamMP3
 
 MP3 audio stream driver.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 MP3 audio stream driver.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`data<class_AudioStreamMP3_property_data>`               | ``PoolByteArray(  )`` |
-+-------------------------------------------+---------------------------------------------------------------+-----------------------+
-| :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:`PoolByteArray<class_PoolByteArray>` | :ref:`data<class_AudioStreamMP3_property_data>`               | ``PoolByteArray(  )`` |
+   +-------------------------------------------+---------------------------------------------------------------+-----------------------+
+   | :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_data:
 
-- :ref:`PoolByteArray<class_PoolByteArray>` **data**
+.. rst-class:: classref-property
+
+:ref:`PoolByteArray<class_PoolByteArray>` **data** = ``PoolByteArray(  )``
 
-+-----------+-----------------------+
-| *Default* | ``PoolByteArray(  )`` |
-+-----------+-----------------------+
-| *Setter*  | set_data(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_data()            |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_data** **(** :ref:`PoolByteArray<class_PoolByteArray>` value **)**
+- :ref:`PoolByteArray<class_PoolByteArray>` **get_data** **(** **)**
 
 Contains the audio data in bytes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamMP3_property_loop:
 
-- :ref:`bool<class_bool>` **loop**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **loop** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------+
-| *Default* | ``false``       |
-+-----------+-----------------+
-| *Setter*  | set_loop(value) |
-+-----------+-----------------+
-| *Getter*  | has_loop()      |
-+-----------+-----------------+
+- 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 46 - 31
classes/class_audiostreamoggvorbis.rst

@@ -14,71 +14,86 @@ AudioStreamOGGVorbis
 
 OGG Vorbis audio stream driver.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 OGG Vorbis audio stream driver.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------------+---------------------------------------------------------------------+-----------------------+
-| :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`data<class_AudioStreamOGGVorbis_property_data>`               | ``PoolByteArray(  )`` |
-+-------------------------------------------+---------------------------------------------------------------------+-----------------------+
-| :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``               |
-+-------------------------------------------+---------------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+---------------------------------------------------------------------+-----------------------+
+   | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`data<class_AudioStreamOGGVorbis_property_data>`               | ``PoolByteArray(  )`` |
+   +-------------------------------------------+---------------------------------------------------------------------+-----------------------+
+   | :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``               |
+   +-------------------------------------------+---------------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamOGGVorbis_property_data:
 
-- :ref:`PoolByteArray<class_PoolByteArray>` **data**
+.. rst-class:: classref-property
+
+:ref:`PoolByteArray<class_PoolByteArray>` **data** = ``PoolByteArray(  )``
 
-+-----------+-----------------------+
-| *Default* | ``PoolByteArray(  )`` |
-+-----------+-----------------------+
-| *Setter*  | set_data(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_data()            |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_data** **(** :ref:`PoolByteArray<class_PoolByteArray>` value **)**
+- :ref:`PoolByteArray<class_PoolByteArray>` **get_data** **(** **)**
 
 Contains the audio data in bytes.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamOGGVorbis_property_loop:
 
-- :ref:`bool<class_bool>` **loop**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **loop** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------+
-| *Default* | ``false``       |
-+-----------+-----------------+
-| *Setter*  | set_loop(value) |
-+-----------+-----------------+
-| *Getter*  | has_loop()      |
-+-----------+-----------------+
+- 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
+
+: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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 5 - 0
classes/class_audiostreamplayback.rst

@@ -16,11 +16,15 @@ 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
 ---------
 
@@ -29,3 +33,4 @@ Tutorials
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 3 - 0
classes/class_audiostreamplaybackresampled.rst

@@ -14,8 +14,11 @@ AudioStreamPlaybackResampled
 
 **Inherited By:** :ref:`AudioStreamGeneratorPlayback<class_AudioStreamGeneratorPlayback>`
 
+.. container:: contribute
 
+	There is currently no description for this class. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 182 - 100
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,238 +40,316 @@ 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:`String<class_String>`                        | :ref:`bus<class_AudioStreamPlayer_property_bus>`                     | ``"Master"`` |
-+----------------------------------------------------+----------------------------------------------------------------------+--------------+
-| :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:`String<class_String>`                        | :ref:`bus<class_AudioStreamPlayer_property_bus>`                     | ``"Master"`` |
+   +----------------------------------------------------+----------------------------------------------------------------------+--------------+
+   | :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
 
-- **MIX_TARGET_STEREO** = **0** --- The audio will be played only on the first channel.
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **MIX_TARGET_CENTER** = ``2``
 
-- **MIX_TARGET_SURROUND** = **1** --- The audio will be played on all surround channels.
+The audio will be played on the second channel, which is usually the center.
 
-- **MIX_TARGET_CENTER** = **2** --- The audio will be played on the second channel, which is usually the center.
+.. rst-class:: classref-section-separator
+
+----
+
+.. 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_autoplay(value)   |
-+-----------+-----------------------+
-| *Getter*  | is_autoplay_enabled() |
-+-----------+-----------------------+
+- 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:`String<class_String>` **bus**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **bus** = ``"Master"``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------+
-| *Default* | ``"Master"``   |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+- void **set_bus** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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_mix_target:
 
-- :ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **mix_target**
+.. rst-class:: classref-property
+
+:ref:`MixTarget<enum_AudioStreamPlayer_MixTarget>` **mix_target** = ``0``
 
-+-----------+-----------------------+
-| *Default* | ``0``                 |
-+-----------+-----------------------+
-| *Setter*  | set_mix_target(value) |
-+-----------+-----------------------+
-| *Getter*  | get_mix_target()      |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- 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
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
+
+.. 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
+
+:ref:`bool<class_bool>` **playing** = ``false``
 
-+-----------+--------------+
-| *Default* | ``false``    |
-+-----------+--------------+
-| *Getter*  | is_playing() |
-+-----------+--------------+
+.. 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**
+
+.. rst-class:: classref-property-setget
 
-+----------+-------------------+
-| *Setter* | set_stream(value) |
-+----------+-------------------+
-| *Getter* | get_stream()      |
-+----------+-------------------+
+- 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``
 
-+-----------+--------------------------+
-| *Default* | ``false``                |
-+-----------+--------------------------+
-| *Setter*  | set_stream_paused(value) |
-+-----------+--------------------------+
-| *Getter*  | get_stream_paused()      |
-+-----------+--------------------------+
+.. 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_AudioStreamPlayer_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** **(** **)**
 
 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
 
-Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this ``AudioStreamPlayer``.
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
+
+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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 180 - 116
classes/class_audiostreamplayer2d.rst

@@ -14,6 +14,8 @@ AudioStreamPlayer2D
 
 Plays positional sound in 2D space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,262 +25,324 @@ 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:`../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:`String<class_String>`           | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                     | ``"Master"`` |
-+---------------------------------------+------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`   | ``2000.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:`String<class_String>`           | :ref:`bus<class_AudioStreamPlayer2D_property_bus>`                     | ``"Master"`` |
+   +---------------------------------------+------------------------------------------------------------------------+--------------+
+   | :ref:`float<class_float>`             | :ref:`max_distance<class_AudioStreamPlayer2D_property_max_distance>`   | ``2000.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
+
+:ref:`float<class_float>` **attenuation** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_attenuation(value) |
-+-----------+------------------------+
-| *Getter*  | get_attenuation()      |
-+-----------+------------------------+
+- 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------+
-| *Default* | ``false``             |
-+-----------+-----------------------+
-| *Setter*  | set_autoplay(value)   |
-+-----------+-----------------------+
-| *Getter*  | is_autoplay_enabled() |
-+-----------+-----------------------+
+- 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:`String<class_String>` **bus**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **bus** = ``"Master"``
 
-+-----------+----------------+
-| *Default* | ``"Master"``   |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bus** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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
 
-+-----------+-------------------------+
-| *Default* | ``2000.0``              |
-+-----------+-------------------------+
-| *Setter*  | set_max_distance(value) |
-+-----------+-------------------------+
-| *Getter*  | get_max_distance()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **max_distance** = ``2000.0``
+
+.. 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_pitch_scale:
 
-- :ref:`float<class_float>` **pitch_scale**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1.0``                |
-+-----------+------------------------+
-| *Setter*  | set_pitch_scale(value) |
-+-----------+------------------------+
-| *Getter*  | get_pitch_scale()      |
-+-----------+------------------------+
+:ref:`float<class_float>` **pitch_scale** = ``1.0``
+
+.. 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``
 
-+-----------+--------------+
-| *Default* | ``false``    |
-+-----------+--------------+
-| *Getter*  | is_playing() |
-+-----------+--------------+
+.. rst-class:: classref-property-setget
+
+- :ref:`bool<class_bool>` **is_playing** **(** **)**
 
 If ``true``, audio is playing.
 
+.. 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
+
+: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_AudioStreamPlayer2D_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** **(** **)**
 
 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
+
+:ref:`AudioStreamPlayback<class_AudioStreamPlayback>` **get_stream_playback** **(** **)**
 
-Returns the :ref:`AudioStreamPlayback<class_AudioStreamPlayback>` object associated with this ``AudioStreamPlayer2D``.
+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 **)**
 
 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 344 - 219
classes/class_audiostreamplayer3d.rst

@@ -14,6 +14,8 @@ AudioStreamPlayer3D
 
 Plays positional sound in 3D space.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -23,481 +25,604 @@ 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:`unit_db<class_AudioStreamPlayer3D_property_unit_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:`unit_db<class_AudioStreamPlayer3D_property_unit_db>` to a very low value like ``-100`` (which isn't audible to human hearing).
+
+.. rst-class:: classref-introduction-group
 
 Tutorials
 ---------
 
 - :doc:`../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:`String<class_String>`                                        | :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:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>`     | :ref:`out_of_range_mode<class_AudioStreamPlayer3D_property_out_of_range_mode>`                                       | ``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_db<class_AudioStreamPlayer3D_property_unit_db>`                                                           | ``0.0``      |
-+--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
-| :ref:`float<class_float>`                                          | :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`                                                       | ``1.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:`String<class_String>`                                        | :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:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>`     | :ref:`out_of_range_mode<class_AudioStreamPlayer3D_property_out_of_range_mode>`                                       | ``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_db<class_AudioStreamPlayer3D_property_unit_db>`                                                           | ``0.0``      |
+   +--------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+--------------+
+   | :ref:`float<class_float>`                                          | :ref:`unit_size<class_AudioStreamPlayer3D_property_unit_size>`                                                       | ``1.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``
+
+Logarithmic dampening of loudness according to distance.
+
+.. _class_AudioStreamPlayer3D_constant_ATTENUATION_DISABLED:
 
-- **ATTENUATION_INVERSE_DISTANCE** = **0** --- Linear dampening of loudness according to distance.
+.. rst-class:: classref-enumeration-constant
 
-- **ATTENUATION_INVERSE_SQUARE_DISTANCE** = **1** --- Squared dampening of loudness according to distance.
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **ATTENUATION_DISABLED** = ``3``
 
-- **ATTENUATION_LOGARITHMIC** = **2** --- Logarithmic dampening of loudness according to distance.
+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.
 
-- **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_OutOfRangeMode:
 
+.. rst-class:: classref-enumeration
+
+enum **OutOfRangeMode**:
+
 .. _class_AudioStreamPlayer3D_constant_OUT_OF_RANGE_MIX:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` **OUT_OF_RANGE_MIX** = ``0``
+
+Mix this audio in, even when it's out of range. This increases CPU usage, but keeps the sound playing at the correct position if the camera leaves and enters the **AudioStreamPlayer3D**'s :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` radius.
+
 .. _class_AudioStreamPlayer3D_constant_OUT_OF_RANGE_PAUSE:
 
-enum **OutOfRangeMode**:
+.. rst-class:: classref-enumeration-constant
 
-- **OUT_OF_RANGE_MIX** = **0** --- Mix this audio in, even when it's out of range. This increases CPU usage, but keeps the sound playing at the correct position if the camera leaves and enters the ``AudioStreamPlayer3D``'s :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` radius.
+:ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` **OUT_OF_RANGE_PAUSE** = ``1``
 
-- **OUT_OF_RANGE_PAUSE** = **1** --- Pause this audio when it gets out of range. This decreases CPU usage, but will cause the sound to restart if the camera leaves and enters the ``AudioStreamPlayer3D``'s :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` radius.
+Pause this audio when it gets out of range. This decreases CPU usage, but will cause the sound to restart if the camera leaves and enters the **AudioStreamPlayer3D**'s :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` radius.
+
+.. 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 (every rendered frame).
+
 .. _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 (every rendered frame).
+Executes doppler tracking in physics step (every simulated physics frame).
 
-- **DOPPLER_TRACKING_PHYSICS_STEP** = **2** --- Executes doppler tracking in physics step (every simulated physics frame).
+.. 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``
 
-+-----------+----------------------+
-| *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:`Area<class_Area>` 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
+
+:ref:`float<class_float>` **attenuation_filter_db** = ``-24.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------------+
-| *Default* | ``-24.0``                        |
-+-----------+----------------------------------+
-| *Setter*  | set_attenuation_filter_db(value) |
-+-----------+----------------------------------+
-| *Getter*  | get_attenuation_filter_db()      |
-+-----------+----------------------------------+
+- 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
+
+:ref:`AttenuationModel<enum_AudioStreamPlayer3D_AttenuationModel>` **attenuation_model** = ``0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------------+
-| *Default* | ``0``                        |
-+-----------+------------------------------+
-| *Setter*  | set_attenuation_model(value) |
-+-----------+------------------------------+
-| *Getter*  | get_attenuation_model()      |
-+-----------+------------------------------+
+- 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:`String<class_String>` **bus**
+.. rst-class:: classref-property
 
-+-----------+----------------+
-| *Default* | ``"Master"``   |
-+-----------+----------------+
-| *Setter*  | set_bus(value) |
-+-----------+----------------+
-| *Getter*  | get_bus()      |
-+-----------+----------------+
+:ref:`String<class_String>` **bus** = ``"Master"``
+
+.. rst-class:: classref-property-setget
+
+- void **set_bus** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **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``
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_doppler_tracking(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_doppler_tracking()      |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- 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 <https://en.wikipedia.org/wiki/Doppler_effect>`__ should be calculated.
 
 \ **Note:** Only effective if the current :ref:`Camera<class_Camera>`'s :ref:`Camera.doppler_tracking<class_Camera_property_doppler_tracking>` property is set to a value other than :ref:`Camera.DOPPLER_TRACKING_DISABLED<class_Camera_constant_DOPPLER_TRACKING_DISABLED>`.
 
+.. 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``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------------------------+
-| *Default* | ``false``                         |
-+-----------+-----------------------------------+
-| *Setter*  | set_emission_angle_enabled(value) |
-+-----------+-----------------------------------+
-| *Getter*  | is_emission_angle_enabled()       |
-+-----------+-----------------------------------+
+- 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
+
+:ref:`float<class_float>` **emission_angle_filter_attenuation_db** = ``-12.0``
 
-+-----------+-------------------------------------------------+
-| *Default* | ``-12.0``                                       |
-+-----------+-------------------------------------------------+
-| *Setter*  | set_emission_angle_filter_attenuation_db(value) |
-+-----------+-------------------------------------------------+
-| *Getter*  | get_emission_angle_filter_attenuation_db()      |
-+-----------+-------------------------------------------------+
+.. 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
 
-+-----------+-------------------------+
-| *Default* | ``0.0``                 |
-+-----------+-------------------------+
-| *Setter*  | set_max_distance(value) |
-+-----------+-------------------------+
-| *Getter*  | get_max_distance()      |
-+-----------+-------------------------+
+:ref:`float<class_float>` **max_distance** = ``0.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_max_distance** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_max_distance** **(** **)**
 
 Sets the distance from which the :ref:`out_of_range_mode<class_AudioStreamPlayer3D_property_out_of_range_mode>` takes effect. Has no effect if set to 0.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_property_out_of_range_mode:
 
-- :ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` **out_of_range_mode**
+.. rst-class:: classref-property
+
+:ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` **out_of_range_mode** = ``0``
 
-+-----------+------------------------------+
-| *Default* | ``0``                        |
-+-----------+------------------------------+
-| *Setter*  | set_out_of_range_mode(value) |
-+-----------+------------------------------+
-| *Getter*  | get_out_of_range_mode()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_out_of_range_mode** **(** :ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` value **)**
+- :ref:`OutOfRangeMode<enum_AudioStreamPlayer3D_OutOfRangeMode>` **get_out_of_range_mode** **(** **)**
 
 Decides if audio should pause when source is outside of :ref:`max_distance<class_AudioStreamPlayer3D_property_max_distance>` range.
 
+.. 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``
 
-+-----------+------------------------+
-| *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_AudioStreamPlayer3D_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.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamPlayer3D_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>` 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_db:
 
-- :ref:`float<class_float>` **unit_db**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **unit_db** = ``0.0``
 
-+-----------+--------------------+
-| *Default* | ``0.0``            |
-+-----------+--------------------+
-| *Setter*  | set_unit_db(value) |
-+-----------+--------------------+
-| *Getter*  | get_unit_db()      |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_unit_db** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_unit_db** **(** **)**
 
 The base sound level unaffected by dampening, in decibels.
 
+.. 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** = ``1.0``
 
-+-----------+----------------------+
-| *Default* | ``1.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-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 **)**
 
 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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 35 - 19
classes/class_audiostreamrandompitch.rst

@@ -14,51 +14,67 @@ AudioStreamRandomPitch
 
 Plays audio with random pitch shifting.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Randomly varies pitch on each start.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+---------------------------------------+-------------------------------------------------------------------------+---------+
-| :ref:`AudioStream<class_AudioStream>` | :ref:`audio_stream<class_AudioStreamRandomPitch_property_audio_stream>` |         |
-+---------------------------------------+-------------------------------------------------------------------------+---------+
-| :ref:`float<class_float>`             | :ref:`random_pitch<class_AudioStreamRandomPitch_property_random_pitch>` | ``1.1`` |
-+---------------------------------------+-------------------------------------------------------------------------+---------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+-------------------------------------------------------------------------+---------+
+   | :ref:`AudioStream<class_AudioStream>` | :ref:`audio_stream<class_AudioStreamRandomPitch_property_audio_stream>` |         |
+   +---------------------------------------+-------------------------------------------------------------------------+---------+
+   | :ref:`float<class_float>`             | :ref:`random_pitch<class_AudioStreamRandomPitch_property_random_pitch>` | ``1.1`` |
+   +---------------------------------------+-------------------------------------------------------------------------+---------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamRandomPitch_property_audio_stream:
 
-- :ref:`AudioStream<class_AudioStream>` **audio_stream**
+.. rst-class:: classref-property
+
+:ref:`AudioStream<class_AudioStream>` **audio_stream**
+
+.. rst-class:: classref-property-setget
 
-+----------+-------------------------+
-| *Setter* | set_audio_stream(value) |
-+----------+-------------------------+
-| *Getter* | get_audio_stream()      |
-+----------+-------------------------+
+- void **set_audio_stream** **(** :ref:`AudioStream<class_AudioStream>` value **)**
+- :ref:`AudioStream<class_AudioStream>` **get_audio_stream** **(** **)**
 
 The current :ref:`AudioStream<class_AudioStream>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamRandomPitch_property_random_pitch:
 
-- :ref:`float<class_float>` **random_pitch**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **random_pitch** = ``1.1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``1.1``                 |
-+-----------+-------------------------+
-| *Setter*  | set_random_pitch(value) |
-+-----------+-------------------------+
-| *Getter*  | get_random_pitch()      |
-+-----------+-------------------------+
+- void **set_random_pitch** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_random_pitch** **(** **)**
 
 The intensity of random pitch variation.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 156 - 84
classes/class_audiostreamsample.rst

@@ -14,6 +14,8 @@ AudioStreamSample
 
 Stores audio data loaded from WAV files.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
@@ -21,169 +23,229 @@ AudioStreamSample stores sound samples loaded from WAV files. To play the stored
 
 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:`PoolByteArray<class_PoolByteArray>`        | :ref:`data<class_AudioStreamSample_property_data>`             | ``PoolByteArray(  )`` |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`Format<enum_AudioStreamSample_Format>`     | :ref:`format<class_AudioStreamSample_property_format>`         | ``0``                 |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                            | :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` | ``0``                 |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                            | :ref:`loop_end<class_AudioStreamSample_property_loop_end>`     | ``0``                 |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` | :ref:`loop_mode<class_AudioStreamSample_property_loop_mode>`   | ``0``                 |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`int<class_int>`                            | :ref:`mix_rate<class_AudioStreamSample_property_mix_rate>`     | ``44100``             |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
-| :ref:`bool<class_bool>`                          | :ref:`stereo<class_AudioStreamSample_property_stereo>`         | ``false``             |
-+--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+.. table::
+   :widths: auto
+
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`PoolByteArray<class_PoolByteArray>`        | :ref:`data<class_AudioStreamSample_property_data>`             | ``PoolByteArray(  )`` |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`Format<enum_AudioStreamSample_Format>`     | :ref:`format<class_AudioStreamSample_property_format>`         | ``0``                 |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                            | :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` | ``0``                 |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                            | :ref:`loop_end<class_AudioStreamSample_property_loop_end>`     | ``0``                 |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` | :ref:`loop_mode<class_AudioStreamSample_property_loop_mode>`   | ``0``                 |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                            | :ref:`mix_rate<class_AudioStreamSample_property_mix_rate>`     | ``44100``             |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+   | :ref:`bool<class_bool>`                          | :ref:`stereo<class_AudioStreamSample_property_stereo>`         | ``false``             |
+   +--------------------------------------------------+----------------------------------------------------------------+-----------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_to_wav<class_AudioStreamSample_method_save_to_wav>` **(** :ref:`String<class_String>` path **)** |
-+---------------------------------------+-------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+-------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_to_wav<class_AudioStreamSample_method_save_to_wav>` **(** :ref:`String<class_String>` path **)** |
+   +---------------------------------------+-------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_AudioStreamSample_Format:
 
+.. rst-class:: classref-enumeration
+
+enum **Format**:
+
 .. _class_AudioStreamSample_constant_FORMAT_8_BITS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Format<enum_AudioStreamSample_Format>` **FORMAT_8_BITS** = ``0``
+
+8-bit audio codec.
+
 .. _class_AudioStreamSample_constant_FORMAT_16_BITS:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Format<enum_AudioStreamSample_Format>` **FORMAT_16_BITS** = ``1``
+
+16-bit audio codec.
+
 .. _class_AudioStreamSample_constant_FORMAT_IMA_ADPCM:
 
-enum **Format**:
+.. rst-class:: classref-enumeration-constant
 
-- **FORMAT_8_BITS** = **0** --- 8-bit audio codec.
+:ref:`Format<enum_AudioStreamSample_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_AudioStreamSample_LoopMode:
 
+.. rst-class:: classref-enumeration
+
+enum **LoopMode**:
+
 .. _class_AudioStreamSample_constant_LOOP_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **LOOP_DISABLED** = ``0``
+
+Audio does not loop.
+
 .. _class_AudioStreamSample_constant_LOOP_FORWARD:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **LOOP_FORWARD** = ``1``
+
+Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing forward only.
+
 .. _class_AudioStreamSample_constant_LOOP_PING_PONG:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **LOOP_PING_PONG** = ``2``
+
+Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing back and forth.
+
 .. _class_AudioStreamSample_constant_LOOP_BACKWARD:
 
-enum **LoopMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **LOOP_BACKWARD** = ``3``
 
-- **LOOP_DISABLED** = **0** --- Audio does not loop.
+Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing backward only.
 
-- **LOOP_FORWARD** = **1** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing forward only.
+.. rst-class:: classref-section-separator
 
-- **LOOP_PING_PONG** = **2** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing back and forth.
+----
 
-- **LOOP_BACKWARD** = **3** --- Audio loops the data between :ref:`loop_begin<class_AudioStreamSample_property_loop_begin>` and :ref:`loop_end<class_AudioStreamSample_property_loop_end>`, playing backward only.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_AudioStreamSample_property_data:
 
-- :ref:`PoolByteArray<class_PoolByteArray>` **data**
+.. rst-class:: classref-property
+
+:ref:`PoolByteArray<class_PoolByteArray>` **data** = ``PoolByteArray(  )``
 
-+-----------+-----------------------+
-| *Default* | ``PoolByteArray(  )`` |
-+-----------+-----------------------+
-| *Setter*  | set_data(value)       |
-+-----------+-----------------------+
-| *Getter*  | get_data()            |
-+-----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_data** **(** :ref:`PoolByteArray<class_PoolByteArray>` value **)**
+- :ref:`PoolByteArray<class_PoolByteArray>` **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_AudioStreamSample_property_format:
 
-- :ref:`Format<enum_AudioStreamSample_Format>` **format**
+.. rst-class:: classref-property
+
+:ref:`Format<enum_AudioStreamSample_Format>` **format** = ``0``
 
-+-----------+-------------------+
-| *Default* | ``0``             |
-+-----------+-------------------+
-| *Setter*  | set_format(value) |
-+-----------+-------------------+
-| *Getter*  | get_format()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_format** **(** :ref:`Format<enum_AudioStreamSample_Format>` value **)**
+- :ref:`Format<enum_AudioStreamSample_Format>` **get_format** **(** **)**
 
 Audio format. See :ref:`Format<enum_AudioStreamSample_Format>` constants for values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamSample_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_AudioStreamSample_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_AudioStreamSample_property_loop_mode:
 
-- :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **loop_mode**
+.. rst-class:: classref-property
+
+:ref:`LoopMode<enum_AudioStreamSample_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_AudioStreamSample_LoopMode>` value **)**
+- :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` **get_loop_mode** **(** **)**
 
 The loop mode. This information will be imported automatically from the WAV file if present. See :ref:`LoopMode<enum_AudioStreamSample_LoopMode>` constants for values.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_AudioStreamSample_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_AudioStreamSample_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_AudioStreamSample_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 AudioStreamSample as a WAV file to ``path``. Samples with IMA ADPCM format can't be saved.
 
@@ -221,3 +292,4 @@ Saves the AudioStreamSample as a WAV file to ``path``. Samples with IMA ADPCM fo
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 62 - 28
classes/class_backbuffercopy.rst

@@ -14,74 +14,108 @@ 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
 -----------
 
-Node for back-buffering the currently-displayed screen. The region defined in the ``BackBufferCopy`` node is buffered with the content of the screen it covers, or the entire screen according to the copy mode set. Use the ``texture(SCREEN_TEXTURE, ...)`` function in your shader scripts to access the buffer.
+Node for back-buffering the currently-displayed screen. The region defined in the **BackBufferCopy** node is buffered with the content of the screen it covers, or the entire screen according to the copy mode set. Use the ``texture(SCREEN_TEXTURE, ...)`` function in your shader scripts to access the buffer.
+
+\ **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.
 
-\ **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>`.
+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>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 393 - 247
classes/class_bakedlightmap.rst

@@ -14,537 +14,683 @@ BakedLightmap
 
 Prerendered indirect light map for a scene.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Baked lightmaps are an alternative workflow for adding indirect (or baked) lighting to a scene. Unlike the :ref:`GIProbe<class_GIProbe>` approach, baked lightmaps work fine on low-end PCs and mobile devices as they consume almost no resources in run-time.
 
-\ **Procedural generation:** Lightmap baking functionality is only available in the editor. This means ``BakedLightmap`` is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use :ref:`GIProbe<class_GIProbe>` instead.
+\ **Procedural generation:** Lightmap baking functionality is only available in the editor. This means **BakedLightmap** is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use :ref:`GIProbe<class_GIProbe>` instead.
 
 \ **Note:** Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again.
 
+.. rst-class:: classref-introduction-group
+
 Tutorials
 ---------
 
 - :doc:`../tutorials/3d/baked_lightmaps`
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`atlas_generate<class_BakedLightmap_property_atlas_generate>`                                                   | ``true``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`int<class_int>`                                      | :ref:`atlas_max_size<class_BakedLightmap_property_atlas_max_size>`                                                   | ``4096``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bias<class_BakedLightmap_property_bias>`                                                                       | ``0.005``                 |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>`                                   | ``1.0``                   |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`int<class_int>`                                      | :ref:`bounces<class_BakedLightmap_property_bounces>`                                                                 | ``3``                     |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`capture_cell_size<class_BakedLightmap_property_capture_cell_size>`                                             | ``0.5``                   |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`capture_enabled<class_BakedLightmap_property_capture_enabled>`                                                 | ``true``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`capture_propagation<class_BakedLightmap_property_capture_propagation>`                                         | ``1.0``                   |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>`         | :ref:`capture_quality<class_BakedLightmap_property_capture_quality>`                                                 | ``1``                     |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`default_texels_per_unit<class_BakedLightmap_property_default_texels_per_unit>`                                 | ``16.0``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`Color<class_Color>`                                  | :ref:`environment_custom_color<class_BakedLightmap_property_environment_custom_color>`                               |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`float<class_float>`                                  | :ref:`environment_custom_energy<class_BakedLightmap_property_environment_custom_energy>`                             |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`Sky<class_Sky>`                                      | :ref:`environment_custom_sky<class_BakedLightmap_property_environment_custom_sky>`                                   |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`Vector3<class_Vector3>`                              | :ref:`environment_custom_sky_rotation_degrees<class_BakedLightmap_property_environment_custom_sky_rotation_degrees>` |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`Color<class_Color>`                                  | :ref:`environment_min_light<class_BakedLightmap_property_environment_min_light>`                                     | ``Color( 0, 0, 0, 1 )``   |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` | :ref:`environment_mode<class_BakedLightmap_property_environment_mode>`                                               | ``0``                     |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`Vector3<class_Vector3>`                              | :ref:`extents<class_BakedLightmap_property_extents>`                                                                 | ``Vector3( 10, 10, 10 )`` |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`String<class_String>`                                | :ref:`image_path<class_BakedLightmap_property_image_path>`                                                           |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`BakedLightmapData<class_BakedLightmapData>`          | :ref:`light_data<class_BakedLightmap_property_light_data>`                                                           |                           |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>`         | :ref:`quality<class_BakedLightmap_property_quality>`                                                                 | ``1``                     |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`use_color<class_BakedLightmap_property_use_color>`                                                             | ``true``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`use_denoiser<class_BakedLightmap_property_use_denoiser>`                                                       | ``true``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`use_hdr<class_BakedLightmap_property_use_hdr>`                                                                 | ``true``                  |
-+------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`atlas_generate<class_BakedLightmap_property_atlas_generate>`                                                   | ``true``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`atlas_max_size<class_BakedLightmap_property_atlas_max_size>`                                                   | ``4096``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`bias<class_BakedLightmap_property_bias>`                                                                       | ``0.005``                 |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>`                                   | ``1.0``                   |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`int<class_int>`                                      | :ref:`bounces<class_BakedLightmap_property_bounces>`                                                                 | ``3``                     |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`capture_cell_size<class_BakedLightmap_property_capture_cell_size>`                                             | ``0.5``                   |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`capture_enabled<class_BakedLightmap_property_capture_enabled>`                                                 | ``true``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`capture_propagation<class_BakedLightmap_property_capture_propagation>`                                         | ``1.0``                   |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>`         | :ref:`capture_quality<class_BakedLightmap_property_capture_quality>`                                                 | ``1``                     |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`default_texels_per_unit<class_BakedLightmap_property_default_texels_per_unit>`                                 | ``16.0``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`Color<class_Color>`                                  | :ref:`environment_custom_color<class_BakedLightmap_property_environment_custom_color>`                               |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`float<class_float>`                                  | :ref:`environment_custom_energy<class_BakedLightmap_property_environment_custom_energy>`                             |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`Sky<class_Sky>`                                      | :ref:`environment_custom_sky<class_BakedLightmap_property_environment_custom_sky>`                                   |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`Vector3<class_Vector3>`                              | :ref:`environment_custom_sky_rotation_degrees<class_BakedLightmap_property_environment_custom_sky_rotation_degrees>` |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`Color<class_Color>`                                  | :ref:`environment_min_light<class_BakedLightmap_property_environment_min_light>`                                     | ``Color( 0, 0, 0, 1 )``   |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` | :ref:`environment_mode<class_BakedLightmap_property_environment_mode>`                                               | ``0``                     |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`Vector3<class_Vector3>`                              | :ref:`extents<class_BakedLightmap_property_extents>`                                                                 | ``Vector3( 10, 10, 10 )`` |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`String<class_String>`                                | :ref:`image_path<class_BakedLightmap_property_image_path>`                                                           |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`BakedLightmapData<class_BakedLightmapData>`          | :ref:`light_data<class_BakedLightmap_property_light_data>`                                                           |                           |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>`         | :ref:`quality<class_BakedLightmap_property_quality>`                                                                 | ``1``                     |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`use_color<class_BakedLightmap_property_use_color>`                                                             | ``true``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`use_denoiser<class_BakedLightmap_property_use_denoiser>`                                                       | ``true``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+   | :ref:`bool<class_bool>`                                    | :ref:`use_hdr<class_BakedLightmap_property_use_hdr>`                                                                 | ``true``                  |
+   +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+---------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`BakeError<enum_BakedLightmap_BakeError>` | :ref:`bake<class_BakedLightmap_method_bake>` **(** :ref:`Node<class_Node>` from_node=null, :ref:`String<class_String>` data_save_path="" **)** |
-+------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`BakeError<enum_BakedLightmap_BakeError>` | :ref:`bake<class_BakedLightmap_method_bake>` **(** :ref:`Node<class_Node>` from_node=null, :ref:`String<class_String>` data_save_path="" **)** |
+   +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Enumerations
 ------------
 
 .. _enum_BakedLightmap_BakeQuality:
 
+.. rst-class:: classref-enumeration
+
+enum **BakeQuality**:
+
 .. _class_BakedLightmap_constant_BAKE_QUALITY_LOW:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **BAKE_QUALITY_LOW** = ``0``
+
+The lowest bake quality mode. Fastest to calculate.
+
 .. _class_BakedLightmap_constant_BAKE_QUALITY_MEDIUM:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **BAKE_QUALITY_MEDIUM** = ``1``
+
+The default bake quality mode.
+
 .. _class_BakedLightmap_constant_BAKE_QUALITY_HIGH:
 
-.. _class_BakedLightmap_constant_BAKE_QUALITY_ULTRA:
+.. rst-class:: classref-enumeration-constant
 
-enum **BakeQuality**:
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **BAKE_QUALITY_HIGH** = ``2``
+
+A higher bake quality mode. Takes longer to calculate.
+
+.. _class_BakedLightmap_constant_BAKE_QUALITY_ULTRA:
 
-- **BAKE_QUALITY_LOW** = **0** --- The lowest bake quality mode. Fastest to calculate.
+.. rst-class:: classref-enumeration-constant
 
-- **BAKE_QUALITY_MEDIUM** = **1** --- The default bake quality mode.
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **BAKE_QUALITY_ULTRA** = ``3``
 
-- **BAKE_QUALITY_HIGH** = **2** --- A higher bake quality mode. Takes longer to calculate.
+The highest bake quality mode. Takes the longest to calculate.
 
-- **BAKE_QUALITY_ULTRA** = **3** --- The highest bake quality mode. Takes the longest to calculate.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_BakedLightmap_BakeError:
 
+.. rst-class:: classref-enumeration
+
+enum **BakeError**:
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_OK:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_OK** = ``0``
+
+Baking was successful.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_NO_SAVE_PATH:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_NO_SAVE_PATH** = ``1``
+
+Returns if no viable save path is found. This can happen where an :ref:`image_path<class_BakedLightmap_property_image_path>` is not specified or when the save location is invalid.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_NO_MESHES:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_NO_MESHES** = ``2``
+
+Currently unused.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_CANT_CREATE_IMAGE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_CANT_CREATE_IMAGE** = ``3``
+
+Returns when the baker cannot save per-mesh textures to file.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_LIGHTMAP_SIZE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_LIGHTMAP_SIZE** = ``4``
+
+The size of the generated lightmaps is too large.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_INVALID_MESH:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_INVALID_MESH** = ``5``
+
+Some mesh contains UV2 values outside the ``[0,1]`` range.
+
 .. _class_BakedLightmap_constant_BAKE_ERROR_USER_ABORTED:
 
-.. _class_BakedLightmap_constant_BAKE_ERROR_NO_LIGHTMAPPER:
+.. rst-class:: classref-enumeration-constant
 
-.. _class_BakedLightmap_constant_BAKE_ERROR_NO_ROOT:
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_USER_ABORTED** = ``6``
 
-enum **BakeError**:
+Returns if user cancels baking.
 
-- **BAKE_ERROR_OK** = **0** --- Baking was successful.
+.. _class_BakedLightmap_constant_BAKE_ERROR_NO_LIGHTMAPPER:
 
-- **BAKE_ERROR_NO_SAVE_PATH** = **1** --- Returns if no viable save path is found. This can happen where an :ref:`image_path<class_BakedLightmap_property_image_path>` is not specified or when the save location is invalid.
+.. rst-class:: classref-enumeration-constant
 
-- **BAKE_ERROR_NO_MESHES** = **2** --- Currently unused.
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_NO_LIGHTMAPPER** = ``7``
 
-- **BAKE_ERROR_CANT_CREATE_IMAGE** = **3** --- Returns when the baker cannot save per-mesh textures to file.
+Returns if lightmapper can't be created. Unless you are using a custom lightmapper, please report this as bug.
 
-- **BAKE_ERROR_LIGHTMAP_SIZE** = **4** --- The size of the generated lightmaps is too large.
+.. _class_BakedLightmap_constant_BAKE_ERROR_NO_ROOT:
 
-- **BAKE_ERROR_INVALID_MESH** = **5** --- Some mesh contains UV2 values outside the ``[0,1]`` range.
+.. rst-class:: classref-enumeration-constant
 
-- **BAKE_ERROR_USER_ABORTED** = **6** --- Returns if user cancels baking.
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **BAKE_ERROR_NO_ROOT** = ``8``
 
-- **BAKE_ERROR_NO_LIGHTMAPPER** = **7** --- Returns if lightmapper can't be created. Unless you are using a custom lightmapper, please report this as bug.
+There is no root node to start baking from. Either provide ``from_node`` argument or attach this node to a parent that should be used as root.
 
-- **BAKE_ERROR_NO_ROOT** = **8** --- There is no root node to start baking from. Either provide ``from_node`` argument or attach this node to a parent that should be used as root.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _enum_BakedLightmap_EnvironmentMode:
 
+.. rst-class:: classref-enumeration
+
+enum **EnvironmentMode**:
+
 .. _class_BakedLightmap_constant_ENVIRONMENT_MODE_DISABLED:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **ENVIRONMENT_MODE_DISABLED** = ``0``
+
+No environment is used during baking.
+
 .. _class_BakedLightmap_constant_ENVIRONMENT_MODE_SCENE:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **ENVIRONMENT_MODE_SCENE** = ``1``
+
+The baked environment is automatically picked from the current scene.
+
 .. _class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_SKY:
 
+.. rst-class:: classref-enumeration-constant
+
+:ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **ENVIRONMENT_MODE_CUSTOM_SKY** = ``2``
+
+A custom sky is used as environment during baking.
+
 .. _class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_COLOR:
 
-enum **EnvironmentMode**:
+.. rst-class:: classref-enumeration-constant
+
+:ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **ENVIRONMENT_MODE_CUSTOM_COLOR** = ``3``
 
-- **ENVIRONMENT_MODE_DISABLED** = **0** --- No environment is used during baking.
+A custom solid color is used as environment during baking.
 
-- **ENVIRONMENT_MODE_SCENE** = **1** --- The baked environment is automatically picked from the current scene.
+.. rst-class:: classref-section-separator
 
-- **ENVIRONMENT_MODE_CUSTOM_SKY** = **2** --- A custom sky is used as environment during baking.
+----
 
-- **ENVIRONMENT_MODE_CUSTOM_COLOR** = **3** --- A custom solid color is used as environment during baking.
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BakedLightmap_property_atlas_generate:
 
-- :ref:`bool<class_bool>` **atlas_generate**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **atlas_generate** = ``true``
 
-+-----------+-----------------------------+
-| *Default* | ``true``                    |
-+-----------+-----------------------------+
-| *Setter*  | set_generate_atlas(value)   |
-+-----------+-----------------------------+
-| *Getter*  | is_generate_atlas_enabled() |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_generate_atlas** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_generate_atlas_enabled** **(** **)**
 
 If ``true``, the lightmapper will merge the textures for all meshes into one or several large layered textures. If ``false``, every mesh will get its own lightmap texture, which is less efficient.
 
 \ **Note:** Atlas lightmap rendering is only supported in GLES3, *not* GLES2. Non-atlas lightmap rendering is supported by both GLES3 and GLES2. If :ref:`ProjectSettings.rendering/quality/driver/fallback_to_gles2<class_ProjectSettings_property_rendering/quality/driver/fallback_to_gles2>` is ``true``, consider baking lightmaps with :ref:`atlas_generate<class_BakedLightmap_property_atlas_generate>` set to ``false`` so that the resulting lightmap is visible in both GLES3 and GLES2.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_atlas_max_size:
 
-- :ref:`int<class_int>` **atlas_max_size**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **atlas_max_size** = ``4096``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------------+
-| *Default* | ``4096``                  |
-+-----------+---------------------------+
-| *Setter*  | set_max_atlas_size(value) |
-+-----------+---------------------------+
-| *Getter*  | get_max_atlas_size()      |
-+-----------+---------------------------+
+- void **set_max_atlas_size** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_max_atlas_size** **(** **)**
 
 Maximum size of each lightmap layer, only used when :ref:`atlas_generate<class_BakedLightmap_property_atlas_generate>` is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_bias:
 
-- :ref:`float<class_float>` **bias**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **bias** = ``0.005``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-----------------+
-| *Default* | ``0.005``       |
-+-----------+-----------------+
-| *Setter*  | set_bias(value) |
-+-----------+-----------------+
-| *Getter*  | get_bias()      |
-+-----------+-----------------+
+- void **set_bias** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_bias** **(** **)**
 
 Raycasting bias used during baking to avoid floating point precision issues.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_bounce_indirect_energy:
 
-- :ref:`float<class_float>` **bounce_indirect_energy**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **bounce_indirect_energy** = ``1.0``
 
-+-----------+-----------------------------------+
-| *Default* | ``1.0``                           |
-+-----------+-----------------------------------+
-| *Setter*  | set_bounce_indirect_energy(value) |
-+-----------+-----------------------------------+
-| *Getter*  | get_bounce_indirect_energy()      |
-+-----------+-----------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_bounce_indirect_energy** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_bounce_indirect_energy** **(** **)**
 
 The energy multiplier for each bounce. Higher values will make indirect lighting brighter. A value of ``1.0`` represents physically accurate behavior, but higher values can be used to make indirect lighting propagate more visibly when using a low number of bounces. This can be used to speed up bake times by lowering the number of :ref:`bounces<class_BakedLightmap_property_bounces>` then increasing :ref:`bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>`. Unlike :ref:`BakedLightmapData.energy<class_BakedLightmapData_property_energy>`, this property does not affect direct lighting emitted by light nodes, emissive materials and the environment.
 
 \ **Note:** :ref:`bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>` only has an effect if :ref:`bounces<class_BakedLightmap_property_bounces>` is set to a value greater than or equal to ``1``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_bounces:
 
-- :ref:`int<class_int>` **bounces**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **bounces** = ``3``
+
+.. rst-class:: classref-property-setget
 
-+-----------+--------------------+
-| *Default* | ``3``              |
-+-----------+--------------------+
-| *Setter*  | set_bounces(value) |
-+-----------+--------------------+
-| *Getter*  | get_bounces()      |
-+-----------+--------------------+
+- void **set_bounces** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_bounces** **(** **)**
 
 Number of light bounces that are taken into account during baking. See also :ref:`bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_capture_cell_size:
 
-- :ref:`float<class_float>` **capture_cell_size**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **capture_cell_size** = ``0.5``
 
-+-----------+------------------------------+
-| *Default* | ``0.5``                      |
-+-----------+------------------------------+
-| *Setter*  | set_capture_cell_size(value) |
-+-----------+------------------------------+
-| *Getter*  | get_capture_cell_size()      |
-+-----------+------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_capture_cell_size** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_capture_cell_size** **(** **)**
 
 Grid size used for real-time capture information on dynamic objects.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_capture_enabled:
 
-- :ref:`bool<class_bool>` **capture_enabled**
+.. rst-class:: classref-property
 
-+-----------+----------------------------+
-| *Default* | ``true``                   |
-+-----------+----------------------------+
-| *Setter*  | set_capture_enabled(value) |
-+-----------+----------------------------+
-| *Getter*  | get_capture_enabled()      |
-+-----------+----------------------------+
+:ref:`bool<class_bool>` **capture_enabled** = ``true``
+
+.. rst-class:: classref-property-setget
+
+- void **set_capture_enabled** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **get_capture_enabled** **(** **)**
 
 When enabled, an octree containing the scene's lighting information will be computed. This octree will then be used to light dynamic objects in the scene.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_capture_propagation:
 
-- :ref:`float<class_float>` **capture_propagation**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **capture_propagation** = ``1.0``
 
-+-----------+--------------------------------+
-| *Default* | ``1.0``                        |
-+-----------+--------------------------------+
-| *Setter*  | set_capture_propagation(value) |
-+-----------+--------------------------------+
-| *Getter*  | get_capture_propagation()      |
-+-----------+--------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_capture_propagation** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_capture_propagation** **(** **)**
 
 Bias value to reduce the amount of light propagation in the captured octree.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_capture_quality:
 
-- :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **capture_quality**
+.. rst-class:: classref-property
+
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **capture_quality** = ``1``
 
-+-----------+----------------------------+
-| *Default* | ``1``                      |
-+-----------+----------------------------+
-| *Setter*  | set_capture_quality(value) |
-+-----------+----------------------------+
-| *Getter*  | get_capture_quality()      |
-+-----------+----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_capture_quality** **(** :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` value **)**
+- :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **get_capture_quality** **(** **)**
 
 Bake quality of the capture data.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_default_texels_per_unit:
 
-- :ref:`float<class_float>` **default_texels_per_unit**
+.. rst-class:: classref-property
 
-+-----------+------------------------------------+
-| *Default* | ``16.0``                           |
-+-----------+------------------------------------+
-| *Setter*  | set_default_texels_per_unit(value) |
-+-----------+------------------------------------+
-| *Getter*  | get_default_texels_per_unit()      |
-+-----------+------------------------------------+
+:ref:`float<class_float>` **default_texels_per_unit** = ``16.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_default_texels_per_unit** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_default_texels_per_unit** **(** **)**
 
 If a baked mesh doesn't have a UV2 size hint, this value will be used to roughly compute a suitable lightmap size.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_custom_color:
 
-- :ref:`Color<class_Color>` **environment_custom_color**
+.. rst-class:: classref-property
+
+:ref:`Color<class_Color>` **environment_custom_color**
 
-+----------+-------------------------------------+
-| *Setter* | set_environment_custom_color(value) |
-+----------+-------------------------------------+
-| *Getter* | get_environment_custom_color()      |
-+----------+-------------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_environment_custom_color** **(** :ref:`Color<class_Color>` value **)**
+- :ref:`Color<class_Color>` **get_environment_custom_color** **(** **)**
 
 The environment color when :ref:`environment_mode<class_BakedLightmap_property_environment_mode>` is set to :ref:`ENVIRONMENT_MODE_CUSTOM_COLOR<class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_COLOR>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_custom_energy:
 
-- :ref:`float<class_float>` **environment_custom_energy**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **environment_custom_energy**
+
+.. rst-class:: classref-property-setget
 
-+----------+--------------------------------------+
-| *Setter* | set_environment_custom_energy(value) |
-+----------+--------------------------------------+
-| *Getter* | get_environment_custom_energy()      |
-+----------+--------------------------------------+
+- void **set_environment_custom_energy** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_environment_custom_energy** **(** **)**
 
 The energy scaling factor when when :ref:`environment_mode<class_BakedLightmap_property_environment_mode>` is set to :ref:`ENVIRONMENT_MODE_CUSTOM_COLOR<class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_COLOR>` or :ref:`ENVIRONMENT_MODE_CUSTOM_SKY<class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_SKY>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_custom_sky:
 
-- :ref:`Sky<class_Sky>` **environment_custom_sky**
+.. rst-class:: classref-property
+
+:ref:`Sky<class_Sky>` **environment_custom_sky**
 
-+----------+-----------------------------------+
-| *Setter* | set_environment_custom_sky(value) |
-+----------+-----------------------------------+
-| *Getter* | get_environment_custom_sky()      |
-+----------+-----------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_environment_custom_sky** **(** :ref:`Sky<class_Sky>` value **)**
+- :ref:`Sky<class_Sky>` **get_environment_custom_sky** **(** **)**
 
 The :ref:`Sky<class_Sky>` resource to use when :ref:`environment_mode<class_BakedLightmap_property_environment_mode>` is set o :ref:`ENVIRONMENT_MODE_CUSTOM_SKY<class_BakedLightmap_constant_ENVIRONMENT_MODE_CUSTOM_SKY>`.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_custom_sky_rotation_degrees:
 
-- :ref:`Vector3<class_Vector3>` **environment_custom_sky_rotation_degrees**
+.. rst-class:: classref-property
 
-+----------+----------------------------------------------------+
-| *Setter* | set_environment_custom_sky_rotation_degrees(value) |
-+----------+----------------------------------------------------+
-| *Getter* | get_environment_custom_sky_rotation_degrees()      |
-+----------+----------------------------------------------------+
+:ref:`Vector3<class_Vector3>` **environment_custom_sky_rotation_degrees**
+
+.. rst-class:: classref-property-setget
+
+- void **set_environment_custom_sky_rotation_degrees** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_environment_custom_sky_rotation_degrees** **(** **)**
 
 The rotation of the baked custom sky.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_min_light:
 
-- :ref:`Color<class_Color>` **environment_min_light**
+.. rst-class:: classref-property
+
+:ref:`Color<class_Color>` **environment_min_light** = ``Color( 0, 0, 0, 1 )``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------------------+
-| *Default* | ``Color( 0, 0, 0, 1 )``          |
-+-----------+----------------------------------+
-| *Setter*  | set_environment_min_light(value) |
-+-----------+----------------------------------+
-| *Getter*  | get_environment_min_light()      |
-+-----------+----------------------------------+
+- void **set_environment_min_light** **(** :ref:`Color<class_Color>` value **)**
+- :ref:`Color<class_Color>` **get_environment_min_light** **(** **)**
 
 Minimum ambient light for all the lightmap texels. This doesn't take into account any occlusion from the scene's geometry, it simply ensures a minimum amount of light on all the lightmap texels. Can be used for artistic control on shadow color.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_environment_mode:
 
-- :ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **environment_mode**
+.. rst-class:: classref-property
+
+:ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **environment_mode** = ``0``
 
-+-----------+-----------------------------+
-| *Default* | ``0``                       |
-+-----------+-----------------------------+
-| *Setter*  | set_environment_mode(value) |
-+-----------+-----------------------------+
-| *Getter*  | get_environment_mode()      |
-+-----------+-----------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_environment_mode** **(** :ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` value **)**
+- :ref:`EnvironmentMode<enum_BakedLightmap_EnvironmentMode>` **get_environment_mode** **(** **)**
 
 Decides which environment to use during baking.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_extents:
 
-- :ref:`Vector3<class_Vector3>` **extents**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``Vector3( 10, 10, 10 )`` |
-+-----------+---------------------------+
-| *Setter*  | set_extents(value)        |
-+-----------+---------------------------+
-| *Getter*  | get_extents()             |
-+-----------+---------------------------+
+:ref:`Vector3<class_Vector3>` **extents** = ``Vector3( 10, 10, 10 )``
+
+.. rst-class:: classref-property-setget
+
+- void **set_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
+- :ref:`Vector3<class_Vector3>` **get_extents** **(** **)**
 
 Size of the baked lightmap. Only meshes inside this region will be included in the baked lightmap, also used as the bounds of the captured region for dynamic lighting.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_image_path:
 
-- :ref:`String<class_String>` **image_path**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **image_path**
 
-+----------+-----------------------+
-| *Setter* | set_image_path(value) |
-+----------+-----------------------+
-| *Getter* | get_image_path()      |
-+----------+-----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_image_path** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_image_path** **(** **)**
 
 Deprecated, in previous versions it determined the location where lightmaps were be saved.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_light_data:
 
-- :ref:`BakedLightmapData<class_BakedLightmapData>` **light_data**
+.. rst-class:: classref-property
+
+:ref:`BakedLightmapData<class_BakedLightmapData>` **light_data**
+
+.. rst-class:: classref-property-setget
 
-+----------+-----------------------+
-| *Setter* | set_light_data(value) |
-+----------+-----------------------+
-| *Getter* | get_light_data()      |
-+----------+-----------------------+
+- void **set_light_data** **(** :ref:`BakedLightmapData<class_BakedLightmapData>` value **)**
+- :ref:`BakedLightmapData<class_BakedLightmapData>` **get_light_data** **(** **)**
 
 The calculated light data.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_quality:
 
-- :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **quality**
+.. rst-class:: classref-property
+
+:ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **quality** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``1``                   |
-+-----------+-------------------------+
-| *Setter*  | set_bake_quality(value) |
-+-----------+-------------------------+
-| *Getter*  | get_bake_quality()      |
-+-----------+-------------------------+
+- void **set_bake_quality** **(** :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` value **)**
+- :ref:`BakeQuality<enum_BakedLightmap_BakeQuality>` **get_bake_quality** **(** **)**
 
 Determines the amount of samples per texel used in indirect light baking. The amount of samples for each quality level can be configured in the project settings.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_use_color:
 
-- :ref:`bool<class_bool>` **use_color**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **use_color** = ``true``
 
-+-----------+----------------------+
-| *Default* | ``true``             |
-+-----------+----------------------+
-| *Setter*  | set_use_color(value) |
-+-----------+----------------------+
-| *Getter*  | is_using_color()     |
-+-----------+----------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_use_color** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_color** **(** **)**
 
 Store full color values in the lightmap textures. When disabled, lightmap textures will store a single brightness channel. Can be disabled to reduce disk usage if the scene contains only white lights or you don't mind losing color information in indirect lighting.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_use_denoiser:
 
-- :ref:`bool<class_bool>` **use_denoiser**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **use_denoiser** = ``true``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------------+
-| *Default* | ``true``                |
-+-----------+-------------------------+
-| *Setter*  | set_use_denoiser(value) |
-+-----------+-------------------------+
-| *Getter*  | is_using_denoiser()     |
-+-----------+-------------------------+
+- void **set_use_denoiser** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_denoiser** **(** **)**
 
 When enabled, a lightmap denoiser will be used to reduce the noise inherent to Monte Carlo based global illumination.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmap_property_use_hdr:
 
-- :ref:`bool<class_bool>` **use_hdr**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **use_hdr** = ``true``
 
-+-----------+--------------------+
-| *Default* | ``true``           |
-+-----------+--------------------+
-| *Setter*  | set_use_hdr(value) |
-+-----------+--------------------+
-| *Getter*  | is_using_hdr()     |
-+-----------+--------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_use_hdr** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_using_hdr** **(** **)**
 
 If ``true``, stores the lightmap textures in a high dynamic range format (EXR). If ``false``, stores the lightmap texture in a low dynamic range PNG image. This can be set to ``false`` to reduce disk usage, but light values over 1.0 will be clamped and you may see banding caused by the reduced precision.
 
 \ **Note:** Setting :ref:`use_hdr<class_BakedLightmap_property_use_hdr>` to ``true`` will decrease lightmap banding even when using the GLES2 backend or if :ref:`ProjectSettings.rendering/quality/depth/hdr<class_ProjectSettings_property_rendering/quality/depth/hdr>` is ``false``.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_BakedLightmap_method_bake:
 
-- :ref:`BakeError<enum_BakedLightmap_BakeError>` **bake** **(** :ref:`Node<class_Node>` from_node=null, :ref:`String<class_String>` data_save_path="" **)**
+.. rst-class:: classref-method
+
+:ref:`BakeError<enum_BakedLightmap_BakeError>` **bake** **(** :ref:`Node<class_Node>` from_node=null, :ref:`String<class_String>` data_save_path="" **)**
 
 Bakes the lightmap, scanning from the given ``from_node`` root and saves the resulting :ref:`BakedLightmapData<class_BakedLightmapData>` in ``data_save_path``. If no root node is provided, parent of this node will be used as root instead. If no save path is provided it will try to match the path from the current :ref:`light_data<class_BakedLightmap_property_light_data>`.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 171 - 80
classes/class_bakedlightmapdata.rst

@@ -12,170 +12,261 @@ BakedLightmapData
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
+.. container:: contribute
 
+	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:`AABB<class_AABB>`                   | :ref:`bounds<class_BakedLightmapData_property_bounds>`                             | ``AABB( 0, 0, 0, 0, 0, 0 )``                        |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`Transform<class_Transform>`         | :ref:`cell_space_transform<class_BakedLightmapData_property_cell_space_transform>` | ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`` |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`int<class_int>`                     | :ref:`cell_subdiv<class_BakedLightmapData_property_cell_subdiv>`                   | ``1``                                               |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`float<class_float>`                 | :ref:`energy<class_BakedLightmapData_property_energy>`                             | ``1.0``                                             |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`bool<class_bool>`                   | :ref:`interior<class_BakedLightmapData_property_interior>`                         | ``false``                                           |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
-| :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`octree<class_BakedLightmapData_property_octree>`                             | ``PoolByteArray(  )``                               |
-+-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`AABB<class_AABB>`                   | :ref:`bounds<class_BakedLightmapData_property_bounds>`                             | ``AABB( 0, 0, 0, 0, 0, 0 )``                        |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`Transform<class_Transform>`         | :ref:`cell_space_transform<class_BakedLightmapData_property_cell_space_transform>` | ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`` |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`int<class_int>`                     | :ref:`cell_subdiv<class_BakedLightmapData_property_cell_subdiv>`                   | ``1``                                               |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`float<class_float>`                 | :ref:`energy<class_BakedLightmapData_property_energy>`                             | ``1.0``                                             |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`bool<class_bool>`                   | :ref:`interior<class_BakedLightmapData_property_interior>`                         | ``false``                                           |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+   | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`octree<class_BakedLightmapData_property_octree>`                             | ``PoolByteArray(  )``                               |
+   +-------------------------------------------+------------------------------------------------------------------------------------+-----------------------------------------------------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_user<class_BakedLightmapData_method_add_user>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`Resource<class_Resource>` lightmap, :ref:`int<class_int>` lightmap_slice, :ref:`Rect2<class_Rect2>` lightmap_uv_rect, :ref:`int<class_int>` instance **)** |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`clear_data<class_BakedLightmapData_method_clear_data>` **(** **)**                                                                                                                                                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`clear_users<class_BakedLightmapData_method_clear_users>` **(** **)**                                                                                                                                                                                            |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_user_count<class_BakedLightmapData_method_get_user_count>` **(** **)** |const|                                                                                                                                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>` | :ref:`get_user_lightmap<class_BakedLightmapData_method_get_user_lightmap>` **(** :ref:`int<class_int>` user_idx **)** |const|                                                                                                                                         |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`NodePath<class_NodePath>` | :ref:`get_user_path<class_BakedLightmapData_method_get_user_path>` **(** :ref:`int<class_int>` user_idx **)** |const|                                                                                                                                                 |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`add_user<class_BakedLightmapData_method_add_user>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`Resource<class_Resource>` lightmap, :ref:`int<class_int>` lightmap_slice, :ref:`Rect2<class_Rect2>` lightmap_uv_rect, :ref:`int<class_int>` instance **)** |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`clear_data<class_BakedLightmapData_method_clear_data>` **(** **)**                                                                                                                                                                                              |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                            | :ref:`clear_users<class_BakedLightmapData_method_clear_users>` **(** **)**                                                                                                                                                                                            |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`           | :ref:`get_user_count<class_BakedLightmapData_method_get_user_count>` **(** **)** |const|                                                                                                                                                                              |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Resource<class_Resource>` | :ref:`get_user_lightmap<class_BakedLightmapData_method_get_user_lightmap>` **(** :ref:`int<class_int>` user_idx **)** |const|                                                                                                                                         |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`NodePath<class_NodePath>` | :ref:`get_user_path<class_BakedLightmapData_method_get_user_path>` **(** :ref:`int<class_int>` user_idx **)** |const|                                                                                                                                                 |
+   +---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BakedLightmapData_property_bounds:
 
-- :ref:`AABB<class_AABB>` **bounds**
+.. rst-class:: classref-property
+
+:ref:`AABB<class_AABB>` **bounds** = ``AABB( 0, 0, 0, 0, 0, 0 )``
+
+.. rst-class:: classref-property-setget
+
+- void **set_bounds** **(** :ref:`AABB<class_AABB>` value **)**
+- :ref:`AABB<class_AABB>` **get_bounds** **(** **)**
 
-+-----------+------------------------------+
-| *Default* | ``AABB( 0, 0, 0, 0, 0, 0 )`` |
-+-----------+------------------------------+
-| *Setter*  | set_bounds(value)            |
-+-----------+------------------------------+
-| *Getter*  | get_bounds()                 |
-+-----------+------------------------------+
+.. 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_BakedLightmapData_property_cell_space_transform:
 
-- :ref:`Transform<class_Transform>` **cell_space_transform**
+.. rst-class:: classref-property
+
+:ref:`Transform<class_Transform>` **cell_space_transform** = ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )``
+
+.. rst-class:: classref-property-setget
+
+- void **set_cell_space_transform** **(** :ref:`Transform<class_Transform>` value **)**
+- :ref:`Transform<class_Transform>` **get_cell_space_transform** **(** **)**
+
+.. container:: contribute
+
+	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
-+-----------+-----------------------------------------------------+
-| *Default* | ``Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`` |
-+-----------+-----------------------------------------------------+
-| *Setter*  | set_cell_space_transform(value)                     |
-+-----------+-----------------------------------------------------+
-| *Getter*  | get_cell_space_transform()                          |
-+-----------+-----------------------------------------------------+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_BakedLightmapData_property_cell_subdiv:
 
-- :ref:`int<class_int>` **cell_subdiv**
+.. rst-class:: classref-property
 
-+-----------+------------------------+
-| *Default* | ``1``                  |
-+-----------+------------------------+
-| *Setter*  | set_cell_subdiv(value) |
-+-----------+------------------------+
-| *Getter*  | get_cell_subdiv()      |
-+-----------+------------------------+
+:ref:`int<class_int>` **cell_subdiv** = ``1``
+
+.. rst-class:: classref-property-setget
+
+- void **set_cell_subdiv** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_cell_subdiv** **(** **)**
+
+.. 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_BakedLightmapData_property_energy:
 
-- :ref:`float<class_float>` **energy**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **energy** = ``1.0``
+
+.. rst-class:: classref-property-setget
 
-+-----------+-------------------+
-| *Default* | ``1.0``           |
-+-----------+-------------------+
-| *Setter*  | set_energy(value) |
-+-----------+-------------------+
-| *Getter*  | get_energy()      |
-+-----------+-------------------+
+- void **set_energy** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_energy** **(** **)**
 
 Global energy multiplier for baked and dynamic capture objects. This can be changed at run-time without having to bake lightmaps again.
 
 To adjust only the energy of indirect lighting (without affecting direct lighting or emissive materials), adjust :ref:`BakedLightmap.bounce_indirect_energy<class_BakedLightmap_property_bounce_indirect_energy>` and bake lightmaps again.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmapData_property_interior:
 
-- :ref:`bool<class_bool>` **interior**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **interior** = ``false``
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_interior(value) |
-+-----------+---------------------+
-| *Getter*  | is_interior()       |
-+-----------+---------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_interior** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_interior** **(** **)**
 
 Controls whether dynamic capture objects receive environment lighting or not.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BakedLightmapData_property_octree:
 
-- :ref:`PoolByteArray<class_PoolByteArray>` **octree**
+.. rst-class:: classref-property
+
+:ref:`PoolByteArray<class_PoolByteArray>` **octree** = ``PoolByteArray(  )``
+
+.. rst-class:: classref-property-setget
+
+- void **set_octree** **(** :ref:`PoolByteArray<class_PoolByteArray>` value **)**
+- :ref:`PoolByteArray<class_PoolByteArray>` **get_octree** **(** **)**
 
-+-----------+-----------------------+
-| *Default* | ``PoolByteArray(  )`` |
-+-----------+-----------------------+
-| *Setter*  | set_octree(value)     |
-+-----------+-----------------------+
-| *Getter*  | get_octree()          |
-+-----------+-----------------------+
+.. 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_BakedLightmapData_method_add_user:
 
-- void **add_user** **(** :ref:`NodePath<class_NodePath>` path, :ref:`Resource<class_Resource>` lightmap, :ref:`int<class_int>` lightmap_slice, :ref:`Rect2<class_Rect2>` lightmap_uv_rect, :ref:`int<class_int>` instance **)**
+.. rst-class:: classref-method
+
+void **add_user** **(** :ref:`NodePath<class_NodePath>` path, :ref:`Resource<class_Resource>` lightmap, :ref:`int<class_int>` lightmap_slice, :ref:`Rect2<class_Rect2>` lightmap_uv_rect, :ref:`int<class_int>` instance **)**
+
+.. 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_BakedLightmapData_method_clear_data:
 
-- void **clear_data** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_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_BakedLightmapData_method_clear_users:
 
-- void **clear_users** **(** **)**
+.. rst-class:: classref-method
+
+void **clear_users** **(** **)**
+
+.. 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_BakedLightmapData_method_get_user_count:
 
-- :ref:`int<class_int>` **get_user_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_user_count** **(** **)** |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_BakedLightmapData_method_get_user_lightmap:
 
-- :ref:`Resource<class_Resource>` **get_user_lightmap** **(** :ref:`int<class_int>` user_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Resource<class_Resource>` **get_user_lightmap** **(** :ref:`int<class_int>` user_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_BakedLightmapData_method_get_user_path:
 
-- :ref:`NodePath<class_NodePath>` **get_user_path** **(** :ref:`int<class_int>` user_idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`NodePath<class_NodePath>` **get_user_path** **(** :ref:`int<class_int>` user_idx **)** |const|
+
+.. container:: contribute
+
+	There is currently no description for this method. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 244 - 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:`int<class_int>`                         | :ref:`button_mask<class_BaseButton_property_button_mask>`                   | ``1``                                                               |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`disabled<class_BaseButton_property_disabled>`                         | ``false``                                                           |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`      | :ref:`enabled_focus_mode<class_BaseButton_property_enabled_focus_mode>`     | ``2``                                                               |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`FocusMode<enum_Control_FocusMode>`      | focus_mode                                                                  | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`ButtonGroup<class_ButtonGroup>`         | :ref:`group<class_BaseButton_property_group>`                               |                                                                     |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` | ``false``                                                           |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                       | :ref:`pressed<class_BaseButton_property_pressed>`                           | ``false``                                                           |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :ref:`ShortCut<class_ShortCut>`               | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |                                                                     |
-+-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
-| :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:`int<class_int>`                         | :ref:`button_mask<class_BaseButton_property_button_mask>`                   | ``1``                                                               |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`disabled<class_BaseButton_property_disabled>`                         | ``false``                                                           |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`FocusMode<enum_Control_FocusMode>`      | :ref:`enabled_focus_mode<class_BaseButton_property_enabled_focus_mode>`     | ``2``                                                               |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`FocusMode<enum_Control_FocusMode>`      | focus_mode                                                                  | ``2`` (overrides :ref:`Control<class_Control_property_focus_mode>`) |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`ButtonGroup<class_ButtonGroup>`         | :ref:`group<class_BaseButton_property_group>`                               |                                                                     |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`keep_pressed_outside<class_BaseButton_property_keep_pressed_outside>` | ``false``                                                           |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                       | :ref:`pressed<class_BaseButton_property_pressed>`                           | ``false``                                                           |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :ref:`ShortCut<class_ShortCut>`               | :ref:`shortcut<class_BaseButton_property_shortcut>`                         |                                                                     |
+   +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+
+   | :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_mask:
 
-- :ref:`int<class_int>` **button_mask**
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **button_mask** = ``1``
+
+.. rst-class:: classref-property-setget
 
-+-----------+------------------------+
-| *Default* | ``1``                  |
-+-----------+------------------------+
-| *Setter*  | set_button_mask(value) |
-+-----------+------------------------+
-| *Getter*  | get_button_mask()      |
-+-----------+------------------------+
+- void **set_button_mask** **(** :ref:`int<class_int>` value **)**
+- :ref:`int<class_int>` **get_button_mask** **(** **)**
 
 Binary mask to choose which mouse buttons this button will respond to.
 
 To allow both left-click and right-click, use ``BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_disabled:
 
-- :ref:`bool<class_bool>` **disabled**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **disabled** = ``false``
+
+.. rst-class:: classref-property-setget
 
-+-----------+---------------------+
-| *Default* | ``false``           |
-+-----------+---------------------+
-| *Setter*  | set_disabled(value) |
-+-----------+---------------------+
-| *Getter*  | is_disabled()       |
-+-----------+---------------------+
+- 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_enabled_focus_mode:
 
-- :ref:`FocusMode<enum_Control_FocusMode>` **enabled_focus_mode**
+.. rst-class:: classref-property
+
+:ref:`FocusMode<enum_Control_FocusMode>` **enabled_focus_mode** = ``2``
 
-+-----------+-------------------------------+
-| *Default* | ``2``                         |
-+-----------+-------------------------------+
-| *Setter*  | set_enabled_focus_mode(value) |
-+-----------+-------------------------------+
-| *Getter*  | get_enabled_focus_mode()      |
-+-----------+-------------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_enabled_focus_mode** **(** :ref:`FocusMode<enum_Control_FocusMode>` value **)**
+- :ref:`FocusMode<enum_Control_FocusMode>` **get_enabled_focus_mode** **(** **)**
 
 *Deprecated.* This property has been deprecated due to redundancy and will be removed in Godot 4.0. This property no longer has any effect when set. Please use :ref:`Control.focus_mode<class_Control_property_focus_mode>` instead.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BaseButton_property_group:
 
-- :ref:`ButtonGroup<class_ButtonGroup>` **group**
+.. rst-class:: classref-property
+
+:ref:`ButtonGroup<class_ButtonGroup>` **group**
 
-+----------+-------------------------+
-| *Setter* | set_button_group(value) |
-+----------+-------------------------+
-| *Getter* | get_button_group()      |
-+----------+-------------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_button_group** **(** :ref:`ButtonGroup<class_ButtonGroup>` value **)**
+- :ref:`ButtonGroup<class_ButtonGroup>` **get_button_group** **(** **)**
 
 :ref:`ButtonGroup<class_ButtonGroup>` associated to the button.
 
+.. 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_pressed:
 
-- :ref:`bool<class_bool>` **pressed**
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **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:`pressed<class_BaseButton_property_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_shortcut:
 
-- :ref:`ShortCut<class_ShortCut>` **shortcut**
+.. rst-class:: classref-property
 
-+----------+---------------------+
-| *Setter* | set_shortcut(value) |
-+----------+---------------------+
-| *Getter* | get_shortcut()      |
-+----------+---------------------+
+:ref:`ShortCut<class_ShortCut>` **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_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:`pressed<class_BaseButton_property_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``.
 
@@ -348,3 +462,4 @@ Changes the :ref:`pressed<class_BaseButton_property_pressed>` state of the butto
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 217 - 88
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,290 +44,414 @@ 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
 
 Methods
 -------
 
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Quat<class_Quat>` from **)**                                                                                     |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` from **)**                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                              |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)** |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`determinant<class_Basis_method_determinant>` **(** **)**                                                                                                      |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_euler<class_Basis_method_get_euler>` **(** **)**                                                                                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`         | :ref:`get_orthogonal_index<class_Basis_method_get_orthogonal_index>` **(** **)**                                                                                    |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Quat<class_Quat>`       | :ref:`get_rotation_quat<class_Basis_method_get_rotation_quat>` **(** **)**                                                                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`get_scale<class_Basis_method_get_scale>` **(** **)**                                                                                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`inverse<class_Basis_method_inverse>` **(** **)**                                                                                                              |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` **(** :ref:`Basis<class_Basis>` b, :ref:`float<class_float>` epsilon=1e-05 **)**                         |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`orthonormalized<class_Basis_method_orthonormalized>` **(** **)**                                                                                              |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`rotated<class_Basis_method_rotated>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`scaled<class_Basis_method_scaled>` **(** :ref:`Vector3<class_Vector3>` scale **)**                                                                            |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`slerp<class_Basis_method_slerp>` **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)**                                                   |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`tdotx<class_Basis_method_tdotx>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`tdoty<class_Basis_method_tdoty>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`     | :ref:`tdotz<class_Basis_method_tdotz>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Basis<class_Basis>`     | :ref:`transposed<class_Basis_method_transposed>` **(** **)**                                                                                                        |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`xform<class_Basis_method_xform>` **(** :ref:`Vector3<class_Vector3>` v **)**                                                                                  |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector3<class_Vector3>` | :ref:`xform_inv<class_Basis_method_xform_inv>` **(** :ref:`Vector3<class_Vector3>` v **)**                                                                          |
-+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Quat<class_Quat>` from **)**                                                                                     |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` from **)**                                                                               |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                              |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`Basis<class_Basis_method_Basis>` **(** :ref:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)** |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`determinant<class_Basis_method_determinant>` **(** **)**                                                                                                      |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_euler<class_Basis_method_get_euler>` **(** **)**                                                                                                          |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`         | :ref:`get_orthogonal_index<class_Basis_method_get_orthogonal_index>` **(** **)**                                                                                    |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Quat<class_Quat>`       | :ref:`get_rotation_quat<class_Basis_method_get_rotation_quat>` **(** **)**                                                                                          |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`get_scale<class_Basis_method_get_scale>` **(** **)**                                                                                                          |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`inverse<class_Basis_method_inverse>` **(** **)**                                                                                                              |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`       | :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` **(** :ref:`Basis<class_Basis>` b, :ref:`float<class_float>` epsilon=1e-05 **)**                         |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`orthonormalized<class_Basis_method_orthonormalized>` **(** **)**                                                                                              |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`rotated<class_Basis_method_rotated>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**                                          |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`scaled<class_Basis_method_scaled>` **(** :ref:`Vector3<class_Vector3>` scale **)**                                                                            |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`slerp<class_Basis_method_slerp>` **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)**                                                   |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`tdotx<class_Basis_method_tdotx>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`tdoty<class_Basis_method_tdoty>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`     | :ref:`tdotz<class_Basis_method_tdotz>` **(** :ref:`Vector3<class_Vector3>` with **)**                                                                               |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Basis<class_Basis>`     | :ref:`transposed<class_Basis_method_transposed>` **(** **)**                                                                                                        |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`xform<class_Basis_method_xform>` **(** :ref:`Vector3<class_Vector3>` v **)**                                                                                  |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`xform_inv<class_Basis_method_xform_inv>` **(** :ref:`Vector3<class_Vector3>` v **)**                                                                          |
+   +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. 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
+
 Method Descriptions
 -------------------
 
 .. _class_Basis_method_Basis:
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Quat<class_Quat>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Quat<class_Quat>` 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>` from **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` from **)**
 
 Constructs a pure rotation basis matrix from the given Euler angles (in the YXZ convention: when \*composing\*, first Y, then X, and Z last), given in the vector format as (X angle, Y angle, Z angle).
 
 Consider using the :ref:`Quat<class_Quat>` constructor instead, which uses a quaternion instead of Euler angles.
 
+.. rst-class:: classref-item-separator
+
 ----
 
-- :ref:`Basis<class_Basis>` **Basis** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
+.. rst-class:: classref-method
+
+: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:`Vector3<class_Vector3>` x_axis, :ref:`Vector3<class_Vector3>` y_axis, :ref:`Vector3<class_Vector3>` z_axis **)**
+.. rst-class:: classref-method
+
+: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-item-separator
+
 ----
 
 .. _class_Basis_method_determinant:
 
-- :ref:`float<class_float>` **determinant** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **determinant** **(** **)**
 
 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_get_euler:
 
-- :ref:`Vector3<class_Vector3>` **get_euler** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_euler** **(** **)**
 
 Returns the basis's rotation in the form of Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last). The returned vector contains the rotation angles in the format (X angle, Y angle, Z angle).
 
 Consider using the :ref:`get_rotation_quat<class_Basis_method_get_rotation_quat>` method instead, which returns a :ref:`Quat<class_Quat>` quaternion instead of Euler angles.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_get_orthogonal_index:
 
-- :ref:`int<class_int>` **get_orthogonal_index** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_orthogonal_index** **(** **)**
 
 This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index of the point best representing the orientation of the object. It is mainly used by the :ref:`GridMap<class_GridMap>` editor. For further details, refer to the Godot source code.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_get_rotation_quat:
 
-- :ref:`Quat<class_Quat>` **get_rotation_quat** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Quat<class_Quat>` **get_rotation_quat** **(** **)**
 
 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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **get_scale** **(** **)**
 
 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** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **inverse** **(** **)**
 
 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, :ref:`float<class_float>` epsilon=1e-05 **)**
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Basis<class_Basis>` b, :ref:`float<class_float>` epsilon=1e-05 **)**
 
 Returns ``true`` if this basis and ``b`` are approximately equal, by calling ``is_equal_approx`` on each component.
 
 \ **Note:** For complicated reasons, the epsilon argument is always discarded. Don't use the epsilon argument, it does nothing.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_orthonormalized:
 
-- :ref:`Basis<class_Basis>` **orthonormalized** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **orthonormalized** **(** **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **rotated** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **scaled** **(** :ref:`Vector3<class_Vector3>` scale **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **slerp** **(** :ref:`Basis<class_Basis>` to, :ref:`float<class_float>` weight **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdotx** **(** :ref:`Vector3<class_Vector3>` with **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdoty** **(** :ref:`Vector3<class_Vector3>` with **)**
 
 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 **)**
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **tdotz** **(** :ref:`Vector3<class_Vector3>` with **)**
 
 Transposed dot product with the Z axis of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_transposed:
 
-- :ref:`Basis<class_Basis>` **transposed** **(** **)**
+.. rst-class:: classref-method
+
+:ref:`Basis<class_Basis>` **transposed** **(** **)**
 
 Returns the transposed version of the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_xform:
 
-- :ref:`Vector3<class_Vector3>` **xform** **(** :ref:`Vector3<class_Vector3>` v **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **xform** **(** :ref:`Vector3<class_Vector3>` v **)**
 
 Returns a vector transformed (multiplied) by the matrix.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Basis_method_xform_inv:
 
-- :ref:`Vector3<class_Vector3>` **xform_inv** **(** :ref:`Vector3<class_Vector3>` v **)**
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **xform_inv** **(** :ref:`Vector3<class_Vector3>` v **)**
 
 Returns a vector transformed (multiplied) by the transposed basis matrix.
 
@@ -332,3 +460,4 @@ Returns a vector transformed (multiplied) by the transposed basis matrix.
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 94 - 34
classes/class_bitmap.rst

@@ -14,125 +14,185 @@ 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:`Vector2<class_Vector2>` 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:`Vector2<class_Vector2>` position **)** |const|                                                           |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>` | :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:`Rect2<class_Rect2>` rect **)**                                         |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`     | :ref:`opaque_to_polygons<class_BitMap_method_opaque_to_polygons>` **(** :ref:`Rect2<class_Rect2>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|      |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`resize<class_BitMap_method_resize>` **(** :ref:`Vector2<class_Vector2>` new_size **)**                                                                     |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_bit<class_BitMap_method_set_bit>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`bool<class_bool>` bit **)**                                      |
-+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                          | :ref:`set_bit_rect<class_BitMap_method_set_bit_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :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:`Vector2<class_Vector2>` 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:`Vector2<class_Vector2>` position **)** |const|                                                           |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>` | :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:`Rect2<class_Rect2>` rect **)**                                         |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`     | :ref:`opaque_to_polygons<class_BitMap_method_opaque_to_polygons>` **(** :ref:`Rect2<class_Rect2>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|      |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`resize<class_BitMap_method_resize>` **(** :ref:`Vector2<class_Vector2>` new_size **)**                                                                     |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`set_bit<class_BitMap_method_set_bit>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`bool<class_bool>` bit **)**                                      |
+   +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                          | :ref:`set_bit_rect<class_BitMap_method_set_bit_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :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 ``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:`Vector2<class_Vector2>` size **)**
+.. rst-class:: classref-method
+
+void **create** **(** :ref:`Vector2<class_Vector2>` 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:`Vector2<class_Vector2>` position **)** |const|
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **get_bit** **(** :ref:`Vector2<class_Vector2>` position **)** |const|
 
 Returns bitmap's value at the specified position.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_get_size:
 
-- :ref:`Vector2<class_Vector2>` **get_size** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **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 amount 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:`Rect2<class_Rect2>` rect **)**
+.. rst-class:: classref-method
+
+void **grow_mask** **(** :ref:`int<class_int>` pixels, :ref:`Rect2<class_Rect2>` 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:`Array<class_Array>` **opaque_to_polygons** **(** :ref:`Rect2<class_Rect2>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>` **opaque_to_polygons** **(** :ref:`Rect2<class_Rect2>` rect, :ref:`float<class_float>` epsilon=2.0 **)** |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_BitMap_method_resize:
 
-- void **resize** **(** :ref:`Vector2<class_Vector2>` new_size **)**
+.. rst-class:: classref-method
+
+void **resize** **(** :ref:`Vector2<class_Vector2>` new_size **)**
 
 Resizes the image to ``new_size``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitMap_method_set_bit:
 
-- void **set_bit** **(** :ref:`Vector2<class_Vector2>` position, :ref:`bool<class_bool>` bit **)**
+.. rst-class:: classref-method
+
+void **set_bit** **(** :ref:`Vector2<class_Vector2>` position, :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:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` bit **)**
+.. rst-class:: classref-method
+
+void **set_bit_rect** **(** :ref:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` bit **)**
 
 Sets a rectangular portion of the bitmap to the specified value.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 125 - 66
classes/class_bitmapfont.rst

@@ -16,173 +16,232 @@ Renders text using fonts under the `BMFont <https://www.angelcode.com/products/b
 
 Handles files with the ``.fnt`` extension.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 Renders text using ``*.fnt`` fonts containing texture atlases. Supports distance fields. For using vector font files like TTF directly, see :ref:`DynamicFont<class_DynamicFont>`.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-------------------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`ascent<class_BitmapFont_property_ascent>`                 | ``0.0``   |
-+-------------------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`bool<class_bool>`             | :ref:`distance_field<class_BitmapFont_property_distance_field>` | ``false`` |
-+-------------------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`BitmapFont<class_BitmapFont>` | :ref:`fallback<class_BitmapFont_property_fallback>`             |           |
-+-------------------------------------+-----------------------------------------------------------------+-----------+
-| :ref:`float<class_float>`           | :ref:`height<class_BitmapFont_property_height>`                 | ``1.0``   |
-+-------------------------------------+-----------------------------------------------------------------+-----------+
+.. table::
+   :widths: auto
+
+   +-------------------------------------+-----------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`ascent<class_BitmapFont_property_ascent>`                 | ``0.0``   |
+   +-------------------------------------+-----------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`             | :ref:`distance_field<class_BitmapFont_property_distance_field>` | ``false`` |
+   +-------------------------------------+-----------------------------------------------------------------+-----------+
+   | :ref:`BitmapFont<class_BitmapFont>` | :ref:`fallback<class_BitmapFont_property_fallback>`             |           |
+   +-------------------------------------+-----------------------------------------------------------------+-----------+
+   | :ref:`float<class_float>`           | :ref:`height<class_BitmapFont_property_height>`                 | ``1.0``   |
+   +-------------------------------------+-----------------------------------------------------------------+-----------+
+
+.. rst-class:: classref-reftable-group
 
 Methods
 -------
 
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`add_char<class_BitmapFont_method_add_char>` **(** :ref:`int<class_int>` character, :ref:`int<class_int>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`Vector2<class_Vector2>` align=Vector2( 0, 0 ), :ref:`float<class_float>` advance=-1 **)** |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`add_kerning_pair<class_BitmapFont_method_add_kerning_pair>` **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b, :ref:`int<class_int>` kerning **)**                                                                                 |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`add_texture<class_BitmapFont_method_add_texture>` **(** :ref:`Texture<class_Texture>` texture **)**                                                                                                                                               |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`clear<class_BitmapFont_method_clear>` **(** **)**                                                                                                                                                                                                 |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`create_from_fnt<class_BitmapFont_method_create_from_fnt>` **(** :ref:`String<class_String>` path **)**                                                                                                                                            |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                 | :ref:`get_kerning_pair<class_BitmapFont_method_get_kerning_pair>` **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b **)** |const|                                                                                                        |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture<class_Texture>`         | :ref:`get_texture<class_BitmapFont_method_get_texture>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                   |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                 | :ref:`get_texture_count<class_BitmapFont_method_get_texture_count>` **(** **)** |const|                                                                                                                                                                 |
-+---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`add_char<class_BitmapFont_method_add_char>` **(** :ref:`int<class_int>` character, :ref:`int<class_int>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`Vector2<class_Vector2>` align=Vector2( 0, 0 ), :ref:`float<class_float>` advance=-1 **)** |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`add_kerning_pair<class_BitmapFont_method_add_kerning_pair>` **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b, :ref:`int<class_int>` kerning **)**                                                                                 |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`add_texture<class_BitmapFont_method_add_texture>` **(** :ref:`Texture<class_Texture>` texture **)**                                                                                                                                               |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`clear<class_BitmapFont_method_clear>` **(** **)**                                                                                                                                                                                                 |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`create_from_fnt<class_BitmapFont_method_create_from_fnt>` **(** :ref:`String<class_String>` path **)**                                                                                                                                            |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                 | :ref:`get_kerning_pair<class_BitmapFont_method_get_kerning_pair>` **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b **)** |const|                                                                                                        |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Texture<class_Texture>`         | :ref:`get_texture<class_BitmapFont_method_get_texture>` **(** :ref:`int<class_int>` idx **)** |const|                                                                                                                                                   |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                 | :ref:`get_texture_count<class_BitmapFont_method_get_texture_count>` **(** **)** |const|                                                                                                                                                                 |
+   +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BitmapFont_property_ascent:
 
-- :ref:`float<class_float>` **ascent**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **ascent** = ``0.0``
 
-+-----------+-------------------+
-| *Default* | ``0.0``           |
-+-----------+-------------------+
-| *Setter*  | set_ascent(value) |
-+-----------+-------------------+
-| *Getter*  | get_ascent()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_ascent** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_ascent** **(** **)**
 
 Ascent (number of pixels above the baseline).
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_property_distance_field:
 
-- :ref:`bool<class_bool>` **distance_field**
+.. rst-class:: classref-property
 
-+-----------+--------------------------------+
-| *Default* | ``false``                      |
-+-----------+--------------------------------+
-| *Setter*  | set_distance_field_hint(value) |
-+-----------+--------------------------------+
-| *Getter*  | is_distance_field_hint()       |
-+-----------+--------------------------------+
+:ref:`bool<class_bool>` **distance_field** = ``false``
+
+.. rst-class:: classref-property-setget
+
+- void **set_distance_field_hint** **(** :ref:`bool<class_bool>` value **)**
+- :ref:`bool<class_bool>` **is_distance_field_hint** **(** **)**
 
 If ``true``, distance field hint is enabled.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_property_fallback:
 
-- :ref:`BitmapFont<class_BitmapFont>` **fallback**
+.. rst-class:: classref-property
+
+:ref:`BitmapFont<class_BitmapFont>` **fallback**
+
+.. rst-class:: classref-property-setget
 
-+----------+---------------------+
-| *Setter* | set_fallback(value) |
-+----------+---------------------+
-| *Getter* | get_fallback()      |
-+----------+---------------------+
+- void **set_fallback** **(** :ref:`BitmapFont<class_BitmapFont>` value **)**
+- :ref:`BitmapFont<class_BitmapFont>` **get_fallback** **(** **)**
 
 The fallback font.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_property_height:
 
-- :ref:`float<class_float>` **height**
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **height** = ``1.0``
 
-+-----------+-------------------+
-| *Default* | ``1.0``           |
-+-----------+-------------------+
-| *Setter*  | set_height(value) |
-+-----------+-------------------+
-| *Getter*  | get_height()      |
-+-----------+-------------------+
+.. rst-class:: classref-property-setget
+
+- void **set_height** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_height** **(** **)**
 
 Total font height (ascent plus descent) in pixels.
 
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
 Method Descriptions
 -------------------
 
 .. _class_BitmapFont_method_add_char:
 
-- void **add_char** **(** :ref:`int<class_int>` character, :ref:`int<class_int>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`Vector2<class_Vector2>` align=Vector2( 0, 0 ), :ref:`float<class_float>` advance=-1 **)**
+.. rst-class:: classref-method
+
+void **add_char** **(** :ref:`int<class_int>` character, :ref:`int<class_int>` texture, :ref:`Rect2<class_Rect2>` rect, :ref:`Vector2<class_Vector2>` align=Vector2( 0, 0 ), :ref:`float<class_float>` advance=-1 **)**
 
 Adds a character to the font, where ``character`` is the Unicode value, ``texture`` is the texture index, ``rect`` is the region in the texture (in pixels!), ``align`` is the (optional) alignment for the character and ``advance`` is the (optional) advance.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_method_add_kerning_pair:
 
-- void **add_kerning_pair** **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b, :ref:`int<class_int>` kerning **)**
+.. rst-class:: classref-method
 
-Adds a kerning pair to the ``BitmapFont`` as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
+void **add_kerning_pair** **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b, :ref:`int<class_int>` kerning **)**
+
+Adds a kerning pair to the **BitmapFont** as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
+
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_BitmapFont_method_add_texture:
 
-- void **add_texture** **(** :ref:`Texture<class_Texture>` texture **)**
+.. rst-class:: classref-method
+
+void **add_texture** **(** :ref:`Texture<class_Texture>` texture **)**
+
+Adds a texture to the **BitmapFont**.
 
-Adds a texture to the ``BitmapFont``.
+.. rst-class:: classref-item-separator
 
 ----
 
 .. _class_BitmapFont_method_clear:
 
-- void **clear** **(** **)**
+.. rst-class:: classref-method
+
+void **clear** **(** **)**
 
 Clears all the font data and settings.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_method_create_from_fnt:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **create_from_fnt** **(** :ref:`String<class_String>` path **)**
+.. rst-class:: classref-method
+
+:ref:`Error<enum_@GlobalScope_Error>` **create_from_fnt** **(** :ref:`String<class_String>` path **)**
 
 Creates a BitmapFont from the ``*.fnt`` file at ``path``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_method_get_kerning_pair:
 
-- :ref:`int<class_int>` **get_kerning_pair** **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_kerning_pair** **(** :ref:`int<class_int>` char_a, :ref:`int<class_int>` char_b **)** |const|
 
 Returns a kerning pair as a difference.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_method_get_texture:
 
-- :ref:`Texture<class_Texture>` **get_texture** **(** :ref:`int<class_int>` idx **)** |const|
+.. rst-class:: classref-method
+
+:ref:`Texture<class_Texture>` **get_texture** **(** :ref:`int<class_int>` idx **)** |const|
 
 Returns the font atlas texture at index ``idx``.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_BitmapFont_method_get_texture_count:
 
-- :ref:`int<class_int>` **get_texture_count** **(** **)** |const|
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_texture_count** **(** **)** |const|
 
 Returns the number of textures in the BitmapFont atlas.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 66 - 31
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,84 +27,117 @@ 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:`float<class_float>`             | :ref:`default_length<class_Bone2D_property_default_length>` | ``16.0``                            |
-+---------------------------------------+-------------------------------------------------------------+-------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`rest<class_Bone2D_property_rest>`                     | ``Transform2D( 0, 0, 0, 0, 0, 0 )`` |
-+---------------------------------------+-------------------------------------------------------------+-------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+-------------------------------------------------------------+-------------------------------------+
+   | :ref:`float<class_float>`             | :ref:`default_length<class_Bone2D_property_default_length>` | ``16.0``                            |
+   +---------------------------------------+-------------------------------------------------------------+-------------------------------------+
+   | :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:`int<class_int>`                 | :ref:`get_index_in_skeleton<class_Bone2D_method_get_index_in_skeleton>` **(** **)** |const| |
-+---------------------------------------+---------------------------------------------------------------------------------------------+
-| :ref:`Transform2D<class_Transform2D>` | :ref:`get_skeleton_rest<class_Bone2D_method_get_skeleton_rest>` **(** **)** |const|         |
-+---------------------------------------+---------------------------------------------------------------------------------------------+
+.. table::
+   :widths: auto
+
+   +---------------------------------------+---------------------------------------------------------------------------------------------+
+   | void                                  | :ref:`apply_rest<class_Bone2D_method_apply_rest>` **(** **)**                               |
+   +---------------------------------------+---------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                 | :ref:`get_index_in_skeleton<class_Bone2D_method_get_index_in_skeleton>` **(** **)** |const| |
+   +---------------------------------------+---------------------------------------------------------------------------------------------+
+   | :ref:`Transform2D<class_Transform2D>` | :ref:`get_skeleton_rest<class_Bone2D_method_get_skeleton_rest>` **(** **)** |const|         |
+   +---------------------------------------+---------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_Bone2D_property_default_length:
 
-- :ref:`float<class_float>` **default_length**
+.. rst-class:: classref-property
 
-+-----------+---------------------------+
-| *Default* | ``16.0``                  |
-+-----------+---------------------------+
-| *Setter*  | set_default_length(value) |
-+-----------+---------------------------+
-| *Getter*  | get_default_length()      |
-+-----------+---------------------------+
+:ref:`float<class_float>` **default_length** = ``16.0``
+
+.. rst-class:: classref-property-setget
+
+- void **set_default_length** **(** :ref:`float<class_float>` value **)**
+- :ref:`float<class_float>` **get_default_length** **(** **)**
 
 Length of the bone's representation drawn in the editor's viewport in pixels.
 
+.. rst-class:: classref-item-separator
+
 ----
 
 .. _class_Bone2D_property_rest:
 
-- :ref:`Transform2D<class_Transform2D>` **rest**
+.. rst-class:: classref-property
 
-+-----------+-------------------------------------+
-| *Default* | ``Transform2D( 0, 0, 0, 0, 0, 0 )`` |
-+-----------+-------------------------------------+
-| *Setter*  | set_rest(value)                     |
-+-----------+-------------------------------------+
-| *Getter*  | get_rest()                          |
-+-----------+-------------------------------------+
+:ref:`Transform2D<class_Transform2D>` **rest** = ``Transform2D( 0, 0, 0, 0, 0, 0 )``
+
+.. rst-class:: classref-property-setget
+
+- 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_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_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.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

+ 24 - 11
classes/class_boneattachment.rst

@@ -14,35 +14,48 @@ BoneAttachment
 
 A node that will attach to a bone.
 
+.. rst-class:: classref-introduction-group
+
 Description
 -----------
 
 This node must be the child of a :ref:`Skeleton<class_Skeleton>` node. You can then select a bone for this node to attach to. The BoneAttachment node will copy the transform of the selected bone.
 
+.. rst-class:: classref-reftable-group
+
 Properties
 ----------
 
-+-----------------------------+-----------------------------------------------------------+--------+
-| :ref:`String<class_String>` | :ref:`bone_name<class_BoneAttachment_property_bone_name>` | ``""`` |
-+-----------------------------+-----------------------------------------------------------+--------+
+.. table::
+   :widths: auto
+
+   +-----------------------------+-----------------------------------------------------------+--------+
+   | :ref:`String<class_String>` | :ref:`bone_name<class_BoneAttachment_property_bone_name>` | ``""`` |
+   +-----------------------------+-----------------------------------------------------------+--------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
 
 Property Descriptions
 ---------------------
 
 .. _class_BoneAttachment_property_bone_name:
 
-- :ref:`String<class_String>` **bone_name**
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **bone_name** = ``""``
+
+.. rst-class:: classref-property-setget
 
-+-----------+----------------------+
-| *Default* | ``""``               |
-+-----------+----------------------+
-| *Setter*  | set_bone_name(value) |
-+-----------+----------------------+
-| *Getter*  | get_bone_name()      |
-+-----------+----------------------+
+- void **set_bone_name** **(** :ref:`String<class_String>` value **)**
+- :ref:`String<class_String>` **get_bone_name** **(** **)**
 
 The name of the attached bone.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
+.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor