2
0
Эх сурвалжийг харах

Sync classref with current source

Rémi Verschelde 5 жил өмнө
parent
commit
342d2ff3a6
52 өөрчлөгдсөн 897 нэмэгдсэн , 355 устгасан
  1. 53 53
      classes/class_astar.rst
  2. 49 49
      classes/class_astar2d.rst
  3. 12 2
      classes/class_camera2d.rst
  4. 7 3
      classes/class_camerafeed.rst
  5. 38 3
      classes/class_clippedcamera.rst
  6. 27 21
      classes/class_colorpicker.rst
  7. 6 0
      classes/class_configfile.rst
  8. 41 1
      classes/class_crypto.rst
  9. 12 1
      classes/class_cryptokey.rst
  10. 2 2
      classes/class_editorspatialgizmo.rst
  11. 5 3
      classes/class_environment.rst
  12. 2 2
      classes/class_font.rst
  13. 35 1
      classes/class_gdnativelibrary.rst
  14. 3 1
      classes/class_gridcontainer.rst
  15. 39 4
      classes/class_hashingcontext.rst
  16. 2 0
      classes/class_input.rst
  17. 17 17
      classes/class_mainloop.rst
  18. 10 6
      classes/class_meshlibrary.rst
  19. 5 0
      classes/class_mutex.rst
  20. 5 5
      classes/class_os.rst
  21. 128 100
      classes/class_popupmenu.rst
  22. 47 37
      classes/class_projectsettings.rst
  23. 12 1
      classes/class_reflectionprobe.rst
  24. 8 0
      classes/class_rigidbody.rst
  25. 4 0
      classes/class_rigidbody2d.rst
  26. 3 3
      classes/class_scenetreetimer.rst
  27. 3 3
      classes/class_scriptcreatedialog.rst
  28. 5 0
      classes/class_semaphore.rst
  29. 14 0
      classes/class_skeleton.rst
  30. 3 1
      classes/class_skeleton2d.rst
  31. 4 0
      classes/class_staticbody.rst
  32. 4 0
      classes/class_staticbody2d.rst
  33. 12 0
      classes/class_streampeer.rst
  34. 3 1
      classes/class_streampeerssl.rst
  35. 22 8
      classes/class_string.rst
  36. 2 0
      classes/class_surfacetool.rst
  37. 1 1
      classes/class_textureprogress.rst
  38. 5 0
      classes/class_thread.rst
  39. 24 0
      classes/class_treeitem.rst
  40. 2 0
      classes/class_videoplayer.rst
  41. 25 0
      classes/class_visualscriptcomposearray.rst
  42. 83 0
      classes/class_visualscriptlists.rst
  43. 0 0
      classes/class_visualscriptnode.rst
  44. 0 6
      classes/class_visualshader.rst
  45. 0 0
      classes/class_visualshadernode.rst
  46. 1 8
      classes/class_visualshadernodecubemapuniform.rst
  47. 7 0
      classes/class_visualshadernodescalarswitch.rst
  48. 1 1
      classes/class_visualshadernodeswitch.rst
  49. 1 1
      classes/class_visualshadernodetextureuniform.rst
  50. 41 9
      classes/class_websocketclient.rst
  51. 50 0
      classes/class_websocketserver.rst
  52. 12 1
      classes/class_x509certificate.rst

+ 53 - 53
classes/class_astar.rst

@@ -21,57 +21,57 @@ AStar class representation that uses 3d-vectors as edges.
 Methods
 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 **)** 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:`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 **)** 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 **)**                   |
-+-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :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 **)** 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:`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 **)**                      |
++-------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 Description
 Description
 -----------
 -----------
@@ -147,9 +147,9 @@ Returns the next available point ID with no point associated to it.
 
 
 .. _class_AStar_method_get_closest_point:
 .. _class_AStar_method_get_closest_point:
 
 
-- :ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector3<class_Vector3>` to_position **)** const
+- :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``. Returns -1 if there are no points in the points pool.
+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.
 
 
 .. _class_AStar_method_get_closest_position_in_segment:
 .. _class_AStar_method_get_closest_position_in_segment:
 
 

+ 49 - 49
classes/class_astar2d.rst

@@ -21,53 +21,53 @@ AStar class representation that uses 2d-vectors as edges.
 Methods
 Methods
 -------
 -------
 
 
-+-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| 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 **)** 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:`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 **)** 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 **)**                   |
-+-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| 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 **)** 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:`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 **)**                      |
++-------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 Description
 Description
 -----------
 -----------
@@ -129,9 +129,9 @@ Returns the next available point ID with no point associated to it.
 
 
 .. _class_AStar2D_method_get_closest_point:
 .. _class_AStar2D_method_get_closest_point:
 
 
-- :ref:`int<class_int>` **get_closest_point** **(** :ref:`Vector2<class_Vector2>` to_position **)** const
+- :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``. Returns -1 if there are no points in the points pool.
+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.
 
 
 .. _class_AStar2D_method_get_closest_position_in_segment:
 .. _class_AStar2D_method_get_closest_position_in_segment:
 
 

+ 12 - 2
classes/class_camera2d.rst

@@ -123,9 +123,9 @@ enum **AnchorMode**:
 
 
 enum **Camera2DProcessMode**:
 enum **Camera2DProcessMode**:
 
 
-- **CAMERA2D_PROCESS_PHYSICS** = **0**
+- **CAMERA2D_PROCESS_PHYSICS** = **0** --- The camera updates with the ``_physics_process`` callback.
 
 
-- **CAMERA2D_PROCESS_IDLE** = **1**
+- **CAMERA2D_PROCESS_IDLE** = **1** --- The camera updates with the ``_process`` callback.
 
 
 Description
 Description
 -----------
 -----------
@@ -429,6 +429,8 @@ The vertical offset of the camera, relative to the drag margins.
 | *Getter*  | get_process_mode()      |
 | *Getter*  | get_process_mode()      |
 +-----------+-------------------------+
 +-----------+-------------------------+
 
 
+The camera's process callback. See :ref:`Camera2DProcessMode<enum_Camera2D_Camera2DProcessMode>`.
+
 .. _class_Camera2D_property_rotating:
 .. _class_Camera2D_property_rotating:
 
 
 - :ref:`bool<class_bool>` **rotating**
 - :ref:`bool<class_bool>` **rotating**
@@ -522,10 +524,14 @@ Returns the location of the ``Camera2D``'s screen-center, relative to the origin
 
 
 - :ref:`float<class_float>` **get_drag_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** const
 - :ref:`float<class_float>` **get_drag_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** const
 
 
+Returns the specified margin. See also :ref:`drag_margin_bottom<class_Camera2D_property_drag_margin_bottom>`, :ref:`drag_margin_top<class_Camera2D_property_drag_margin_top>`, :ref:`drag_margin_left<class_Camera2D_property_drag_margin_left>`, and :ref:`drag_margin_right<class_Camera2D_property_drag_margin_right>`.
+
 .. _class_Camera2D_method_get_limit:
 .. _class_Camera2D_method_get_limit:
 
 
 - :ref:`int<class_int>` **get_limit** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** const
 - :ref:`int<class_int>` **get_limit** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** const
 
 
+Returns the specified camera limit. See also :ref:`limit_bottom<class_Camera2D_property_limit_bottom>`, :ref:`limit_top<class_Camera2D_property_limit_top>`, :ref:`limit_left<class_Camera2D_property_limit_left>`, and :ref:`limit_right<class_Camera2D_property_limit_right>`.
+
 .. _class_Camera2D_method_make_current:
 .. _class_Camera2D_method_make_current:
 
 
 - void **make_current** **(** **)**
 - void **make_current** **(** **)**
@@ -544,7 +550,11 @@ This has no effect if smoothing is disabled.
 
 
 - void **set_drag_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`float<class_float>` drag_margin **)**
 - void **set_drag_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`float<class_float>` drag_margin **)**
 
 
+Sets the specified margin. See also :ref:`drag_margin_bottom<class_Camera2D_property_drag_margin_bottom>`, :ref:`drag_margin_top<class_Camera2D_property_drag_margin_top>`, :ref:`drag_margin_left<class_Camera2D_property_drag_margin_left>`, and :ref:`drag_margin_right<class_Camera2D_property_drag_margin_right>`.
+
 .. _class_Camera2D_method_set_limit:
 .. _class_Camera2D_method_set_limit:
 
 
 - void **set_limit** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` limit **)**
 - void **set_limit** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` limit **)**
 
 
+Sets the specified camera limit. See also :ref:`limit_bottom<class_Camera2D_property_limit_bottom>`, :ref:`limit_top<class_Camera2D_property_limit_top>`, :ref:`limit_left<class_Camera2D_property_limit_left>`, and :ref:`limit_right<class_Camera2D_property_limit_right>`.
+

+ 7 - 3
classes/class_camerafeed.rst

@@ -99,6 +99,8 @@ Property Descriptions
 | *Getter*  | is_active()       |
 | *Getter*  | is_active()       |
 +-----------+-------------------+
 +-----------+-------------------+
 
 
+If ``true``, the feed is active.
+
 .. _class_CameraFeed_property_feed_transform:
 .. _class_CameraFeed_property_feed_transform:
 
 
 - :ref:`Transform2D<class_Transform2D>` **feed_transform**
 - :ref:`Transform2D<class_Transform2D>` **feed_transform**
@@ -111,6 +113,8 @@ Property Descriptions
 | *Getter*  | get_transform()                  |
 | *Getter*  | get_transform()                  |
 +-----------+----------------------------------+
 +-----------+----------------------------------+
 
 
+The transform applied to the camera's image.
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -118,17 +122,17 @@ Method Descriptions
 
 
 - :ref:`int<class_int>` **get_id** **(** **)** const
 - :ref:`int<class_int>` **get_id** **(** **)** const
 
 
-Gets the unique ID for this feed.
+Returns the unique ID for this feed.
 
 
 .. _class_CameraFeed_method_get_name:
 .. _class_CameraFeed_method_get_name:
 
 
 - :ref:`String<class_String>` **get_name** **(** **)** const
 - :ref:`String<class_String>` **get_name** **(** **)** const
 
 
-Gets the camera's name.
+Returns the camera's name.
 
 
 .. _class_CameraFeed_method_get_position:
 .. _class_CameraFeed_method_get_position:
 
 
 - :ref:`FeedPosition<enum_CameraFeed_FeedPosition>` **get_position** **(** **)** const
 - :ref:`FeedPosition<enum_CameraFeed_FeedPosition>` **get_position** **(** **)** const
 
 
-Position of camera on the device.
+Returns the position of camera on the device.
 
 

+ 38 - 3
classes/class_clippedcamera.rst

@@ -16,7 +16,7 @@ ClippedCamera
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+A :ref:`Camera<class_Camera>` that includes collision.
 
 
 Properties
 Properties
 ----------
 ----------
@@ -65,9 +65,14 @@ Enumerations
 
 
 enum **ProcessMode**:
 enum **ProcessMode**:
 
 
-- **CLIP_PROCESS_PHYSICS** = **0**
+- **CLIP_PROCESS_PHYSICS** = **0** --- The camera updates with the ``_physics_process`` callback.
+
+- **CLIP_PROCESS_IDLE** = **1** --- The camera updates with the ``_process`` callback.
+
+Description
+-----------
 
 
-- **CLIP_PROCESS_IDLE** = **1**
+This node extends :ref:`Camera<class_Camera>` to add collisions with :ref:`Area<class_Area>` and/or :ref:`PhysicsBody<class_PhysicsBody>` nodes. The camera cannot move through colliding objects.
 
 
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------
@@ -84,6 +89,8 @@ Property Descriptions
 | *Getter*  | is_clip_to_areas_enabled() |
 | *Getter*  | is_clip_to_areas_enabled() |
 +-----------+----------------------------+
 +-----------+----------------------------+
 
 
+If ``true``, the camera stops on contact with :ref:`Area<class_Area>`\ s.
+
 .. _class_ClippedCamera_property_clip_to_bodies:
 .. _class_ClippedCamera_property_clip_to_bodies:
 
 
 - :ref:`bool<class_bool>` **clip_to_bodies**
 - :ref:`bool<class_bool>` **clip_to_bodies**
@@ -96,6 +103,8 @@ Property Descriptions
 | *Getter*  | is_clip_to_bodies_enabled() |
 | *Getter*  | is_clip_to_bodies_enabled() |
 +-----------+-----------------------------+
 +-----------+-----------------------------+
 
 
+If ``true``, the camera stops on contact with :ref:`PhysicsBody<class_PhysicsBody>`\ s.
+
 .. _class_ClippedCamera_property_collision_mask:
 .. _class_ClippedCamera_property_collision_mask:
 
 
 - :ref:`int<class_int>` **collision_mask**
 - :ref:`int<class_int>` **collision_mask**
@@ -108,6 +117,8 @@ Property Descriptions
 | *Getter*  | get_collision_mask()      |
 | *Getter*  | get_collision_mask()      |
 +-----------+---------------------------+
 +-----------+---------------------------+
 
 
+The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected.
+
 .. _class_ClippedCamera_property_margin:
 .. _class_ClippedCamera_property_margin:
 
 
 - :ref:`float<class_float>` **margin**
 - :ref:`float<class_float>` **margin**
@@ -120,6 +131,8 @@ Property Descriptions
 | *Getter*  | get_margin()      |
 | *Getter*  | get_margin()      |
 +-----------+-------------------+
 +-----------+-------------------+
 
 
+The camera's collision margin. The camera can't get closer than this distance to a colliding object.
+
 .. _class_ClippedCamera_property_process_mode:
 .. _class_ClippedCamera_property_process_mode:
 
 
 - :ref:`ProcessMode<enum_ClippedCamera_ProcessMode>` **process_mode**
 - :ref:`ProcessMode<enum_ClippedCamera_ProcessMode>` **process_mode**
@@ -132,6 +145,8 @@ Property Descriptions
 | *Getter*  | get_process_mode()      |
 | *Getter*  | get_process_mode()      |
 +-----------+-------------------------+
 +-----------+-------------------------+
 
 
+The camera's process callback. See :ref:`ProcessMode<enum_ClippedCamera_ProcessMode>`.
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -139,31 +154,51 @@ Method Descriptions
 
 
 - void **add_exception** **(** :ref:`Object<class_Object>` node **)**
 - void **add_exception** **(** :ref:`Object<class_Object>` node **)**
 
 
+Adds a collision exception so the camera does not collide with the specified node.
+
 .. _class_ClippedCamera_method_add_exception_rid:
 .. _class_ClippedCamera_method_add_exception_rid:
 
 
 - void **add_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
 - void **add_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
 
 
+Adds a collision exception so the camera does not collide with the specified :ref:`RID<class_RID>`.
+
 .. _class_ClippedCamera_method_clear_exceptions:
 .. _class_ClippedCamera_method_clear_exceptions:
 
 
 - void **clear_exceptions** **(** **)**
 - void **clear_exceptions** **(** **)**
 
 
+Removes all collision exceptions.
+
 .. _class_ClippedCamera_method_get_clip_offset:
 .. _class_ClippedCamera_method_get_clip_offset:
 
 
 - :ref:`float<class_float>` **get_clip_offset** **(** **)** const
 - :ref:`float<class_float>` **get_clip_offset** **(** **)** const
 
 
+Returns the distance the camera has been offset due to a collision.
+
 .. _class_ClippedCamera_method_get_collision_mask_bit:
 .. _class_ClippedCamera_method_get_collision_mask_bit:
 
 
 - :ref:`bool<class_bool>` **get_collision_mask_bit** **(** :ref:`int<class_int>` bit **)** const
 - :ref:`bool<class_bool>` **get_collision_mask_bit** **(** :ref:`int<class_int>` bit **)** const
 
 
+Returns ``true`` if the specified bit index is on.
+
+**Note:** Bit indices range from 0-19.
+
 .. _class_ClippedCamera_method_remove_exception:
 .. _class_ClippedCamera_method_remove_exception:
 
 
 - void **remove_exception** **(** :ref:`Object<class_Object>` node **)**
 - void **remove_exception** **(** :ref:`Object<class_Object>` node **)**
 
 
+Removes a collision exception with the specified node.
+
 .. _class_ClippedCamera_method_remove_exception_rid:
 .. _class_ClippedCamera_method_remove_exception_rid:
 
 
 - void **remove_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
 - void **remove_exception_rid** **(** :ref:`RID<class_RID>` rid **)**
 
 
+Removes a collision exception with the specified :ref:`RID<class_RID>`.
+
 .. _class_ClippedCamera_method_set_collision_mask_bit:
 .. _class_ClippedCamera_method_set_collision_mask_bit:
 
 
 - void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
 - void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
 
 
+Sets the specified bit index to the ``value``.
+
+**Note:** Bit indices range from 0-19.
+

+ 27 - 21
classes/class_colorpicker.rst

@@ -51,27 +51,29 @@ Methods
 Theme Properties
 Theme Properties
 ----------------
 ----------------
 
 
-+-------------------------------+---------------+-----+
-| :ref:`Texture<class_Texture>` | add_preset    |     |
-+-------------------------------+---------------+-----+
-| :ref:`Texture<class_Texture>` | color_hue     |     |
-+-------------------------------+---------------+-----+
-| :ref:`Texture<class_Texture>` | color_sample  |     |
-+-------------------------------+---------------+-----+
-| :ref:`int<class_int>`         | h_width       | 30  |
-+-------------------------------+---------------+-----+
-| :ref:`int<class_int>`         | label_width   | 10  |
-+-------------------------------+---------------+-----+
-| :ref:`int<class_int>`         | margin        | 4   |
-+-------------------------------+---------------+-----+
-| :ref:`Texture<class_Texture>` | preset_bg     |     |
-+-------------------------------+---------------+-----+
-| :ref:`Texture<class_Texture>` | screen_picker |     |
-+-------------------------------+---------------+-----+
-| :ref:`int<class_int>`         | sv_height     | 256 |
-+-------------------------------+---------------+-----+
-| :ref:`int<class_int>`         | sv_width      | 256 |
-+-------------------------------+---------------+-----+
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | add_preset           |     |
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | color_hue            |     |
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | color_sample         |     |
++-------------------------------+----------------------+-----+
+| :ref:`int<class_int>`         | h_width              | 30  |
++-------------------------------+----------------------+-----+
+| :ref:`int<class_int>`         | label_width          | 10  |
++-------------------------------+----------------------+-----+
+| :ref:`int<class_int>`         | margin               | 4   |
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | overbright_indicator |     |
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | preset_bg            |     |
++-------------------------------+----------------------+-----+
+| :ref:`Texture<class_Texture>` | screen_picker        |     |
++-------------------------------+----------------------+-----+
+| :ref:`int<class_int>`         | sv_height            | 256 |
++-------------------------------+----------------------+-----+
+| :ref:`int<class_int>`         | sv_width             | 256 |
++-------------------------------+----------------------+-----+
 
 
 Signals
 Signals
 -------
 -------
@@ -172,6 +174,8 @@ If ``true``, allows editing the color with Hue/Saturation/Value sliders.
 | *Getter*  | are_presets_enabled()      |
 | *Getter*  | are_presets_enabled()      |
 +-----------+----------------------------+
 +-----------+----------------------------+
 
 
+If ``true``, the "add preset" button is enabled.
+
 .. _class_ColorPicker_property_presets_visible:
 .. _class_ColorPicker_property_presets_visible:
 
 
 - :ref:`bool<class_bool>` **presets_visible**
 - :ref:`bool<class_bool>` **presets_visible**
@@ -184,6 +188,8 @@ If ``true``, allows editing the color with Hue/Saturation/Value sliders.
 | *Getter*  | are_presets_visible()      |
 | *Getter*  | are_presets_visible()      |
 +-----------+----------------------------+
 +-----------+----------------------------+
 
 
+If ``true``, saved color presets are visible.
+
 .. _class_ColorPicker_property_raw_mode:
 .. _class_ColorPicker_property_raw_mode:
 
 
 - :ref:`bool<class_bool>` **raw_mode**
 - :ref:`bool<class_bool>` **raw_mode**

+ 6 - 0
classes/class_configfile.rst

@@ -24,6 +24,8 @@ Methods
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                          | :ref:`erase_section<class_ConfigFile_method_erase_section>` **(** :ref:`String<class_String>` section **)**                                                                            |
 | void                                          | :ref:`erase_section<class_ConfigFile_method_erase_section>` **(** :ref:`String<class_String>` section **)**                                                                            |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                          | :ref:`erase_section_key<class_ConfigFile_method_erase_section_key>` **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)**                                   |
++-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_section_keys<class_ConfigFile_method_get_section_keys>` **(** :ref:`String<class_String>` section **)** const                                                                |
 | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_section_keys<class_ConfigFile_method_get_section_keys>` **(** :ref:`String<class_String>` section **)** const                                                                |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_sections<class_ConfigFile_method_get_sections>` **(** **)** const                                                                                                            |
 | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_sections<class_ConfigFile_method_get_sections>` **(** **)** const                                                                                                            |
@@ -89,6 +91,10 @@ Method Descriptions
 
 
 Deletes the specified section along with all the key-value pairs inside.
 Deletes the specified section along with all the key-value pairs inside.
 
 
+.. _class_ConfigFile_method_erase_section_key:
+
+- void **erase_section_key** **(** :ref:`String<class_String>` section, :ref:`String<class_String>` key **)**
+
 .. _class_ConfigFile_method_get_section_keys:
 .. _class_ConfigFile_method_get_section_keys:
 
 
 - :ref:`PoolStringArray<class_PoolStringArray>` **get_section_keys** **(** :ref:`String<class_String>` section **)** const
 - :ref:`PoolStringArray<class_PoolStringArray>` **get_section_keys** **(** :ref:`String<class_String>` section **)** const

+ 41 - 1
classes/class_crypto.rst

@@ -16,7 +16,7 @@ Crypto
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+Access to advanced cryptographic functionalities.
 
 
 Methods
 Methods
 -------
 -------
@@ -29,6 +29,30 @@ Methods
 | :ref:`X509Certificate<class_X509Certificate>` | :ref:`generate_self_signed_certificate<class_Crypto_method_generate_self_signed_certificate>` **(** :ref:`CryptoKey<class_CryptoKey>` key, :ref:`String<class_String>` issuer_name="CN=myserver,O=myorganisation,C=IT", :ref:`String<class_String>` not_before="20140101000000", :ref:`String<class_String>` not_after="20340101000000" **)** |
 | :ref:`X509Certificate<class_X509Certificate>` | :ref:`generate_self_signed_certificate<class_Crypto_method_generate_self_signed_certificate>` **(** :ref:`CryptoKey<class_CryptoKey>` key, :ref:`String<class_String>` issuer_name="CN=myserver,O=myorganisation,C=IT", :ref:`String<class_String>` not_before="20140101000000", :ref:`String<class_String>` not_after="20340101000000" **)** |
 +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
+Description
+-----------
+
+The Crypto class allows you to access some more advanced cryptographic functionalities in Godot.
+
+For now, this includes generating cryptographically secure random bytes, and RSA keys and self-signed X509 certificates generation. More functionalities are planned for future releases.
+
+::
+
+    extends Node
+    
+    var crypto = Crypto.new()
+    var key = CryptoKey.new()
+    var cert = X509Certificate.new()
+    
+    func _ready():
+        # Generate new RSA key.
+        key = crypto.generate_rsa(4096)
+        # Generate new self-signed certificate with the given key.
+        cert = crypto.generate_self_signed_certificate(key, "CN=mydomain.com,O=My Game Company,C=IT")
+        # Save key and certificate in the user folder.
+        key.save("user://generated.key")
+        cert.save("user://generated.crt")
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -36,11 +60,27 @@ Method Descriptions
 
 
 - :ref:`PoolByteArray<class_PoolByteArray>` **generate_random_bytes** **(** :ref:`int<class_int>` size **)**
 - :ref:`PoolByteArray<class_PoolByteArray>` **generate_random_bytes** **(** :ref:`int<class_int>` size **)**
 
 
+Generates a :ref:`PoolByteArray<class_PoolByteArray>` of cryptographically secure random bytes with given ``size``.
+
 .. _class_Crypto_method_generate_rsa:
 .. _class_Crypto_method_generate_rsa:
 
 
 - :ref:`CryptoKey<class_CryptoKey>` **generate_rsa** **(** :ref:`int<class_int>` size **)**
 - :ref:`CryptoKey<class_CryptoKey>` **generate_rsa** **(** :ref:`int<class_int>` size **)**
 
 
+Generates an RSA :ref:`CryptoKey<class_CryptoKey>` that can be used for creating self-signed certificates and passed to :ref:`StreamPeerSSL.accept_stream<class_StreamPeerSSL_method_accept_stream>`.
+
 .. _class_Crypto_method_generate_self_signed_certificate:
 .. _class_Crypto_method_generate_self_signed_certificate:
 
 
 - :ref:`X509Certificate<class_X509Certificate>` **generate_self_signed_certificate** **(** :ref:`CryptoKey<class_CryptoKey>` key, :ref:`String<class_String>` issuer_name="CN=myserver,O=myorganisation,C=IT", :ref:`String<class_String>` not_before="20140101000000", :ref:`String<class_String>` not_after="20340101000000" **)**
 - :ref:`X509Certificate<class_X509Certificate>` **generate_self_signed_certificate** **(** :ref:`CryptoKey<class_CryptoKey>` key, :ref:`String<class_String>` issuer_name="CN=myserver,O=myorganisation,C=IT", :ref:`String<class_String>` not_before="20140101000000", :ref:`String<class_String>` not_after="20340101000000" **)**
 
 
+Generates a self-signed :ref:`X509Certificate<class_X509Certificate>` from the given :ref:`CryptoKey<class_CryptoKey>` and ``issuer_name``. The certificate validity will be defined by ``not_before`` and ``not_after`` (first valid date and last valid date). The ``issuer_name`` must contain at least "CN=" (common name, i.e. the domain name), "O=" (organization, i.e. your company name), "C=" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in).
+
+A small example to generate an RSA key and a X509 self-signed certificate.
+
+::
+
+    var crypto = Crypto.new()
+    # Generate 4096 bits RSA key.
+    var key = crypto.generate_rsa(4096)
+    # Generate self-signed certificate using the given key.
+    var cert = crypto.generate_self_signed_certificate(key, "CN=example.com,O=A Game Company,C=IT")
+

+ 12 - 1
classes/class_cryptokey.rst

@@ -16,7 +16,7 @@ CryptoKey
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+A cryptographic key (RSA).
 
 
 Methods
 Methods
 -------
 -------
@@ -27,6 +27,13 @@ Methods
 | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_CryptoKey_method_save>` **(** :ref:`String<class_String>` path **)** |
 | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_CryptoKey_method_save>` **(** :ref:`String<class_String>` path **)** |
 +---------------------------------------+---------------------------------------------------------------------------------------+
 +---------------------------------------+---------------------------------------------------------------------------------------+
 
 
+Description
+-----------
+
+The CryptoKey class represents a cryptographic key. Keys can be loaded and saved like any other :ref:`Resource<class_Resource>`.
+
+They can be used to generate a self-signed :ref:`X509Certificate<class_X509Certificate>` via :ref:`Crypto.generate_self_signed_certificate<class_Crypto_method_generate_self_signed_certificate>` and as private key in :ref:`StreamPeerSSL.accept_stream<class_StreamPeerSSL_method_accept_stream>` along with the appropriate certificate.
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -34,7 +41,11 @@ Method Descriptions
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **load** **(** :ref:`String<class_String>` path **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **load** **(** :ref:`String<class_String>` path **)**
 
 
+Loads a key from ``path`` ("\*.key" file).
+
 .. _class_CryptoKey_method_save:
 .. _class_CryptoKey_method_save:
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path **)**
 
 
+Saves a key to the given ``path`` (should be a "\*.key" file).
+

+ 2 - 2
classes/class_editorspatialgizmo.rst

@@ -30,7 +30,7 @@ Methods
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                            | :ref:`add_lines<class_EditorSpatialGizmo_method_add_lines>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` lines, :ref:`Material<class_Material>` material, :ref:`bool<class_bool>` billboard=false **)**                                                |
 | void                                                            | :ref:`add_lines<class_EditorSpatialGizmo_method_add_lines>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` lines, :ref:`Material<class_Material>` material, :ref:`bool<class_bool>` billboard=false **)**                                                |
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                            | :ref:`add_mesh<class_EditorSpatialGizmo_method_add_mesh>` **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`bool<class_bool>` billboard=false, :ref:`SkinReference<class_SkinReference>` skeleton, :ref:`Material<class_Material>` material=null **)**        |
+| void                                                            | :ref:`add_mesh<class_EditorSpatialGizmo_method_add_mesh>` **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`bool<class_bool>` billboard=false, :ref:`SkinReference<class_SkinReference>` skeleton=null, :ref:`Material<class_Material>` material=null **)**   |
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                                            | :ref:`add_unscaled_billboard<class_EditorSpatialGizmo_method_add_unscaled_billboard>` **(** :ref:`Material<class_Material>` material, :ref:`float<class_float>` default_scale=1 **)**                                                                           |
 | void                                                            | :ref:`add_unscaled_billboard<class_EditorSpatialGizmo_method_add_unscaled_billboard>` **(** :ref:`Material<class_Material>` material, :ref:`float<class_float>` default_scale=1 **)**                                                                           |
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -91,7 +91,7 @@ Adds lines to the gizmo (as sets of 2 points), with a given material. The lines
 
 
 .. _class_EditorSpatialGizmo_method_add_mesh:
 .. _class_EditorSpatialGizmo_method_add_mesh:
 
 
-- void **add_mesh** **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`bool<class_bool>` billboard=false, :ref:`SkinReference<class_SkinReference>` skeleton, :ref:`Material<class_Material>` material=null **)**
+- void **add_mesh** **(** :ref:`ArrayMesh<class_ArrayMesh>` mesh, :ref:`bool<class_bool>` billboard=false, :ref:`SkinReference<class_SkinReference>` skeleton=null, :ref:`Material<class_Material>` material=null **)**
 
 
 .. _class_EditorSpatialGizmo_method_add_unscaled_billboard:
 .. _class_EditorSpatialGizmo_method_add_unscaled_billboard:
 
 

+ 5 - 3
classes/class_environment.rst

@@ -1020,6 +1020,8 @@ Enables fog's light transmission. If enabled, lets reflections light to be trans
 | *Getter*  | is_glow_bicubic_upscale_enabled() |
 | *Getter*  | is_glow_bicubic_upscale_enabled() |
 +-----------+-----------------------------------+
 +-----------+-----------------------------------+
 
 
+Smooths out blockiness created by sampling higher levels.
+
 .. _class_Environment_property_glow_blend_mode:
 .. _class_Environment_property_glow_blend_mode:
 
 
 - :ref:`GlowBlendMode<enum_Environment_GlowBlendMode>` **glow_blend_mode**
 - :ref:`GlowBlendMode<enum_Environment_GlowBlendMode>` **glow_blend_mode**
@@ -1100,7 +1102,7 @@ Bleed scale of the HDR glow.
 | *Getter*  | get_glow_hdr_bleed_threshold()      |
 | *Getter*  | get_glow_hdr_bleed_threshold()      |
 +-----------+-------------------------------------+
 +-----------+-------------------------------------+
 
 
-Bleed threshold of the HDR glow.
+Bleed threshold of the HDR glow. In GLES2, this needs to be below 1.0 in order for glow to be visible, a default value of 0.9 works well.
 
 
 .. _class_Environment_property_glow_intensity:
 .. _class_Environment_property_glow_intensity:
 
 
@@ -1114,7 +1116,7 @@ Bleed threshold of the HDR glow.
 | *Getter*  | get_glow_intensity()      |
 | *Getter*  | get_glow_intensity()      |
 +-----------+---------------------------+
 +-----------+---------------------------+
 
 
-Glow intensity.
+Glow intensity. In GLES2, this should be increased to 1.5 by default to compensate for not using HDR.
 
 
 .. _class_Environment_property_glow_levels/1:
 .. _class_Environment_property_glow_levels/1:
 
 
@@ -1226,7 +1228,7 @@ Seventh level of glow (most global).
 | *Getter*  | get_glow_strength()      |
 | *Getter*  | get_glow_strength()      |
 +-----------+--------------------------+
 +-----------+--------------------------+
 
 
-Glow strength.
+Glow strength. In GLES2, this should be increased to 1.3 by default to compensate for not using HDR.
 
 
 .. _class_Environment_property_ss_reflections_depth_tolerance:
 .. _class_Environment_property_ss_reflections_depth_tolerance:
 
 

+ 2 - 2
classes/class_font.rst

@@ -36,7 +36,7 @@ Methods
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Vector2<class_Vector2>` | :ref:`get_string_size<class_Font_method_get_string_size>` **(** :ref:`String<class_String>` string **)** const                                                                                                                                                                                                               |
 | :ref:`Vector2<class_Vector2>` | :ref:`get_string_size<class_Font_method_get_string_size>` **(** :ref:`String<class_String>` string **)** const                                                                                                                                                                                                               |
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>` | :ref:`get_wordwrap_string_size<class_Font_method_get_wordwrap_string_size>` **(** :ref:`String<class_String>` string, :ref:`float<class_float>` p_width **)** const                                                                                                                                                          |
+| :ref:`Vector2<class_Vector2>` | :ref:`get_wordwrap_string_size<class_Font_method_get_wordwrap_string_size>` **(** :ref:`String<class_String>` string, :ref:`float<class_float>` width **)** const                                                                                                                                                            |
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`       | :ref:`has_outline<class_Font_method_has_outline>` **(** **)** const                                                                                                                                                                                                                                                          |
 | :ref:`bool<class_bool>`       | :ref:`has_outline<class_Font_method_has_outline>` **(** **)** const                                                                                                                                                                                                                                                          |
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -91,7 +91,7 @@ Returns the size of a string, taking kerning and advance into account.
 
 
 .. _class_Font_method_get_wordwrap_string_size:
 .. _class_Font_method_get_wordwrap_string_size:
 
 
-- :ref:`Vector2<class_Vector2>` **get_wordwrap_string_size** **(** :ref:`String<class_String>` string, :ref:`float<class_float>` p_width **)** const
+- :ref:`Vector2<class_Vector2>` **get_wordwrap_string_size** **(** :ref:`String<class_String>` string, :ref:`float<class_float>` width **)** const
 
 
 .. _class_Font_method_has_outline:
 .. _class_Font_method_has_outline:
 
 

+ 35 - 1
classes/class_gdnativelibrary.rst

@@ -16,7 +16,7 @@ GDNativeLibrary
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+An external library containing functions or script classes to use in Godot.
 
 
 Properties
 Properties
 ----------
 ----------
@@ -42,6 +42,18 @@ Methods
 | :ref:`String<class_String>`                   | :ref:`get_current_library_path<class_GDNativeLibrary_method_get_current_library_path>` **(** **)** const |
 | :ref:`String<class_String>`                   | :ref:`get_current_library_path<class_GDNativeLibrary_method_get_current_library_path>` **(** **)** const |
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+----------------------------------------------------------------------------------------------------------+
 
 
+Description
+-----------
+
+A GDNative library can implement :ref:`NativeScript<class_NativeScript>`\ s, global functions to call with the :ref:`GDNative<class_GDNative>` class, or low-level engine extensions through interfaces such as :ref:`ARVRInterfaceGDNative<class_ARVRInterfaceGDNative>`. The library must be compiled for each platform and architecture that the project will run on.
+
+Tutorials
+---------
+
+- :doc:`../tutorials/plugins/gdnative/gdnative-c-example`
+
+- :doc:`../tutorials/plugins/gdnative/gdnative-cpp-example`
+
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------
 
 
@@ -55,6 +67,8 @@ Property Descriptions
 | *Getter* | get_config_file()      |
 | *Getter* | get_config_file()      |
 +----------+------------------------+
 +----------+------------------------+
 
 
+This resource in INI-style :ref:`ConfigFile<class_ConfigFile>` format, as in ``.gdnlib`` files.
+
 .. _class_GDNativeLibrary_property_load_once:
 .. _class_GDNativeLibrary_property_load_once:
 
 
 - :ref:`bool<class_bool>` **load_once**
 - :ref:`bool<class_bool>` **load_once**
@@ -67,6 +81,10 @@ Property Descriptions
 | *Getter*  | should_load_once()   |
 | *Getter*  | should_load_once()   |
 +-----------+----------------------+
 +-----------+----------------------+
 
 
+If ``true``, Godot loads only one copy of the library and each script that references the library will share static data like static or global variables.
+
+If ``false``, Godot loads a separate copy of the library into memory for each script that references it.
+
 .. _class_GDNativeLibrary_property_reloadable:
 .. _class_GDNativeLibrary_property_reloadable:
 
 
 - :ref:`bool<class_bool>` **reloadable**
 - :ref:`bool<class_bool>` **reloadable**
@@ -79,6 +97,10 @@ Property Descriptions
 | *Getter*  | is_reloadable()       |
 | *Getter*  | is_reloadable()       |
 +-----------+-----------------------+
 +-----------+-----------------------+
 
 
+If ``true``, the editor will temporarily unload the library whenever the user switches away from the editor window, allowing the user to recompile the library without restarting Godot.
+
+**Note:** If the library defines tool scripts that run inside the editor, ``reloadable`` must be ``false``. Otherwise, the editor will attempt to unload the tool scripts while they're in use and crash.
+
 .. _class_GDNativeLibrary_property_singleton:
 .. _class_GDNativeLibrary_property_singleton:
 
 
 - :ref:`bool<class_bool>` **singleton**
 - :ref:`bool<class_bool>` **singleton**
@@ -91,6 +113,10 @@ Property Descriptions
 | *Getter*  | is_singleton()       |
 | *Getter*  | is_singleton()       |
 +-----------+----------------------+
 +-----------+----------------------+
 
 
+If ``true``, Godot loads the library at startup rather than the first time a script uses the library, calling ``{prefix}gdnative_singleton`` after initializing the library (where ``{prefix}`` is the value of :ref:`symbol_prefix<class_GDNativeLibrary_property_symbol_prefix>`). The library remains loaded as long as Godot is running.
+
+**Note:** A singleton library cannot be :ref:`reloadable<class_GDNativeLibrary_property_reloadable>`.
+
 .. _class_GDNativeLibrary_property_symbol_prefix:
 .. _class_GDNativeLibrary_property_symbol_prefix:
 
 
 - :ref:`String<class_String>` **symbol_prefix**
 - :ref:`String<class_String>` **symbol_prefix**
@@ -103,6 +129,10 @@ Property Descriptions
 | *Getter*  | get_symbol_prefix()      |
 | *Getter*  | get_symbol_prefix()      |
 +-----------+--------------------------+
 +-----------+--------------------------+
 
 
+The prefix this library's entry point functions begin with. For example, a GDNativeLibrary would declare its ``gdnative_init`` function as ``godot_gdnative_init`` by default.
+
+On platforms that require statically linking libraries (currently only iOS), each library must have a different ``symbol_prefix``.
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -110,7 +140,11 @@ Method Descriptions
 
 
 - :ref:`PoolStringArray<class_PoolStringArray>` **get_current_dependencies** **(** **)** const
 - :ref:`PoolStringArray<class_PoolStringArray>` **get_current_dependencies** **(** **)** const
 
 
+Returns paths to all dependency libraries for the current platform and architecture.
+
 .. _class_GDNativeLibrary_method_get_current_library_path:
 .. _class_GDNativeLibrary_method_get_current_library_path:
 
 
 - :ref:`String<class_String>` **get_current_library_path** **(** **)** const
 - :ref:`String<class_String>` **get_current_library_path** **(** **)** const
 
 
+Returns the path to the dynamic library file for the current platform and architecture.
+

+ 3 - 1
classes/class_gridcontainer.rst

@@ -39,7 +39,9 @@ Theme Properties
 Description
 Description
 -----------
 -----------
 
 
-Grid container will arrange its children in a grid like structure, the grid columns are specified using the :ref:`columns<class_GridContainer_property_columns>` property and the number of rows will be equal to the number of children in the container divided by the number of columns. For example, if the container has 5 children, and 2 columns, there will be 3 rows in the container. Notice that grid layout will preserve the columns and rows for every size of the container.
+Grid container will arrange its children in a grid like structure, the grid columns are specified using the :ref:`columns<class_GridContainer_property_columns>` property and the number of rows will be equal to the number of children in the container divided by the number of columns. For example, if the container has 5 children, and 2 columns, there will be 3 rows in the container.
+
+Notice that grid layout will preserve the columns and rows for every size of the container, and that empty columns will be expanded automatically.
 
 
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------

+ 39 - 4
classes/class_hashingcontext.rst

@@ -16,7 +16,7 @@ HashingContext
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+Context to compute cryptographic hashes over multiple iterations.
 
 
 Methods
 Methods
 -------
 -------
@@ -42,11 +42,40 @@ Enumerations
 
 
 enum **HashType**:
 enum **HashType**:
 
 
-- **HASH_MD5** = **0**
+- **HASH_MD5** = **0** --- Hashing algorithm: MD5.
+
+- **HASH_SHA1** = **1** --- Hashing algorithm: SHA-1.
+
+- **HASH_SHA256** = **2** --- Hashing algorithm: SHA-256.
+
+Description
+-----------
+
+The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. This is useful for example when computing hashes of big files (so you don't have to load them all in memory), network streams, and data streams in general (so you don't have to hold buffers).
 
 
-- **HASH_SHA1** = **1**
+The :ref:`HashType<enum_HashingContext_HashType>` enum shows the supported hashing algorithms.
 
 
-- **HASH_SHA256** = **2**
+::
+
+    const CHUNK_SIZE = 1024
+    
+    func hash_file(path):
+        var ctx = HashingContext.new()
+        var file = File.new()
+        # Start a SHA-256 context.
+        ctx.start(HashingContext.HASH_SHA256)
+        # Check that file exists.
+        if not file.file_exists(path):
+            return
+        # Open the file to hash.
+        file.open(path, File.READ)
+        # Update the context after reading each chunk.
+        while not file.eof_reached():
+            ctx.update(file.get_buffer(CHUNK_SIZE))
+        # Get the computed hash.
+        var res = ctx.finish()
+        # Print the result as hex string and array.
+        printt(res.hex_encode(), Array(res))
 
 
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
@@ -55,11 +84,17 @@ Method Descriptions
 
 
 - :ref:`PoolByteArray<class_PoolByteArray>` **finish** **(** **)**
 - :ref:`PoolByteArray<class_PoolByteArray>` **finish** **(** **)**
 
 
+Closes the current context, and return the computed hash.
+
 .. _class_HashingContext_method_start:
 .. _class_HashingContext_method_start:
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`HashType<enum_HashingContext_HashType>` type **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **start** **(** :ref:`HashType<enum_HashingContext_HashType>` type **)**
 
 
+Starts a new hash computation of the given ``type`` (e.g. :ref:`HASH_SHA256<class_HashingContext_constant_HASH_SHA256>` to start computation of a SHA-256).
+
 .. _class_HashingContext_method_update:
 .. _class_HashingContext_method_update:
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **update** **(** :ref:`PoolByteArray<class_PoolByteArray>` chunk **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **update** **(** :ref:`PoolByteArray<class_PoolByteArray>` chunk **)**
 
 
+Updates the computation with the given ``chunk`` of data.
+

+ 2 - 0
classes/class_input.rst

@@ -268,6 +268,8 @@ Returns an :ref:`Array<class_Array>` containing the device IDs of all currently
 
 
 - :ref:`CursorShape<enum_Input_CursorShape>` **get_current_cursor_shape** **(** **)** const
 - :ref:`CursorShape<enum_Input_CursorShape>` **get_current_cursor_shape** **(** **)** const
 
 
+Returns the currently assigned cursor shape (see :ref:`CursorShape<enum_Input_CursorShape>`).
+
 .. _class_Input_method_get_gravity:
 .. _class_Input_method_get_gravity:
 
 
 - :ref:`Vector3<class_Vector3>` **get_gravity** **(** **)** const
 - :ref:`Vector3<class_Vector3>` **get_gravity** **(** **)** const

+ 17 - 17
classes/class_mainloop.rst

@@ -156,29 +156,29 @@ Here is an example script implementing a simple ``MainLoop``:
     var quit = false
     var quit = false
     
     
     func _initialize():
     func _initialize():
-    print("Initialized:")
-    print("  Starting time: %s" % str(time_elapsed))
+        print("Initialized:")
+        print("  Starting time: %s" % str(time_elapsed))
     
     
     func _idle(delta):
     func _idle(delta):
-    time_elapsed += delta
-    # Return true to end the main loop
-    return quit
+        time_elapsed += delta
+        # Return true to end the main loop.
+        return quit
     
     
     func _input_event(event):
     func _input_event(event):
-    # Record keys
-    if event is InputEventKey and event.pressed and !event.echo:
-    keys_typed.append(OS.get_scancode_string(event.scancode))
-    # Quit on Escape press
-    if event.scancode == KEY_ESCAPE:
-        quit = true
-    # Quit on any mouse click
-    if event is InputEventMouseButton:
-    quit = true
+        # Record keys.
+        if event is InputEventKey and event.pressed and !event.echo:
+            keys_typed.append(OS.get_scancode_string(event.scancode))
+            # Quit on Escape press.
+            if event.scancode == KEY_ESCAPE:
+                quit = true
+        # Quit on any mouse click.
+        if event is InputEventMouseButton:
+            quit = true
     
     
     func _finalize():
     func _finalize():
-    print("Finalized:")
-    print("  End time: %s" % str(time_elapsed))
-    print("  Keys typed: %s" % var2str(keys_typed))
+        print("Finalized:")
+        print("  End time: %s" % str(time_elapsed))
+        print("  Keys typed: %s" % var2str(keys_typed))
 
 
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------

+ 10 - 6
classes/class_meshlibrary.rst

@@ -62,7 +62,7 @@ Methods
 Description
 Description
 -----------
 -----------
 
 
-Library of meshes. Contains a list of :ref:`Mesh<class_Mesh>` resources, each with name and ID. This resource is used in :ref:`GridMap<class_GridMap>`.
+A library of meshes. Contains a list of :ref:`Mesh<class_Mesh>` resources, each with a name and ID. This resource is used in :ref:`GridMap<class_GridMap>`.
 
 
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
@@ -71,13 +71,13 @@ Method Descriptions
 
 
 - void **clear** **(** **)**
 - void **clear** **(** **)**
 
 
-Clear the library.
+Clears the library.
 
 
 .. _class_MeshLibrary_method_create_item:
 .. _class_MeshLibrary_method_create_item:
 
 
 - void **create_item** **(** :ref:`int<class_int>` id **)**
 - void **create_item** **(** :ref:`int<class_int>` id **)**
 
 
-Create a new item in the library, supplied an id.
+Create a new item in the library, supplied as an ID.
 
 
 .. _class_MeshLibrary_method_find_item_by_name:
 .. _class_MeshLibrary_method_find_item_by_name:
 
 
@@ -113,6 +113,10 @@ Returns the name of the item.
 
 
 - :ref:`Texture<class_Texture>` **get_item_preview** **(** :ref:`int<class_int>` id **)** const
 - :ref:`Texture<class_Texture>` **get_item_preview** **(** :ref:`int<class_int>` id **)** const
 
 
+Returns a generated item preview (a 3D rendering in isometric perspective).
+
+**Note:** Since item previews are only generated in an editor context, this function will return an empty :ref:`Texture<class_Texture>` in a running project.
+
 .. _class_MeshLibrary_method_get_item_shapes:
 .. _class_MeshLibrary_method_get_item_shapes:
 
 
 - :ref:`Array<class_Array>` **get_item_shapes** **(** :ref:`int<class_int>` id **)** const
 - :ref:`Array<class_Array>` **get_item_shapes** **(** :ref:`int<class_int>` id **)** const
@@ -121,7 +125,7 @@ Returns the name of the item.
 
 
 - :ref:`int<class_int>` **get_last_unused_item_id** **(** **)** const
 - :ref:`int<class_int>` **get_last_unused_item_id** **(** **)** const
 
 
-Gets an unused id for a new item.
+Gets an unused ID for a new item.
 
 
 .. _class_MeshLibrary_method_remove_item:
 .. _class_MeshLibrary_method_remove_item:
 
 
@@ -133,13 +137,13 @@ Removes the item.
 
 
 - void **set_item_mesh** **(** :ref:`int<class_int>` id, :ref:`Mesh<class_Mesh>` mesh **)**
 - void **set_item_mesh** **(** :ref:`int<class_int>` id, :ref:`Mesh<class_Mesh>` mesh **)**
 
 
-Sets the mesh of the item.
+Sets the item's mesh.
 
 
 .. _class_MeshLibrary_method_set_item_name:
 .. _class_MeshLibrary_method_set_item_name:
 
 
 - void **set_item_name** **(** :ref:`int<class_int>` id, :ref:`String<class_String>` name **)**
 - void **set_item_name** **(** :ref:`int<class_int>` id, :ref:`String<class_String>` name **)**
 
 
-Sets the name of the item.
+Sets the item's name.
 
 
 .. _class_MeshLibrary_method_set_item_navmesh:
 .. _class_MeshLibrary_method_set_item_navmesh:
 
 

+ 5 - 0
classes/class_mutex.rst

@@ -34,6 +34,11 @@ Description
 
 
 A synchronization mutex (mutual exclusion). This is used to synchronize multiple :ref:`Thread<class_Thread>`\ s, and is equivalent to a binary :ref:`Semaphore<class_Semaphore>`. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.
 A synchronization mutex (mutual exclusion). This is used to synchronize multiple :ref:`Thread<class_Thread>`\ s, and is equivalent to a binary :ref:`Semaphore<class_Semaphore>`. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.
 
 
+Tutorials
+---------
+
+- :doc:`../tutorials/threads/using_multiple_threads`
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 

+ 5 - 5
classes/class_os.rst

@@ -772,14 +772,14 @@ If ``blocking`` is ``true``, the Godot thread will pause its execution while wai
 
 
 If ``blocking`` is ``false``, the Godot thread will continue while the new process runs. It is not possible to retrieve the shell output in non-blocking mode, so ``output`` will be empty.
 If ``blocking`` is ``false``, the Godot thread will continue while the new process runs. It is not possible to retrieve the shell output in non-blocking mode, so ``output`` will be empty.
 
 
-The return value also depends on the blocking mode. When blocking, the method will return -2 (no process ID information is available in blocking mode). When non-blocking, the method returns a process ID, which you can use to monitor the process (and potentially terminate it with :ref:`kill<class_OS_method_kill>`). If the process forking (non-blocking) or opening (blocking) fails, the method will return ``-1``.
+The return value also depends on the blocking mode. When blocking, the method will return an exit code of the process. When non-blocking, the method returns a process ID, which you can use to monitor the process (and potentially terminate it with :ref:`kill<class_OS_method_kill>`). If the process forking (non-blocking) or opening (blocking) fails, the method will return ``-1`` or another exit code.
 
 
 Example of blocking mode and retrieving the shell output:
 Example of blocking mode and retrieving the shell output:
 
 
 ::
 ::
 
 
     var output = []
     var output = []
-    OS.execute("ls", ["-l", "/tmp"], true, output)
+    var exit_code = OS.execute("ls", ["-l", "/tmp"], true, output)
 
 
 Example of non-blocking mode, running another instance of the project and storing its process ID:
 Example of non-blocking mode, running another instance of the project and storing its process ID:
 
 
@@ -959,7 +959,7 @@ Returns the number of displays attached to the host machine.
 
 
 - :ref:`int<class_int>` **get_screen_dpi** **(** :ref:`int<class_int>` screen=-1 **)** const
 - :ref:`int<class_int>` **get_screen_dpi** **(** :ref:`int<class_int>` screen=-1 **)** const
 
 
-Returns the dots per inch density of the specified screen.
+Returns the dots per inch density of the specified screen. If ``screen`` is ``-1`` (the default value), the current screen will be used.
 
 
 On Android devices, the actual screen densities are grouped into six generalized densities:
 On Android devices, the actual screen densities are grouped into six generalized densities:
 
 
@@ -976,13 +976,13 @@ On Android devices, the actual screen densities are grouped into six generalized
 
 
 - :ref:`Vector2<class_Vector2>` **get_screen_position** **(** :ref:`int<class_int>` screen=-1 **)** const
 - :ref:`Vector2<class_Vector2>` **get_screen_position** **(** :ref:`int<class_int>` screen=-1 **)** const
 
 
-Returns the position of the specified screen by index. If no screen index is provided, the current screen will be used.
+Returns the position of the specified screen by index. If ``screen`` is ``-1`` (the default value), the current screen will be used.
 
 
 .. _class_OS_method_get_screen_size:
 .. _class_OS_method_get_screen_size:
 
 
 - :ref:`Vector2<class_Vector2>` **get_screen_size** **(** :ref:`int<class_int>` screen=-1 **)** const
 - :ref:`Vector2<class_Vector2>` **get_screen_size** **(** :ref:`int<class_int>` screen=-1 **)** const
 
 
-Returns the dimensions in pixels of the specified screen.
+Returns the dimensions in pixels of the specified screen. If ``screen`` is ``-1`` (the default value), the current screen will be used.
 
 
 .. _class_OS_method_get_splash_tick_msec:
 .. _class_OS_method_get_splash_tick_msec:
 
 

+ 128 - 100
classes/class_popupmenu.rst

@@ -38,105 +38,111 @@ Properties
 Methods
 Methods
 -------
 -------
 
 
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_check_item<class_PopupMenu_method_add_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                        |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_check_shortcut<class_PopupMenu_method_add_check_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_icon_check_item<class_PopupMenu_method_add_icon_check_item>` **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_icon_check_shortcut<class_PopupMenu_method_add_icon_check_shortcut>` **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_icon_item<class_PopupMenu_method_add_icon_item>` **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                   |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_icon_shortcut<class_PopupMenu_method_add_icon_shortcut>` **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**             |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_item<class_PopupMenu_method_add_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                                    |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_radio_check_item<class_PopupMenu_method_add_radio_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                            |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_radio_check_shortcut<class_PopupMenu_method_add_radio_check_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                      |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_separator<class_PopupMenu_method_add_separator>` **(** :ref:`String<class_String>` label="" **)**                                                                                                                                   |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_shortcut<class_PopupMenu_method_add_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`add_submenu_item<class_PopupMenu_method_add_submenu_item>` **(** :ref:`String<class_String>` label, :ref:`String<class_String>` submenu, :ref:`int<class_int>` id=-1 **)**                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`clear<class_PopupMenu_method_clear>` **(** **)**                                                                                                                                                                                        |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                          |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_item_count<class_PopupMenu_method_get_item_count>` **(** **)** const                                                                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Texture<class_Texture>`   | :ref:`get_item_icon<class_PopupMenu_method_get_item_icon>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                        |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_item_id<class_PopupMenu_method_get_item_id>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                            |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`           | :ref:`get_item_index<class_PopupMenu_method_get_item_index>` **(** :ref:`int<class_int>` id **)** const                                                                                                                                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`   | :ref:`get_item_metadata<class_PopupMenu_method_get_item_metadata>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`ShortCut<class_ShortCut>` | :ref:`get_item_shortcut<class_PopupMenu_method_get_item_shortcut>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`     | :ref:`get_item_submenu<class_PopupMenu_method_get_item_submenu>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`     | :ref:`get_item_text<class_PopupMenu_method_get_item_text>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                        |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`     | :ref:`get_item_tooltip<class_PopupMenu_method_get_item_tooltip>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_hide_on_window_lose_focus<class_PopupMenu_method_is_hide_on_window_lose_focus>` **(** **)** const                                                                                                                                    |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_checkable<class_PopupMenu_method_is_item_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_checked<class_PopupMenu_method_is_item_checked>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                    |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_disabled<class_PopupMenu_method_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_radio_checkable<class_PopupMenu_method_is_item_radio_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                    |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_separator<class_PopupMenu_method_is_item_separator>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`         | :ref:`is_item_shortcut_disabled<class_PopupMenu_method_is_item_shortcut_disabled>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`remove_item<class_PopupMenu_method_remove_item>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_hide_on_window_lose_focus<class_PopupMenu_method_set_hide_on_window_lose_focus>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                         |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_accelerator<class_PopupMenu_method_set_item_accelerator>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` accel **)**                                                                                                   |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_as_checkable<class_PopupMenu_method_set_item_as_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_as_radio_checkable<class_PopupMenu_method_set_item_as_radio_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_as_separator<class_PopupMenu_method_set_item_as_separator>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checked **)**                                                                                                       |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_disabled<class_PopupMenu_method_set_item_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                                                                                    |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_icon<class_PopupMenu_method_set_item_icon>` **(** :ref:`int<class_int>` idx, :ref:`Texture<class_Texture>` icon **)**                                                                                                          |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_id<class_PopupMenu_method_set_item_id>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` id **)**                                                                                                                        |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_metadata<class_PopupMenu_method_set_item_metadata>` **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)**                                                                                              |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_multistate<class_PopupMenu_method_set_item_multistate>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` state **)**                                                                                                     |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_shortcut<class_PopupMenu_method_set_item_shortcut>` **(** :ref:`int<class_int>` idx, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`bool<class_bool>` global=false **)**                                                      |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_shortcut_disabled<class_PopupMenu_method_set_item_shortcut_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_submenu<class_PopupMenu_method_set_item_submenu>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` submenu **)**                                                                                                   |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_text<class_PopupMenu_method_set_item_text>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                                                                            |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`set_item_tooltip<class_PopupMenu_method_set_item_tooltip>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**                                                                                                   |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`toggle_item_checked<class_PopupMenu_method_toggle_item_checked>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                  |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                            | :ref:`toggle_item_multistate<class_PopupMenu_method_toggle_item_multistate>` **(** :ref:`int<class_int>` idx **)**                                                                                                                            |
-+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_check_item<class_PopupMenu_method_add_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                                    |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_check_shortcut<class_PopupMenu_method_add_check_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_check_item<class_PopupMenu_method_add_icon_check_item>` **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                   |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_check_shortcut<class_PopupMenu_method_add_icon_check_shortcut>` **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**             |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_item<class_PopupMenu_method_add_icon_item>` **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                               |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_radio_check_item<class_PopupMenu_method_add_icon_radio_check_item>` **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                       |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_radio_check_shortcut<class_PopupMenu_method_add_icon_radio_check_shortcut>` **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_icon_shortcut<class_PopupMenu_method_add_icon_shortcut>` **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                         |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_item<class_PopupMenu_method_add_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                                                |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_multistate_item<class_PopupMenu_method_add_multistate_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` max_states, :ref:`int<class_int>` default_state=0, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)** |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_radio_check_item<class_PopupMenu_method_add_radio_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**                                                                        |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_radio_check_shortcut<class_PopupMenu_method_add_radio_check_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                  |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_separator<class_PopupMenu_method_add_separator>` **(** :ref:`String<class_String>` label="" **)**                                                                                                                                               |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_shortcut<class_PopupMenu_method_add_shortcut>` **(** :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**                                                                          |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`add_submenu_item<class_PopupMenu_method_add_submenu_item>` **(** :ref:`String<class_String>` label, :ref:`String<class_String>` submenu, :ref:`int<class_int>` id=-1 **)**                                                                          |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`clear<class_PopupMenu_method_clear>` **(** **)**                                                                                                                                                                                                    |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`           | :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                      |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`           | :ref:`get_item_count<class_PopupMenu_method_get_item_count>` **(** **)** const                                                                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Texture<class_Texture>`   | :ref:`get_item_icon<class_PopupMenu_method_get_item_icon>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                                    |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`           | :ref:`get_item_id<class_PopupMenu_method_get_item_id>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                                        |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`           | :ref:`get_item_index<class_PopupMenu_method_get_item_index>` **(** :ref:`int<class_int>` id **)** const                                                                                                                                                   |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`   | :ref:`get_item_metadata<class_PopupMenu_method_get_item_metadata>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`ShortCut<class_ShortCut>` | :ref:`get_item_shortcut<class_PopupMenu_method_get_item_shortcut>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`     | :ref:`get_item_submenu<class_PopupMenu_method_get_item_submenu>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`     | :ref:`get_item_text<class_PopupMenu_method_get_item_text>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                                    |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`     | :ref:`get_item_tooltip<class_PopupMenu_method_get_item_tooltip>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_hide_on_window_lose_focus<class_PopupMenu_method_is_hide_on_window_lose_focus>` **(** **)** const                                                                                                                                                |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_checkable<class_PopupMenu_method_is_item_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_checked<class_PopupMenu_method_is_item_checked>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                                |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_disabled<class_PopupMenu_method_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_radio_checkable<class_PopupMenu_method_is_item_radio_checkable>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_separator<class_PopupMenu_method_is_item_separator>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`         | :ref:`is_item_shortcut_disabled<class_PopupMenu_method_is_item_shortcut_disabled>` **(** :ref:`int<class_int>` idx **)** const                                                                                                                            |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`remove_item<class_PopupMenu_method_remove_item>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_hide_on_window_lose_focus<class_PopupMenu_method_set_hide_on_window_lose_focus>` **(** :ref:`bool<class_bool>` enable **)**                                                                                                                     |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_accelerator<class_PopupMenu_method_set_item_accelerator>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` accel **)**                                                                                                               |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_as_checkable<class_PopupMenu_method_set_item_as_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                                          |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_as_radio_checkable<class_PopupMenu_method_set_item_as_radio_checkable>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_as_separator<class_PopupMenu_method_set_item_as_separator>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enable **)**                                                                                                          |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` checked **)**                                                                                                                   |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_disabled<class_PopupMenu_method_set_item_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                                                                                                |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_icon<class_PopupMenu_method_set_item_icon>` **(** :ref:`int<class_int>` idx, :ref:`Texture<class_Texture>` icon **)**                                                                                                                      |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_id<class_PopupMenu_method_set_item_id>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` id **)**                                                                                                                                    |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_metadata<class_PopupMenu_method_set_item_metadata>` **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)**                                                                                                          |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_multistate<class_PopupMenu_method_set_item_multistate>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` state **)**                                                                                                                 |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_shortcut<class_PopupMenu_method_set_item_shortcut>` **(** :ref:`int<class_int>` idx, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`bool<class_bool>` global=false **)**                                                                  |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_shortcut_disabled<class_PopupMenu_method_set_item_shortcut_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_submenu<class_PopupMenu_method_set_item_submenu>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` submenu **)**                                                                                                               |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_text<class_PopupMenu_method_set_item_text>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**                                                                                                                        |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`set_item_tooltip<class_PopupMenu_method_set_item_tooltip>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**                                                                                                               |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`toggle_item_checked<class_PopupMenu_method_toggle_item_checked>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                              |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                            | :ref:`toggle_item_multistate<class_PopupMenu_method_toggle_item_multistate>` **(** :ref:`int<class_int>` idx **)**                                                                                                                                        |
++---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 Theme Properties
 Theme Properties
 ----------------
 ----------------
@@ -329,6 +335,18 @@ Adds a new item with text ``label`` and icon ``texture``.
 
 
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 
 
+.. _class_PopupMenu_method_add_icon_radio_check_item:
+
+- void **add_icon_radio_check_item** **(** :ref:`Texture<class_Texture>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
+
+Same as :ref:`add_icon_check_item<class_PopupMenu_method_add_icon_check_item>`, but uses a radio check button.
+
+.. _class_PopupMenu_method_add_icon_radio_check_shortcut:
+
+- void **add_icon_radio_check_shortcut** **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
+
+Same as :ref:`add_icon_check_shortcut<class_PopupMenu_method_add_icon_check_shortcut>`, but uses a radio check button.
+
 .. _class_PopupMenu_method_add_icon_shortcut:
 .. _class_PopupMenu_method_add_icon_shortcut:
 
 
 - void **add_icon_shortcut** **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
 - void **add_icon_shortcut** **(** :ref:`Texture<class_Texture>` texture, :ref:`ShortCut<class_ShortCut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
@@ -345,11 +363,21 @@ Adds a new item with text ``label``.
 
 
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 
 
+.. _class_PopupMenu_method_add_multistate_item:
+
+- void **add_multistate_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` max_states, :ref:`int<class_int>` default_state=0, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
+
+Adds a new multistate item with text ``label``.
+
+Contrarily to normal binary items, multistate items can have more than two states, as defined by ``max_states``. Each press or activate of the item will increase the state by one. The default value is defined by ``default_state``.
+
+An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
+
 .. _class_PopupMenu_method_add_radio_check_item:
 .. _class_PopupMenu_method_add_radio_check_item:
 
 
 - void **add_radio_check_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
 - void **add_radio_check_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`int<class_int>` accel=0 **)**
 
 
-Adds a new radio button with text ``label``.
+Adds a new radio check button with text ``label``.
 
 
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
 
 

+ 47 - 37
classes/class_projectsettings.rst

@@ -578,43 +578,45 @@ Properties
 Methods
 Methods
 -------
 -------
 
 
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`add_property_info<class_ProjectSettings_method_add_property_info>` **(** :ref:`Dictionary<class_Dictionary>` hint **)**                              |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`clear<class_ProjectSettings_method_clear>` **(** :ref:`String<class_String>` name **)**                                                              |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                 | :ref:`get_order<class_ProjectSettings_method_get_order>` **(** :ref:`String<class_String>` name **)** const                                                |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`         | :ref:`get_setting<class_ProjectSettings_method_get_setting>` **(** :ref:`String<class_String>` name **)** const                                            |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`           | :ref:`globalize_path<class_ProjectSettings_method_globalize_path>` **(** :ref:`String<class_String>` path **)** const                                      |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`has_setting<class_ProjectSettings_method_has_setting>` **(** :ref:`String<class_String>` name **)** const                                            |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`load_resource_pack<class_ProjectSettings_method_load_resource_pack>` **(** :ref:`String<class_String>` pack **)**                                    |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`           | :ref:`localize_path<class_ProjectSettings_method_localize_path>` **(** :ref:`String<class_String>` path **)** const                                        |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`               | :ref:`property_can_revert<class_ProjectSettings_method_property_can_revert>` **(** :ref:`String<class_String>` name **)**                                  |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`         | :ref:`property_get_revert<class_ProjectSettings_method_property_get_revert>` **(** :ref:`String<class_String>` name **)**                                  |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_ProjectSettings_method_save>` **(** **)**                                                                                                 |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_custom<class_ProjectSettings_method_save_custom>` **(** :ref:`String<class_String>` file **)**                                                  |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_initial_value<class_ProjectSettings_method_set_initial_value>` **(** :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)** |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_order<class_ProjectSettings_method_set_order>` **(** :ref:`String<class_String>` name, :ref:`int<class_int>` position **)**                      |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`set_setting<class_ProjectSettings_method_set_setting>` **(** :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**             |
-+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`add_property_info<class_ProjectSettings_method_add_property_info>` **(** :ref:`Dictionary<class_Dictionary>` hint **)**                                       |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`clear<class_ProjectSettings_method_clear>` **(** :ref:`String<class_String>` name **)**                                                                       |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                 | :ref:`get_order<class_ProjectSettings_method_get_order>` **(** :ref:`String<class_String>` name **)** const                                                         |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`         | :ref:`get_setting<class_ProjectSettings_method_get_setting>` **(** :ref:`String<class_String>` name **)** const                                                     |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`           | :ref:`globalize_path<class_ProjectSettings_method_globalize_path>` **(** :ref:`String<class_String>` path **)** const                                               |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`has_setting<class_ProjectSettings_method_has_setting>` **(** :ref:`String<class_String>` name **)** const                                                     |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`load_resource_pack<class_ProjectSettings_method_load_resource_pack>` **(** :ref:`String<class_String>` pack, :ref:`bool<class_bool>` replace_files=true **)** |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`           | :ref:`localize_path<class_ProjectSettings_method_localize_path>` **(** :ref:`String<class_String>` path **)** const                                                 |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`               | :ref:`property_can_revert<class_ProjectSettings_method_property_can_revert>` **(** :ref:`String<class_String>` name **)**                                           |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`         | :ref:`property_get_revert<class_ProjectSettings_method_property_get_revert>` **(** :ref:`String<class_String>` name **)**                                           |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_ProjectSettings_method_save>` **(** **)**                                                                                                          |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save_custom<class_ProjectSettings_method_save_custom>` **(** :ref:`String<class_String>` file **)**                                                           |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_initial_value<class_ProjectSettings_method_set_initial_value>` **(** :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**          |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_order<class_ProjectSettings_method_set_order>` **(** :ref:`String<class_String>` name, :ref:`int<class_int>` position **)**                               |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`set_setting<class_ProjectSettings_method_set_setting>` **(** :ref:`String<class_String>` name, :ref:`Variant<class_Variant>` value **)**                      |
++---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 Description
 Description
 -----------
 -----------
 
 
 Contains global variables accessible from everywhere. Use :ref:`get_setting<class_ProjectSettings_method_get_setting>`, :ref:`set_setting<class_ProjectSettings_method_set_setting>` or :ref:`has_setting<class_ProjectSettings_method_has_setting>` to access them. Variables stored in ``project.godot`` are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.
 Contains global variables accessible from everywhere. Use :ref:`get_setting<class_ProjectSettings_method_get_setting>`, :ref:`set_setting<class_ProjectSettings_method_set_setting>` or :ref:`has_setting<class_ProjectSettings_method_has_setting>` to access them. Variables stored in ``project.godot`` are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.
 
 
+When naming a Project Settings property, use the full path to the setting including the category. For example, ``"application/config/name"`` for the project name. Category and property names can be viewed in the Project Settings dialog.
+
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------
 
 
@@ -1408,7 +1410,7 @@ Sets the window to full screen when it starts.
 | *Default* | 600 |
 | *Default* | 600 |
 +-----------+-----+
 +-----------+-----+
 
 
-Sets the main window height. On desktop, this is the default window size. Stretch mode settings use this also as a reference when enabled.
+Sets the game's main viewport height. On desktop platforms, this is the default window size. Stretch mode settings also use this as a reference when enabled.
 
 
 .. _class_ProjectSettings_property_display/window/size/resizable:
 .. _class_ProjectSettings_property_display/window/size/resizable:
 
 
@@ -1428,7 +1430,7 @@ Allows the window to be resizable by default.
 | *Default* | 0 |
 | *Default* | 0 |
 +-----------+---+
 +-----------+---+
 
 
-If greater than zero, uses a different height for the window when running from the editor. The main use for this is to test with stretch modes.
+If greater than zero, overrides the window height when running the game. Useful for testing stretch modes.
 
 
 .. _class_ProjectSettings_property_display/window/size/test_width:
 .. _class_ProjectSettings_property_display/window/size/test_width:
 
 
@@ -1438,7 +1440,7 @@ If greater than zero, uses a different height for the window when running from t
 | *Default* | 0 |
 | *Default* | 0 |
 +-----------+---+
 +-----------+---+
 
 
-If greater than zero, uses a different width for the window when running from the editor. The main use for this is to test with stretch modes.
+If greater than zero, overrides the window width when running the game. Useful for testing stretch modes.
 
 
 .. _class_ProjectSettings_property_display/window/size/width:
 .. _class_ProjectSettings_property_display/window/size/width:
 
 
@@ -1448,7 +1450,7 @@ If greater than zero, uses a different width for the window when running from th
 | *Default* | 1024 |
 | *Default* | 1024 |
 +-----------+------+
 +-----------+------+
 
 
-Sets the main window width. On desktop platforms, this is the default window size. Stretch mode settings use this also as a reference when enabled.
+Sets the game's main viewport width. On desktop platforms, this is the default window size. Stretch mode settings also use this as a reference when enabled.
 
 
 .. _class_ProjectSettings_property_display/window/vsync/use_vsync:
 .. _class_ProjectSettings_property_display/window/vsync/use_vsync:
 
 
@@ -3168,6 +3170,14 @@ Returns the order of a configuration value (influences when saved to the config
 
 
 - :ref:`Variant<class_Variant>` **get_setting** **(** :ref:`String<class_String>` name **)** const
 - :ref:`Variant<class_Variant>` **get_setting** **(** :ref:`String<class_String>` name **)** const
 
 
+Returns the value of a setting.
+
+**Example:**
+
+::
+
+    print(ProjectSettings.get_setting("application/config/name"))
+
 .. _class_ProjectSettings_method_globalize_path:
 .. _class_ProjectSettings_method_globalize_path:
 
 
 - :ref:`String<class_String>` **globalize_path** **(** :ref:`String<class_String>` path **)** const
 - :ref:`String<class_String>` **globalize_path** **(** :ref:`String<class_String>` path **)** const
@@ -3182,11 +3192,11 @@ Returns ``true`` if a configuration value is present.
 
 
 .. _class_ProjectSettings_method_load_resource_pack:
 .. _class_ProjectSettings_method_load_resource_pack:
 
 
-- :ref:`bool<class_bool>` **load_resource_pack** **(** :ref:`String<class_String>` pack **)**
+- :ref:`bool<class_bool>` **load_resource_pack** **(** :ref:`String<class_String>` pack, :ref:`bool<class_bool>` replace_files=true **)**
 
 
 Loads the contents of the .pck or .zip file specified by ``pack`` into the resource filesystem (``res://``). Returns ``true`` on success.
 Loads the contents of the .pck or .zip file specified by ``pack`` into the resource filesystem (``res://``). Returns ``true`` on success.
 
 
-**Note:** If a file from ``pack`` shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from ``pack``.
+**Note:** If a file from ``pack`` shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from ``pack`` unless ``replace_files`` is set to ``false``.
 
 
 .. _class_ProjectSettings_method_localize_path:
 .. _class_ProjectSettings_method_localize_path:
 
 

+ 12 - 1
classes/class_reflectionprobe.rst

@@ -16,7 +16,7 @@ ReflectionProbe
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+Captures its surroundings to create reflections.
 
 
 Properties
 Properties
 ----------
 ----------
@@ -62,6 +62,11 @@ enum **UpdateMode**:
 
 
 - **UPDATE_ALWAYS** = **1**
 - **UPDATE_ALWAYS** = **1**
 
 
+Description
+-----------
+
+Capture its surroundings as a dual parabolid image, and stores versions of it with increasing levels of blur to simulate different material roughnesses.
+
 Tutorials
 Tutorials
 ---------
 ---------
 
 
@@ -82,6 +87,8 @@ Property Descriptions
 | *Getter*  | is_box_projection_enabled()      |
 | *Getter*  | is_box_projection_enabled()      |
 +-----------+----------------------------------+
 +-----------+----------------------------------+
 
 
+If ``true``, enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.
+
 .. _class_ReflectionProbe_property_cull_mask:
 .. _class_ReflectionProbe_property_cull_mask:
 
 
 - :ref:`int<class_int>` **cull_mask**
 - :ref:`int<class_int>` **cull_mask**
@@ -106,6 +113,8 @@ Property Descriptions
 | *Getter*  | are_shadows_enabled()     |
 | *Getter*  | are_shadows_enabled()     |
 +-----------+---------------------------+
 +-----------+---------------------------+
 
 
+If ``true``, computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the :ref:`UPDATE_ALWAYS<class_ReflectionProbe_constant_UPDATE_ALWAYS>` :ref:`update_mode<class_ReflectionProbe_property_update_mode>`.
+
 .. _class_ReflectionProbe_property_extents:
 .. _class_ReflectionProbe_property_extents:
 
 
 - :ref:`Vector3<class_Vector3>` **extents**
 - :ref:`Vector3<class_Vector3>` **extents**
@@ -130,6 +139,8 @@ Property Descriptions
 | *Getter*  | get_intensity()      |
 | *Getter*  | get_intensity()      |
 +-----------+----------------------+
 +-----------+----------------------+
 
 
+Defines the reflection intensity.
+
 .. _class_ReflectionProbe_property_interior_ambient_color:
 .. _class_ReflectionProbe_property_interior_ambient_color:
 
 
 - :ref:`Color<class_Color>` **interior_ambient_color**
 - :ref:`Color<class_Color>` **interior_ambient_color**

+ 8 - 0
classes/class_rigidbody.rst

@@ -469,6 +469,10 @@ The body mode. See :ref:`Mode<enum_RigidBody_Mode>` for possible values.
 | *Getter* | get_physics_material_override()      |
 | *Getter* | get_physics_material_override()      |
 +----------+--------------------------------------+
 +----------+--------------------------------------+
 
 
+The physics material override for the body.
+
+If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
+
 .. _class_RigidBody_property_sleeping:
 .. _class_RigidBody_property_sleeping:
 
 
 - :ref:`bool<class_bool>` **sleeping**
 - :ref:`bool<class_bool>` **sleeping**
@@ -550,6 +554,8 @@ Applies a torque impulse which will be affected by the body mass and shape. This
 
 
 - :ref:`bool<class_bool>` **get_axis_lock** **(** :ref:`BodyAxis<enum_PhysicsServer_BodyAxis>` axis **)** const
 - :ref:`bool<class_bool>` **get_axis_lock** **(** :ref:`BodyAxis<enum_PhysicsServer_BodyAxis>` axis **)** const
 
 
+Returns ``true`` if the specified linear or rotational axis is locked.
+
 .. _class_RigidBody_method_get_colliding_bodies:
 .. _class_RigidBody_method_get_colliding_bodies:
 
 
 - :ref:`Array<class_Array>` **get_colliding_bodies** **(** **)** const
 - :ref:`Array<class_Array>` **get_colliding_bodies** **(** **)** const
@@ -562,6 +568,8 @@ Returns a list of the bodies colliding with this one. By default, number of max
 
 
 - void **set_axis_lock** **(** :ref:`BodyAxis<enum_PhysicsServer_BodyAxis>` axis, :ref:`bool<class_bool>` lock **)**
 - void **set_axis_lock** **(** :ref:`BodyAxis<enum_PhysicsServer_BodyAxis>` axis, :ref:`bool<class_bool>` lock **)**
 
 
+Locks the specified linear or rotational axis.
+
 .. _class_RigidBody_method_set_axis_velocity:
 .. _class_RigidBody_method_set_axis_velocity:
 
 
 - void **set_axis_velocity** **(** :ref:`Vector3<class_Vector3>` axis_velocity **)**
 - void **set_axis_velocity** **(** :ref:`Vector3<class_Vector3>` axis_velocity **)**

+ 4 - 0
classes/class_rigidbody2d.rst

@@ -424,6 +424,10 @@ The body's mode. See :ref:`Mode<enum_RigidBody2D_Mode>` for possible values.
 | *Getter* | get_physics_material_override()      |
 | *Getter* | get_physics_material_override()      |
 +----------+--------------------------------------+
 +----------+--------------------------------------+
 
 
+The physics material override for the body.
+
+If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
+
 .. _class_RigidBody2D_property_sleeping:
 .. _class_RigidBody2D_property_sleeping:
 
 
 - :ref:`bool<class_bool>` **sleeping**
 - :ref:`bool<class_bool>` **sleeping**

+ 3 - 3
classes/class_scenetreetimer.rst

@@ -44,9 +44,9 @@ As opposed to :ref:`Timer<class_Timer>`, it does not require the instantiation o
 ::
 ::
 
 
     func some_function():
     func some_function():
-    print("start")
-    yield(get_tree().create_timer(1.0), "timeout")
-    print("end")
+        print("Timer started.")
+        yield(get_tree().create_timer(1.0), "timeout")
+        print("Timer ended.")
 
 
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------

+ 3 - 3
classes/class_scriptcreatedialog.rst

@@ -24,11 +24,11 @@ Properties
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+
 | :ref:`bool<class_bool>`       | dialog_hide_on_ok | **O:** false                |
 | :ref:`bool<class_bool>`       | dialog_hide_on_ok | **O:** false                |
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+
-| :ref:`float<class_float>`     | margin_bottom     | **O:** 76.0                 |
+| :ref:`float<class_float>`     | margin_bottom     | **O:** 232.0                |
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+
-| :ref:`float<class_float>`     | margin_right      | **O:** 200.0                |
+| :ref:`float<class_float>`     | margin_right      | **O:** 361.0                |
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+
-| :ref:`Vector2<class_Vector2>` | rect_size         | **O:** Vector2( 200, 76 )   |
+| :ref:`Vector2<class_Vector2>` | rect_size         | **O:** Vector2( 361, 232 )  |
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+
 | :ref:`String<class_String>`   | window_title      | **O:** "Attach Node Script" |
 | :ref:`String<class_String>`   | window_title      | **O:** "Attach Node Script" |
 +-------------------------------+-------------------+-----------------------------+
 +-------------------------------+-------------------+-----------------------------+

+ 5 - 0
classes/class_semaphore.rst

@@ -32,6 +32,11 @@ Description
 
 
 A synchronization semaphore which can be used to synchronize multiple :ref:`Thread<class_Thread>`\ s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see :ref:`Mutex<class_Mutex>`.
 A synchronization semaphore which can be used to synchronize multiple :ref:`Thread<class_Thread>`\ s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see :ref:`Mutex<class_Mutex>`.
 
 
+Tutorials
+---------
+
+- :doc:`../tutorials/threads/using_multiple_threads`
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 

+ 14 - 0
classes/class_skeleton.rst

@@ -32,6 +32,8 @@ Methods
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                     | :ref:`get_bone_count<class_Skeleton_method_get_bone_count>` **(** **)** const                                                                                                                                                                            |
 | :ref:`int<class_int>`                     | :ref:`get_bone_count<class_Skeleton_method_get_bone_count>` **(** **)** const                                                                                                                                                                            |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Transform<class_Transform>`         | :ref:`get_bone_custom_pose<class_Skeleton_method_get_bone_custom_pose>` **(** :ref:`int<class_int>` bone_idx **)** const                                                                                                                                 |
++-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Transform<class_Transform>`         | :ref:`get_bone_global_pose<class_Skeleton_method_get_bone_global_pose>` **(** :ref:`int<class_int>` bone_idx **)** const                                                                                                                                 |
 | :ref:`Transform<class_Transform>`         | :ref:`get_bone_global_pose<class_Skeleton_method_get_bone_global_pose>` **(** :ref:`int<class_int>` bone_idx **)** const                                                                                                                                 |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`               | :ref:`get_bone_name<class_Skeleton_method_get_bone_name>` **(** :ref:`int<class_int>` bone_idx **)** const                                                                                                                                               |
 | :ref:`String<class_String>`               | :ref:`get_bone_name<class_Skeleton_method_get_bone_name>` **(** :ref:`int<class_int>` bone_idx **)** const                                                                                                                                               |
@@ -58,6 +60,8 @@ Methods
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`SkinReference<class_SkinReference>` | :ref:`register_skin<class_Skeleton_method_register_skin>` **(** :ref:`Skin<class_Skin>` skin **)**                                                                                                                                                       |
 | :ref:`SkinReference<class_SkinReference>` | :ref:`register_skin<class_Skeleton_method_register_skin>` **(** :ref:`Skin<class_Skin>` skin **)**                                                                                                                                                       |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                      | :ref:`set_bone_custom_pose<class_Skeleton_method_set_bone_custom_pose>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_Transform>` custom_pose **)**                                                                                        |
++-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                      | :ref:`set_bone_disable_rest<class_Skeleton_method_set_bone_disable_rest>` **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)**                                                                                                    |
 | void                                      | :ref:`set_bone_disable_rest<class_Skeleton_method_set_bone_disable_rest>` **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)**                                                                                                    |
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                      | :ref:`set_bone_global_pose_override<class_Skeleton_method_set_bone_global_pose_override>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_Transform>` pose, :ref:`float<class_float>` amount, :ref:`bool<class_bool>` persistent=false **)** |
 | void                                      | :ref:`set_bone_global_pose_override<class_Skeleton_method_set_bone_global_pose_override>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_Transform>` pose, :ref:`float<class_float>` amount, :ref:`bool<class_bool>` persistent=false **)** |
@@ -122,6 +126,12 @@ Returns the bone index that matches ``name`` as its name.
 
 
 Returns the amount of bones in the skeleton.
 Returns the amount of bones in the skeleton.
 
 
+.. _class_Skeleton_method_get_bone_custom_pose:
+
+- :ref:`Transform<class_Transform>` **get_bone_custom_pose** **(** :ref:`int<class_int>` bone_idx **)** const
+
+Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.
+
 .. _class_Skeleton_method_get_bone_global_pose:
 .. _class_Skeleton_method_get_bone_global_pose:
 
 
 - :ref:`Transform<class_Transform>` **get_bone_global_pose** **(** :ref:`int<class_int>` bone_idx **)** const
 - :ref:`Transform<class_Transform>` **get_bone_global_pose** **(** :ref:`int<class_int>` bone_idx **)** const
@@ -188,6 +198,10 @@ Returns the rest transform for a bone ``bone_idx``.
 
 
 - :ref:`SkinReference<class_SkinReference>` **register_skin** **(** :ref:`Skin<class_Skin>` skin **)**
 - :ref:`SkinReference<class_SkinReference>` **register_skin** **(** :ref:`Skin<class_Skin>` skin **)**
 
 
+.. _class_Skeleton_method_set_bone_custom_pose:
+
+- void **set_bone_custom_pose** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_Transform>` custom_pose **)**
+
 .. _class_Skeleton_method_set_bone_disable_rest:
 .. _class_Skeleton_method_set_bone_disable_rest:
 
 
 - void **set_bone_disable_rest** **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)**
 - void **set_bone_disable_rest** **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)**

+ 3 - 1
classes/class_skeleton2d.rst

@@ -16,7 +16,7 @@ Skeleton2D
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+Skeleton for 2D characters and animated objects.
 
 
 Methods
 Methods
 -------
 -------
@@ -52,6 +52,8 @@ Method Descriptions
 
 
 - :ref:`int<class_int>` **get_bone_count** **(** **)** const
 - :ref:`int<class_int>` **get_bone_count** **(** **)** const
 
 
+Returns the amount of bones in the skeleton.
+
 .. _class_Skeleton2D_method_get_skeleton:
 .. _class_Skeleton2D_method_get_skeleton:
 
 
 - :ref:`RID<class_RID>` **get_skeleton** **(** **)** const
 - :ref:`RID<class_RID>` **get_skeleton** **(** **)** const

+ 4 - 0
classes/class_staticbody.rst

@@ -111,3 +111,7 @@ Deprecated, use :ref:`PhysicsMaterial.friction<class_PhysicsMaterial_property_fr
 | *Getter* | get_physics_material_override()      |
 | *Getter* | get_physics_material_override()      |
 +----------+--------------------------------------+
 +----------+--------------------------------------+
 
 
+The physics material override for the body.
+
+If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
+

+ 4 - 0
classes/class_staticbody2d.rst

@@ -109,3 +109,7 @@ Deprecated, use :ref:`PhysicsMaterial.friction<class_PhysicsMaterial_property_fr
 | *Getter* | get_physics_material_override()      |
 | *Getter* | get_physics_material_override()      |
 +----------+--------------------------------------+
 +----------+--------------------------------------+
 
 
+The physics material override for the body.
+
+If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
+

+ 12 - 0
classes/class_streampeer.rst

@@ -271,6 +271,12 @@ Sends a chunk of data through the connection. If all the data could not be sent
 
 
 Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size.
 Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size.
 
 
+Note: To put an ASCII string without prepending its size, you can use :ref:`put_data<class_StreamPeer_method_put_data>`:
+
+::
+
+    put_data("Hello world".to_ascii())
+
 .. _class_StreamPeer_method_put_u16:
 .. _class_StreamPeer_method_put_u16:
 
 
 - void **put_u16** **(** :ref:`int<class_int>` value **)**
 - void **put_u16** **(** :ref:`int<class_int>` value **)**
@@ -301,6 +307,12 @@ Puts an unsigned byte into the stream.
 
 
 Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size.
 Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size.
 
 
+Note: To put an UTF-8 string without prepending its size, you can use :ref:`put_data<class_StreamPeer_method_put_data>`:
+
+::
+
+    put_data("Hello world".to_utf8())
+
 .. _class_StreamPeer_method_put_var:
 .. _class_StreamPeer_method_put_var:
 
 
 - void **put_var** **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` full_objects=false **)**
 - void **put_var** **(** :ref:`Variant<class_Variant>` value, :ref:`bool<class_bool>` full_objects=false **)**

+ 3 - 1
classes/class_streampeerssl.rst

@@ -70,7 +70,7 @@ enum **Status**:
 Description
 Description
 -----------
 -----------
 
 
-SSL stream peer. This object can be used to connect to SSL servers.
+SSL stream peer. This object can be used to connect to an SSL server or accept a single SSL client connection.
 
 
 Tutorials
 Tutorials
 ---------
 ---------
@@ -99,6 +99,8 @@ Method Descriptions
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **accept_stream** **(** :ref:`StreamPeer<class_StreamPeer>` stream, :ref:`CryptoKey<class_CryptoKey>` private_key, :ref:`X509Certificate<class_X509Certificate>` certificate, :ref:`X509Certificate<class_X509Certificate>` chain=null **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **accept_stream** **(** :ref:`StreamPeer<class_StreamPeer>` stream, :ref:`CryptoKey<class_CryptoKey>` private_key, :ref:`X509Certificate<class_X509Certificate>` certificate, :ref:`X509Certificate<class_X509Certificate>` chain=null **)**
 
 
+Accepts a peer connection as a server using the given ``private_key`` and providing the given ``certificate`` to the client. You can pass the optional ``chain`` parameter to provide additional CA chain information along with the certificate.
+
 .. _class_StreamPeerSSL_method_connect_to_stream:
 .. _class_StreamPeerSSL_method_connect_to_stream:
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **connect_to_stream** **(** :ref:`StreamPeer<class_StreamPeer>` stream, :ref:`bool<class_bool>` validate_certs=false, :ref:`String<class_String>` for_hostname="", :ref:`X509Certificate<class_X509Certificate>` valid_certificate=null **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **connect_to_stream** **(** :ref:`StreamPeer<class_StreamPeer>` stream, :ref:`bool<class_bool>` validate_certs=false, :ref:`String<class_String>` for_hostname="", :ref:`X509Certificate<class_X509Certificate>` valid_certificate=null **)**

+ 22 - 8
classes/class_string.rst

@@ -116,6 +116,8 @@ Methods
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`http_unescape<class_String_method_http_unescape>` **(** **)**                                                                                                     |
 | :ref:`String<class_String>`                   | :ref:`http_unescape<class_String_method_http_unescape>` **(** **)**                                                                                                     |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`humanize_size<class_String_method_humanize_size>` **(** :ref:`int<class_int>` size **)**                                                                          |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`insert<class_String_method_insert>` **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)**                                                  |
 | :ref:`String<class_String>`                   | :ref:`insert<class_String_method_insert>` **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)**                                                  |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                       | :ref:`is_abs_path<class_String_method_is_abs_path>` **(** **)**                                                                                                         |
 | :ref:`bool<class_bool>`                       | :ref:`is_abs_path<class_String_method_is_abs_path>` **(** **)**                                                                                                         |
@@ -170,12 +172,12 @@ Methods
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`plus_file<class_String_method_plus_file>` **(** :ref:`String<class_String>` file **)**                                                                            |
 | :ref:`String<class_String>`                   | :ref:`plus_file<class_String_method_plus_file>` **(** :ref:`String<class_String>` file **)**                                                                            |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                   | :ref:`repeat<class_String_method_repeat>` **(** :ref:`int<class_int>` count **)**                                                                                       |
++-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`replace<class_String_method_replace>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**                                           |
 | :ref:`String<class_String>`                   | :ref:`replace<class_String_method_replace>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**                                           |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                   | :ref:`replacen<class_String_method_replacen>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**                                         |
 | :ref:`String<class_String>`                   | :ref:`replacen<class_String_method_replacen>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**                                         |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`String<class_String>`                   | :ref:`repeat<class_String_method_repeat>` **(** :ref:`int<class_int>` count **)**                                                                                       |
-+-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rfind<class_String_method_rfind>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**                                                     |
 | :ref:`int<class_int>`                         | :ref:`rfind<class_String_method_rfind>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**                                                     |
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                         | :ref:`rfindn<class_String_method_rfindn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**                                                   |
 | :ref:`int<class_int>`                         | :ref:`rfindn<class_String_method_rfindn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**                                                   |
@@ -494,6 +496,18 @@ Unescapes (decodes) a string in URL encoded format. Also referred to as 'URL dec
 
 
     print("https://example.org/?escaped=" + "Godot%20Engine%3A%27docs%27".http_unescape())
     print("https://example.org/?escaped=" + "Godot%20Engine%3A%27docs%27".http_unescape())
 
 
+.. _class_String_method_humanize_size:
+
+- :ref:`String<class_String>` **humanize_size** **(** :ref:`int<class_int>` size **)**
+
+Converts ``size`` represented as number of bytes to human-readable format using internationalized set of data size units, namely: B, KiB, MiB, GiB, TiB, PiB, EiB. Note that the next smallest unit is picked automatically to hold at most 1024 units.
+
+::
+
+    var bytes = 133790307
+    var size = String.humanize_size(bytes)
+    print(size) # prints "127.5 MiB"
+
 .. _class_String_method_insert:
 .. _class_String_method_insert:
 
 
 - :ref:`String<class_String>` **insert** **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)**
 - :ref:`String<class_String>` **insert** **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)**
@@ -658,6 +672,12 @@ Percent-encodes a string. Encodes parameters in a URL when sending a HTTP GET re
 
 
 If the string is a path, this concatenates ``file`` at the end of the string as a subpath. E.g. ``"this/is".plus_file("path") == "this/is/path"``.
 If the string is a path, this concatenates ``file`` at the end of the string as a subpath. E.g. ``"this/is".plus_file("path") == "this/is/path"``.
 
 
+.. _class_String_method_repeat:
+
+- :ref:`String<class_String>` **repeat** **(** :ref:`int<class_int>` count **)**
+
+Returns original string repeated a number of times. The number of repetitions is given by the argument.
+
 .. _class_String_method_replace:
 .. _class_String_method_replace:
 
 
 - :ref:`String<class_String>` **replace** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**
 - :ref:`String<class_String>` **replace** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**
@@ -670,12 +690,6 @@ Replaces occurrences of a case-sensitive substring with the given one inside the
 
 
 Replaces occurrences of a case-insensitive substring with the given one inside the string.
 Replaces occurrences of a case-insensitive substring with the given one inside the string.
 
 
-.. _class_String_method_repeat:
-
-- :ref:`String<class_String>` **repeat** **(** :ref:`int<class_int>` count **)**
-
-Returns original string repeated a number of times. The number of repetitions is given by the argument.
-
 .. _class_String_method_rfind:
 .. _class_String_method_rfind:
 
 
 - :ref:`int<class_int>` **rfind** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**
 - :ref:`int<class_int>` **rfind** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**

+ 2 - 0
classes/class_surfacetool.rst

@@ -183,6 +183,8 @@ Clear all information passed into the surface tool so far.
 
 
 Returns a constructed :ref:`ArrayMesh<class_ArrayMesh>` from current information passed in. If an existing :ref:`ArrayMesh<class_ArrayMesh>` is passed in as an argument, will add an extra surface to the existing :ref:`ArrayMesh<class_ArrayMesh>`.
 Returns a constructed :ref:`ArrayMesh<class_ArrayMesh>` from current information passed in. If an existing :ref:`ArrayMesh<class_ArrayMesh>` is passed in as an argument, will add an extra surface to the existing :ref:`ArrayMesh<class_ArrayMesh>`.
 
 
+Default flag is :ref:`Mesh.ARRAY_COMPRESS_DEFAULT<class_Mesh_constant_ARRAY_COMPRESS_DEFAULT>`. See ``Mesh.ARRAY_COMPRESS_*`` constants for other flags.
+
 .. _class_SurfaceTool_method_commit_to_arrays:
 .. _class_SurfaceTool_method_commit_to_arrays:
 
 
 - :ref:`Array<class_Array>` **commit_to_arrays** **(** **)**
 - :ref:`Array<class_Array>` **commit_to_arrays** **(** **)**

+ 1 - 1
classes/class_textureprogress.rst

@@ -141,7 +141,7 @@ The fill direction. See :ref:`FillMode<enum_TextureProgress_FillMode>` for possi
 | *Getter*  | get_nine_patch_stretch()      |
 | *Getter*  | get_nine_patch_stretch()      |
 +-----------+-------------------------------+
 +-----------+-------------------------------+
 
 
-If ``true``, Godot treats the bar's textures like in :ref:`NinePatchRect<class_NinePatchRect>`. Use the ``stretch_margin_*`` properties like :ref:`stretch_margin_bottom<class_TextureProgress_property_stretch_margin_bottom>` to set up the nine patch's 3×3 grid.
+If ``true``, Godot treats the bar's textures like in :ref:`NinePatchRect<class_NinePatchRect>`. Use the ``stretch_margin_*`` properties like :ref:`stretch_margin_bottom<class_TextureProgress_property_stretch_margin_bottom>` to set up the nine patch's 3×3 grid. When using a radial :ref:`fill_mode<class_TextureProgress_property_fill_mode>`, this setting will enable stretching.
 
 
 .. _class_TextureProgress_property_radial_center_offset:
 .. _class_TextureProgress_property_radial_center_offset:
 
 

+ 5 - 0
classes/class_thread.rst

@@ -55,6 +55,11 @@ Description
 
 
 A unit of execution in a process. Can run methods on :ref:`Object<class_Object>`\ s simultaneously. The use of synchronization via :ref:`Mutex<class_Mutex>` or :ref:`Semaphore<class_Semaphore>` is advised if working with shared objects.
 A unit of execution in a process. Can run methods on :ref:`Object<class_Object>`\ s simultaneously. The use of synchronization via :ref:`Mutex<class_Mutex>` or :ref:`Semaphore<class_Semaphore>` is advised if working with shared objects.
 
 
+Tutorials
+---------
+
+- :doc:`../tutorials/threads/using_multiple_threads`
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 

+ 24 - 0
classes/class_treeitem.rst

@@ -35,6 +35,8 @@ Methods
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`add_button<class_TreeItem_method_add_button>` **(** :ref:`int<class_int>` column, :ref:`Texture<class_Texture>` button, :ref:`int<class_int>` button_idx=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)** |
 | void                                            | :ref:`add_button<class_TreeItem_method_add_button>` **(** :ref:`int<class_int>` column, :ref:`Texture<class_Texture>` button, :ref:`int<class_int>` button_idx=-1, :ref:`bool<class_bool>` disabled=false, :ref:`String<class_String>` tooltip="" **)** |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                   | :ref:`call_recursive<class_TreeItem_method_call_recursive>` **(** :ref:`String<class_String>` method, ... **)** vararg                                                                                                                                  |
++-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`clear_custom_bg_color<class_TreeItem_method_clear_custom_bg_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                      |
 | void                                            | :ref:`clear_custom_bg_color<class_TreeItem_method_clear_custom_bg_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                      |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`clear_custom_color<class_TreeItem_method_clear_custom_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                            |
 | void                                            | :ref:`clear_custom_color<class_TreeItem_method_clear_custom_color>` **(** :ref:`int<class_int>` column **)**                                                                                                                                            |
@@ -47,12 +49,16 @@ Methods
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`get_button_count<class_TreeItem_method_get_button_count>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                          |
 | :ref:`int<class_int>`                           | :ref:`get_button_count<class_TreeItem_method_get_button_count>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                          |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`                     | :ref:`get_button_tooltip<class_TreeItem_method_get_button_tooltip>` **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** const                                                                                                    |
++-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` | :ref:`get_cell_mode<class_TreeItem_method_get_cell_mode>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                                |
 | :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` | :ref:`get_cell_mode<class_TreeItem_method_get_cell_mode>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                                |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`TreeItem<class_TreeItem>`                 | :ref:`get_children<class_TreeItem_method_get_children>` **(** **)**                                                                                                                                                                                     |
 | :ref:`TreeItem<class_TreeItem>`                 | :ref:`get_children<class_TreeItem_method_get_children>` **(** **)**                                                                                                                                                                                     |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`                       | :ref:`get_custom_bg_color<class_TreeItem_method_get_custom_bg_color>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                    |
 | :ref:`Color<class_Color>`                       | :ref:`get_custom_bg_color<class_TreeItem_method_get_custom_bg_color>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                    |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Color<class_Color>`                       | :ref:`get_custom_color<class_TreeItem_method_get_custom_color>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                          |
++-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                         | :ref:`get_expand_right<class_TreeItem_method_get_expand_right>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                          |
 | :ref:`bool<class_bool>`                         | :ref:`get_expand_right<class_TreeItem_method_get_expand_right>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                          |
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Texture<class_Texture>`                   | :ref:`get_icon<class_TreeItem_method_get_icon>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                                          |
 | :ref:`Texture<class_Texture>`                   | :ref:`get_icon<class_TreeItem_method_get_icon>` **(** :ref:`int<class_int>` column **)** const                                                                                                                                                          |
@@ -244,6 +250,12 @@ Method Descriptions
 
 
 Adds a button with :ref:`Texture<class_Texture>` ``button`` at column ``column``. The ``button_idx`` index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately after this method. Optionally, the button can be ``disabled`` and have a ``tooltip``.
 Adds a button with :ref:`Texture<class_Texture>` ``button`` at column ``column``. The ``button_idx`` index is used to identify the button when calling other methods. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately after this method. Optionally, the button can be ``disabled`` and have a ``tooltip``.
 
 
+.. _class_TreeItem_method_call_recursive:
+
+- :ref:`Variant<class_Variant>` **call_recursive** **(** :ref:`String<class_String>` method, ... **)** vararg
+
+Calls the ``method`` on the actual TreeItem and its children recursively. Pass parameters as a comma separated list.
+
 .. _class_TreeItem_method_clear_custom_bg_color:
 .. _class_TreeItem_method_clear_custom_bg_color:
 
 
 - void **clear_custom_bg_color** **(** :ref:`int<class_int>` column **)**
 - void **clear_custom_bg_color** **(** :ref:`int<class_int>` column **)**
@@ -280,6 +292,12 @@ Returns the :ref:`Texture<class_Texture>` of the button at index ``button_idx``
 
 
 Returns the number of buttons in column ``column``. May be used to get the most recently added button's index, if no index was specified.
 Returns the number of buttons in column ``column``. May be used to get the most recently added button's index, if no index was specified.
 
 
+.. _class_TreeItem_method_get_button_tooltip:
+
+- :ref:`String<class_String>` **get_button_tooltip** **(** :ref:`int<class_int>` column, :ref:`int<class_int>` button_idx **)** const
+
+Returns the tooltip string for the button at index ``button_idx`` in column ``column``.
+
 .. _class_TreeItem_method_get_cell_mode:
 .. _class_TreeItem_method_get_cell_mode:
 
 
 - :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **get_cell_mode** **(** :ref:`int<class_int>` column **)** const
 - :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **get_cell_mode** **(** :ref:`int<class_int>` column **)** const
@@ -298,6 +316,12 @@ Returns the TreeItem's child items.
 
 
 Returns the custom background color of column ``column``.
 Returns the custom background color of column ``column``.
 
 
+.. _class_TreeItem_method_get_custom_color:
+
+- :ref:`Color<class_Color>` **get_custom_color** **(** :ref:`int<class_int>` column **)** const
+
+Returns the custom color of column ``column``.
+
 .. _class_TreeItem_method_get_expand_right:
 .. _class_TreeItem_method_get_expand_right:
 
 
 - :ref:`bool<class_bool>` **get_expand_right** **(** :ref:`int<class_int>` column **)** const
 - :ref:`bool<class_bool>` **get_expand_right** **(** :ref:`int<class_int>` column **)** const

+ 2 - 0
classes/class_videoplayer.rst

@@ -169,6 +169,8 @@ If ``true``, the video is paused.
 | *Getter* | get_stream()      |
 | *Getter* | get_stream()      |
 +----------+-------------------+
 +----------+-------------------+
 
 
+The assigned video stream. See description for supported formats.
+
 .. _class_VideoPlayer_property_stream_position:
 .. _class_VideoPlayer_property_stream_position:
 
 
 - :ref:`float<class_float>` **stream_position**
 - :ref:`float<class_float>` **stream_position**

+ 25 - 0
classes/class_visualscriptcomposearray.rst

@@ -0,0 +1,25 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the VisualScriptComposeArray.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_VisualScriptComposeArray:
+
+VisualScriptComposeArray
+========================
+
+**Inherits:** :ref:`VisualScriptLists<class_VisualScriptLists>` **<** :ref:`VisualScriptNode<class_VisualScriptNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
+
+**Category:** Core
+
+Brief Description
+-----------------
+
+A Visual Script Node used to create array from a list of items.
+
+Description
+-----------
+
+A Visual Script Node used to compose array from the list of elements provided with custom in-graph UI hard coded in the VisualScript Editor.
+

+ 83 - 0
classes/class_visualscriptlists.rst

@@ -0,0 +1,83 @@
+:github_url: hide
+
+.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
+.. DO NOT EDIT THIS FILE, but the VisualScriptLists.xml source instead.
+.. The source is found in doc/classes or modules/<name>/doc_classes.
+
+.. _class_VisualScriptLists:
+
+VisualScriptLists
+=================
+
+**Inherits:** :ref:`VisualScriptNode<class_VisualScriptNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
+
+**Inherited By:** :ref:`VisualScriptComposeArray<class_VisualScriptComposeArray>`
+
+**Category:** Core
+
+Brief Description
+-----------------
+
+A Visual Script virtual class for in-graph editable nodes.
+
+Methods
+-------
+
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`add_input_data_port<class_VisualScriptLists_method_add_input_data_port>` **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`int<class_int>` index **)**   |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`add_output_data_port<class_VisualScriptLists_method_add_output_data_port>` **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`int<class_int>` index **)** |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`remove_input_data_port<class_VisualScriptLists_method_remove_input_data_port>` **(** :ref:`int<class_int>` index **)**                                                                                         |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`remove_output_data_port<class_VisualScriptLists_method_remove_output_data_port>` **(** :ref:`int<class_int>` index **)**                                                                                       |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_input_data_port_name<class_VisualScriptLists_method_set_input_data_port_name>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` name **)**                                                   |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_input_data_port_type<class_VisualScriptLists_method_set_input_data_port_type>` **(** :ref:`int<class_int>` index, :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type **)**                           |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_output_data_port_name<class_VisualScriptLists_method_set_output_data_port_name>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` name **)**                                                 |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void | :ref:`set_output_data_port_type<class_VisualScriptLists_method_set_output_data_port_type>` **(** :ref:`int<class_int>` index, :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type **)**                         |
++------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+Description
+-----------
+
+A Visual Script virtual class that defines the shape and the default behaviour of the nodes that have to be in-graph editable nodes.
+
+Method Descriptions
+-------------------
+
+.. _class_VisualScriptLists_method_add_input_data_port:
+
+- void **add_input_data_port** **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`int<class_int>` index **)**
+
+.. _class_VisualScriptLists_method_add_output_data_port:
+
+- void **add_output_data_port** **(** :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type, :ref:`String<class_String>` name, :ref:`int<class_int>` index **)**
+
+.. _class_VisualScriptLists_method_remove_input_data_port:
+
+- void **remove_input_data_port** **(** :ref:`int<class_int>` index **)**
+
+.. _class_VisualScriptLists_method_remove_output_data_port:
+
+- void **remove_output_data_port** **(** :ref:`int<class_int>` index **)**
+
+.. _class_VisualScriptLists_method_set_input_data_port_name:
+
+- void **set_input_data_port_name** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` name **)**
+
+.. _class_VisualScriptLists_method_set_input_data_port_type:
+
+- void **set_input_data_port_type** **(** :ref:`int<class_int>` index, :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type **)**
+
+.. _class_VisualScriptLists_method_set_output_data_port_name:
+
+- void **set_output_data_port_name** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` name **)**
+
+.. _class_VisualScriptLists_method_set_output_data_port_type:
+
+- void **set_output_data_port_type** **(** :ref:`int<class_int>` index, :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` type **)**
+

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
classes/class_visualscriptnode.rst


+ 0 - 6
classes/class_visualshader.rst

@@ -53,8 +53,6 @@ Methods
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`bool<class_bool>`                         | :ref:`is_node_connection<class_VisualShader_method_is_node_connection>` **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` from_node, :ref:`int<class_int>` from_port, :ref:`int<class_int>` to_node, :ref:`int<class_int>` to_port **)** const |
 | :ref:`bool<class_bool>`                         | :ref:`is_node_connection<class_VisualShader_method_is_node_connection>` **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` from_node, :ref:`int<class_int>` from_port, :ref:`int<class_int>` to_node, :ref:`int<class_int>` to_port **)** const |
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                            | :ref:`rebuild<class_VisualShader_method_rebuild>` **(** **)**                                                                                                                                                                                                      |
-+-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`remove_node<class_VisualShader_method_remove_node>` **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` id **)**                                                                                                                           |
 | void                                            | :ref:`remove_node<class_VisualShader_method_remove_node>` **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` id **)**                                                                                                                           |
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 +-------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | void                                            | :ref:`set_mode<class_VisualShader_method_set_mode>` **(** :ref:`Mode<enum_Shader_Mode>` mode **)**                                                                                                                                                                 |
 | void                                            | :ref:`set_mode<class_VisualShader_method_set_mode>` **(** :ref:`Mode<enum_Shader_Mode>` mode **)**                                                                                                                                                                 |
@@ -158,10 +156,6 @@ Method Descriptions
 
 
 - :ref:`bool<class_bool>` **is_node_connection** **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` from_node, :ref:`int<class_int>` from_port, :ref:`int<class_int>` to_node, :ref:`int<class_int>` to_port **)** const
 - :ref:`bool<class_bool>` **is_node_connection** **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` from_node, :ref:`int<class_int>` from_port, :ref:`int<class_int>` to_node, :ref:`int<class_int>` to_port **)** const
 
 
-.. _class_VisualShader_method_rebuild:
-
-- void **rebuild** **(** **)**
-
 .. _class_VisualShader_method_remove_node:
 .. _class_VisualShader_method_remove_node:
 
 
 - void **remove_node** **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` id **)**
 - void **remove_node** **(** :ref:`Type<enum_VisualShader_Type>` type, :ref:`int<class_int>` id **)**

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
classes/class_visualshadernode.rst


+ 1 - 8
classes/class_visualshadernodecubemapuniform.rst

@@ -9,7 +9,7 @@
 VisualShaderNodeCubeMapUniform
 VisualShaderNodeCubeMapUniform
 ==============================
 ==============================
 
 
-**Inherits:** :ref:`VisualShaderNode<class_VisualShaderNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
+**Inherits:** :ref:`VisualShaderNodeTextureUniform<class_VisualShaderNodeTextureUniform>` **<** :ref:`VisualShaderNodeUniform<class_VisualShaderNodeUniform>` **<** :ref:`VisualShaderNode<class_VisualShaderNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
 
 **Category:** Core
 **Category:** Core
 
 
@@ -18,10 +18,3 @@ Brief Description
 
 
 
 
 
 
-Properties
-----------
-
-+---------------------------+----------------------+-------------+
-| :ref:`Array<class_Array>` | default_input_values | **O:** [  ] |
-+---------------------------+----------------------+-------------+
-

+ 7 - 0
classes/class_visualshadernodescalarswitch.rst

@@ -18,3 +18,10 @@ Brief Description
 
 
 
 
 
 
+Properties
+----------
+
++---------------------------+----------------------+-------------------------------------+
+| :ref:`Array<class_Array>` | default_input_values | **O:** [ 0, false, 1, 1.0, 2, 0.0 ] |
++---------------------------+----------------------+-------------------------------------+
+

+ 1 - 1
classes/class_visualshadernodeswitch.rst

@@ -24,6 +24,6 @@ Properties
 ----------
 ----------
 
 
 +---------------------------+----------------------+-------------------------------------------------------------------+
 +---------------------------+----------------------+-------------------------------------------------------------------+
-| :ref:`Array<class_Array>` | default_input_values | **O:** [ 0, false, 1, Vector3( 0, 0, 0 ), 2, Vector3( 0, 0, 0 ) ] |
+| :ref:`Array<class_Array>` | default_input_values | **O:** [ 0, false, 1, Vector3( 1, 1, 1 ), 2, Vector3( 0, 0, 0 ) ] |
 +---------------------------+----------------------+-------------------------------------------------------------------+
 +---------------------------+----------------------+-------------------------------------------------------------------+
 
 

+ 1 - 1
classes/class_visualshadernodetextureuniform.rst

@@ -11,7 +11,7 @@ VisualShaderNodeTextureUniform
 
 
 **Inherits:** :ref:`VisualShaderNodeUniform<class_VisualShaderNodeUniform>` **<** :ref:`VisualShaderNode<class_VisualShaderNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 **Inherits:** :ref:`VisualShaderNodeUniform<class_VisualShaderNodeUniform>` **<** :ref:`VisualShaderNode<class_VisualShaderNode>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
 
-**Inherited By:** :ref:`VisualShaderNodeTextureUniformTriplanar<class_VisualShaderNodeTextureUniformTriplanar>`
+**Inherited By:** :ref:`VisualShaderNodeCubeMapUniform<class_VisualShaderNodeCubeMapUniform>`, :ref:`VisualShaderNodeTextureUniformTriplanar<class_VisualShaderNodeTextureUniformTriplanar>`
 
 
 **Category:** Core
 **Category:** Core
 
 

+ 41 - 9
classes/class_websocketclient.rst

@@ -21,18 +21,24 @@ A WebSocket client implementation.
 Properties
 Properties
 ----------
 ----------
 
 
-+-------------------------+--------------------------------------------------------------+
-| :ref:`bool<class_bool>` | :ref:`verify_ssl<class_WebSocketClient_property_verify_ssl>` |
-+-------------------------+--------------------------------------------------------------+
++-----------------------------------------------+----------------------------------------------------------------------------------------+
+| :ref:`X509Certificate<class_X509Certificate>` | :ref:`trusted_ssl_certificate<class_WebSocketClient_property_trusted_ssl_certificate>` |
++-----------------------------------------------+----------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                       | :ref:`verify_ssl<class_WebSocketClient_property_verify_ssl>`                           |
++-----------------------------------------------+----------------------------------------------------------------------------------------+
 
 
 Methods
 Methods
 -------
 -------
 
 
-+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`connect_to_url<class_WebSocketClient_method_connect_to_url>` **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` protocols=PoolStringArray(  ), :ref:`bool<class_bool>` gd_mp_api=false **)** |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                  | :ref:`disconnect_from_host<class_WebSocketClient_method_disconnect_from_host>` **(** :ref:`int<class_int>` code=1000, :ref:`String<class_String>` reason="" **)**                                                                    |
-+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`connect_to_url<class_WebSocketClient_method_connect_to_url>` **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` protocols=PoolStringArray(  ), :ref:`bool<class_bool>` gd_mp_api=false, :ref:`PoolStringArray<class_PoolStringArray>` custom_headers=PoolStringArray(  ) **)** |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                  | :ref:`disconnect_from_host<class_WebSocketClient_method_disconnect_from_host>` **(** :ref:`int<class_int>` code=1000, :ref:`String<class_String>` reason="" **)**                                                                                                                                                      |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`String<class_String>`           | :ref:`get_connected_host<class_WebSocketClient_method_get_connected_host>` **(** **)** const                                                                                                                                                                                                                           |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                 | :ref:`get_connected_port<class_WebSocketClient_method_get_connected_port>` **(** **)** const                                                                                                                                                                                                                           |
++---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 Signals
 Signals
 -------
 -------
@@ -83,6 +89,18 @@ You will receive appropriate signals when connecting, disconnecting, or when new
 Property Descriptions
 Property Descriptions
 ---------------------
 ---------------------
 
 
+.. _class_WebSocketClient_property_trusted_ssl_certificate:
+
+- :ref:`X509Certificate<class_X509Certificate>` **trusted_ssl_certificate**
+
++----------+------------------------------------+
+| *Setter* | set_trusted_ssl_certificate(value) |
++----------+------------------------------------+
+| *Getter* | get_trusted_ssl_certificate()      |
++----------+------------------------------------+
+
+If specified, this :ref:`X509Certificate<class_X509Certificate>` will be the only one accepted when connecting to an SSL host. Any other certificate provided by the server will be regarded as invalid.
+
 .. _class_WebSocketClient_property_verify_ssl:
 .. _class_WebSocketClient_property_verify_ssl:
 
 
 - :ref:`bool<class_bool>` **verify_ssl**
 - :ref:`bool<class_bool>` **verify_ssl**
@@ -102,7 +120,7 @@ Method Descriptions
 
 
 .. _class_WebSocketClient_method_connect_to_url:
 .. _class_WebSocketClient_method_connect_to_url:
 
 
-- :ref:`Error<enum_@GlobalScope_Error>` **connect_to_url** **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` protocols=PoolStringArray(  ), :ref:`bool<class_bool>` gd_mp_api=false **)**
+- :ref:`Error<enum_@GlobalScope_Error>` **connect_to_url** **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` protocols=PoolStringArray(  ), :ref:`bool<class_bool>` gd_mp_api=false, :ref:`PoolStringArray<class_PoolStringArray>` custom_headers=PoolStringArray(  ) **)**
 
 
 Connects to the given URL requesting one of the given ``protocols`` as sub-protocol. If the list empty (default), no sub-protocol will be requested.
 Connects to the given URL requesting one of the given ``protocols`` as sub-protocol. If the list empty (default), no sub-protocol will be requested.
 
 
@@ -110,9 +128,23 @@ If ``true`` is passed as ``gd_mp_api``, the client will behave like a network pe
 
 
 If ``false`` is passed instead (default), you must call :ref:`PacketPeer<class_PacketPeer>` functions (``put_packet``, ``get_packet``, etc.) on the :ref:`WebSocketPeer<class_WebSocketPeer>` returned via ``get_peer(1)`` and not on this object directly (e.g. ``get_peer(1).put_packet(data)``).
 If ``false`` is passed instead (default), you must call :ref:`PacketPeer<class_PacketPeer>` functions (``put_packet``, ``get_packet``, etc.) on the :ref:`WebSocketPeer<class_WebSocketPeer>` returned via ``get_peer(1)`` and not on this object directly (e.g. ``get_peer(1).put_packet(data)``).
 
 
+You can optionally pass a list of ``custom_headers`` to be added to the handshake HTTP request (not supported in HTML5 platform).
+
 .. _class_WebSocketClient_method_disconnect_from_host:
 .. _class_WebSocketClient_method_disconnect_from_host:
 
 
 - void **disconnect_from_host** **(** :ref:`int<class_int>` code=1000, :ref:`String<class_String>` reason="" **)**
 - void **disconnect_from_host** **(** :ref:`int<class_int>` code=1000, :ref:`String<class_String>` reason="" **)**
 
 
 Disconnects this client from the connected host. See :ref:`WebSocketPeer.close<class_WebSocketPeer_method_close>` for more information.
 Disconnects this client from the connected host. See :ref:`WebSocketPeer.close<class_WebSocketPeer_method_close>` for more information.
 
 
+.. _class_WebSocketClient_method_get_connected_host:
+
+- :ref:`String<class_String>` **get_connected_host** **(** **)** const
+
+Return the IP address of the currently connected host.
+
+.. _class_WebSocketClient_method_get_connected_port:
+
+- :ref:`int<class_int>` **get_connected_port** **(** **)** const
+
+Return the IP port of the currently connected host.
+

+ 50 - 0
classes/class_websocketserver.rst

@@ -18,6 +18,17 @@ Brief Description
 
 
 A WebSocket server implementation.
 A WebSocket server implementation.
 
 
+Properties
+----------
+
++-----------------------------------------------+------------------------------------------------------------------------+
+| :ref:`X509Certificate<class_X509Certificate>` | :ref:`ca_chain<class_WebSocketServer_property_ca_chain>`               |
++-----------------------------------------------+------------------------------------------------------------------------+
+| :ref:`CryptoKey<class_CryptoKey>`             | :ref:`private_key<class_WebSocketServer_property_private_key>`         |
++-----------------------------------------------+------------------------------------------------------------------------+
+| :ref:`X509Certificate<class_X509Certificate>` | :ref:`ssl_certificate<class_WebSocketServer_property_ssl_certificate>` |
++-----------------------------------------------+------------------------------------------------------------------------+
+
 Methods
 Methods
 -------
 -------
 
 
@@ -75,6 +86,45 @@ After starting the server (:ref:`listen<class_WebSocketServer_method_listen>`),
 
 
 **Note:** This class will not work in HTML5 exports due to browser restrictions.
 **Note:** This class will not work in HTML5 exports due to browser restrictions.
 
 
+Property Descriptions
+---------------------
+
+.. _class_WebSocketServer_property_ca_chain:
+
+- :ref:`X509Certificate<class_X509Certificate>` **ca_chain**
+
++----------+---------------------+
+| *Setter* | set_ca_chain(value) |
++----------+---------------------+
+| *Getter* | get_ca_chain()      |
++----------+---------------------+
+
+When using SSL (see :ref:`private_key<class_WebSocketServer_property_private_key>` and :ref:`ssl_certificate<class_WebSocketServer_property_ssl_certificate>`), you can set this to a valid :ref:`X509Certificate<class_X509Certificate>` to be provided as additional CA chain information during the SSL handshake.
+
+.. _class_WebSocketServer_property_private_key:
+
+- :ref:`CryptoKey<class_CryptoKey>` **private_key**
+
++----------+------------------------+
+| *Setter* | set_private_key(value) |
++----------+------------------------+
+| *Getter* | get_private_key()      |
++----------+------------------------+
+
+When set to a valid :ref:`CryptoKey<class_CryptoKey>` (along with :ref:`ssl_certificate<class_WebSocketServer_property_ssl_certificate>`) will cause the server to require SSL instead of regular TCP (i.e. the ``wss://`` protocol).
+
+.. _class_WebSocketServer_property_ssl_certificate:
+
+- :ref:`X509Certificate<class_X509Certificate>` **ssl_certificate**
+
++----------+----------------------------+
+| *Setter* | set_ssl_certificate(value) |
++----------+----------------------------+
+| *Getter* | get_ssl_certificate()      |
++----------+----------------------------+
+
+When set to a valid :ref:`X509Certificate<class_X509Certificate>` (along with :ref:`private_key<class_WebSocketServer_property_private_key>`) will cause the server to require SSL instead of regular TCP (i.e. the ``wss://`` protocol).
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 

+ 12 - 1
classes/class_x509certificate.rst

@@ -16,7 +16,7 @@ X509Certificate
 Brief Description
 Brief Description
 -----------------
 -----------------
 
 
-
+An X509 certificate (e.g. for SSL).
 
 
 Methods
 Methods
 -------
 -------
@@ -27,6 +27,13 @@ Methods
 | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_X509Certificate_method_save>` **(** :ref:`String<class_String>` path **)** |
 | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`save<class_X509Certificate_method_save>` **(** :ref:`String<class_String>` path **)** |
 +---------------------------------------+---------------------------------------------------------------------------------------------+
 +---------------------------------------+---------------------------------------------------------------------------------------------+
 
 
+Description
+-----------
+
+The X509Certificate class represents an X509 certificate. Certificates can be loaded and saved like any other :ref:`Resource<class_Resource>`.
+
+They can be used as the server certificate in :ref:`StreamPeerSSL.accept_stream<class_StreamPeerSSL_method_accept_stream>` (along with the proper :ref:`CryptoKey<class_CryptoKey>`), and to specify the only certificate that should be accepted when connecting to an SSL server via :ref:`StreamPeerSSL.connect_to_stream<class_StreamPeerSSL_method_connect_to_stream>`.
+
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
@@ -34,7 +41,11 @@ Method Descriptions
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **load** **(** :ref:`String<class_String>` path **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **load** **(** :ref:`String<class_String>` path **)**
 
 
+Loads a certificate from ``path`` ("\*.crt" file).
+
 .. _class_X509Certificate_method_save:
 .. _class_X509Certificate_method_save:
 
 
 - :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path **)**
 - :ref:`Error<enum_@GlobalScope_Error>` **save** **(** :ref:`String<class_String>` path **)**
 
 
+Saves a certificate to the given ``path`` (should be a "\*.crt" file).
+

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно