Ver código fonte

classref: Sync with current 3.4 branch (4330c0b8)

Sync the class reference with the 3.4 branch (4330c0b8e909bd095345f2a979a23aad08493bb8), minus some 3.4.3 specific API changes that are not released yet.
Importantly, this fixes some invalid links and thus makes CI happy. Happy CI, happy devs!
Max Hilbrunner 3 anos atrás
pai
commit
e903776b06
41 arquivos alterados com 135 adições e 69 exclusões
  1. 8 3
      classes/[email protected]
  2. 6 2
      classes/class_audioeffectrecord.rst
  3. 1 1
      classes/class_camerafeed.rst
  4. 8 6
      classes/class_cameraserver.rst
  5. 12 12
      classes/class_canvasitem.rst
  6. 2 2
      classes/class_charfxtransform.rst
  7. 2 2
      classes/class_color.rst
  8. 1 1
      classes/class_colorpicker.rst
  9. 8 0
      classes/class_control.rst
  10. 1 1
      classes/class_convexpolygonshape2d.rst
  11. 1 1
      classes/class_csharpscript.rst
  12. 3 1
      classes/class_editorexportplugin.rst
  13. 3 1
      classes/class_editorimportplugin.rst
  14. 3 3
      classes/class_editorinspectorplugin.rst
  15. 7 0
      classes/class_editorsceneimporter.rst
  16. 3 1
      classes/class_editorspatialgizmoplugin.rst
  17. 1 1
      classes/class_engine.rst
  18. 1 1
      classes/class_environment.rst
  19. 6 2
      classes/class_filedialog.rst
  20. 2 2
      classes/class_gdnativelibrary.rst
  21. 1 1
      classes/class_gdscript.rst
  22. 2 2
      classes/class_hmaccontext.rst
  23. 13 1
      classes/class_input.rst
  24. 4 0
      classes/class_inputevent.rst
  25. 2 2
      classes/class_inputeventmouse.rst
  26. 1 1
      classes/class_itemlist.rst
  27. 2 2
      classes/class_meshdatatool.rst
  28. 1 1
      classes/class_meshinstance2d.rst
  29. 1 1
      classes/class_multimeshinstance2d.rst
  30. 1 1
      classes/class_os.rst
  31. 2 0
      classes/class_particles.rst
  32. 2 0
      classes/class_particles2d.rst
  33. 2 2
      classes/class_poolbytearray.rst
  34. 3 1
      classes/class_projectsettings.rst
  35. 1 1
      classes/class_rootmotionview.rst
  36. 11 5
      classes/class_spatialmaterial.rst
  37. 2 2
      classes/class_spriteframes.rst
  38. 1 1
      classes/class_streampeer.rst
  39. 2 0
      classes/class_tween.rst
  40. 1 1
      classes/class_vector2.rst
  41. 1 1
      classes/class_visualscript.rst

+ 8 - 3
classes/[email protected]

@@ -701,16 +701,19 @@ Returns the Object that corresponds to ``instance_id``. All Objects have a uniqu
 
 - :ref:`float<class_float>` **inverse_lerp** **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to, :ref:`float<class_float>` weight **)**
 
-Returns a normalized value considering the given range. This is the opposite of :ref:`lerp<class_@GDScript_method_lerp>`.
+Returns an interpolation or extrapolation factor considering the range specified in ``from`` and ``to``, and the interpolated value specified in ``weight``. The returned value will be between ``0.0`` and ``1.0`` if ``weight`` is between ``from`` and ``to`` (inclusive). If ``weight`` is located outside this range, then an extrapolation factor will be returned (return value lower than ``0.0`` or greater than ``1.0``).
 
 ::
 
+    # The interpolation ratio in the `lerp()` call below is 0.75.
     var middle = lerp(20, 30, 0.75)
     # `middle` is now 27.5.
     # Now, we pretend to have forgotten the original ratio and want to get it back.
     var ratio = inverse_lerp(20, 30, 27.5)
     # `ratio` is now 0.75.
 
+See also :ref:`lerp<class_@GDScript_method_lerp>` which performs the reverse of this operation.
+
 ----
 
 .. _class_@GDScript_method_is_equal_approx:
@@ -778,7 +781,7 @@ Returns length of Variant ``var``. Length is the character count of String, elem
 
 - :ref:`Variant<class_Variant>` **lerp** **(** :ref:`Variant<class_Variant>` from, :ref:`Variant<class_Variant>` to, :ref:`float<class_float>` weight **)**
 
-Linearly interpolates between two values by a normalized value. This is the opposite of :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>`.
+Linearly interpolates between two values by the factor defined in ``weight``. To perform interpolation, ``weight`` should be between ``0.0`` and ``1.0`` (inclusive). However, values outside this range are allowed and can be used to perform *extrapolation*.
 
 If the ``from`` and ``to`` arguments are of type :ref:`int<class_int>` or :ref:`float<class_float>`, the return value is a :ref:`float<class_float>`.
 
@@ -789,6 +792,8 @@ If both are of the same vector type (:ref:`Vector2<class_Vector2>`, :ref:`Vector
     lerp(0, 4, 0.75) # Returns 3.0
     lerp(Vector2(1, 5), Vector2(3, 2), 0.5) # Returns Vector2(2, 3.5)
 
+See also :ref:`inverse_lerp<class_@GDScript_method_inverse_lerp>` which performs the reverse of this operation. To perform eased interpolation with :ref:`lerp<class_@GDScript_method_lerp>`, combine it with :ref:`ease<class_@GDScript_method_ease>` or :ref:`smoothstep<class_@GDScript_method_smoothstep>`.
+
 ----
 
 .. _class_@GDScript_method_lerp_angle:
@@ -797,7 +802,7 @@ If both are of the same vector type (:ref:`Vector2<class_Vector2>`, :ref:`Vector
 
 Linearly interpolates between two angles (in radians) by a normalized value.
 
-Similar to :ref:`lerp<class_@GDScript_method_lerp>`, but interpolates correctly when the angles wrap around :ref:`TAU<class_@GDScript_constant_TAU>`.
+Similar to :ref:`lerp<class_@GDScript_method_lerp>`, but interpolates correctly when the angles wrap around :ref:`TAU<class_@GDScript_constant_TAU>`. To perform eased interpolation with :ref:`lerp_angle<class_@GDScript_method_lerp_angle>`, combine it with :ref:`ease<class_@GDScript_method_ease>` or :ref:`smoothstep<class_@GDScript_method_smoothstep>`.
 
 ::
 

+ 6 - 2
classes/class_audioeffectrecord.rst

@@ -11,12 +11,16 @@ AudioEffectRecord
 
 **Inherits:** :ref:`AudioEffect<class_AudioEffect>` **<** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-Audio effect used for recording sound from a microphone.
+Audio effect used for recording the sound from an audio bus.
 
 Description
 -----------
 
-Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
+Allows the user to record the sound from an audio bus. This can include all audio output by Godot when used on the "Master" audio bus.
+
+Can be used (with an :ref:`AudioStreamMicrophone<class_AudioStreamMicrophone>`) to record from a microphone.
+
+It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
 
 Tutorials
 ---------

+ 1 - 1
classes/class_camerafeed.rst

@@ -16,7 +16,7 @@ A camera feed gives you access to a single physical camera attached to your devi
 Description
 -----------
 
-A camera feed gives you access to a single physical camera attached to your device. When enabled, Godot will start capturing frames from the camera which can then be used.
+A camera feed gives you access to a single physical camera attached to your device. When enabled, Godot will start capturing frames from the camera which can then be used. See also :ref:`CameraServer<class_CameraServer>`.
 
 **Note:** Many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background.
 

+ 8 - 6
classes/class_cameraserver.rst

@@ -20,6 +20,8 @@ The ``CameraServer`` keeps track of different cameras accessible in Godot. These
 
 It is notably used to provide AR modules with a video feed from the camera.
 
+**Note:** This class is currently only implemented on macOS and iOS. On other platforms, no :ref:`CameraFeed<class_CameraFeed>`\ s will be available.
+
 Methods
 -------
 
@@ -42,7 +44,7 @@ Signals
 
 - **camera_feed_added** **(** :ref:`int<class_int>` id **)**
 
-Emitted when a :ref:`CameraFeed<class_CameraFeed>` is added (e.g. webcam is plugged in).
+Emitted when a :ref:`CameraFeed<class_CameraFeed>` is added (e.g. a webcam is plugged in).
 
 ----
 
@@ -50,7 +52,7 @@ Emitted when a :ref:`CameraFeed<class_CameraFeed>` is added (e.g. webcam is plug
 
 - **camera_feed_removed** **(** :ref:`int<class_int>` id **)**
 
-Emitted when a :ref:`CameraFeed<class_CameraFeed>` is removed (e.g. webcam is unplugged).
+Emitted when a :ref:`CameraFeed<class_CameraFeed>` is removed (e.g. a webcam is unplugged).
 
 Enumerations
 ------------
@@ -69,7 +71,7 @@ enum **FeedImage**:
 
 - **FEED_RGBA_IMAGE** = **0** --- The RGBA camera image.
 
-- **FEED_YCBCR_IMAGE** = **0** --- The YCbCr camera image.
+- **FEED_YCBCR_IMAGE** = **0** --- The `YCbCr <https://en.wikipedia.org/wiki/YCbCr>`__ camera image.
 
 - **FEED_Y_IMAGE** = **0** --- The Y component camera image.
 
@@ -82,7 +84,7 @@ Method Descriptions
 
 - void **add_feed** **(** :ref:`CameraFeed<class_CameraFeed>` feed **)**
 
-Adds a camera feed to the camera server.
+Adds the camera ``feed`` to the camera server.
 
 ----
 
@@ -98,7 +100,7 @@ Returns an array of :ref:`CameraFeed<class_CameraFeed>`\ s.
 
 - :ref:`CameraFeed<class_CameraFeed>` **get_feed** **(** :ref:`int<class_int>` index **)**
 
-Returns the :ref:`CameraFeed<class_CameraFeed>` with this id.
+Returns the :ref:`CameraFeed<class_CameraFeed>` corresponding to the camera with the given ``index``.
 
 ----
 
@@ -114,7 +116,7 @@ Returns the number of :ref:`CameraFeed<class_CameraFeed>`\ s registered.
 
 - void **remove_feed** **(** :ref:`CameraFeed<class_CameraFeed>` feed **)**
 
-Removes a :ref:`CameraFeed<class_CameraFeed>`.
+Removes the specified camera ``feed``.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 12 - 12
classes/class_canvasitem.rst

@@ -380,7 +380,7 @@ Overridable function called by the engine (if defined) to draw the canvas item.
 
 - void **draw_arc** **(** :ref:`Vector2<class_Vector2>` center, :ref:`float<class_float>` radius, :ref:`float<class_float>` start_angle, :ref:`float<class_float>` end_angle, :ref:`int<class_int>` point_count, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws an arc between the given angles. The larger the value of ``point_count``, the smoother the curve.
+Draws a unfilled arc between the given angles. The larger the value of ``point_count``, the smoother the curve. See also :ref:`draw_circle<class_CanvasItem_method_draw_circle>`.
 
 ----
 
@@ -396,7 +396,7 @@ Draws a string character using a custom font. Returns the advance, depending on
 
 - void **draw_circle** **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` radius, :ref:`Color<class_Color>` color **)**
 
-Draws a colored circle.
+Draws a colored, unfilled circle. See also :ref:`draw_arc<class_CanvasItem_method_draw_arc>`, :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` and :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`.
 
 ----
 
@@ -404,7 +404,7 @@ Draws a colored circle.
 
 - void **draw_colored_polygon** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array(  ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws a colored polygon of any amount of points, convex or concave.
+Draws a colored polygon of any amount of points, convex or concave. Unlike :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`, a single color must be specified for the whole polygon.
 
 ----
 
@@ -412,7 +412,7 @@ Draws a colored polygon of any amount of points, convex or concave.
 
 - void **draw_line** **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased.
+Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>` and :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>`.
 
 ----
 
@@ -428,7 +428,7 @@ Draws a :ref:`Mesh<class_Mesh>` in 2D, using the provided texture. See :ref:`Mes
 
 - void **draw_multiline** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws multiple, parallel lines with a uniform ``color``.
+Draws multiple disconnected lines with a uniform ``color``. When drawing large amounts of lines, this is faster than using individual :ref:`draw_line<class_CanvasItem_method_draw_line>` calls. To draw interconnected lines, use :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` instead.
 
 **Note:** ``width`` and ``antialiased`` are currently not implemented and have no effect.
 
@@ -438,7 +438,7 @@ Draws multiple, parallel lines with a uniform ``color``.
 
 - void **draw_multiline_colors** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws multiple, parallel lines with a uniform ``width`` and segment-by-segment coloring. Colors assigned to line segments match by index between ``points`` and ``colors``.
+Draws multiple disconnected lines with a uniform ``width`` and segment-by-segment coloring. Colors assigned to line segments match by index between ``points`` and ``colors``. When drawing large amounts of lines, this is faster than using individual :ref:`draw_line<class_CanvasItem_method_draw_line>` calls. To draw interconnected lines, use :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>` instead.
 
 **Note:** ``width`` and ``antialiased`` are currently not implemented and have no effect.
 
@@ -456,7 +456,7 @@ Draws a :ref:`MultiMesh<class_MultiMesh>` in 2D with the provided texture. See :
 
 - void **draw_polygon** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array(  ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws a polygon of any amount of points, convex or concave.
+Draws a solid polygon of any amount of points, convex or concave. Unlike :ref:`draw_colored_polygon<class_CanvasItem_method_draw_colored_polygon>`, each point's color can be changed individually. See also :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` and :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>`.
 
 ----
 
@@ -464,7 +464,7 @@ Draws a polygon of any amount of points, convex or concave.
 
 - void **draw_polyline** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws interconnected line segments with a uniform ``color`` and ``width`` and optional antialiasing.
+Draws interconnected line segments with a uniform ``color`` and ``width`` and optional antialiasing. When drawing large amounts of lines, this is faster than using individual :ref:`draw_line<class_CanvasItem_method_draw_line>` calls. To draw disconnected lines, use :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>` instead. See also :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`.
 
 ----
 
@@ -472,7 +472,7 @@ Draws interconnected line segments with a uniform ``color`` and ``width`` and op
 
 - void **draw_polyline_colors** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
 
-Draws interconnected line segments with a uniform ``width``, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between ``points`` and ``colors``.
+Draws interconnected line segments with a uniform ``width`` and segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between ``points`` and ``colors``. When drawing large amounts of lines, this is faster than using individual :ref:`draw_line<class_CanvasItem_method_draw_line>` calls. To draw disconnected lines, use :ref:`draw_multiline_colors<class_CanvasItem_method_draw_multiline_colors>` instead. See also :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`.
 
 ----
 
@@ -480,7 +480,7 @@ Draws interconnected line segments with a uniform ``width``, segment-by-segment
 
 - void **draw_primitive** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs, :ref:`Texture<class_Texture>` texture=null, :ref:`float<class_float>` width=1.0, :ref:`Texture<class_Texture>` normal_map=null **)**
 
-Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.
+Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also :ref:`draw_line<class_CanvasItem_method_draw_line>`, :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>`, :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>`, and :ref:`draw_rect<class_CanvasItem_method_draw_rect>`.
 
 ----
 
@@ -662,7 +662,7 @@ Returns the :ref:`World2D<class_World2D>` where this item is in.
 
 - void **hide** **(** **)**
 
-Hide the ``CanvasItem`` if it's currently visible.
+Hide the ``CanvasItem`` if it's currently visible. This is equivalent to setting :ref:`visible<class_CanvasItem_property_visible>` to ``false``.
 
 ----
 
@@ -742,7 +742,7 @@ If ``enable`` is ``true``, children will be updated with global transform data.
 
 - void **show** **(** **)**
 
-Show the ``CanvasItem`` if it's currently hidden. For controls that inherit :ref:`Popup<class_Popup>`, the correct way to make them visible is to call one of the multiple ``popup*()`` functions instead.
+Show the ``CanvasItem`` if it's currently hidden. This is equivalent to setting :ref:`visible<class_CanvasItem_property_visible>` to ``true``. For controls that inherit :ref:`Popup<class_Popup>`, the correct way to make them visible is to call one of the multiple ``popup*()`` functions instead.
 
 ----
 

+ 2 - 2
classes/class_charfxtransform.rst

@@ -61,7 +61,7 @@ Property Descriptions
 | *Getter*  | get_absolute_index()      |
 +-----------+---------------------------+
 
-The index of the current character (starting from 0). Setting this property won't affect drawing.
+The index of the current character (starting from 0) for the :ref:`RichTextLabel<class_RichTextLabel>`'s BBCode text. Setting this property won't affect drawing.
 
 ----
 
@@ -171,7 +171,7 @@ The position offset the character will be drawn with (in pixels).
 | *Getter*  | get_relative_index()      |
 +-----------+---------------------------+
 
-The index of the current character (starting from 0). Setting this property won't affect drawing.
+The index of the current character (starting from 0) for this :ref:`RichTextEffect<class_RichTextEffect>` custom block. Setting this property won't affect drawing.
 
 ----
 

+ 2 - 2
classes/class_color.rst

@@ -14,7 +14,7 @@ Color in RGBA format using floats on the range of 0 to 1.
 Description
 -----------
 
-A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may accept values greater than 1 (overbright or HDR colors).
+A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for opacity. Values are in floating-point and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may accept values greater than 1 (overbright or HDR colors).
 
 You can also create a color from standardized color names by using :ref:`@GDScript.ColorN<class_@GDScript_method_ColorN>` or directly using the color constants defined here. The standardized color set is based on the `X11 color names <https://en.wikipedia.org/wiki/X11_color_names>`__.
 
@@ -703,7 +703,7 @@ Property Descriptions
 | *Default* | ``1.0`` |
 +-----------+---------+
 
-The color's alpha (transparency) component, typically on the range of 0 to 1.
+The color's alpha component, typically on the range of 0 to 1. A value of 0 means that the color is fully transparent. A value of 1 means that the color is fully opaque.
 
 ----
 

+ 1 - 1
classes/class_colorpicker.rst

@@ -154,7 +154,7 @@ If ``true``, the color will apply only after the user releases the mouse button,
 | *Getter*  | is_editing_alpha()    |
 +-----------+-----------------------+
 
-If ``true``, shows an alpha channel slider (transparency).
+If ``true``, shows an alpha channel slider (opacity).
 
 ----
 

+ 8 - 0
classes/class_control.rst

@@ -326,6 +326,14 @@ Emitted when the mouse leaves the control's ``Rect`` area, provided its :ref:`mo
 
 **Note:** :ref:`mouse_exited<class_Control_signal_mouse_exited>` will be emitted if the mouse enters a child ``Control`` node, even if the mouse cursor is still inside the parent's ``Rect`` area.
 
+If you want to check whether the mouse truly left the area, ignoring any top nodes, you can use code like this:
+
+::
+
+    func _on_mouse_exited():
+        if not Rect2(Vector2(), rect_size).has_point(get_local_mouse_position()):
+            # Not hovering over area.
+
 ----
 
 .. _class_Control_signal_resized:

+ 1 - 1
classes/class_convexpolygonshape2d.rst

@@ -49,7 +49,7 @@ Property Descriptions
 | *Getter*  | get_points()             |
 +-----------+--------------------------+
 
-The polygon's list of vertices. Can be in either clockwise or counterclockwise order.
+The polygon's list of vertices. Can be in either clockwise or counterclockwise order. Only set this property with convex hull points, use :ref:`set_point_cloud<class_ConvexPolygonShape2D_method_set_point_cloud>` to generate a convex hull shape from concave shape points.
 
 Method Descriptions
 -------------------

+ 1 - 1
classes/class_csharpscript.rst

@@ -23,7 +23,7 @@ See also :ref:`GodotSharp<class_GodotSharp>`.
 Tutorials
 ---------
 
-- :doc:`../getting_started/scripting/c_sharp/index`
+- :doc:`../tutorials/scripting/c_sharp/index`
 
 Methods
 -------

+ 3 - 1
classes/class_editorexportplugin.rst

@@ -16,7 +16,9 @@ A script that is executed when exporting the project.
 Description
 -----------
 
-Editor export plugins are automatically activated whenever the user exports the project. Their most common use is to determine what files are being included in the exported project. For each plugin, :ref:`_export_begin<class_EditorExportPlugin_method__export_begin>` is called at the beginning of the export process and then :ref:`_export_file<class_EditorExportPlugin_method__export_file>` is called for each exported file.
+``EditorExportPlugin``\ s are automatically invoked whenever the user exports the project. Their most common use is to determine what files are being included in the exported project. For each plugin, :ref:`_export_begin<class_EditorExportPlugin_method__export_begin>` is called at the beginning of the export process and then :ref:`_export_file<class_EditorExportPlugin_method__export_file>` is called for each exported file.
+
+To use ``EditorExportPlugin``, register it using the :ref:`EditorPlugin.add_export_plugin<class_EditorPlugin_method_add_export_plugin>` method first.
 
 Methods
 -------

+ 3 - 1
classes/class_editorimportplugin.rst

@@ -16,7 +16,7 @@ Registers a custom resource importer in the editor. Use the class to parse any f
 Description
 -----------
 
-EditorImportPlugins provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. Register your :ref:`EditorPlugin<class_EditorPlugin>` with :ref:`EditorPlugin.add_import_plugin<class_EditorPlugin_method_add_import_plugin>`.
+``EditorImportPlugin``\ s provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers.
 
 EditorImportPlugins work by associating with specific file extensions and a resource type. See :ref:`get_recognized_extensions<class_EditorImportPlugin_method_get_recognized_extensions>` and :ref:`get_resource_type<class_EditorImportPlugin_method_get_resource_type>`. They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the ``.import`` directory (see :ref:`ProjectSettings.application/config/use_hidden_project_data_directory<class_ProjectSettings_property_application/config/use_hidden_project_data_directory>`).
 
@@ -62,6 +62,8 @@ Below is an example EditorImportPlugin that imports a :ref:`Mesh<class_Mesh>` fr
         var filename = save_path + "." + get_save_extension()
         return ResourceSaver.save(filename, mesh)
 
+To use ``EditorImportPlugin``, register it using the :ref:`EditorPlugin.add_import_plugin<class_EditorPlugin_method_add_import_plugin>` method first.
+
 Tutorials
 ---------
 

+ 3 - 3
classes/class_editorinspectorplugin.rst

@@ -16,9 +16,7 @@ Plugin for adding custom property editors on inspector.
 Description
 -----------
 
-These plugins allow adding custom property editors to :ref:`EditorInspector<class_EditorInspector>`.
-
-Plugins are registered via :ref:`EditorPlugin.add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>`.
+``EditorInspectorPlugin`` allows adding custom property editors to :ref:`EditorInspector<class_EditorInspector>`.
 
 When an object is edited, the :ref:`can_handle<class_EditorInspectorPlugin_method_can_handle>` function is called and must return ``true`` if the object type is supported.
 
@@ -30,6 +28,8 @@ Finally, :ref:`parse_end<class_EditorInspectorPlugin_method_parse_end>` will be
 
 On each of these calls, the "add" functions can be called.
 
+To use ``EditorInspectorPlugin``, register it using the :ref:`EditorPlugin.add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>` method first.
+
 Tutorials
 ---------
 

+ 7 - 0
classes/class_editorsceneimporter.rst

@@ -15,6 +15,13 @@ EditorSceneImporter
 
 Imports scenes from third-parties' 3D files.
 
+Description
+-----------
+
+``EditorSceneImporter`` allows to define an importer script for a third-party 3D format.
+
+To use ``EditorSceneImporter``, register it using the :ref:`EditorPlugin.add_scene_import_plugin<class_EditorPlugin_method_add_scene_import_plugin>` method first.
+
 Methods
 -------
 

+ 3 - 1
classes/class_editorspatialgizmoplugin.rst

@@ -16,7 +16,9 @@ Used by the editor to define Spatial gizmo types.
 Description
 -----------
 
-EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending ``EditorSpatialGizmoPlugin`` for the simpler gizmos, or creating a new :ref:`EditorSpatialGizmo<class_EditorSpatialGizmo>` type. See the tutorial in the documentation for more info.
+``EditorSpatialGizmoPlugin`` allows you to define a new type of Gizmo. There are two main ways to do so: extending ``EditorSpatialGizmoPlugin`` for the simpler gizmos, or creating a new :ref:`EditorSpatialGizmo<class_EditorSpatialGizmo>` type. See the tutorial in the documentation for more info.
+
+To use ``EditorSpatialGizmoPlugin``, register it using the :ref:`EditorPlugin.add_spatial_gizmo_plugin<class_EditorPlugin_method_add_spatial_gizmo_plugin>` method first.
 
 Tutorials
 ---------

+ 1 - 1
classes/class_engine.rst

@@ -150,7 +150,7 @@ Controls how much physics ticks are synchronized with real time. For 0 or less,
 
 If ``false``, stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the :ref:`ProjectSettings.application/run/disable_stderr<class_ProjectSettings_property_application/run/disable_stderr>` project setting.
 
-**Warning:** If you set this to ``false`` anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. If this is set to ``false`` in a ``@tool`` script, this will also impact the editor itself. Do *not* report bugs before ensuring error messages are enabled (as they are by default).
+**Warning:** If you set this to ``false`` anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. If this is set to ``false`` in a ``tool`` script, this will also impact the editor itself. Do *not* report bugs before ensuring error messages are enabled (as they are by default).
 
 **Note:** This property does not impact the editor's Errors tab when running a project from the editor.
 

+ 1 - 1
classes/class_environment.rst

@@ -308,7 +308,7 @@ enum **ToneMapper**:
 
 - **TONE_MAPPER_FILMIC** = **2** --- Filmic tonemapper operator.
 
-- **TONE_MAPPER_ACES** = **3** --- Academy Color Encoding System tonemapper operator. Performs an aproximation of the ACES tonemapping curve.
+- **TONE_MAPPER_ACES** = **3** --- Academy Color Encoding System tonemapper operator. Performs an approximation of the ACES tonemapping curve.
 
 - **TONE_MAPPER_ACES_FITTED** = **4** --- High quality Academy Color Encoding System tonemapper operator that matches the industry standard. Performs a more physically accurate curve fit which better simulates how light works in the real world. The color of lights and emissive materials will become lighter as the emissive energy increases, and will eventually become white if the light is bright enough to saturate the camera sensor.
 

+ 6 - 2
classes/class_filedialog.rst

@@ -232,7 +232,7 @@ The currently selected file path of the file dialog.
 | *Getter*  | get_filters()           |
 +-----------+-------------------------+
 
-The available file type filters. For example, this shows only ``.png`` and ``.gd`` files: ``set_filters(PoolStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"]))``.
+The available file type filters. For example, this shows only ``.png`` and ``.gd`` files: ``set_filters(PoolStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"]))``. Multiple file types can also be specified in a single filter. ``"*.png, *.jpg, *.jpeg ; Supported Images"`` will show both PNG and JPEG files when selected.
 
 ----
 
@@ -289,7 +289,11 @@ Method Descriptions
 
 - void **add_filter** **(** :ref:`String<class_String>` filter **)**
 
-Adds ``filter`` as a custom filter; ``filter`` should be of the form ``"filename.extension ; Description"``. For example, ``"*.png ; PNG Images"``.
+Adds ``filter`` to the list of filters, which restricts what files can be picked.
+
+A ``filter`` should be of the form ``"filename.extension ; Description"``, where filename and extension can be ``*`` to match any string. Filters starting with ``.`` (i.e. empty filenames) are not allowed.
+
+Example filters: ``"*.png ; PNG Images"``, ``"project.godot ; Godot Project"``.
 
 ----
 

+ 2 - 2
classes/class_gdnativelibrary.rst

@@ -21,9 +21,9 @@ A GDNative library can implement :ref:`NativeScript<class_NativeScript>`\ s, glo
 Tutorials
 ---------
 
-- :doc:`../tutorials/plugins/gdnative/gdnative-c-example`
+- :doc:`../tutorials/scripting/gdnative/gdnative-c-example`
 
-- :doc:`../tutorials/plugins/gdnative/gdnative-cpp-example`
+- :doc:`../tutorials/scripting/gdnative/gdnative-cpp-example`
 
 Properties
 ----------

+ 1 - 1
classes/class_gdscript.rst

@@ -23,7 +23,7 @@ A script implemented in the GDScript programming language. The script extends th
 Tutorials
 ---------
 
-- :doc:`../getting_started/scripting/gdscript/index`
+- :doc:`../tutorials/scripting/gdscript/index`
 
 Methods
 -------

+ 2 - 2
classes/class_hmaccontext.rst

@@ -28,7 +28,7 @@ The HMACContext class is useful for advanced HMAC use cases, such as streaming t
         var err = ctx.start(HashingContext.HASH_SHA256, key)
         assert(err == OK)
         var msg1 = "this is ".to_utf8()
-        var msg2 = "vewy vewy secret".to_utf8()
+        var msg2 = "super duper secret".to_utf8()
         err = ctx.update(msg1)
         assert(err == OK)
         err = ctx.update(msg2)
@@ -53,7 +53,7 @@ And in C# we can use the following.
             Error err = ctx.Start(HashingContext.HASH_SHA256, key);
             GD.Assert(err == OK);
             PoolByteArray msg1 = String("this is ").to_utf8();
-            PoolByteArray msg2 = String("vewy vew secret").to_utf8();
+            PoolByteArray msg2 = String("super duper secret").to_utf8();
             err = ctx.Update(msg1);
             GD.Assert(err == OK);
             err = ctx.Update(msg2);

+ 13 - 1
classes/class_input.rst

@@ -485,6 +485,8 @@ This is useful for code that needs to run only once when an action is pressed, i
 
 If ``exact`` is ``false``, it ignores the input modifiers for :ref:`InputEventKey<class_InputEventKey>` and :ref:`InputEventMouseButton<class_InputEventMouseButton>` events, and the direction for :ref:`InputEventJoypadMotion<class_InputEventJoypadMotion>` events.
 
+**Note:** Due to keyboard ghosting, :ref:`is_action_just_pressed<class_Input_method_is_action_just_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
+
 ----
 
 .. _class_Input_method_is_action_just_released:
@@ -505,6 +507,8 @@ Returns ``true`` if you are pressing the action event. Note that if an action ha
 
 If ``exact`` is ``false``, it ignores the input modifiers for :ref:`InputEventKey<class_InputEventKey>` and :ref:`InputEventMouseButton<class_InputEventMouseButton>` events, and the direction for :ref:`InputEventJoypadMotion<class_InputEventJoypadMotion>` events.
 
+**Note:** Due to keyboard ghosting, :ref:`is_action_pressed<class_Input_method_is_action_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
+
 ----
 
 .. _class_Input_method_is_joy_button_pressed:
@@ -527,7 +531,11 @@ Returns ``true`` if the system knows the specified device. This means that it se
 
 - :ref:`bool<class_bool>` **is_key_pressed** **(** :ref:`int<class_int>` scancode **)** |const|
 
-Returns ``true`` if you are pressing the key. You can pass a :ref:`KeyList<enum_@GlobalScope_KeyList>` constant.
+Returns ``true`` if you are pressing the key in the current keyboard layout. You can pass a :ref:`KeyList<enum_@GlobalScope_KeyList>` constant.
+
+:ref:`is_key_pressed<class_Input_method_is_key_pressed>` is only recommended over :ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>` in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use :ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>`.
+
+**Note:** Due to keyboard ghosting, :ref:`is_key_pressed<class_Input_method_is_key_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
 
 ----
 
@@ -545,6 +553,10 @@ Returns ``true`` if you are pressing the mouse button specified with :ref:`Butto
 
 Returns ``true`` if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a :ref:`KeyList<enum_@GlobalScope_KeyList>` constant.
 
+:ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>` is recommended over :ref:`is_key_pressed<class_Input_method_is_key_pressed>` for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. :ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>` will also ensure that the top row number keys work on any keyboard layout. If in doubt, use :ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>`.
+
+**Note:** Due to keyboard ghosting, :ref:`is_physical_key_pressed<class_Input_method_is_physical_key_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
+
 ----
 
 .. _class_Input_method_joy_connection_changed:

+ 4 - 0
classes/class_inputevent.rst

@@ -133,6 +133,8 @@ Returns ``true`` if the given action is being pressed (and is not an echo event
 
 If ``exact_match`` is ``false``, it ignores the input modifiers for :ref:`InputEventKey<class_InputEventKey>` and :ref:`InputEventMouseButton<class_InputEventMouseButton>` events, and the direction for :ref:`InputEventJoypadMotion<class_InputEventJoypadMotion>` events.
 
+**Note:** Due to keyboard ghosting, :ref:`is_action_pressed<class_InputEvent_method_is_action_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
+
 ----
 
 .. _class_InputEvent_method_is_action_released:
@@ -167,6 +169,8 @@ Returns ``true`` if this input event is an echo event (only for events of type :
 
 Returns ``true`` if this input event is pressed. Not relevant for events of type :ref:`InputEventMouseMotion<class_InputEventMouseMotion>` or :ref:`InputEventScreenDrag<class_InputEventScreenDrag>`.
 
+**Note:** Due to keyboard ghosting, :ref:`is_action_pressed<class_InputEvent_method_is_action_pressed>` may return ``false`` even if one of the action's keys is pressed. See `Input examples <$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events>`__ in the documentation for more information.
+
 ----
 
 .. _class_InputEvent_method_shortcut_match:

+ 2 - 2
classes/class_inputeventmouse.rst

@@ -67,7 +67,7 @@ The mouse button mask identifier, one of or a bitwise combination of the :ref:`B
 | *Getter*  | get_global_position()      |
 +-----------+----------------------------+
 
-The global mouse position relative to the current :ref:`Viewport<class_Viewport>` when used in :ref:`Control._gui_input<class_Control_method__gui_input>`, otherwise is at 0,0.
+The global mouse position relative to the current :ref:`Viewport<class_Viewport>`. If used in :ref:`Control._gui_input<class_Control_method__gui_input>` and if the current :ref:`Control<class_Control>` is not under the mouse, moving it will not update this value.
 
 ----
 
@@ -83,7 +83,7 @@ The global mouse position relative to the current :ref:`Viewport<class_Viewport>
 | *Getter*  | get_position()      |
 +-----------+---------------------+
 
-The local mouse position relative to the :ref:`Viewport<class_Viewport>`. If used in :ref:`Control._gui_input<class_Control_method__gui_input>`, the position is relative to the current :ref:`Control<class_Control>` which is under the mouse.
+The local mouse position relative to the :ref:`Viewport<class_Viewport>`. If used in :ref:`Control._gui_input<class_Control_method__gui_input>`, the position is relative to the current :ref:`Control<class_Control>` which is under the mouse. If the current :ref:`Control<class_Control>` is not under the mouse, moving it will not update this value.
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 1 - 1
classes/class_itemlist.rst

@@ -577,7 +577,7 @@ Returns an array with the indexes of the selected items.
 
 - :ref:`VScrollBar<class_VScrollBar>` **get_v_scroll** **(** **)**
 
-Returns the :ref:`Object<class_Object>` ID associated with the list.
+Returns the vertical scrollbar.
 
 **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
 

+ 2 - 2
classes/class_meshdatatool.rst

@@ -202,7 +202,7 @@ Returns the number of faces in this :ref:`Mesh<class_Mesh>`.
 
 Returns specified edge associated with given face.
 
-Edge argument must 2 or less because a face only has three edges.
+Edge argument must be either 0, 1, or 2 because a face only has three edges.
 
 ----
 
@@ -228,7 +228,7 @@ Calculates and returns the face normal of the given face.
 
 Returns the specified vertex of the given face.
 
-Vertex argument must be 2 or less because faces contain three vertices.
+Vertex argument must be either 0, 1, or 2 because faces contain three vertices.
 
 ----
 

+ 1 - 1
classes/class_meshinstance2d.rst

@@ -72,7 +72,7 @@ The :ref:`Mesh<class_Mesh>` that will be drawn by the ``MeshInstance2D``.
 
 The normal map that will be used if using the default :ref:`CanvasItemMaterial<class_CanvasItemMaterial>`.
 
-**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
+**Note:** Godot expects the normal map to use X+, Y+, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
 
 ----
 

+ 1 - 1
classes/class_multimeshinstance2d.rst

@@ -69,7 +69,7 @@ The :ref:`MultiMesh<class_MultiMesh>` that will be drawn by the ``MultiMeshInsta
 
 The normal map that will be used if using the default :ref:`CanvasItemMaterial<class_CanvasItemMaterial>`.
 
-**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
+**Note:** Godot expects the normal map to use X+, Y+, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
 
 ----
 

+ 1 - 1
classes/class_os.rst

@@ -1452,7 +1452,7 @@ Returns the maximum amount of static memory used (only works in debug).
 
 - :ref:`int<class_int>` **get_static_memory_usage** **(** **)** |const|
 
-Returns the amount of static memory being used by the program in bytes.
+Returns the amount of static memory being used by the program in bytes (only works in debug).
 
 ----
 

+ 2 - 0
classes/class_particles.rst

@@ -22,6 +22,8 @@ Use the ``process_material`` property to add a :ref:`ParticlesMaterial<class_Par
 
 **Note:** ``Particles`` only work when using the GLES3 renderer. If using the GLES2 renderer, use :ref:`CPUParticles<class_CPUParticles>` instead. You can convert ``Particles`` to :ref:`CPUParticles<class_CPUParticles>` by selecting the node, clicking the **Particles** menu at the top of the 3D editor viewport then choosing **Convert to CPUParticles**.
 
+**Note:** On macOS, ``Particles`` rendering is much slower than :ref:`CPUParticles<class_CPUParticles>` due to transform feedback being implemented on the CPU instead of the GPU. Consider using :ref:`CPUParticles<class_CPUParticles>` instead when targeting macOS.
+
 **Note:** After working on a Particles node, remember to update its :ref:`visibility_aabb<class_Particles_property_visibility_aabb>` by selecting it, clicking the **Particles** menu at the top of the 3D editor viewport then choose **Generate Visibility AABB**. Otherwise, particles may suddenly disappear depending on the camera position and angle.
 
 Tutorials

+ 2 - 0
classes/class_particles2d.rst

@@ -22,6 +22,8 @@ Use the ``process_material`` property to add a :ref:`ParticlesMaterial<class_Par
 
 **Note:** ``Particles2D`` only work when using the GLES3 renderer. If using the GLES2 renderer, use :ref:`CPUParticles2D<class_CPUParticles2D>` instead. You can convert ``Particles2D`` to :ref:`CPUParticles2D<class_CPUParticles2D>` by selecting the node, clicking the **Particles** menu at the top of the 2D editor viewport then choosing **Convert to CPUParticles2D**.
 
+**Note:** On macOS, ``Particles2D`` rendering is much slower than :ref:`CPUParticles2D<class_CPUParticles2D>` due to transform feedback being implemented on the CPU instead of the GPU. Consider using :ref:`CPUParticles2D<class_CPUParticles2D>` instead when targeting macOS.
+
 **Note:** After working on a Particles node, remember to update its :ref:`visibility_rect<class_Particles2D_property_visibility_rect>` by selecting it, clicking the **Particles** menu at the top of the 2D editor viewport then choose **Generate Visibility Rect**. Otherwise, particles may suddenly disappear depending on the camera position and angle.
 
 **Note:** Unlike :ref:`CPUParticles2D<class_CPUParticles2D>`, ``Particles2D`` currently ignore the texture region defined in :ref:`AtlasTexture<class_AtlasTexture>`\ s.

+ 2 - 2
classes/class_poolbytearray.rst

@@ -108,11 +108,11 @@ Returns a new ``PoolByteArray`` with the data decompressed. Set ``buffer_size``
 
 Returns a new ``PoolByteArray`` with the data decompressed. Set the compression mode using one of :ref:`CompressionMode<enum_File_CompressionMode>`'s constants. **This method only accepts gzip and deflate compression modes.**
 
-This method is potentially slower than ``decompress``, as it may have to re-allocate it's output buffer multiple times while decompressing, where as ``decompress`` knows it's output buffer size from the begining.
+This method is potentially slower than ``decompress``, as it may have to re-allocate its output buffer multiple times while decompressing, where as ``decompress`` knows its output buffer size from the beginning.
 
 
 
-GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via ``max_output_size``. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that ammount in bytes, then an error will be returned.
+GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via ``max_output_size``. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that amount in bytes, then an error will be returned.
 
 ----
 

+ 3 - 1
classes/class_projectsettings.rst

@@ -5030,7 +5030,7 @@ The default convention is for portal normals to point outward (face outward) fro
 
 If you accidentally build your level with portals facing the wrong way, this setting can fix the problem.
 
-It will flip named portal meshes (i.e. ``-portal``) on the initial convertion to :ref:`Portal<class_Portal>` nodes.
+It will flip named portal meshes (i.e. ``-portal``) on the initial conversion to :ref:`Portal<class_Portal>` nodes.
 
 ----
 
@@ -6030,6 +6030,8 @@ Sets the value of a setting.
 
     ProjectSettings.set_setting("application/config/name", "Example")
 
+This can also be used to erase custom project settings. To do this change the setting value to ``null``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 1 - 1
classes/class_rootmotionview.rst

@@ -18,7 +18,7 @@ Description
 
 *Root motion* refers to an animation technique where a mesh's skeleton is used to give impulse to a character. When working with 3D animations, a popular technique is for animators to use the root skeleton bone to give motion to the rest of the skeleton. This allows animating characters in a way where steps actually match the floor below. It also allows precise interaction with objects during cinematics. See also :ref:`AnimationTree<class_AnimationTree>`.
 
-**Note:** ``RootMotionView`` is only visible in the editor. It will be hidden automatically in the running project, and will also be converted to a plain :ref:`Node<class_Node>` in the running project. This means a script attached to a ``RootMotionView`` node *must* have ``extends Node`` instead of ``extends RootMotionView``. Additionally, it must not be a ``@tool`` script.
+**Note:** ``RootMotionView`` is only visible in the editor. It will be hidden automatically in the running project, and will also be converted to a plain :ref:`Node<class_Node>` in the running project. This means a script attached to a ``RootMotionView`` node *must* have ``extends Node`` instead of ``extends RootMotionView``. Additionally, it must not be a ``tool`` script.
 
 Tutorials
 ---------

+ 11 - 5
classes/class_spatialmaterial.rst

@@ -723,7 +723,7 @@ Texture to multiply by :ref:`albedo_color<class_SpatialMaterial_property_albedo_
 | *Getter* | get_anisotropy()      |
 +----------+-----------------------+
 
-The strength of the anisotropy effect.
+The strength of the anisotropy effect. This is multiplied by :ref:`anisotropy_flowmap<class_SpatialMaterial_property_anisotropy_flowmap>`'s alpha channel if a texture is defined there and the texture contains an alpha channel.
 
 ----
 
@@ -739,7 +739,11 @@ The strength of the anisotropy effect.
 | *Getter*  | get_feature()      |
 +-----------+--------------------+
 
-If ``true``, anisotropy is enabled. Changes the shape of the specular blob and aligns it to tangent space. Mesh tangents are needed for this to work. If the mesh does not contain tangents the anisotropy effect will appear broken.
+If ``true``, anisotropy is enabled. Anisotropy changes the shape of the specular blob and aligns it to tangent space. This is useful for brushed aluminium and hair reflections.
+
+**Note:** Mesh tangents are needed for anisotropy to work. If the mesh does not contain tangents, the anisotropy effect will appear broken.
+
+**Note:** Material anisotropy should not to be confused with anisotropic texture filtering. Anisotropic texture filtering can be enabled by selecting a texture in the FileSystem dock, going to the Import dock, checking the **Anisotropic** checkbox then clicking **Reimport**.
 
 ----
 
@@ -753,7 +757,9 @@ If ``true``, anisotropy is enabled. Changes the shape of the specular blob and a
 | *Getter* | get_texture()      |
 +----------+--------------------+
 
-Texture that offsets the tangent map for anisotropy calculations.
+Texture that offsets the tangent map for anisotropy calculations and optionally controls the anisotropy effect (if an alpha channel is present). The flowmap texture is expected to be a derivative map, with the red channel representing distortion on the X axis and green channel representing distortion on the Y axis. Values below 0.5 will result in negative distortion, whereas values above 0.5 will result in positive distortion.
+
+If present, the texture's alpha channel will be used to multiply the strength of the :ref:`anisotropy<class_SpatialMaterial_property_anisotropy>` effect. Fully opaque pixels will keep the anisotropy effect's original strength while fully transparent pixels will disable the anisotropy effect entirely. The flowmap texture's blue channel is ignored.
 
 ----
 
@@ -1075,7 +1081,7 @@ Texture used to specify how the detail textures get blended with the base textur
 
 Texture that specifies the per-pixel normal of the detail overlay.
 
-**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
+**Note:** Godot expects the normal map to use X+, Y+, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
 
 ----
 
@@ -1529,7 +1535,7 @@ Texture used to specify the normal at a given pixel. The ``normal_texture`` only
 
 **Note:** The mesh must have both normals and tangents defined in its vertex data. Otherwise, the normal map won't render correctly and will only appear to darken the whole surface. If creating geometry with :ref:`SurfaceTool<class_SurfaceTool>`, you can use :ref:`SurfaceTool.generate_normals<class_SurfaceTool_method_generate_normals>` and :ref:`SurfaceTool.generate_tangents<class_SurfaceTool_method_generate_tangents>` to automatically generate normals and tangents respectively.
 
-**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
+**Note:** Godot expects the normal map to use X+, Y+, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
 
 ----
 

+ 2 - 2
classes/class_spriteframes.rst

@@ -11,12 +11,12 @@ SpriteFrames
 
 **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
 
-Sprite frame library for AnimatedSprite.
+Sprite frame library for AnimatedSprite and AnimatedSprite3D.
 
 Description
 -----------
 
-Sprite frame library for :ref:`AnimatedSprite<class_AnimatedSprite>`. Contains frames and animation data for playback.
+Sprite frame library for an :ref:`AnimatedSprite<class_AnimatedSprite>` or :ref:`AnimatedSprite3D<class_AnimatedSprite3D>` node. Contains frames and animation data for playback.
 
 **Note:** You can associate a set of normal maps by creating additional ``SpriteFrames`` resources with a ``_normal`` suffix. For example, having 2 ``SpriteFrames`` resources ``run`` and ``run_normal`` will make it so the ``run`` animation uses the normal map.
 

+ 1 - 1
classes/class_streampeer.rst

@@ -190,7 +190,7 @@ Returns a chunk data with the received bytes. The amount of bytes to be received
 
 - :ref:`String<class_String>` **get_string** **(** :ref:`int<class_int>` bytes=-1 **)**
 
-Gets a string with byte-length ``bytes`` from the stream. If ``bytes`` is negative (default) the length will be read from the stream using the reverse process of :ref:`put_string<class_StreamPeer_method_put_string>`.
+Gets an ASCII string with byte-length ``bytes`` from the stream. If ``bytes`` is negative (default) the length will be read from the stream using the reverse process of :ref:`put_string<class_StreamPeer_method_put_string>`.
 
 ----
 

+ 2 - 0
classes/class_tween.rst

@@ -36,6 +36,8 @@ Many of the methods accept ``trans_type`` and ``ease_type``. The first accepts a
 
 `Tween easing and transition types cheatsheet <https://raw.githubusercontent.com/godotengine/godot-docs/master/img/tween_cheatsheet.png>`__
 
+**Note:** Tween methods will return ``false`` if the requested operation cannot be completed.
+
 Properties
 ----------
 

+ 1 - 1
classes/class_vector2.rst

@@ -414,7 +414,7 @@ Returns the vector projected onto the vector ``b``.
 
 - :ref:`Vector2<class_Vector2>` **reflect** **(** :ref:`Vector2<class_Vector2>` n **)**
 
-Returns the vector reflected from a plane defined by the given normal.
+Returns the vector reflected (i.e. mirrored, or symmetric) over a line defined by the given direction vector ``n``.
 
 ----
 

+ 1 - 1
classes/class_visualscript.rst

@@ -25,7 +25,7 @@ You are most likely to use this class via the Visual Script editor or when writi
 Tutorials
 ---------
 
-- :doc:`../getting_started/scripting/visual_script/index`
+- :doc:`../tutorials/scripting/visual_script/index`
 
 Methods
 -------