diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index f8c6fd0547b..9b01966e08a 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,6 +5,10 @@ contact_links: url: https://godotengine.org/community about: Please ask for technical support on one of the other community channels, not here. + - name: Godot proposals + url: https://github.com/godotengine/godot-proposals + about: Please submit engine feature proposals on the Godot proposals repository, not here. + - name: Main Godot repository url: https://github.com/godotengine/godot about: Report engine bugs on the main Godot repository diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dac9fa87d2c..028da18569c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: - name: Linter checks run: | bash _tools/format.sh - codespell -I _tools/codespell-ignore.txt -x _tools/codespell-ignore-lines.txt -S tutorials/i18n/locales.rst {about,community,development,getting_started,tutorials}/**/*.rst + codespell -I _tools/codespell-ignore.txt -x _tools/codespell-ignore-lines.txt -S tutorials/i18n/locales.rst {about,community,contributing,getting_started,tutorials}/**/*.rst # Use dummy builder to improve performance as we don't need the generated HTML in this workflow. - name: Sphinx build diff --git a/.github/workflows/sync_class_ref.yml b/.github/workflows/sync_class_ref.yml index a2641cf008c..fdeb0cedb4d 100644 --- a/.github/workflows/sync_class_ref.yml +++ b/.github/workflows/sync_class_ref.yml @@ -51,7 +51,7 @@ jobs: ./.engine-src/doc/tools/make_rst.py --color -o ./classes -l en ./.engine-src/doc/classes ./.engine-src/modules ./.engine-src/platform - name: Submit a pull-request - uses: peter-evans/create-pull-request@v6 + uses: peter-evans/create-pull-request@v7 with: commit-message: 'classref: Sync with current ${{ env.engine_rev }} branch (${{ steps.engine.outputs.rev_hash_short }})' branch: 'classref/sync-${{ steps.engine.outputs.rev_hash_short }}' diff --git a/_extensions/gdscript.py b/_extensions/gdscript.py index b2f65261c73..5da987c462f 100644 --- a/_extensions/gdscript.py +++ b/_extensions/gdscript.py @@ -341,6 +341,8 @@ def innerstring_rules(ttype): "AABB", "Plane", "Quaternion", + "Vector4", + "Vector4i", "Basis", "Transform3D", "Color", @@ -355,9 +357,8 @@ def innerstring_rules(ttype): "PackedFloat64Array", "PackedStringArray", "PackedVector2Array", - "PackedVector2iArray", "PackedVector3Array", - "PackedVector3iArray", + "PackedVector4Array", "PackedColorArray", "null", "void", diff --git a/about/introduction.rst b/about/introduction.rst index c3314f475bf..f6db6b665cc 100644 --- a/about/introduction.rst +++ b/about/introduction.rst @@ -5,11 +5,19 @@ Introduction ============ -:: +.. tabs:: + .. code-tab:: gdscript func _ready(): print("Hello world!") + .. code-tab:: csharp + + public override void _Ready() + { + GD.Print("Hello world!"); + } + Welcome to the official documentation of **Godot Engine**, the free and open source community-driven 2D and 3D game engine! Behind this mouthful, you will find a powerful yet user-friendly tool that you can use to develop any kind of game, @@ -28,8 +36,8 @@ consider checking them out. Otherwise, :ref:`Getting Started `, -especially the Godot `Discord`_ community and +you can find help on the various `Community channels `_, +especially the Godot `Discord `_ community and `Forum `_. About Godot Engine @@ -75,11 +83,10 @@ This documentation is organized into several sections: It also contains sections intended for advanced users and contributors, with information on compiling the engine, contributing to the editor, or developing C++ modules. -- **Community** is dedicated to the life of Godot's community. - It points to various community channels like the - `Godot Contributors Chat `_ and - `Discord`_ and contains a list of recommended third-party tutorials and - materials outside of this documentation. +- **Community** is dedicated to the life of Godot's community and contains a list of + recommended third-party tutorials and materials outside of this documentation. + It also provides details on the Asset Library. It also used to list Godot + communities, which are now listed on the `Godot website `_. - Finally, the **Class reference** documents the full Godot API, also available directly within the engine's script editor. You can find information on all classes, functions, signals and so on here. @@ -104,5 +111,3 @@ with attribution to "*Juan Linietsky, Ariel Manzur, and the Godot Engine communi unless otherwise noted. *Have fun reading and making games with Godot Engine!* - -.. _Discord: https://discord.gg/4JBkykG diff --git a/about/release_policy.rst b/about/release_policy.rst index 734a34b4381..ba6dd3d588b 100644 --- a/about/release_policy.rst +++ b/about/release_policy.rst @@ -72,7 +72,7 @@ Whenever a new major version is released, we make the previous stable branch a long-term supported release, and do our best to provide fixes for issues encountered by users of that branch who cannot port complex projects to the new major version. This was the case for the 2.1 branch, and is the case for the -3.6 branch. +3.x branch. In a given minor release series, only the latest patch release receives support. If you experience an issue using an older patch release, please upgrade to the @@ -82,8 +82,11 @@ on GitHub. +--------------+----------------------+--------------------------------------------------------------------------+ | **Version** | **Release date** | **Support level** | +--------------+----------------------+--------------------------------------------------------------------------+ -| Godot 4.3 | June 2024 | |unstable| *Development.* Receives new features, usability and | -| (`master`) | (estimate) | performance improvements, as well as bug fixes, while under development. | +| Godot 4.4 | Q1 2025 (estimate) | |unstable| *Development.* Receives new features, usability and | +| (`master`) | | performance improvements, as well as bug fixes, while under development. | ++--------------+----------------------+--------------------------------------------------------------------------+ +| Godot 4.3 | August 2024 | |supported| Receives fixes for bugs and security issues, as well as | +| | | patches that enable platform support. | +--------------+----------------------+--------------------------------------------------------------------------+ | Godot 4.2 | November 2023 | |supported| Receives fixes for bugs and security issues, as well as | | | | patches that enable platform support. | @@ -93,8 +96,11 @@ on GitHub. +--------------+----------------------+--------------------------------------------------------------------------+ | Godot 4.0 | March 2023 | |eol| No longer supported (last update: 4.0.4). | +--------------+----------------------+--------------------------------------------------------------------------+ -| Godot 3.6 | Q1 2024 (estimate) | |supported| *Beta.* Receives new features, usability and performance | -| (`3.x`, LTS) | | improvements, as well as bug fixes, while under development. | +| Godot 3.7 | No ETA for now | |supported| *Beta.* Receives new features, usability and performance | +| (`3.x`) | | improvements, as well as bug fixes, while under development. | ++--------------+----------------------+--------------------------------------------------------------------------+ +| Godot 3.6 | September 2024 | |supported| Receives fixes for bugs and security issues, as well as | +| | | patches that enable platform support. | +--------------+----------------------+--------------------------------------------------------------------------+ | Godot 3.5 | August 2022 | |supported| Receives fixes for bugs and security issues, as well as | | | | patches that enable platform support. | diff --git a/about/system_requirements.rst b/about/system_requirements.rst index 528e1056c3e..f5a96f9b0d9 100644 --- a/about/system_requirements.rst +++ b/about/system_requirements.rst @@ -100,8 +100,7 @@ Mobile device (smartphone/tablet) - Minimum | | Exporting projects requires downloading export templates separately | | | (1.3 GB after installation). | +----------------------+-----------------------------------------------------------------------------------------+ -| **Operating system** | - **Native editor:** Android 6.0 (Compatibility) or Android 9.0 (Forward+/Mobile), | -| | iOS 11.0 | +| **Operating system** | - **Native editor:** Android 6.0 (Compatibility) or Android 9.0 (Forward+/Mobile) | | | - **Web editor:** Firefox 79, Chrome 88, Edge 79, Safari 15.2, Opera 64, | | | Samsung Internet 15 | +----------------------+-----------------------------------------------------------------------------------------+ @@ -174,7 +173,7 @@ Mobile device (smartphone/tablet) - Recommended +----------------------+-----------------------------------------------------------------------------------------+ | **Storage** | 1.5 GB (used for the executable, project files, all export templates and cache) | +----------------------+-----------------------------------------------------------------------------------------+ -| **Operating system** | - **Native editor:** Android 9.0 or iOS 11.0 | +| **Operating system** | - **Native editor:** Android 9.0 | | | - **Web editor:** Latest version of Firefox, Chrome, Edge, Safari, Opera, | | | Samsung Internet | +----------------------+-----------------------------------------------------------------------------------------+ @@ -268,15 +267,15 @@ Mobile device (smartphone/tablet) - Minimum +----------------------+-----------------------------------------------------------------------------------------+ | **GPU** | - **Forward+ rendering method:** SoC featuring GPU with full Vulkan 1.0 support | | | | -| | - *Example: Qualcomm Adreno 505, Mali-G71 MP2, PowerVR G6430 (iPhone 6S/iPhone SE 1)* | +| | - *Example: Qualcomm Adreno 505, Mali-G71 MP2, Apple A12 (iPhone XR/XS)* | | | | | | - **Mobile rendering method:** SoC featuring GPU with full Vulkan 1.0 support | | | | -| | - *Example: Qualcomm Adreno 505, Mali-G71 MP2, PowerVR G6430 (iPhone 6S/iPhone SE 1)* | +| | - *Example: Qualcomm Adreno 505, Mali-G71 MP2, Apple A12 (iPhone XR/XS)* | | | | | | - **Compatibility rendering method:** SoC featuring GPU with full OpenGL ES 3.0 support | | | | -| | - *Example: Qualcomm Adreno 306, Mali-T628 MP6, PowerVR G6430 (iPhone 5S)* | +| | - *Example: Qualcomm Adreno 306, Mali-T628 MP6, Apple A7 (iPhone 5S)* | +----------------------+-----------------------------------------------------------------------------------------+ | **RAM** | - **For native exports:** 1 GB | | | - **For web exports:** 2 GB | @@ -284,7 +283,7 @@ Mobile device (smartphone/tablet) - Minimum | **Storage** | 150 MB (used for the executable, project files and cache) | +----------------------+-----------------------------------------------------------------------------------------+ | **Operating system** | - **For native exports:** Android 6.0 (Compatibility) or Android 9.0 (Forward+/Mobile), | -| | iOS 11.0 | +| | iOS 12.0 | | | - **For web exports:** Firefox 79, Chrome 88, Edge 79, Safari 15.2, Opera 64, | | | Samsung Internet 15 | +----------------------+-----------------------------------------------------------------------------------------+ @@ -340,26 +339,26 @@ Mobile device (smartphone/tablet) - Recommended | | | | | - **iOS:** SoC with 64-bit ARM CPU | | | | -| | - *Example: Apple A11 (iPhone XS/XR)* | +| | - *Example: Apple A14 (iPhone 12)* | +----------------------+-----------------------------------------------------------------------------------------+ | **GPU** | - **Forward+ rendering method:** SoC featuring GPU with full Vulkan 1.2 support | | | | -| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple G11P (iPhone XR/XS)* | +| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple A14 (iPhone 12)* | | | | | | - **Mobile rendering method:** SoC featuring GPU with full Vulkan 1.2 support | | | | -| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple G11P (iPhone XR/XS)* | +| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple A14 (iPhone 12)* | | | | | | - **Compatibility rendering method:** SoC featuring GPU with full OpenGL ES 3.2 support | | | | -| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple G11P (iPhone XR/XS)* | +| | - *Example: Qualcomm Adreno 630, Mali-G72 MP18, Apple A14 (iPhone 12)* | +----------------------+-----------------------------------------------------------------------------------------+ | **RAM** | - **For native exports:** 2 GB | | | - **For web exports:** 4 GB | +----------------------+-----------------------------------------------------------------------------------------+ | **Storage** | 150 MB (used for the executable, project files and cache) | +----------------------+-----------------------------------------------------------------------------------------+ -| **Operating system** | - **For native exports:** Android 9.0 or iOS 11.0 | +| **Operating system** | - **For native exports:** Android 9.0 or iOS 14.1 | | | - **For web exports:** Latest version of Firefox, Chrome, Edge, Safari, Opera, | | | Samsung Internet | +----------------------+-----------------------------------------------------------------------------------------+ diff --git a/classes/class_@gdscript.rst b/classes/class_@gdscript.rst index 637da62db00..669f9759e83 100644 --- a/classes/class_@gdscript.rst +++ b/classes/class_@gdscript.rst @@ -899,9 +899,9 @@ Returns a single character (as a :ref:`String`) of the given Unico :: - a = char(65) # a is "A" - a = char(65 + 32) # a is "a" - a = char(8364) # a is "โ‚ฌ" + var upper = char(65) # upper is "A" + var lower = char(65 + 32) # lower is "a" + var euro = char(8364) # euro is "โ‚ฌ" .. rst-class:: classref-item-separator @@ -1020,7 +1020,7 @@ Returns ``true`` if ``value`` is an instance of ``type``. The ``type`` value mus Unlike the right operand of the ``is`` operator, ``type`` can be a non-constant value. The ``is`` operator supports more features (such as typed arrays). Use the operator instead of this method if you do not need dynamic type checking. -Examples: +\ **Examples:**\ :: @@ -1047,10 +1047,10 @@ Returns the length of the given Variant ``var``. The length can be the character :: - a = [1, 2, 3, 4] + var a = [1, 2, 3, 4] len(a) # Returns 4 - b = "Hello!" + var b = "Hello!" len(b) # Returns 6 .. rst-class:: classref-item-separator @@ -1166,7 +1166,7 @@ Returns an array with the given range. :ref:`range \ **Note:** Returns an empty array if no value meets the value constraint (e.g. ``range(2, 5, -1)`` or ``range(5, 5, 1)``). -Examples: +\ **Examples:**\ :: diff --git a/classes/class_@globalscope.rst b/classes/class_@globalscope.rst index 2e072c6768f..d2cd4eea02d 100644 --- a/classes/class_@globalscope.rst +++ b/classes/class_@globalscope.rst @@ -3045,9 +3045,7 @@ enum **Error**: :ref:`๐Ÿ”—` Methods that return :ref:`Error` return :ref:`OK` when no error occurred. -Since :ref:`OK` has value 0, and all other error constants are positive integers, it can also be used in boolean checks. - -\ **Example:**\ +Since :ref:`OK` has value ``0``, and all other error constants are positive integers, it can also be used in boolean checks. :: @@ -3702,7 +3700,7 @@ If a property is :ref:`Array`, hints the editor how to show element -Examples: +\ **Examples:**\ .. tabs:: @@ -3806,6 +3804,14 @@ Hints that an :ref:`int` property is a pointer. Used by GDExtension. Hints that a property is an :ref:`Array` with the stored type specified in the hint string. +.. _class_@GlobalScope_constant_PROPERTY_HINT_DICTIONARY_TYPE: + +.. rst-class:: classref-enumeration-constant + +:ref:`PropertyHint` **PROPERTY_HINT_DICTIONARY_TYPE** = ``38`` + +Hints that a property is a :ref:`Dictionary` with the stored types specified in the hint string. + .. _class_@GlobalScope_constant_PROPERTY_HINT_LOCALE_ID: .. rst-class:: classref-enumeration-constant @@ -3850,7 +3856,7 @@ Hints that a string property is a password, and every character is replaced with .. rst-class:: classref-enumeration-constant -:ref:`PropertyHint` **PROPERTY_HINT_MAX** = ``38`` +:ref:`PropertyHint` **PROPERTY_HINT_MAX** = ``39`` Represents the size of the :ref:`PropertyHint` enum. @@ -5322,7 +5328,7 @@ Returns the hyperbolic arc (also called inverse) cosine of ``x``, returning a va :ref:`float` **angle_difference**\ (\ from\: :ref:`float`, to\: :ref:`float`\ ) :ref:`๐Ÿ”—` -Returns the difference between the two angles, in the range of ``[-PI, +PI]``. When ``from`` and ``to`` are opposite, returns ``-PI`` if ``from`` is smaller than ``to``, or ``PI`` otherwise. +Returns the difference between the two angles (in radians), in the range of ``[-PI, +PI]``. When ``from`` and ``to`` are opposite, returns ``-PI`` if ``from`` is smaller than ``to``, or ``PI`` otherwise. .. rst-class:: classref-item-separator @@ -6084,9 +6090,9 @@ This function is faster than using :ref:`is_equal_approx` **lerp**\ (\ from\: :ref:`Variant`, to\: :ref:`Variant`, weight\: :ref:`Variant`\ ) :ref:`๐Ÿ”—` -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 this is not desired, use :ref:`clamp` on the result of this function. +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 this is not desired, use :ref:`clampf` to limit ``weight``. -Both ``from`` and ``to`` must be the same type. Supported types: :ref:`int`, :ref:`float`, :ref:`Vector2`, :ref:`Vector3`, :ref:`Vector4`, :ref:`Color`, :ref:`Quaternion`, :ref:`Basis`. +Both ``from`` and ``to`` must be the same type. Supported types: :ref:`int`, :ref:`float`, :ref:`Vector2`, :ref:`Vector3`, :ref:`Vector4`, :ref:`Color`, :ref:`Quaternion`, :ref:`Basis`, :ref:`Transform2D`, :ref:`Transform3D`. :: @@ -6094,7 +6100,7 @@ Both ``from`` and ``to`` must be the same type. Supported types: :ref:`int` which performs the reverse of this operation. To perform eased interpolation with :ref:`lerp`, combine it with :ref:`ease` or :ref:`smoothstep`. See also :ref:`remap` to map a continuous series of values to another. -\ **Note:** For better type safety, use :ref:`lerpf`, :ref:`Vector2.lerp`, :ref:`Vector3.lerp`, :ref:`Vector4.lerp`, :ref:`Color.lerp`, :ref:`Quaternion.slerp` or :ref:`Basis.slerp`. +\ **Note:** For better type safety, use :ref:`lerpf`, :ref:`Vector2.lerp`, :ref:`Vector3.lerp`, :ref:`Vector4.lerp`, :ref:`Color.lerp`, :ref:`Quaternion.slerp`, :ref:`Basis.slerp`, :ref:`Transform2D.interpolate_with`, or :ref:`Transform3D.interpolate_with`. .. rst-class:: classref-item-separator @@ -6150,15 +6156,12 @@ See also :ref:`inverse_lerp` which perfo :ref:`float` **linear_to_db**\ (\ lin\: :ref:`float`\ ) :ref:`๐Ÿ”—` -Converts from linear energy to decibels (audio). This can be used to implement volume sliders that behave as expected (since volume isn't linear). +Converts from linear energy to decibels (audio). Since volume is not normally linear, this can be used to implement volume sliders that behave as expected. -\ **Example:**\ +\ **Example:** Change the Master bus's volume through a :ref:`Slider` node, which ranges from ``0.0`` to ``1.0``: :: - # "Slider" refers to a node that inherits Range such as HSlider or VSlider. - # Its range must be configured to go from 0 to 1. - # Change the bus name if you'd like to change the volume of a specific bus only. AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), linear_to_db($Slider.value)) .. rst-class:: classref-item-separator @@ -7072,9 +7075,11 @@ Returns the hyperbolic sine of ``x``. :ref:`float` **smoothstep**\ (\ from\: :ref:`float`, to\: :ref:`float`, x\: :ref:`float`\ ) :ref:`๐Ÿ”—` -Returns the result of smoothly interpolating the value of ``x`` between ``0`` and ``1``, based on the where ``x`` lies with respect to the edges ``from`` and ``to``. +Returns a smooth cubic Hermite interpolation between ``0`` and ``1``. -The return value is ``0`` if ``x <= from``, and ``1`` if ``x >= to``. If ``x`` lies between ``from`` and ``to``, the returned value follows an S-shaped curve that maps ``x`` between ``0`` and ``1``. +For positive ranges (when ``from <= to``) the return value is ``0`` when ``x <= from``, and ``1`` when ``x >= to``. If ``x`` lies between ``from`` and ``to``, the return value follows an S-shaped curve that smoothly transitions from ``0`` to ``1``. + +For negative ranges (when ``from > to``) the function is mirrored and returns ``1`` when ``x <= to`` and ``0`` when ``x >= from``. This S-shaped curve is the cubic Hermite interpolator, given by ``f(y) = 3*y^2 - 2*y^3`` where ``y = (x-from) / (to-from)``. @@ -7087,7 +7092,9 @@ This S-shaped curve is the cubic Hermite interpolator, given by ``f(y) = 3*y^2 - Compared to :ref:`ease` with a curve value of ``-1.6521``, :ref:`smoothstep` returns the smoothest possible curve with no sudden changes in the derivative. If you need to perform more advanced transitions, use :ref:`Tween` or :ref:`AnimationPlayer`. -\ `Comparison between smoothstep() and ease(x, -1.6521) return values `__ +\ `Comparison between smoothstep() and ease(x, -1.6521) return values `__\ + +\ `Smoothstep() return values with positive, zero, and negative ranges `__ .. rst-class:: classref-item-separator diff --git a/classes/class_aabb.rst b/classes/class_aabb.rst index 4c35ba984c8..b9e0bb902a9 100644 --- a/classes/class_aabb.rst +++ b/classes/class_aabb.rst @@ -103,7 +103,7 @@ Methods +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_shortest_axis_size`\ (\ ) |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Vector3` | :ref:`get_support`\ (\ dir\: :ref:`Vector3`\ ) |const| | + | :ref:`Vector3` | :ref:`get_support`\ (\ direction\: :ref:`Vector3`\ ) |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_volume`\ (\ ) |const| | +-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -502,7 +502,7 @@ For an example, see :ref:`get_shortest_axis .. rst-class:: classref-method -:ref:`Vector3` **get_support**\ (\ dir\: :ref:`Vector3`\ ) |const| :ref:`๐Ÿ”—` +:ref:`Vector3` **get_support**\ (\ direction\: :ref:`Vector3`\ ) |const| :ref:`๐Ÿ”—` Returns the vertex's position of this bounding box that's the farthest in the given direction. This point is commonly known as the support point in collision detection algorithms. diff --git a/classes/class_animatedsprite2d.rst b/classes/class_animatedsprite2d.rst index 8c909164789..21402452fe8 100644 --- a/classes/class_animatedsprite2d.rst +++ b/classes/class_animatedsprite2d.rst @@ -413,18 +413,15 @@ This method is a shorthand for :ref:`play` w |void| **set_frame_and_progress**\ (\ frame\: :ref:`int`, progress\: :ref:`float`\ ) :ref:`๐Ÿ”—` -The setter of :ref:`frame` resets the :ref:`frame_progress` to ``0.0`` implicitly, but this method avoids that. +Sets :ref:`frame` the :ref:`frame_progress` to the given values. Unlike setting :ref:`frame`, this method does not reset the :ref:`frame_progress` to ``0.0`` implicitly. -This is useful when you want to carry over the current :ref:`frame_progress` to another :ref:`frame`. - -\ **Example:**\ +\ **Example:** Change the animation while keeping the same :ref:`frame` and :ref:`frame_progress`. .. tabs:: .. code-tab:: gdscript - # Change the animation with keeping the frame index and progress. var current_frame = animated_sprite.get_frame() var current_progress = animated_sprite.get_frame_progress() animated_sprite.play("walk_another_skin") diff --git a/classes/class_animatedsprite3d.rst b/classes/class_animatedsprite3d.rst index 46feb6c7589..100e061fe44 100644 --- a/classes/class_animatedsprite3d.rst +++ b/classes/class_animatedsprite3d.rst @@ -333,18 +333,15 @@ This method is a shorthand for :ref:`play` w |void| **set_frame_and_progress**\ (\ frame\: :ref:`int`, progress\: :ref:`float`\ ) :ref:`๐Ÿ”—` -The setter of :ref:`frame` resets the :ref:`frame_progress` to ``0.0`` implicitly, but this method avoids that. +Sets :ref:`frame` the :ref:`frame_progress` to the given values. Unlike setting :ref:`frame`, this method does not reset the :ref:`frame_progress` to ``0.0`` implicitly. -This is useful when you want to carry over the current :ref:`frame_progress` to another :ref:`frame`. - -\ **Example:**\ +\ **Example:** Change the animation while keeping the same :ref:`frame` and :ref:`frame_progress`. .. tabs:: .. code-tab:: gdscript - # Change the animation with keeping the frame index and progress. var current_frame = animated_sprite.get_frame() var current_progress = animated_sprite.get_frame_progress() animated_sprite.play("walk_another_skin") diff --git a/classes/class_animationmixer.rst b/classes/class_animationmixer.rst index d970b77d9b7..918f870a69b 100644 --- a/classes/class_animationmixer.rst +++ b/classes/class_animationmixer.rst @@ -302,7 +302,31 @@ An :ref:`Animation.UPDATE_CONTINUOUS Always treat the :ref:`Animation.UPDATE_DISCRETE` track value as :ref:`Animation.UPDATE_CONTINUOUS` with :ref:`Animation.INTERPOLATION_NEAREST`. This is the default behavior for :ref:`AnimationTree`. -If a value track has non-numeric type key values, it is internally converted to use :ref:`ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE` with :ref:`Animation.UPDATE_DISCRETE`. +If a value track has un-interpolatable type key values, it is internally converted to use :ref:`ANIMATION_CALLBACK_MODE_DISCRETE_RECESSIVE` with :ref:`Animation.UPDATE_DISCRETE`. + +Un-interpolatable type list: + +- :ref:`@GlobalScope.TYPE_NIL`\ + +- :ref:`@GlobalScope.TYPE_NODE_PATH`\ + +- :ref:`@GlobalScope.TYPE_RID`\ + +- :ref:`@GlobalScope.TYPE_OBJECT`\ + +- :ref:`@GlobalScope.TYPE_CALLABLE`\ + +- :ref:`@GlobalScope.TYPE_SIGNAL`\ + +- :ref:`@GlobalScope.TYPE_DICTIONARY`\ + +- :ref:`@GlobalScope.TYPE_PACKED_BYTE_ARRAY`\ + +\ :ref:`@GlobalScope.TYPE_BOOL` and :ref:`@GlobalScope.TYPE_INT` are treated as :ref:`@GlobalScope.TYPE_FLOAT` during blending and rounded when the result is retrieved. + +It is same for arrays and vectors with them such as :ref:`@GlobalScope.TYPE_PACKED_INT32_ARRAY` or :ref:`@GlobalScope.TYPE_VECTOR2I`, they are treated as :ref:`@GlobalScope.TYPE_PACKED_FLOAT32_ARRAY` or :ref:`@GlobalScope.TYPE_VECTOR2`. Also note that for arrays, the size is also interpolated. + +\ :ref:`@GlobalScope.TYPE_STRING` and :ref:`@GlobalScope.TYPE_STRING_NAME` are interpolated between character codes and lengths, but note that there is a difference in algorithm between interpolation between keys and interpolation by blending. .. rst-class:: classref-section-separator diff --git a/classes/class_animationnodeblendspace2d.rst b/classes/class_animationnodeblendspace2d.rst index 506b47bff25..c107fffa9f8 100644 --- a/classes/class_animationnodeblendspace2d.rst +++ b/classes/class_animationnodeblendspace2d.rst @@ -21,7 +21,7 @@ Description A resource used by :ref:`AnimationNodeBlendTree`. -\ :ref:`AnimationNodeBlendSpace1D` represents a virtual 2D space on which :ref:`AnimationRootNode`\ s are placed. Outputs the linear blend of the three adjacent animations using a :ref:`Vector2` weight. Adjacent in this context means the three :ref:`AnimationRootNode`\ s making up the triangle that contains the current value. +\ **AnimationNodeBlendSpace2D** represents a virtual 2D space on which :ref:`AnimationRootNode`\ s are placed. Outputs the linear blend of the three adjacent animations using a :ref:`Vector2` weight. Adjacent in this context means the three :ref:`AnimationRootNode`\ s making up the triangle that contains the current value. You can add vertices to the blend space with :ref:`add_blend_point` and automatically triangulate it by setting :ref:`auto_triangles` to ``true``. Otherwise, use :ref:`add_triangle` and :ref:`remove_triangle` to triangulate the blend space by hand. @@ -426,7 +426,7 @@ Changes the :ref:`AnimationNode` referenced by the point at |void| **set_blend_point_position**\ (\ point\: :ref:`int`, pos\: :ref:`Vector2`\ ) :ref:`๐Ÿ”—` -Updates the position of the point at index ``point`` on the blend axis. +Updates the position of the point at index ``point`` in the blend space. .. |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.)` diff --git a/classes/class_animationnodestatemachine.rst b/classes/class_animationnodestatemachine.rst index f567081cc0b..d5e14462efa 100644 --- a/classes/class_animationnodestatemachine.rst +++ b/classes/class_animationnodestatemachine.rst @@ -21,8 +21,6 @@ Description Contains multiple :ref:`AnimationRootNode`\ s representing animation states, connected in a graph. State transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the :ref:`AnimationNodeStateMachinePlayback` object from the :ref:`AnimationTree` node to control it programmatically. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_animationnodestatemachineplayback.rst b/classes/class_animationnodestatemachineplayback.rst index 221d1f62aa3..c1490a096e9 100644 --- a/classes/class_animationnodestatemachineplayback.rst +++ b/classes/class_animationnodestatemachineplayback.rst @@ -21,8 +21,6 @@ Description Allows control of :ref:`AnimationTree` state machines created with :ref:`AnimationNodeStateMachine`. Retrieve with ``$AnimationTree.get("parameters/playback")``. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_array.rst b/classes/class_array.rst index f7a93b7a2a0..ea2f2783c8c 100644 --- a/classes/class_array.rst +++ b/classes/class_array.rst @@ -17,9 +17,7 @@ A built-in data structure that holds a sequence of elements. Description ----------- -An array data structure that can contain a sequence of elements of any :ref:`Variant` type. Elements are accessed by a numerical index starting at 0. Negative indices are used to count from the back (-1 is the last element, -2 is the second to last, etc.). - -\ **Example:**\ +An array data structure that can contain a sequence of elements of any :ref:`Variant` type. Elements are accessed by a numerical index starting at ``0``. Negative indices are used to count from the back (``-1`` is the last element, ``-2`` is the second to last, etc.). .. tabs:: @@ -522,7 +520,7 @@ Appends another ``array`` at the end of this array. var numbers = [1, 2, 3] var extra = [4, 5, 6] numbers.append_array(extra) - print(nums) # Prints [1, 2, 3, 4, 5, 6] + print(numbers) # Prints [1, 2, 3, 4, 5, 6] .. rst-class:: classref-item-separator @@ -1304,7 +1302,7 @@ Sorts the array using a custom :ref:`Callable`. print(my_items) # Prints [["Rice", 4], ["Tomato", 5], ["Apple", 9]] # Sort descending, using a lambda function. - my_items.sort_custom(func(a, b): return a[0] > b[0]) + my_items.sort_custom(func(a, b): return a[1] > b[1]) print(my_items) # Prints [["Apple", 9], ["Tomato", 5], ["Rice", 4]] It may also be necessary to use this method to sort strings by natural order, with :ref:`String.naturalnocasecmp_to`, as in the following example: diff --git a/classes/class_astar2d.rst b/classes/class_astar2d.rst index 91eef236561..53cc0ac6835 100644 --- a/classes/class_astar2d.rst +++ b/classes/class_astar2d.rst @@ -34,7 +34,7 @@ Methods +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`_compute_cost`\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| | + | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`int`, end_id\: :ref:`int`\ ) |virtual| |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_point`\ (\ id\: :ref:`int`, position\: :ref:`Vector2`, weight_scale\: :ref:`float` = 1.0\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -110,7 +110,7 @@ Note that this function is hidden in the default **AStar2D** class. .. rst-class:: classref-method -:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` +:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`int`, end_id\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` Called when estimating the cost between a point and the path's ending point. @@ -319,7 +319,7 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``, astar.ConnectPoints(2, 3, false); astar.ConnectPoints(4, 3, false); astar.ConnectPoints(1, 4, false); - int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] @@ -376,7 +376,7 @@ Returns an array with the IDs of the points that form the connection with the gi astar.ConnectPoints(1, 2, true); astar.ConnectPoints(1, 3, true); - int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] diff --git a/classes/class_astar3d.rst b/classes/class_astar3d.rst index 68a00d86253..ed2deb4c20d 100644 --- a/classes/class_astar3d.rst +++ b/classes/class_astar3d.rst @@ -71,7 +71,7 @@ Methods +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`_compute_cost`\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| | + | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`int`, end_id\: :ref:`int`\ ) |virtual| |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_point`\ (\ id\: :ref:`int`, position\: :ref:`Vector3`, weight_scale\: :ref:`float` = 1.0\ ) | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -147,7 +147,7 @@ Note that this function is hidden in the default **AStar3D** class. .. rst-class:: classref-method -:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`int`, to_id\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` +:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`int`, end_id\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` Called when estimating the cost between a point and the path's ending point. @@ -355,7 +355,7 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``, astar.ConnectPoints(2, 3, false); astar.ConnectPoints(4, 3, false); astar.ConnectPoints(1, 4, false); - int[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] @@ -411,7 +411,7 @@ Returns an array with the IDs of the points that form the connection with the gi astar.ConnectPoints(1, 2, true); astar.ConnectPoints(1, 3, true); - int[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] diff --git a/classes/class_astargrid2d.rst b/classes/class_astargrid2d.rst index 770356dc125..b8835edaade 100644 --- a/classes/class_astargrid2d.rst +++ b/classes/class_astargrid2d.rst @@ -84,39 +84,41 @@ Methods .. table:: :widths: auto - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`_compute_cost`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`\ ) |virtual| |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`\ ) |virtual| |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`clear`\ (\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`fill_solid_region`\ (\ region\: :ref:`Rect2i`, solid\: :ref:`bool` = true\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`fill_weight_scale_region`\ (\ region\: :ref:`Rect2i`, weight_scale\: :ref:`float`\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Array`\[:ref:`Vector2i`\] | :ref:`get_id_path`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`, allow_partial_path\: :ref:`bool` = false\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`PackedVector2Array` | :ref:`get_point_path`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`, allow_partial_path\: :ref:`bool` = false\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Vector2` | :ref:`get_point_position`\ (\ id\: :ref:`Vector2i`\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_point_weight_scale`\ (\ id\: :ref:`Vector2i`\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_dirty`\ (\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_in_bounds`\ (\ x\: :ref:`int`, y\: :ref:`int`\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_in_boundsv`\ (\ id\: :ref:`Vector2i`\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_point_solid`\ (\ id\: :ref:`Vector2i`\ ) |const| | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_point_solid`\ (\ id\: :ref:`Vector2i`, solid\: :ref:`bool` = true\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_point_weight_scale`\ (\ id\: :ref:`Vector2i`, weight_scale\: :ref:`float`\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`update`\ (\ ) | - +--------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`_compute_cost`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`\ ) |virtual| |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`_estimate_cost`\ (\ from_id\: :ref:`Vector2i`, end_id\: :ref:`Vector2i`\ ) |virtual| |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`clear`\ (\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`fill_solid_region`\ (\ region\: :ref:`Rect2i`, solid\: :ref:`bool` = true\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`fill_weight_scale_region`\ (\ region\: :ref:`Rect2i`, weight_scale\: :ref:`float`\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array`\[:ref:`Vector2i`\] | :ref:`get_id_path`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`, allow_partial_path\: :ref:`bool` = false\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`get_point_data_in_region`\ (\ region\: :ref:`Rect2i`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedVector2Array` | :ref:`get_point_path`\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`, allow_partial_path\: :ref:`bool` = false\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Vector2` | :ref:`get_point_position`\ (\ id\: :ref:`Vector2i`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_point_weight_scale`\ (\ id\: :ref:`Vector2i`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_dirty`\ (\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_in_bounds`\ (\ x\: :ref:`int`, y\: :ref:`int`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_in_boundsv`\ (\ id\: :ref:`Vector2i`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_point_solid`\ (\ id\: :ref:`Vector2i`\ ) |const| | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_point_solid`\ (\ id\: :ref:`Vector2i`, solid\: :ref:`bool` = true\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_point_weight_scale`\ (\ id\: :ref:`Vector2i`, weight_scale\: :ref:`float`\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`update`\ (\ ) | + +------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -483,7 +485,7 @@ Note that this function is hidden in the default **AStarGrid2D** class. .. rst-class:: classref-method -:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`Vector2i`, to_id\: :ref:`Vector2i`\ ) |virtual| |const| :ref:`๐Ÿ”—` +:ref:`float` **_estimate_cost**\ (\ from_id\: :ref:`Vector2i`, end_id\: :ref:`Vector2i`\ ) |virtual| |const| :ref:`๐Ÿ”—` Called when estimating the cost between a point and the path's ending point. @@ -547,6 +549,18 @@ If there is no valid path to the target, and ``allow_partial_path`` is ``true``, ---- +.. _class_AStarGrid2D_method_get_point_data_in_region: + +.. rst-class:: classref-method + +:ref:`Array`\[:ref:`Dictionary`\] **get_point_data_in_region**\ (\ region\: :ref:`Rect2i`\ ) |const| :ref:`๐Ÿ”—` + +Returns an array of dictionaries with point data (``id``: :ref:`Vector2i`, ``position``: :ref:`Vector2`, ``solid``: :ref:`bool`, ``weight_scale``: :ref:`float`) within a ``region``. + +.. rst-class:: classref-item-separator + +---- + .. _class_AStarGrid2D_method_get_point_path: .. rst-class:: classref-method diff --git a/classes/class_audiostreaminteractive.rst b/classes/class_audiostreaminteractive.rst index 02e2635cee1..e5aa52ec1f2 100644 --- a/classes/class_audiostreaminteractive.rst +++ b/classes/class_audiostreaminteractive.rst @@ -19,7 +19,7 @@ Audio stream that can playback music interactively, combining clips and a transi Description ----------- -This is an audio stream that can playback music interactively, combining clips and a transition table. Clips must be added first, and the transition rules via the :ref:`add_transition`. Additionally, this stream export a property parameter to control the playback via :ref:`AudioStreamPlayer`, :ref:`AudioStreamPlayer2D`, or :ref:`AudioStreamPlayer3D`. +This is an audio stream that can playback music interactively, combining clips and a transition table. Clips must be added first, and then the transition rules via the :ref:`add_transition`. Additionally, this stream exports a property parameter to control the playback via :ref:`AudioStreamPlayer`, :ref:`AudioStreamPlayer2D`, or :ref:`AudioStreamPlayer3D`. The way this is used is by filling a number of clips, then configuring the transition table. From there, clips are selected for playback and the music will smoothly go from the current to the new one while using the corresponding transition rule defined in the transition table. diff --git a/classes/class_audiostreamplayer.rst b/classes/class_audiostreamplayer.rst index 6c7a6c826cd..5e8de34ce13 100644 --- a/classes/class_audiostreamplayer.rst +++ b/classes/class_audiostreamplayer.rst @@ -276,6 +276,7 @@ The playback type of the stream player. If set other than to the default value, .. rst-class:: classref-property-setget +- |void| **set_playing**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_playing**\ (\ ) If ``true``, this node is playing sounds. Setting this property has the same effect as :ref:`play` and :ref:`stop`. diff --git a/classes/class_audiostreamplayer2d.rst b/classes/class_audiostreamplayer2d.rst index ac52ce133d0..d21a37e4428 100644 --- a/classes/class_audiostreamplayer2d.rst +++ b/classes/class_audiostreamplayer2d.rst @@ -286,6 +286,7 @@ The playback type of the stream player. If set other than to the default value, .. rst-class:: classref-property-setget +- |void| **set_playing**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_playing**\ (\ ) If ``true``, audio is playing or is queued to be played (see :ref:`play`). diff --git a/classes/class_audiostreamplayer3d.rst b/classes/class_audiostreamplayer3d.rst index 1160b7cd272..9ac194f2a98 100644 --- a/classes/class_audiostreamplayer3d.rst +++ b/classes/class_audiostreamplayer3d.rst @@ -502,6 +502,7 @@ The playback type of the stream player. If set other than to the default value, .. rst-class:: classref-property-setget +- |void| **set_playing**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_playing**\ (\ ) If ``true``, audio is playing or is queued to be played (see :ref:`play`). diff --git a/classes/class_audiostreamwav.rst b/classes/class_audiostreamwav.rst index fb21bcccfb9..e61b8c68c31 100644 --- a/classes/class_audiostreamwav.rst +++ b/classes/class_audiostreamwav.rst @@ -87,7 +87,7 @@ enum **Format**: :ref:`๐Ÿ”—` :ref:`Format` **FORMAT_8_BITS** = ``0`` -8-bit audio codec. +8-bit PCM audio codec. .. _class_AudioStreamWAV_constant_FORMAT_16_BITS: @@ -95,7 +95,7 @@ enum **Format**: :ref:`๐Ÿ”—` :ref:`Format` **FORMAT_16_BITS** = ``1`` -16-bit audio codec. +16-bit PCM audio codec. .. _class_AudioStreamWAV_constant_FORMAT_IMA_ADPCM: @@ -103,7 +103,7 @@ enum **Format**: :ref:`๐Ÿ”—` :ref:`Format` **FORMAT_IMA_ADPCM** = ``2`` -Audio is compressed using IMA ADPCM. +Audio is lossily compressed as IMA ADPCM. .. _class_AudioStreamWAV_constant_FORMAT_QOA: @@ -111,7 +111,7 @@ Audio is compressed using IMA ADPCM. :ref:`Format` **FORMAT_QOA** = ``3`` -Audio is compressed as QOA (`Quite OK Audio `__). +Audio is lossily compressed as `Quite OK Audio `__. .. rst-class:: classref-item-separator @@ -177,7 +177,9 @@ Property Descriptions Contains the audio data in bytes. -\ **Note:** This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte. +\ **Note:** If :ref:`format` is set to :ref:`FORMAT_8_BITS`, this property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, subtract 128 from each byte. + +\ **Note:** If :ref:`format` is set to :ref:`FORMAT_QOA`, this property expects data from a full QOA file. **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedByteArray` for more details. @@ -213,7 +215,7 @@ Audio format. See :ref:`Format` constants for values - |void| **set_loop_begin**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_loop_begin**\ (\ ) -The loop start point (in number of samples, relative to the beginning of the stream). This information will be imported automatically from the WAV file if present. +The loop start point (in number of samples, relative to the beginning of the stream). .. rst-class:: classref-item-separator @@ -230,7 +232,7 @@ The loop start point (in number of samples, relative to the beginning of the str - |void| **set_loop_end**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_loop_end**\ (\ ) -The loop end point (in number of samples, relative to the beginning of the stream). This information will be imported automatically from the WAV file if present. +The loop end point (in number of samples, relative to the beginning of the stream). .. rst-class:: classref-item-separator @@ -247,7 +249,7 @@ The loop end point (in number of samples, relative to the beginning of the strea - |void| **set_loop_mode**\ (\ value\: :ref:`LoopMode`\ ) - :ref:`LoopMode` **get_loop_mode**\ (\ ) -The loop mode. This information will be imported automatically from the WAV file if present. See :ref:`LoopMode` constants for values. +The loop mode. See :ref:`LoopMode` constants for values. .. rst-class:: classref-item-separator @@ -302,7 +304,7 @@ Method Descriptions :ref:`Error` **save_to_wav**\ (\ path\: :ref:`String`\ ) :ref:`๐Ÿ”—` -Saves the AudioStreamWAV as a WAV file to ``path``. Samples with IMA ADPCM or QOA formats can't be saved. +Saves the AudioStreamWAV as a WAV file to ``path``. Samples with IMA ADPCM or Quite OK Audio formats can't be saved. \ **Note:** A ``.wav`` extension is automatically appended to ``path`` if it is missing. diff --git a/classes/class_boneattachment3d.rst b/classes/class_boneattachment3d.rst index 5b5475a34a4..94b63075d7e 100644 --- a/classes/class_boneattachment3d.rst +++ b/classes/class_boneattachment3d.rst @@ -48,17 +48,19 @@ Methods .. table:: :widths: auto - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`NodePath` | :ref:`get_external_skeleton`\ (\ ) |const| | - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`get_use_external_skeleton`\ (\ ) |const| | - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`on_skeleton_update`\ (\ ) | - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_external_skeleton`\ (\ external_skeleton\: :ref:`NodePath`\ ) | - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_use_external_skeleton`\ (\ use_external_skeleton\: :ref:`bool`\ ) | - +---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`NodePath` | :ref:`get_external_skeleton`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Skeleton3D` | :ref:`get_skeleton`\ (\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_use_external_skeleton`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`on_skeleton_update`\ (\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_external_skeleton`\ (\ external_skeleton\: :ref:`NodePath`\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_use_external_skeleton`\ (\ use_external_skeleton\: :ref:`bool`\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -139,6 +141,18 @@ Returns the :ref:`NodePath` to the external :ref:`Skeleton3D` **get_skeleton**\ (\ ) :ref:`๐Ÿ”—` + +Get parent or external :ref:`Skeleton3D` node if found. + +.. rst-class:: classref-item-separator + +---- + .. _class_BoneAttachment3D_method_get_use_external_skeleton: .. rst-class:: classref-method diff --git a/classes/class_callable.rst b/classes/class_callable.rst index 691f4482ef9..e5de02ea433 100644 --- a/classes/class_callable.rst +++ b/classes/class_callable.rst @@ -19,8 +19,6 @@ Description **Callable** is a built-in :ref:`Variant` type that represents a function. It can either be a method within an :ref:`Object` instance, or a custom callable used for different purposes (see :ref:`is_custom`). Like all :ref:`Variant` types, it can be stored in variables and passed to other functions. It is most commonly used for signal callbacks. -\ **Example:**\ - .. tabs:: @@ -431,7 +429,9 @@ Returns ``true`` if this **Callable** is a custom callable. Custom callables are :ref:`bool` **is_null**\ (\ ) |const| :ref:`๐Ÿ”—` -Returns ``true`` if this **Callable** has no target to call the method on. +Returns ``true`` if this **Callable** has no target to call the method on. Equivalent to ``callable == Callable()``. + +\ **Note:** This is *not* the same as ``not is_valid()`` and using ``not is_null()`` will *not* guarantee that this callable can be called. Use :ref:`is_valid` instead. .. rst-class:: classref-item-separator diff --git a/classes/class_callbacktweener.rst b/classes/class_callbacktweener.rst index b78d9c67348..2256e8ab3ae 100644 --- a/classes/class_callbacktweener.rst +++ b/classes/class_callbacktweener.rst @@ -54,12 +54,12 @@ Method Descriptions Makes the callback call delayed by given time in seconds. -\ **Example:**\ +\ **Example:** Call :ref:`Node.queue_free` after 2 seconds. :: var tween = get_tree().create_tween() - tween.tween_callback(queue_free).set_delay(2) #this will call queue_free() after 2 seconds + tween.tween_callback(queue_free).set_delay(2) .. |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.)` diff --git a/classes/class_canvasitem.rst b/classes/class_canvasitem.rst index d5412e78e24..43b1bcdf41a 100644 --- a/classes/class_canvasitem.rst +++ b/classes/class_canvasitem.rst @@ -880,6 +880,8 @@ If ``antialiased`` is ``true``, half transparent "feathers" will be attached to Draws a colored polygon of any number of points, convex or concave. Unlike :ref:`draw_polygon`, a single color must be specified for the whole polygon. +\ **Note:** If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with :ref:`Geometry2D.triangulate_polygon` and using :ref:`draw_mesh`, :ref:`draw_multimesh`, or :ref:`RenderingServer.canvas_item_add_triangle_array`. + .. rst-class:: classref-item-separator ---- @@ -1053,6 +1055,8 @@ Draws a :ref:`MultiMesh` in 2D with the provided texture. See : Draws a solid polygon of any number of points, convex or concave. Unlike :ref:`draw_colored_polygon`, each point's color can be changed individually. See also :ref:`draw_polyline` and :ref:`draw_polyline_colors`. If you need more flexibility (such as being able to use bones), use :ref:`RenderingServer.canvas_item_add_triangle_array` instead. +\ **Note:** If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with :ref:`Geometry2D.triangulate_polygon` and using :ref:`draw_mesh`, :ref:`draw_multimesh`, or :ref:`RenderingServer.canvas_item_add_triangle_array`. + .. rst-class:: classref-item-separator ---- diff --git a/classes/class_classdb.rst b/classes/class_classdb.rst index 9c5b481cd22..ff53168dc5a 100644 --- a/classes/class_classdb.rst +++ b/classes/class_classdb.rst @@ -32,6 +32,8 @@ Methods +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`can_instantiate`\ (\ class\: :ref:`StringName`\ ) |const| | +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`class_call_static_method`\ (\ class\: :ref:`StringName`, method\: :ref:`StringName`, ...\ ) |vararg| | + +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`class_exists`\ (\ class\: :ref:`StringName`\ ) |const| | +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`class_get_enum_constants`\ (\ class\: :ref:`StringName`, enum\: :ref:`StringName`, no_inheritance\: :ref:`bool` = false\ ) |const| | @@ -52,8 +54,12 @@ Methods +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`class_get_property_default_value`\ (\ class\: :ref:`StringName`, property\: :ref:`StringName`\ ) |const| | +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`StringName` | :ref:`class_get_property_getter`\ (\ class\: :ref:`StringName`, property\: :ref:`StringName`\ ) | + +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`class_get_property_list`\ (\ class\: :ref:`StringName`, no_inheritance\: :ref:`bool` = false\ ) |const| | +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`StringName` | :ref:`class_get_property_setter`\ (\ class\: :ref:`StringName`, property\: :ref:`StringName`\ ) | + +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`class_get_signal`\ (\ class\: :ref:`StringName`, signal\: :ref:`StringName`\ ) |const| | +------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`class_get_signal_list`\ (\ class\: :ref:`StringName`, no_inheritance\: :ref:`bool` = false\ ) |const| | @@ -104,6 +110,18 @@ Returns ``true`` if objects can be instantiated from the specified ``class``, ot ---- +.. _class_ClassDB_method_class_call_static_method: + +.. rst-class:: classref-method + +:ref:`Variant` **class_call_static_method**\ (\ class\: :ref:`StringName`, method\: :ref:`StringName`, ...\ ) |vararg| :ref:`๐Ÿ”—` + +Calls a static method on a class. + +.. rst-class:: classref-item-separator + +---- + .. _class_ClassDB_method_class_exists: .. rst-class:: classref-method @@ -226,6 +244,18 @@ Returns the default value of ``property`` of ``class`` or its ancestor classes. ---- +.. _class_ClassDB_method_class_get_property_getter: + +.. rst-class:: classref-method + +:ref:`StringName` **class_get_property_getter**\ (\ class\: :ref:`StringName`, property\: :ref:`StringName`\ ) :ref:`๐Ÿ”—` + +Returns the getter method name of ``property`` of ``class``. + +.. rst-class:: classref-item-separator + +---- + .. _class_ClassDB_method_class_get_property_list: .. rst-class:: classref-method @@ -238,6 +268,18 @@ Returns an array with all the properties of ``class`` or its ancestry if ``no_in ---- +.. _class_ClassDB_method_class_get_property_setter: + +.. rst-class:: classref-method + +:ref:`StringName` **class_get_property_setter**\ (\ class\: :ref:`StringName`, property\: :ref:`StringName`\ ) :ref:`๐Ÿ”—` + +Returns the setter method name of ``property`` of ``class``. + +.. rst-class:: classref-item-separator + +---- + .. _class_ClassDB_method_class_get_signal: .. rst-class:: classref-method diff --git a/classes/class_codeedit.rst b/classes/class_codeedit.rst index 5cfb6a2dc7a..53aea592f48 100644 --- a/classes/class_codeedit.rst +++ b/classes/class_codeedit.rst @@ -280,6 +280,8 @@ Theme Properties +-----------------------------------+----------------------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`can_fold_code_region` | | +-----------------------------------+----------------------------------------------------------------------------------------------------+-----------------------------------+ + | :ref:`Texture2D` | :ref:`completion_color_bg` | | + +-----------------------------------+----------------------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`executing_line` | | +-----------------------------------+----------------------------------------------------------------------------------------------------+-----------------------------------+ | :ref:`Texture2D` | :ref:`folded` | | @@ -1978,6 +1980,18 @@ Sets a custom :ref:`Texture2D` to draw in the line folding gutt ---- +.. _class_CodeEdit_theme_icon_completion_color_bg: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **completion_color_bg** :ref:`๐Ÿ”—` + +Background panel for the color preview box in autocompletion (visible when the color is translucent). + +.. rst-class:: classref-item-separator + +---- + .. _class_CodeEdit_theme_icon_executing_line: .. rst-class:: classref-themeproperty diff --git a/classes/class_compositor.rst b/classes/class_compositor.rst index ec0e40c519f..31533f286bf 100644 --- a/classes/class_compositor.rst +++ b/classes/class_compositor.rst @@ -23,6 +23,13 @@ Description The compositor resource stores attributes used to customize how a :ref:`Viewport` is rendered. +.. rst-class:: classref-introduction-group + +Tutorials +--------- + +- :doc:`The Compositor <../tutorials/rendering/compositor>` + .. rst-class:: classref-reftable-group Properties diff --git a/classes/class_compositoreffect.rst b/classes/class_compositoreffect.rst index 9c644ec5d53..a72da698208 100644 --- a/classes/class_compositoreffect.rst +++ b/classes/class_compositoreffect.rst @@ -23,6 +23,13 @@ Description This resource defines a custom rendering effect that can be applied to :ref:`Viewport`\ s through the viewports' :ref:`Environment`. You can implement a callback that is called during rendering at a given stage of the rendering pipeline and allows you to insert additional passes. Note that this callback happens on the rendering thread. CompositorEffect is an abstract base class and must be extended to implement specific rendering logic. +.. rst-class:: classref-introduction-group + +Tutorials +--------- + +- :doc:`The Compositor <../tutorials/rendering/compositor>` + .. rst-class:: classref-reftable-group Properties diff --git a/classes/class_control.rst b/classes/class_control.rst index c6177e1a018..a6cc2a484ed 100644 --- a/classes/class_control.rst +++ b/classes/class_control.rst @@ -894,7 +894,7 @@ enum **MouseFilter**: :ref:`๐Ÿ”—` :ref:`MouseFilter` **MOUSE_FILTER_STOP** = ``0`` -The control will receive mouse movement input events and mouse button input events if clicked on through :ref:`_gui_input`. And the control will receive the :ref:`mouse_entered` and :ref:`mouse_exited` signals. These events are automatically marked as handled, and they will not propagate further to other controls. This also results in blocking signals in other controls. +The control will receive mouse movement input events and mouse button input events if clicked on through :ref:`_gui_input`. The control will also receive the :ref:`mouse_entered` and :ref:`mouse_exited` signals. These events are automatically marked as handled, and they will not propagate further to other controls. This also results in blocking signals in other controls. .. _class_Control_constant_MOUSE_FILTER_PASS: @@ -902,7 +902,9 @@ The control will receive mouse movement input events and mouse button input even :ref:`MouseFilter` **MOUSE_FILTER_PASS** = ``1`` -The control will receive mouse movement input events and mouse button input events if clicked on through :ref:`_gui_input`. And the control will receive the :ref:`mouse_entered` and :ref:`mouse_exited` signals. If this control does not handle the event, the parent control (if any) will be considered, and so on until there is no more parent control to potentially handle it. This also allows signals to fire in other controls. If no control handled it, the event will be passed to :ref:`Node._shortcut_input` for further processing. +The control will receive mouse movement input events and mouse button input events if clicked on through :ref:`_gui_input`. The control will also receive the :ref:`mouse_entered` and :ref:`mouse_exited` signals. + +If this control does not handle the event, the event will propagate up to its parent control if it has one. The event is bubbled up the node hierarchy until it reaches a non-:ref:`CanvasItem`, a control with :ref:`MOUSE_FILTER_STOP`, or a :ref:`CanvasItem` with :ref:`CanvasItem.top_level` enabled. This will allow signals to fire in all controls it reaches. If no control handled it, the event will be passed to :ref:`Node._shortcut_input` for further processing. .. _class_Control_constant_MOUSE_FILTER_IGNORE: @@ -910,7 +912,7 @@ The control will receive mouse movement input events and mouse button input even :ref:`MouseFilter` **MOUSE_FILTER_IGNORE** = ``2`` -The control will not receive mouse movement input events and mouse button input events if clicked on through :ref:`_gui_input`. The control will also not receive the :ref:`mouse_entered` nor :ref:`mouse_exited` signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically. +The control will not receive any mouse movement input events nor mouse button input events through :ref:`_gui_input`. The control will also not receive the :ref:`mouse_entered` nor :ref:`mouse_exited` signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically. If a child has :ref:`MOUSE_FILTER_PASS` and an event was passed to this control, the event will further propagate up to the control's parent. \ **Note:** If the control has received :ref:`mouse_entered` but not :ref:`mouse_exited`, changing the :ref:`mouse_filter` to :ref:`MOUSE_FILTER_IGNORE` will cause :ref:`mouse_exited` to be emitted. diff --git a/classes/class_cpuparticles3d.rst b/classes/class_cpuparticles3d.rst index ba08e373997..503f30806ec 100644 --- a/classes/class_cpuparticles3d.rst +++ b/classes/class_cpuparticles3d.rst @@ -91,6 +91,8 @@ Properties +---------------------------------------------------------+---------------------------------------------------------------------------------------------+----------------------------+ | :ref:`Vector3` | :ref:`emission_ring_axis` | | +---------------------------------------------------------+---------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`float` | :ref:`emission_ring_cone_angle` | | + +---------------------------------------------------------+---------------------------------------------------------------------------------------------+----------------------------+ | :ref:`float` | :ref:`emission_ring_height` | | +---------------------------------------------------------+---------------------------------------------------------------------------------------------+----------------------------+ | :ref:`float` | :ref:`emission_ring_inner_radius` | | @@ -969,6 +971,25 @@ The axis of the ring when using the emitter :ref:`EMISSION_SHAPE_RING` **emission_ring_cone_angle** :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_emission_ring_cone_angle**\ (\ value\: :ref:`float`\ ) +- :ref:`float` **get_emission_ring_cone_angle**\ (\ ) + +The angle of the cone when using the emitter :ref:`EMISSION_SHAPE_RING`. The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + +\ **Note:** Depending on :ref:`emission_ring_height`, the angle may be clamped if the ring's end is reached to form a perfect cone. + +.. rst-class:: classref-item-separator + +---- + .. _class_CPUParticles3D_property_emission_ring_height: .. rst-class:: classref-property diff --git a/classes/class_csgshape3d.rst b/classes/class_csgshape3d.rst index 315f161d6af..60e72560517 100644 --- a/classes/class_csgshape3d.rst +++ b/classes/class_csgshape3d.rst @@ -23,7 +23,15 @@ Description This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot. -\ **Note:** CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a :ref:`MeshInstance3D` with a :ref:`PrimitiveMesh`. Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. +\ **Performance:** CSG nodes are only intended for prototyping as they have a significant CPU performance cost. + +Consider baking final CSG operation results into static geometry that replaces the CSG nodes. + +Individual CSG root node results can be baked to nodes with static resources with the editor menu that appears when a CSG root node is selected. + +Individual CSG root nodes can also be baked to static resources with scripts by calling :ref:`bake_static_mesh` for the visual mesh or :ref:`bake_collision_shape` for the physics collision. + +Entire scenes of CSG nodes can be baked to static geometry and exported with the editor gltf scene exporter. .. rst-class:: classref-introduction-group @@ -64,19 +72,23 @@ Methods .. table:: :widths: auto - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`get_collision_layer_value`\ (\ layer_number\: :ref:`int`\ ) |const| | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`get_collision_mask_value`\ (\ layer_number\: :ref:`int`\ ) |const| | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Array` | :ref:`get_meshes`\ (\ ) |const| | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_root_shape`\ (\ ) |const| | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_layer_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_mask_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | - +---------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ConcavePolygonShape3D` | :ref:`bake_collision_shape`\ (\ ) | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ArrayMesh` | :ref:`bake_static_mesh`\ (\ ) | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_collision_layer_value`\ (\ layer_number\: :ref:`int`\ ) |const| | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_collision_mask_value`\ (\ layer_number\: :ref:`int`\ ) |const| | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array` | :ref:`get_meshes`\ (\ ) |const| | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_root_shape`\ (\ ) |const| | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_layer_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_mask_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | + +-----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -254,6 +266,32 @@ Adds a collision shape to the physics engine for our CSG shape. This will always Method Descriptions ------------------- +.. _class_CSGShape3D_method_bake_collision_shape: + +.. rst-class:: classref-method + +:ref:`ConcavePolygonShape3D` **bake_collision_shape**\ (\ ) :ref:`๐Ÿ”—` + +Returns a baked physics :ref:`ConcavePolygonShape3D` of this node's CSG operation result. Returns an empty shape if the node is not a CSG root node or has no valid geometry. + +\ **Performance:** If the CSG operation results in a very detailed geometry with many faces physics performance will be very slow. Concave shapes should in general only be used for static level geometry and not with dynamic objects that are moving. + +.. rst-class:: classref-item-separator + +---- + +.. _class_CSGShape3D_method_bake_static_mesh: + +.. rst-class:: classref-method + +:ref:`ArrayMesh` **bake_static_mesh**\ (\ ) :ref:`๐Ÿ”—` + +Returns a baked static :ref:`ArrayMesh` of this node's CSG operation result. Materials from involved CSG nodes are added as extra mesh surfaces. Returns an empty mesh if the node is not a CSG root node or has no valid geometry. + +.. rst-class:: classref-item-separator + +---- + .. _class_CSGShape3D_method_get_collision_layer_value: .. rst-class:: classref-method diff --git a/classes/class_curve2d.rst b/classes/class_curve2d.rst index fda17462067..599fb5a8443 100644 --- a/classes/class_curve2d.rst +++ b/classes/class_curve2d.rst @@ -265,7 +265,7 @@ Deletes the point ``idx`` from the curve. Sends an error to the console if ``idx :ref:`Vector2` **sample**\ (\ idx\: :ref:`int`, t\: :ref:`float`\ ) |const| :ref:`๐Ÿ”—` -Returns the position between the vertex ``idx`` and the vertex ``idx + 1``, where ``t`` controls if the point is the first vertex (``t = 0.0``), the last vertex (``t = 1.0``), or in between. Values of ``t`` outside the range (``0.0 >= t <=1``) give strange, but predictable results. +Returns the position between the vertex ``idx`` and the vertex ``idx + 1``, where ``t`` controls if the point is the first vertex (``t = 0.0``), the last vertex (``t = 1.0``), or in between. Values of ``t`` outside the range (``0.0 <= t <= 1.0``) give strange, but predictable results. If ``idx`` is out of bounds it is truncated to the first or last vertex, and ``t`` is ignored. If the curve has no points, the function sends an error to the console, and returns ``(0, 0)``. diff --git a/classes/class_dictionary.rst b/classes/class_dictionary.rst index 2b3e7ac3edc..cc1678e02e4 100644 --- a/classes/class_dictionary.rst +++ b/classes/class_dictionary.rst @@ -212,11 +212,13 @@ Constructors .. table:: :widths: auto - +-------------------------------------+--------------------------------------------------------------------------------------------------------------+ - | :ref:`Dictionary` | :ref:`Dictionary`\ (\ ) | - +-------------------------------------+--------------------------------------------------------------------------------------------------------------+ - | :ref:`Dictionary` | :ref:`Dictionary`\ (\ from\: :ref:`Dictionary`\ ) | - +-------------------------------------+--------------------------------------------------------------------------------------------------------------+ + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`Dictionary`\ (\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`Dictionary`\ (\ base\: :ref:`Dictionary`, key_type\: :ref:`int`, key_class_name\: :ref:`StringName`, key_script\: :ref:`Variant`, value_type\: :ref:`int`, value_class_name\: :ref:`StringName`, value_script\: :ref:`Variant`\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`Dictionary`\ (\ from\: :ref:`Dictionary`\ ) | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group @@ -226,6 +228,8 @@ Methods .. table:: :widths: auto + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`assign`\ (\ dictionary\: :ref:`Dictionary`\ ) | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear`\ (\ ) | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -239,6 +243,18 @@ Methods +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_or_add`\ (\ key\: :ref:`Variant`, default\: :ref:`Variant` = null\ ) | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_typed_key_builtin`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`StringName` | :ref:`get_typed_key_class_name`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`get_typed_key_script`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_typed_value_builtin`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`StringName` | :ref:`get_typed_value_class_name`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`get_typed_value_script`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has`\ (\ key\: :ref:`Variant`\ ) |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_all`\ (\ keys\: :ref:`Array`\ ) |const| | @@ -249,6 +265,18 @@ Methods +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_read_only`\ (\ ) |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_same_typed`\ (\ dictionary\: :ref:`Dictionary`\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_same_typed_key`\ (\ dictionary\: :ref:`Dictionary`\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_same_typed_value`\ (\ dictionary\: :ref:`Dictionary`\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_typed`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_typed_key`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_typed_value`\ (\ ) |const| | + +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`keys`\ (\ ) |const| | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`make_read_only`\ (\ ) | @@ -303,6 +331,16 @@ Constructs an empty **Dictionary**. .. rst-class:: classref-constructor +:ref:`Dictionary` **Dictionary**\ (\ base\: :ref:`Dictionary`, key_type\: :ref:`int`, key_class_name\: :ref:`StringName`, key_script\: :ref:`Variant`, value_type\: :ref:`int`, value_class_name\: :ref:`StringName`, value_script\: :ref:`Variant`\ ) + +Creates a typed dictionary from the ``base`` dictionary. A typed dictionary can only contain keys and values of the given types, or that inherit from the given classes, as described by this constructor's parameters. + +.. rst-class:: classref-item-separator + +---- + +.. rst-class:: classref-constructor + :ref:`Dictionary` **Dictionary**\ (\ from\: :ref:`Dictionary`\ ) Returns the same dictionary as ``from``. If you need a copy of the dictionary, use :ref:`duplicate`. @@ -316,6 +354,18 @@ Returns the same dictionary as ``from``. If you need a copy of the dictionary, u Method Descriptions ------------------- +.. _class_Dictionary_method_assign: + +.. rst-class:: classref-method + +|void| **assign**\ (\ dictionary\: :ref:`Dictionary`\ ) :ref:`๐Ÿ”—` + +Assigns elements of another ``dictionary`` into the dictionary. Resizes the dictionary to match ``dictionary``. Performs type conversions if the dictionary is typed. + +.. rst-class:: classref-item-separator + +---- + .. _class_Dictionary_method_clear: .. rst-class:: classref-method @@ -392,6 +442,78 @@ Gets a value and ensures the key is set. If the ``key`` exists in the dictionary ---- +.. _class_Dictionary_method_get_typed_key_builtin: + +.. rst-class:: classref-method + +:ref:`int` **get_typed_key_builtin**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the built-in :ref:`Variant` type of the typed dictionary's keys as a :ref:`Variant.Type` constant. If the keys are not typed, returns :ref:`@GlobalScope.TYPE_NIL`. See also :ref:`is_typed_key`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_get_typed_key_class_name: + +.. rst-class:: classref-method + +:ref:`StringName` **get_typed_key_class_name**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the **built-in** class name of the typed dictionary's keys, if the built-in :ref:`Variant` type is :ref:`@GlobalScope.TYPE_OBJECT`. Otherwise, returns an empty :ref:`StringName`. See also :ref:`is_typed_key` and :ref:`Object.get_class`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_get_typed_key_script: + +.. rst-class:: classref-method + +:ref:`Variant` **get_typed_key_script**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the :ref:`Script` instance associated with this typed dictionary's keys, or ``null`` if it does not exist. See also :ref:`is_typed_key`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_get_typed_value_builtin: + +.. rst-class:: classref-method + +:ref:`int` **get_typed_value_builtin**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the built-in :ref:`Variant` type of the typed dictionary's values as a :ref:`Variant.Type` constant. If the values are not typed, returns :ref:`@GlobalScope.TYPE_NIL`. See also :ref:`is_typed_value`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_get_typed_value_class_name: + +.. rst-class:: classref-method + +:ref:`StringName` **get_typed_value_class_name**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the **built-in** class name of the typed dictionary's values, if the built-in :ref:`Variant` type is :ref:`@GlobalScope.TYPE_OBJECT`. Otherwise, returns an empty :ref:`StringName`. See also :ref:`is_typed_value` and :ref:`Object.get_class`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_get_typed_value_script: + +.. rst-class:: classref-method + +:ref:`Variant` **get_typed_value_script**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the :ref:`Script` instance associated with this typed dictionary's values, or ``null`` if it does not exist. See also :ref:`is_typed_value`. + +.. rst-class:: classref-item-separator + +---- + .. _class_Dictionary_method_has: .. rst-class:: classref-method @@ -518,6 +640,78 @@ Returns ``true`` if the dictionary is read-only. See :ref:`make_read_only` **is_same_typed**\ (\ dictionary\: :ref:`Dictionary`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary is typed the same as ``dictionary``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_is_same_typed_key: + +.. rst-class:: classref-method + +:ref:`bool` **is_same_typed_key**\ (\ dictionary\: :ref:`Dictionary`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary's keys are typed the same as ``dictionary``'s keys. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_is_same_typed_value: + +.. rst-class:: classref-method + +:ref:`bool` **is_same_typed_value**\ (\ dictionary\: :ref:`Dictionary`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary's values are typed the same as ``dictionary``'s values. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_is_typed: + +.. rst-class:: classref-method + +:ref:`bool` **is_typed**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary is typed. Typed dictionaries can only store keys/values of their associated type and provide type safety for the ``[]`` operator. Methods of typed dictionary still return :ref:`Variant`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_is_typed_key: + +.. rst-class:: classref-method + +:ref:`bool` **is_typed_key**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary's keys are typed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Dictionary_method_is_typed_value: + +.. rst-class:: classref-method + +:ref:`bool` **is_typed_value**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the dictionary's values are typed. + +.. rst-class:: classref-item-separator + +---- + .. _class_Dictionary_method_keys: .. rst-class:: classref-method diff --git a/classes/class_displayserver.rst b/classes/class_displayserver.rst index 86ce5173f49..18a5e165dbb 100644 --- a/classes/class_displayserver.rst +++ b/classes/class_displayserver.rst @@ -4397,7 +4397,7 @@ Sets the title of the given window to ``title``. |void| **window_set_transient**\ (\ window_id\: :ref:`int`, parent_window_id\: :ref:`int`\ ) :ref:`๐Ÿ”—` -Sets window transient parent. Transient window is will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. +Sets window transient parent. Transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. \ **Note:** It's recommended to change this value using :ref:`Window.transient` instead. diff --git a/classes/class_editorcontextmenuplugin.rst b/classes/class_editorcontextmenuplugin.rst new file mode 100644 index 00000000000..10f12b6e5c6 --- /dev/null +++ b/classes/class_editorcontextmenuplugin.rst @@ -0,0 +1,104 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/EditorContextMenuPlugin.xml. + +.. _class_EditorContextMenuPlugin: + +EditorContextMenuPlugin +======================= + +**Inherits:** :ref:`RefCounted` **<** :ref:`Object` + +Plugin for adding custom context menus in the editor. + +.. rst-class:: classref-introduction-group + +Description +----------- + +**EditorContextMenuPlugin** allows for the addition of custom options in the editor's context menu. + +Currently, context menus are supported for three commonly used areas: the file system, scene tree, and editor script list panel. + +.. rst-class:: classref-reftable-group + +Methods +------- + +.. table:: + :widths: auto + + +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`_popup_menu`\ (\ paths\: :ref:`PackedStringArray`\ ) |virtual| | + +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_context_menu_item`\ (\ name\: :ref:`String`, callback\: :ref:`Callable`, icon\: :ref:`Texture2D` = null, shortcut\: :ref:`Shortcut` = null\ ) | + +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_menu_shortcut`\ (\ shortcut\: :ref:`Shortcut`, callback\: :ref:`Callable`\ ) | + +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Method Descriptions +------------------- + +.. _class_EditorContextMenuPlugin_private_method__popup_menu: + +.. rst-class:: classref-method + +|void| **_popup_menu**\ (\ paths\: :ref:`PackedStringArray`\ ) |virtual| :ref:`๐Ÿ”—` + +Called when creating a context menu, custom options can be added by using the :ref:`add_context_menu_item` function. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorContextMenuPlugin_method_add_context_menu_item: + +.. rst-class:: classref-method + +|void| **add_context_menu_item**\ (\ name\: :ref:`String`, callback\: :ref:`Callable`, icon\: :ref:`Texture2D` = null, shortcut\: :ref:`Shortcut` = null\ ) :ref:`๐Ÿ”—` + +Add custom options to the context menu of the currently specified slot. + +To trigger a ``shortcut`` before the context menu is created, please additionally call the :ref:`add_menu_shortcut` function. + +:: + + func _popup_menu(paths): + add_context_menu_item("File Custom options", handle, ICON) + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorContextMenuPlugin_method_add_menu_shortcut: + +.. rst-class:: classref-method + +|void| **add_menu_shortcut**\ (\ shortcut\: :ref:`Shortcut`, callback\: :ref:`Callable`\ ) :ref:`๐Ÿ”—` + +To register the shortcut for the context menu, call this function within the :ref:`Object._init` function, even if the context menu has not been created yet. + +Note that this method should only be invoked from :ref:`Object._init`; otherwise, the shortcut will not be registered correctly. + +:: + + func _init(): + add_menu_shortcut(SHORTCUT, handle); + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_editorexportplatform.rst b/classes/class_editorexportplatform.rst index a72b7d160f8..952a9f615db 100644 --- a/classes/class_editorexportplatform.rst +++ b/classes/class_editorexportplatform.rst @@ -12,7 +12,7 @@ EditorExportPlatform **Inherits:** :ref:`RefCounted` **<** :ref:`Object` -**Inherited By:** :ref:`EditorExportPlatformAndroid`, :ref:`EditorExportPlatformIOS`, :ref:`EditorExportPlatformMacOS`, :ref:`EditorExportPlatformPC`, :ref:`EditorExportPlatformWeb` +**Inherited By:** :ref:`EditorExportPlatformAndroid`, :ref:`EditorExportPlatformExtension`, :ref:`EditorExportPlatformIOS`, :ref:`EditorExportPlatformMacOS`, :ref:`EditorExportPlatformPC`, :ref:`EditorExportPlatformWeb` Identifies a supported export platform, and internally provides the functionality of exporting to that platform. @@ -40,9 +40,148 @@ Methods .. table:: :widths: auto - +-----------------------------+---------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`get_os_name`\ (\ ) |const| | - +-----------------------------+---------------------------------------------------------------------------------+ + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_message`\ (\ type\: :ref:`ExportMessageType`, category\: :ref:`String`, message\: :ref:`String`\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`clear_messages`\ (\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorExportPreset` | :ref:`create_preset`\ (\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`export_pack`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`export_project`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`export_project_files`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, save_cb\: :ref:`Callable`, shared_cb\: :ref:`Callable` = Callable()\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`export_zip`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`find_export_template`\ (\ template_file_name\: :ref:`String`\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`gen_export_flags`\ (\ flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array` | :ref:`get_current_presets`\ (\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_forced_export_files`\ (\ ) |static| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_message_category`\ (\ index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_message_count`\ (\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_message_text`\ (\ index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ExportMessageType` | :ref:`get_message_type`\ (\ index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_os_name`\ (\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ExportMessageType` | :ref:`get_worst_message_type`\ (\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`save_pack`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, embed\: :ref:`bool` = false\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`save_zip`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`\ ) | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`ssh_push_to_remote`\ (\ host\: :ref:`String`, port\: :ref:`String`, scp_args\: :ref:`PackedStringArray`, src_file\: :ref:`String`, dst_file\: :ref:`String`\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`ssh_run_on_remote`\ (\ host\: :ref:`String`, port\: :ref:`String`, ssh_arg\: :ref:`PackedStringArray`, cmd_args\: :ref:`String`, output\: :ref:`Array` = [], port_fwd\: :ref:`int` = -1\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`ssh_run_on_remote_no_wait`\ (\ host\: :ref:`String`, port\: :ref:`String`, ssh_args\: :ref:`PackedStringArray`, cmd_args\: :ref:`String`, port_fwd\: :ref:`int` = -1\ ) |const| | + +-----------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Enumerations +------------ + +.. _enum_EditorExportPlatform_ExportMessageType: + +.. rst-class:: classref-enumeration + +enum **ExportMessageType**: :ref:`๐Ÿ”—` + +.. _class_EditorExportPlatform_constant_EXPORT_MESSAGE_NONE: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportMessageType` **EXPORT_MESSAGE_NONE** = ``0`` + +Invalid message type used as the default value when no type is specified. + +.. _class_EditorExportPlatform_constant_EXPORT_MESSAGE_INFO: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportMessageType` **EXPORT_MESSAGE_INFO** = ``1`` + +Message type for informational messages that have no effect on the export. + +.. _class_EditorExportPlatform_constant_EXPORT_MESSAGE_WARNING: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportMessageType` **EXPORT_MESSAGE_WARNING** = ``2`` + +Message type for warning messages that should be addressed but still allow to complete the export. + +.. _class_EditorExportPlatform_constant_EXPORT_MESSAGE_ERROR: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportMessageType` **EXPORT_MESSAGE_ERROR** = ``3`` + +Message type for error messages that must be addressed and fail the export. + +.. rst-class:: classref-item-separator + +---- + +.. _enum_EditorExportPlatform_DebugFlags: + +.. rst-class:: classref-enumeration + +flags **DebugFlags**: :ref:`๐Ÿ”—` + +.. _class_EditorExportPlatform_constant_DEBUG_FLAG_DUMB_CLIENT: + +.. rst-class:: classref-enumeration-constant + +:ref:`DebugFlags` **DEBUG_FLAG_DUMB_CLIENT** = ``1`` + +Flag is set if remotely debugged project is expected to use remote file system. If set, :ref:`gen_export_flags` will add ``--remove-fs`` and ``--remote-fs-password`` (if password is set in the editor settings) command line arguments to the list. + +.. _class_EditorExportPlatform_constant_DEBUG_FLAG_REMOTE_DEBUG: + +.. rst-class:: classref-enumeration-constant + +:ref:`DebugFlags` **DEBUG_FLAG_REMOTE_DEBUG** = ``2`` + +Flag is set if remote debug is enabled. If set, :ref:`gen_export_flags` will add ``--remote-debug`` and ``--breakpoints`` (if breakpoints are selected in the script editor or added by the plugin) command line arguments to the list. + +.. _class_EditorExportPlatform_constant_DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST: + +.. rst-class:: classref-enumeration-constant + +:ref:`DebugFlags` **DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST** = ``4`` + +Flag is set if remotely debugged project is running on the localhost. If set, :ref:`gen_export_flags` will use ``localhost`` instead of :ref:`EditorSettings.network/debug/remote_host` as remote debugger host. + +.. _class_EditorExportPlatform_constant_DEBUG_FLAG_VIEW_COLLISIONS: + +.. rst-class:: classref-enumeration-constant + +:ref:`DebugFlags` **DEBUG_FLAG_VIEW_COLLISIONS** = ``8`` + +Flag is set if "Visible Collision Shapes" remote debug option is enabled. If set, :ref:`gen_export_flags` will add ``--debug-collisions`` command line arguments to the list. + +.. _class_EditorExportPlatform_constant_DEBUG_FLAG_VIEW_NAVIGATION: + +.. rst-class:: classref-enumeration-constant + +:ref:`DebugFlags` **DEBUG_FLAG_VIEW_NAVIGATION** = ``16`` + +Flag is set if Visible Navigation" remote debug option is enabled. If set, :ref:`gen_export_flags` will add ``--debug-navigation`` command line arguments to the list. .. rst-class:: classref-section-separator @@ -53,6 +192,192 @@ Methods Method Descriptions ------------------- +.. _class_EditorExportPlatform_method_add_message: + +.. rst-class:: classref-method + +|void| **add_message**\ (\ type\: :ref:`ExportMessageType`, category\: :ref:`String`, message\: :ref:`String`\ ) :ref:`๐Ÿ”—` + +Adds a message to the export log that will be displayed when exporting ends. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_clear_messages: + +.. rst-class:: classref-method + +|void| **clear_messages**\ (\ ) :ref:`๐Ÿ”—` + +Clears the export log. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_create_preset: + +.. rst-class:: classref-method + +:ref:`EditorExportPreset` **create_preset**\ (\ ) :ref:`๐Ÿ”—` + +Create a new preset for this platform. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_export_pack: + +.. rst-class:: classref-method + +:ref:`Error` **export_pack**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) :ref:`๐Ÿ”—` + +Creates a PCK archive at ``path`` for the specified ``preset``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_export_project: + +.. rst-class:: classref-method + +:ref:`Error` **export_project**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) :ref:`๐Ÿ”—` + +Creates a full project at ``path`` for the specified ``preset``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_export_project_files: + +.. rst-class:: classref-method + +:ref:`Error` **export_project_files**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, save_cb\: :ref:`Callable`, shared_cb\: :ref:`Callable` = Callable()\ ) :ref:`๐Ÿ”—` + +Exports project files for the specified preset. This method can be used to implement custom export format, other than PCK and ZIP. One of the callbacks is called for each exported file. + +\ ``save_cb`` is called for all exported files and have the following arguments: ``file_path: String``, ``file_data: PackedByteArray``, ``file_index: int``, ``file_count: int``, ``encryption_include_filters: PackedStringArray``, ``encryption_exclude_filters: PackedStringArray``, ``encryption_key: PackedByteArray``. + +\ ``shared_cb`` is called for exported native shared/static libraries and have the following arguments: ``file_path: String``, ``tags: PackedStringArray``, ``target_folder: String``. + +\ **Note:** ``file_index`` and ``file_count`` are intended for progress tracking only and aren't necesserely unique and precise. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_export_zip: + +.. rst-class:: classref-method + +:ref:`Error` **export_zip**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\] = 0\ ) :ref:`๐Ÿ”—` + +Create a ZIP archive at ``path`` for the specified ``preset``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_find_export_template: + +.. rst-class:: classref-method + +:ref:`Dictionary` **find_export_template**\ (\ template_file_name\: :ref:`String`\ ) |const| :ref:`๐Ÿ”—` + +Locates export template for the platform, and returns :ref:`Dictionary` with the following keys: ``path: String`` and ``error: String``. This method is provided for convenience and custom export platforms aren't required to use it or keep export templates stored in the same way official templates are. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_gen_export_flags: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **gen_export_flags**\ (\ flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) :ref:`๐Ÿ”—` + +Generates array of command line arguments for the default export templates for the debug flags and editor settings. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_current_presets: + +.. rst-class:: classref-method + +:ref:`Array` **get_current_presets**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns array of :ref:`EditorExportPreset`\ s for this platform. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_forced_export_files: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **get_forced_export_files**\ (\ ) |static| :ref:`๐Ÿ”—` + +Returns array of core file names that always should be exported regardless of preset config. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_message_category: + +.. rst-class:: classref-method + +:ref:`String` **get_message_category**\ (\ index\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Returns message category, for the message with ``index``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_message_count: + +.. rst-class:: classref-method + +:ref:`int` **get_message_count**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns number of messages in the export log. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_message_text: + +.. rst-class:: classref-method + +:ref:`String` **get_message_text**\ (\ index\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Returns message text, for the message with ``index``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_message_type: + +.. rst-class:: classref-method + +:ref:`ExportMessageType` **get_message_type**\ (\ index\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Returns message type, for the message with ``index``. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorExportPlatform_method_get_os_name: .. rst-class:: classref-method @@ -61,6 +386,80 @@ Method Descriptions Returns the name of the export operating system handled by this **EditorExportPlatform** class, as a friendly string. Possible return values are ``Windows``, ``Linux``, ``macOS``, ``Android``, ``iOS``, and ``Web``. +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_get_worst_message_type: + +.. rst-class:: classref-method + +:ref:`ExportMessageType` **get_worst_message_type**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns most severe message type currently present in the export log. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_save_pack: + +.. rst-class:: classref-method + +:ref:`Dictionary` **save_pack**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, embed\: :ref:`bool` = false\ ) :ref:`๐Ÿ”—` + +Saves PCK archive and returns :ref:`Dictionary` with the following keys: ``result: Error``, ``so_files: Array`` (array of the shared/static objects which contains dictionaries with the following keys: ``path: String``, ``tags: PackedStringArray``, and ``target_folder: String``). + +If ``embed`` is ``true``, PCK content is appended to the end of ``path`` file and return :ref:`Dictionary` additionally include following keys: ``embedded_start: int`` (embedded PCK offset) and ``embedded_size: int`` (embedded PCK size). + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_save_zip: + +.. rst-class:: classref-method + +:ref:`Dictionary` **save_zip**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`\ ) :ref:`๐Ÿ”—` + +Saves ZIP archive and returns :ref:`Dictionary` with the following keys: ``result: Error``, ``so_files: Array`` (array of the shared/static objects which contains dictionaries with the following keys: ``path: String``, ``tags: PackedStringArray``, and ``target_folder: String``). + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_ssh_push_to_remote: + +.. rst-class:: classref-method + +:ref:`Error` **ssh_push_to_remote**\ (\ host\: :ref:`String`, port\: :ref:`String`, scp_args\: :ref:`PackedStringArray`, src_file\: :ref:`String`, dst_file\: :ref:`String`\ ) |const| :ref:`๐Ÿ”—` + +Uploads specified file over SCP protocol to the remote host. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_ssh_run_on_remote: + +.. rst-class:: classref-method + +:ref:`Error` **ssh_run_on_remote**\ (\ host\: :ref:`String`, port\: :ref:`String`, ssh_arg\: :ref:`PackedStringArray`, cmd_args\: :ref:`String`, output\: :ref:`Array` = [], port_fwd\: :ref:`int` = -1\ ) |const| :ref:`๐Ÿ”—` + +Executes specified command on the remote host via SSH protocol and returns command output in the ``output``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatform_method_ssh_run_on_remote_no_wait: + +.. rst-class:: classref-method + +:ref:`int` **ssh_run_on_remote_no_wait**\ (\ host\: :ref:`String`, port\: :ref:`String`, ssh_args\: :ref:`PackedStringArray`, cmd_args\: :ref:`String`, port_fwd\: :ref:`int` = -1\ ) |const| :ref:`๐Ÿ”—` + +Executes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish. + .. |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.)` diff --git a/classes/class_editorexportplatformextension.rst b/classes/class_editorexportplatformextension.rst new file mode 100644 index 00000000000..0aa7624fadb --- /dev/null +++ b/classes/class_editorexportplatformextension.rst @@ -0,0 +1,582 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/EditorExportPlatformExtension.xml. + +.. _class_EditorExportPlatformExtension: + +EditorExportPlatformExtension +============================= + +**Inherits:** :ref:`EditorExportPlatform` **<** :ref:`RefCounted` **<** :ref:`Object` + +Base class for custom :ref:`EditorExportPlatform` implementations (plugins). + +.. rst-class:: classref-introduction-group + +Description +----------- + +External :ref:`EditorExportPlatform` implementations should inherit from this class. + +To use :ref:`EditorExportPlatform`, register it using the :ref:`EditorPlugin.add_export_platform` method first. + +.. rst-class:: classref-reftable-group + +Methods +------- + +.. table:: + :widths: auto + + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_can_export`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`_cleanup`\ (\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`_export_pack`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`_export_project`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`_export_zip`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`_get_binary_extensions`\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_debug_protocol`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_device_architecture`\ (\ device\: :ref:`int`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_get_export_option_visibility`\ (\ preset\: :ref:`EditorExportPreset`, option\: :ref:`String`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_export_option_warning`\ (\ preset\: :ref:`EditorExportPreset`, option\: :ref:`StringName`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`_get_export_options`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Texture2D` | :ref:`_get_logo`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_name`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ImageTexture` | :ref:`_get_option_icon`\ (\ device\: :ref:`int`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_option_label`\ (\ device\: :ref:`int`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_option_tooltip`\ (\ device\: :ref:`int`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`_get_options_count`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_options_tooltip`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`_get_os_name`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`_get_platform_features`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`_get_preset_features`\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Texture2D` | :ref:`_get_run_icon`\ (\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_has_valid_export_configuration`\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_has_valid_project_configuration`\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_is_executable`\ (\ path\: :ref:`String`\ ) |virtual| |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_poll_export`\ (\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`_run`\ (\ preset\: :ref:`EditorExportPreset`, device\: :ref:`int`, debug_flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_should_update_export_options`\ (\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_config_error`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_config_missing_templates`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_config_error`\ (\ error_text\: :ref:`String`\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_config_missing_templates`\ (\ missing_templates\: :ref:`bool`\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Method Descriptions +------------------- + +.. _class_EditorExportPlatformExtension_private_method__can_export: + +.. rst-class:: classref-method + +:ref:`bool` **_can_export**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns ``true``, if specified ``preset`` is valid and can be exported. Use :ref:`set_config_error` and :ref:`set_config_missing_templates` to set error details. + +Usual implementation can call :ref:`_has_valid_export_configuration` and :ref:`_has_valid_project_configuration` to determine if export is possible. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__cleanup: + +.. rst-class:: classref-method + +|void| **_cleanup**\ (\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +Called by the editor before platform is unregistered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__export_pack: + +.. rst-class:: classref-method + +:ref:`Error` **_export_pack**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +Creates a PCK archive at ``path`` for the specified ``preset``. + +This method is called when "Export PCK/ZIP" button is pressed in the export dialog, and PCK is selected as a file type. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__export_project: + +.. rst-class:: classref-method + +:ref:`Error` **_export_project**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| :ref:`๐Ÿ”—` + +**Required.**\ + +Creates a full project at ``path`` for the specified ``preset``. + +This method is called when "Export" button is pressed in the export dialog. + +This method implementation can call :ref:`EditorExportPlatform.save_pack` or :ref:`EditorExportPlatform.save_zip` to use default PCK/ZIP export process, or calls :ref:`EditorExportPlatform.export_project_files` and implement custom callback for processing each exported file. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__export_zip: + +.. rst-class:: classref-method + +:ref:`Error` **_export_zip**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`, path\: :ref:`String`, flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +Create a ZIP archive at ``path`` for the specified ``preset``. + +This method is called when "Export PCK/ZIP" button is pressed in the export dialog, and ZIP is selected as a file type. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_binary_extensions: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **_get_binary_extensions**\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns array of supported binary extensions for the full project export. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_debug_protocol: + +.. rst-class:: classref-method + +:ref:`String` **_get_debug_protocol**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns protocol used for remote debugging. Default implementation return ``tcp://``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_device_architecture: + +.. rst-class:: classref-method + +:ref:`String` **_get_device_architecture**\ (\ device\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns device architecture for one-click deploy. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_export_option_visibility: + +.. rst-class:: classref-method + +:ref:`bool` **_get_export_option_visibility**\ (\ preset\: :ref:`EditorExportPreset`, option\: :ref:`String`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Validates ``option`` and returns visibility for the specified ``preset``. Default implementation return ``true`` for all options. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_export_option_warning: + +.. rst-class:: classref-method + +:ref:`String` **_get_export_option_warning**\ (\ preset\: :ref:`EditorExportPreset`, option\: :ref:`StringName`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Validates ``option`` and returns warning message for the specified ``preset``. Default implementation return empty string for all options. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_export_options: + +.. rst-class:: classref-method + +:ref:`Array`\[:ref:`Dictionary`\] **_get_export_options**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns a property list, as an :ref:`Array` of dictionaries. Each :ref:`Dictionary` must at least contain the ``name: StringName`` and ``type: Variant.Type`` entries. + +Additionally, the following keys are supported: + +- ``hint: PropertyHint``\ + +- ``hint_string: String``\ + +- ``usage: PropertyUsageFlags``\ + +- ``class_name: StringName``\ + +- ``default_value: Variant``, default value of the property. + +- ``update_visibility: bool``, if set to ``true``, :ref:`_get_export_option_visibility` is called for each property when this property is changed. + +- ``required: bool``, if set to ``true``, this property warnings are critical, and should be resolved to make export possible. This value is a hint for the :ref:`_has_valid_export_configuration` implementation, and not used by the engine directly. + +See also :ref:`Object._get_property_list`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_logo: + +.. rst-class:: classref-method + +:ref:`Texture2D` **_get_logo**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns platform logo displayed in the export dialog, logo should be 32x32 adjusted to the current editor scale, see :ref:`EditorInterface.get_editor_scale`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_name: + +.. rst-class:: classref-method + +:ref:`String` **_get_name**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns export platform name. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_option_icon: + +.. rst-class:: classref-method + +:ref:`ImageTexture` **_get_option_icon**\ (\ device\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns one-click deploy menu item icon for the specified ``device``, icon should be 16x16 adjusted to the current editor scale, see :ref:`EditorInterface.get_editor_scale`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_option_label: + +.. rst-class:: classref-method + +:ref:`String` **_get_option_label**\ (\ device\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns one-click deploy menu item label for the specified ``device``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_option_tooltip: + +.. rst-class:: classref-method + +:ref:`String` **_get_option_tooltip**\ (\ device\: :ref:`int`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns one-click deploy menu item tooltip for the specified ``device``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_options_count: + +.. rst-class:: classref-method + +:ref:`int` **_get_options_count**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns number one-click deploy devices (or other one-click option displayed in the menu). + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_options_tooltip: + +.. rst-class:: classref-method + +:ref:`String` **_get_options_tooltip**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns tooltip of the one-click deploy menu button. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_os_name: + +.. rst-class:: classref-method + +:ref:`String` **_get_os_name**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns target OS name. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_platform_features: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **_get_platform_features**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns array of platform specific features. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_preset_features: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **_get_preset_features**\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns array of platform specific features for the specified ``preset``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__get_run_icon: + +.. rst-class:: classref-method + +:ref:`Texture2D` **_get_run_icon**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns icon of the one-click deploy menu button, icon should be 16x16 adjusted to the current editor scale, see :ref:`EditorInterface.get_editor_scale`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__has_valid_export_configuration: + +.. rst-class:: classref-method + +:ref:`bool` **_has_valid_export_configuration**\ (\ preset\: :ref:`EditorExportPreset`, debug\: :ref:`bool`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns ``true`` if export configuration is valid. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__has_valid_project_configuration: + +.. rst-class:: classref-method + +:ref:`bool` **_has_valid_project_configuration**\ (\ preset\: :ref:`EditorExportPreset`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns ``true`` if project configuration is valid. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__is_executable: + +.. rst-class:: classref-method + +:ref:`bool` **_is_executable**\ (\ path\: :ref:`String`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns ``true`` if specified file is a valid executable (native executable or script) for the target platform. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__poll_export: + +.. rst-class:: classref-method + +:ref:`bool` **_poll_export**\ (\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns ``true`` if one-click deploy options are changed and editor interface should be updated. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__run: + +.. rst-class:: classref-method + +:ref:`Error` **_run**\ (\ preset\: :ref:`EditorExportPreset`, device\: :ref:`int`, debug_flags\: |bitfield|\[:ref:`DebugFlags`\]\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +This method is called when ``device`` one-click deploy menu option is selected. + +Implementation should export project to a temporary location, upload and run it on the specific ``device``, or perform another action associated with the menu item. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_private_method__should_update_export_options: + +.. rst-class:: classref-method + +:ref:`bool` **_should_update_export_options**\ (\ ) |virtual| :ref:`๐Ÿ”—` + +**Optional.**\ + +Returns ``true`` if export options list is changed and presets should be updated. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_method_get_config_error: + +.. rst-class:: classref-method + +:ref:`String` **get_config_error**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns current configuration error message text. This method should be called only from the :ref:`_can_export`, :ref:`_has_valid_export_configuration`, or :ref:`_has_valid_project_configuration` implementations. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_method_get_config_missing_templates: + +.. rst-class:: classref-method + +:ref:`bool` **get_config_missing_templates**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` is export templates are missing from the current configuration. This method should be called only from the :ref:`_can_export`, :ref:`_has_valid_export_configuration`, or :ref:`_has_valid_project_configuration` implementations. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_method_set_config_error: + +.. rst-class:: classref-method + +|void| **set_config_error**\ (\ error_text\: :ref:`String`\ ) |const| :ref:`๐Ÿ”—` + +Sets current configuration error message text. This method should be called only from the :ref:`_can_export`, :ref:`_has_valid_export_configuration`, or :ref:`_has_valid_project_configuration` implementations. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformExtension_method_set_config_missing_templates: + +.. rst-class:: classref-method + +|void| **set_config_missing_templates**\ (\ missing_templates\: :ref:`bool`\ ) |const| :ref:`๐Ÿ”—` + +Set to ``true`` is export templates are missing from the current configuration. This method should be called only from the :ref:`_can_export`, :ref:`_has_valid_export_configuration`, or :ref:`_has_valid_project_configuration` implementations. + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_editorexportplatformmacos.rst b/classes/class_editorexportplatformmacos.rst index 3bea82b2380..911bc2c7c7d 100644 --- a/classes/class_editorexportplatformmacos.rst +++ b/classes/class_editorexportplatformmacos.rst @@ -48,7 +48,9 @@ Properties +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`application/icon_interpolation` | +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`application/min_macos_version` | + | :ref:`String` | :ref:`application/min_macos_version_arm64` | + +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`application/min_macos_version_x86_64` | +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`application/short_version` | +---------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -609,13 +611,25 @@ Interpolation method used to resize application icon. ---- -.. _class_EditorExportPlatformMacOS_property_application/min_macos_version: +.. _class_EditorExportPlatformMacOS_property_application/min_macos_version_arm64: + +.. rst-class:: classref-property + +:ref:`String` **application/min_macos_version_arm64** :ref:`๐Ÿ”—` + +Minimum version of macOS required for this application to run on Apple Silicon Macs, in the ``major.minor.patch`` or ``major.minor`` format, can only contain numeric characters (``0-9``) and periods (``.``). + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlatformMacOS_property_application/min_macos_version_x86_64: .. rst-class:: classref-property -:ref:`String` **application/min_macos_version** :ref:`๐Ÿ”—` +:ref:`String` **application/min_macos_version_x86_64** :ref:`๐Ÿ”—` -Minimum version of macOS required for this application to run in the ``major.minor.patch`` or ``major.minor`` format, can only contain numeric characters (``0-9``) and periods (``.``). +Minimum version of macOS required for this application to run on Intel Macs, in the ``major.minor.patch`` or ``major.minor`` format, can only contain numeric characters (``0-9``) and periods (``.``). .. rst-class:: classref-item-separator diff --git a/classes/class_editorexportplugin.rst b/classes/class_editorexportplugin.rst index 241e572665d..d8b95ad88d2 100644 --- a/classes/class_editorexportplugin.rst +++ b/classes/class_editorexportplugin.rst @@ -105,6 +105,10 @@ Methods +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_shared_object`\ (\ path\: :ref:`String`, tags\: :ref:`PackedStringArray`, target\: :ref:`String`\ ) | +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorExportPlatform` | :ref:`get_export_platform`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorExportPreset` | :ref:`get_export_preset`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_option`\ (\ name\: :ref:`StringName`\ ) |const| | +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`skip`\ (\ ) | @@ -593,6 +597,30 @@ In case of a directory code-sign will error if you place non code object in dire ---- +.. _class_EditorExportPlugin_method_get_export_platform: + +.. rst-class:: classref-method + +:ref:`EditorExportPlatform` **get_export_platform**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns currently used export platform. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPlugin_method_get_export_preset: + +.. rst-class:: classref-method + +:ref:`EditorExportPreset` **get_export_preset**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns currently used export preset. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorExportPlugin_method_get_option: .. rst-class:: classref-method diff --git a/classes/class_editorexportpreset.rst b/classes/class_editorexportpreset.rst new file mode 100644 index 00000000000..5447b42a782 --- /dev/null +++ b/classes/class_editorexportpreset.rst @@ -0,0 +1,549 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/EditorExportPreset.xml. + +.. _class_EditorExportPreset: + +EditorExportPreset +================== + +**Inherits:** :ref:`RefCounted` **<** :ref:`Object` + +Export preset configuration. + +.. rst-class:: classref-introduction-group + +Description +----------- + +Export preset configuration. Instances of **EditorExportPreset** by editor UI and intended to be used a read-only configuration passed to the :ref:`EditorExportPlatform` methods when exporting the project. + +.. rst-class:: classref-reftable-group + +Methods +------- + +.. table:: + :widths: auto + + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`are_advanced_options_enabled`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_custom_features`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Dictionary` | :ref:`get_customized_files`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_customized_files_count`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_encrypt_directory`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`get_encrypt_pck`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_encryption_ex_filter`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_encryption_in_filter`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_encryption_key`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_exclude_filter`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ExportFilter` | :ref:`get_export_filter`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_export_path`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`FileExportMode` | :ref:`get_file_export_mode`\ (\ path\: :ref:`String`, default\: :ref:`FileExportMode` = 0\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_files_to_export`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_include_filter`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`get_or_env`\ (\ name\: :ref:`StringName`, env_var\: :ref:`String`\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_preset_name`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_script_export_mode`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_version`\ (\ name\: :ref:`StringName`, windows_version\: :ref:`bool`\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`has`\ (\ property\: :ref:`StringName`\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`has_export_file`\ (\ path\: :ref:`String`\ ) | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_dedicated_server`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_runnable`\ (\ ) |const| | + +---------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Enumerations +------------ + +.. _enum_EditorExportPreset_ExportFilter: + +.. rst-class:: classref-enumeration + +enum **ExportFilter**: :ref:`๐Ÿ”—` + +.. _class_EditorExportPreset_constant_EXPORT_ALL_RESOURCES: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportFilter` **EXPORT_ALL_RESOURCES** = ``0`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_EXPORT_SELECTED_SCENES: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportFilter` **EXPORT_SELECTED_SCENES** = ``1`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_EXPORT_SELECTED_RESOURCES: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportFilter` **EXPORT_SELECTED_RESOURCES** = ``2`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_EXCLUDE_SELECTED_RESOURCES: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportFilter` **EXCLUDE_SELECTED_RESOURCES** = ``3`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_EXPORT_CUSTOMIZED: + +.. rst-class:: classref-enumeration-constant + +:ref:`ExportFilter` **EXPORT_CUSTOMIZED** = ``4`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. rst-class:: classref-item-separator + +---- + +.. _enum_EditorExportPreset_FileExportMode: + +.. rst-class:: classref-enumeration + +enum **FileExportMode**: :ref:`๐Ÿ”—` + +.. _class_EditorExportPreset_constant_MODE_FILE_NOT_CUSTOMIZED: + +.. rst-class:: classref-enumeration-constant + +:ref:`FileExportMode` **MODE_FILE_NOT_CUSTOMIZED** = ``0`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_MODE_FILE_STRIP: + +.. rst-class:: classref-enumeration-constant + +:ref:`FileExportMode` **MODE_FILE_STRIP** = ``1`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_MODE_FILE_KEEP: + +.. rst-class:: classref-enumeration-constant + +:ref:`FileExportMode` **MODE_FILE_KEEP** = ``2`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_MODE_FILE_REMOVE: + +.. rst-class:: classref-enumeration-constant + +:ref:`FileExportMode` **MODE_FILE_REMOVE** = ``3`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. rst-class:: classref-item-separator + +---- + +.. _enum_EditorExportPreset_ScriptExportMode: + +.. rst-class:: classref-enumeration + +enum **ScriptExportMode**: :ref:`๐Ÿ”—` + +.. _class_EditorExportPreset_constant_MODE_SCRIPT_TEXT: + +.. rst-class:: classref-enumeration-constant + +:ref:`ScriptExportMode` **MODE_SCRIPT_TEXT** = ``0`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_MODE_SCRIPT_BINARY_TOKENS: + +.. rst-class:: classref-enumeration-constant + +:ref:`ScriptExportMode` **MODE_SCRIPT_BINARY_TOKENS** = ``1`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_EditorExportPreset_constant_MODE_SCRIPT_BINARY_TOKENS_COMPRESSED: + +.. rst-class:: classref-enumeration-constant + +:ref:`ScriptExportMode` **MODE_SCRIPT_BINARY_TOKENS_COMPRESSED** = ``2`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Method Descriptions +------------------- + +.. _class_EditorExportPreset_method_are_advanced_options_enabled: + +.. rst-class:: classref-method + +:ref:`bool` **are_advanced_options_enabled**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true``, is "Advanced" toggle is enabled in the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_custom_features: + +.. rst-class:: classref-method + +:ref:`String` **get_custom_features**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns string with a comma separated list of custom features. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_customized_files: + +.. rst-class:: classref-method + +:ref:`Dictionary` **get_customized_files**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns :ref:`Dictionary` of files selected in the "Resources" tab of the export dialog. Dictionary keys are file names and values are export mode - ``"strip``, ``"keep"``, or ``"remove"``. See also :ref:`get_file_export_mode`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_customized_files_count: + +.. rst-class:: classref-method + +:ref:`int` **get_customized_files_count**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns number of files selected in the "Resources" tab of the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_encrypt_directory: + +.. rst-class:: classref-method + +:ref:`bool` **get_encrypt_directory**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true``, PCK directory encryption is enabled in the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_encrypt_pck: + +.. rst-class:: classref-method + +:ref:`bool` **get_encrypt_pck**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true``, PCK encryption is enabled in the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_encryption_ex_filter: + +.. rst-class:: classref-method + +:ref:`String` **get_encryption_ex_filter**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns file filters to exclude during PCK encryption. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_encryption_in_filter: + +.. rst-class:: classref-method + +:ref:`String` **get_encryption_in_filter**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns file filters to include during PCK encryption. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_encryption_key: + +.. rst-class:: classref-method + +:ref:`String` **get_encryption_key**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns PCK encryption key. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_exclude_filter: + +.. rst-class:: classref-method + +:ref:`String` **get_exclude_filter**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns file filters to exclude during export. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_export_filter: + +.. rst-class:: classref-method + +:ref:`ExportFilter` **get_export_filter**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns export file filter mode selected in the "Resources" tab of the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_export_path: + +.. rst-class:: classref-method + +:ref:`String` **get_export_path**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns export target path. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_file_export_mode: + +.. rst-class:: classref-method + +:ref:`FileExportMode` **get_file_export_mode**\ (\ path\: :ref:`String`, default\: :ref:`FileExportMode` = 0\ ) |const| :ref:`๐Ÿ”—` + +Returns file export mode for the specified file. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_files_to_export: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **get_files_to_export**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns array of files to export. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_include_filter: + +.. rst-class:: classref-method + +:ref:`String` **get_include_filter**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns file filters to include during export. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_or_env: + +.. rst-class:: classref-method + +:ref:`Variant` **get_or_env**\ (\ name\: :ref:`StringName`, env_var\: :ref:`String`\ ) |const| :ref:`๐Ÿ”—` + +Returns export option value or value of environment variable if it is set. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_preset_name: + +.. rst-class:: classref-method + +:ref:`String` **get_preset_name**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns export preset name. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_script_export_mode: + +.. rst-class:: classref-method + +:ref:`int` **get_script_export_mode**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns script export mode. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_get_version: + +.. rst-class:: classref-method + +:ref:`String` **get_version**\ (\ name\: :ref:`StringName`, windows_version\: :ref:`bool`\ ) |const| :ref:`๐Ÿ”—` + +Returns the preset's version number, or fall back to the :ref:`ProjectSettings.application/config/version` project setting if set to an empty string. + +If ``windows_version`` is ``true``, formats the returned version number to be compatible with Windows executable metadata. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_has: + +.. rst-class:: classref-method + +:ref:`bool` **has**\ (\ property\: :ref:`StringName`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if preset has specified property. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_has_export_file: + +.. rst-class:: classref-method + +:ref:`bool` **has_export_file**\ (\ path\: :ref:`String`\ ) :ref:`๐Ÿ”—` + +Returns ``true`` if specified file is exported. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_is_dedicated_server: + +.. rst-class:: classref-method + +:ref:`bool` **is_dedicated_server**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if dedicated server export mode is selected in the export dialog. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorExportPreset_method_is_runnable: + +.. rst-class:: classref-method + +:ref:`bool` **is_runnable**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if "Runnable" toggle is enabled in the export dialog. + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_editorinterface.rst b/classes/class_editorinterface.rst index 9b9d5d2618c..4de5e6f98e6 100644 --- a/classes/class_editorinterface.rst +++ b/classes/class_editorinterface.rst @@ -59,109 +59,111 @@ Methods .. table:: :widths: auto - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`edit_node`\ (\ node\: :ref:`Node`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`edit_resource`\ (\ resource\: :ref:`Resource`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`edit_script`\ (\ script\: :ref:`Script`, line\: :ref:`int` = -1, column\: :ref:`int` = 0, grab_focus\: :ref:`bool` = true\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Control` | :ref:`get_base_control`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorCommandPalette` | :ref:`get_command_palette`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`get_current_directory`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`get_current_feature_profile`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`get_current_path`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Node` | :ref:`get_edited_scene_root`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`VBoxContainer` | :ref:`get_editor_main_screen`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorPaths` | :ref:`get_editor_paths`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_editor_scale`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorSettings` | :ref:`get_editor_settings`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Theme` | :ref:`get_editor_theme`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`SubViewport` | :ref:`get_editor_viewport_2d`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`SubViewport` | :ref:`get_editor_viewport_3d`\ (\ idx\: :ref:`int` = 0\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`FileSystemDock` | :ref:`get_file_system_dock`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorInspector` | :ref:`get_inspector`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`PackedStringArray` | :ref:`get_open_scenes`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`String` | :ref:`get_playing_scene`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorFileSystem` | :ref:`get_resource_filesystem`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorResourcePreview` | :ref:`get_resource_previewer`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`ScriptEditor` | :ref:`get_script_editor`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`PackedStringArray` | :ref:`get_selected_paths`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`EditorSelection` | :ref:`get_selection`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`inspect_object`\ (\ object\: :ref:`Object`, for_property\: :ref:`String` = "", inspector_only\: :ref:`bool` = false\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_multi_window_enabled`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_playing_scene`\ (\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_plugin_enabled`\ (\ plugin\: :ref:`String`\ ) |const| | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Array`\[:ref:`Texture2D`\] | :ref:`make_mesh_previews`\ (\ meshes\: :ref:`Array`\[:ref:`Mesh`\], preview_size\: :ref:`int`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`mark_scene_as_unsaved`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`open_scene_from_path`\ (\ scene_filepath\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`play_current_scene`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`play_custom_scene`\ (\ scene_filepath\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`play_main_scene`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_dialog`\ (\ dialog\: :ref:`Window`, rect\: :ref:`Rect2i` = Rect2i(0, 0, 0, 0)\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_dialog_centered`\ (\ dialog\: :ref:`Window`, minsize\: :ref:`Vector2i` = Vector2i(0, 0)\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_dialog_centered_clamped`\ (\ dialog\: :ref:`Window`, minsize\: :ref:`Vector2i` = Vector2i(0, 0), fallback_ratio\: :ref:`float` = 0.75\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_dialog_centered_ratio`\ (\ dialog\: :ref:`Window`, ratio\: :ref:`float` = 0.8\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_node_selector`\ (\ callback\: :ref:`Callable`, valid_types\: :ref:`Array`\[:ref:`StringName`\] = []\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`popup_property_selector`\ (\ object\: :ref:`Object`, callback\: :ref:`Callable`, type_filter\: :ref:`PackedInt32Array` = PackedInt32Array()\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`reload_scene_from_path`\ (\ scene_filepath\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`restart_editor`\ (\ save\: :ref:`bool` = true\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`save_all_scenes`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`save_scene`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`save_scene_as`\ (\ path\: :ref:`String`, with_preview\: :ref:`bool` = true\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`select_file`\ (\ file\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_current_feature_profile`\ (\ profile_name\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_main_screen_editor`\ (\ name\: :ref:`String`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_plugin_enabled`\ (\ plugin\: :ref:`String`, enabled\: :ref:`bool`\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`stop_playing_scene`\ (\ ) | - +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`edit_node`\ (\ node\: :ref:`Node`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`edit_resource`\ (\ resource\: :ref:`Resource`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`edit_script`\ (\ script\: :ref:`Script`, line\: :ref:`int` = -1, column\: :ref:`int` = 0, grab_focus\: :ref:`bool` = true\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Control` | :ref:`get_base_control`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorCommandPalette` | :ref:`get_command_palette`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_current_directory`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_current_feature_profile`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_current_path`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Node` | :ref:`get_edited_scene_root`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`VBoxContainer` | :ref:`get_editor_main_screen`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorPaths` | :ref:`get_editor_paths`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_editor_scale`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorSettings` | :ref:`get_editor_settings`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Theme` | :ref:`get_editor_theme`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorUndoRedoManager` | :ref:`get_editor_undo_redo`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`SubViewport` | :ref:`get_editor_viewport_2d`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`SubViewport` | :ref:`get_editor_viewport_3d`\ (\ idx\: :ref:`int` = 0\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`FileSystemDock` | :ref:`get_file_system_dock`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorInspector` | :ref:`get_inspector`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_open_scenes`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_playing_scene`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorFileSystem` | :ref:`get_resource_filesystem`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorResourcePreview` | :ref:`get_resource_previewer`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ScriptEditor` | :ref:`get_script_editor`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_selected_paths`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`EditorSelection` | :ref:`get_selection`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`inspect_object`\ (\ object\: :ref:`Object`, for_property\: :ref:`String` = "", inspector_only\: :ref:`bool` = false\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_multi_window_enabled`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_playing_scene`\ (\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_plugin_enabled`\ (\ plugin\: :ref:`String`\ ) |const| | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array`\[:ref:`Texture2D`\] | :ref:`make_mesh_previews`\ (\ meshes\: :ref:`Array`\[:ref:`Mesh`\], preview_size\: :ref:`int`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`mark_scene_as_unsaved`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`open_scene_from_path`\ (\ scene_filepath\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`play_current_scene`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`play_custom_scene`\ (\ scene_filepath\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`play_main_scene`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_dialog`\ (\ dialog\: :ref:`Window`, rect\: :ref:`Rect2i` = Rect2i(0, 0, 0, 0)\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_dialog_centered`\ (\ dialog\: :ref:`Window`, minsize\: :ref:`Vector2i` = Vector2i(0, 0)\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_dialog_centered_clamped`\ (\ dialog\: :ref:`Window`, minsize\: :ref:`Vector2i` = Vector2i(0, 0), fallback_ratio\: :ref:`float` = 0.75\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_dialog_centered_ratio`\ (\ dialog\: :ref:`Window`, ratio\: :ref:`float` = 0.8\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_node_selector`\ (\ callback\: :ref:`Callable`, valid_types\: :ref:`Array`\[:ref:`StringName`\] = [], current_value\: :ref:`Node` = null\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`popup_property_selector`\ (\ object\: :ref:`Object`, callback\: :ref:`Callable`, type_filter\: :ref:`PackedInt32Array` = PackedInt32Array(), current_value\: :ref:`String` = ""\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`reload_scene_from_path`\ (\ scene_filepath\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`restart_editor`\ (\ save\: :ref:`bool` = true\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`save_all_scenes`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`save_scene`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`save_scene_as`\ (\ path\: :ref:`String`, with_preview\: :ref:`bool` = true\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`select_file`\ (\ file\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_current_feature_profile`\ (\ profile_name\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_main_screen_editor`\ (\ name\: :ref:`String`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_plugin_enabled`\ (\ plugin\: :ref:`String`, enabled\: :ref:`bool`\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`stop_playing_scene`\ (\ ) | + +----------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -395,6 +397,18 @@ Returns the editor's :ref:`Theme`. ---- +.. _class_EditorInterface_method_get_editor_undo_redo: + +.. rst-class:: classref-method + +:ref:`EditorUndoRedoManager` **get_editor_undo_redo**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the editor's :ref:`EditorUndoRedoManager`. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorInterface_method_get_editor_viewport_2d: .. rst-class:: classref-method @@ -719,11 +733,11 @@ See also :ref:`Window.set_unparent_when_invisible`, valid_types\: :ref:`Array`\[:ref:`StringName`\] = []\ ) :ref:`๐Ÿ”—` +|void| **popup_node_selector**\ (\ callback\: :ref:`Callable`, valid_types\: :ref:`Array`\[:ref:`StringName`\] = [], current_value\: :ref:`Node` = null\ ) :ref:`๐Ÿ”—` -Pops up an editor dialog for selecting a :ref:`Node` from the edited scene. The ``callback`` must take a single argument of type :ref:`NodePath`. It is called on the selected :ref:`NodePath` or the empty path ``^""`` if the dialog is canceled. If ``valid_types`` is provided, the dialog will only show Nodes that match one of the listed Node types. +Pops up an editor dialog for selecting a :ref:`Node` from the edited scene. The ``callback`` must take a single argument of type :ref:`NodePath`. It is called on the selected :ref:`NodePath` or the empty path ``^""`` if the dialog is canceled. If ``valid_types`` is provided, the dialog will only show Nodes that match one of the listed Node types. If ``current_value`` is provided, the Node will be automatically selected in the tree, if it exists. -\ **Example:**\ +\ **Example:** Display the node selection dialog as soon as this node is added to the tree for the first time: :: @@ -745,11 +759,9 @@ Pops up an editor dialog for selecting a :ref:`Node` from the edited .. rst-class:: classref-method -|void| **popup_property_selector**\ (\ object\: :ref:`Object`, callback\: :ref:`Callable`, type_filter\: :ref:`PackedInt32Array` = PackedInt32Array()\ ) :ref:`๐Ÿ”—` - -Pops up an editor dialog for selecting properties from ``object``. The ``callback`` must take a single argument of type :ref:`NodePath`. It is called on the selected property path (see :ref:`NodePath.get_as_property_path`) or the empty path ``^""`` if the dialog is canceled. If ``type_filter`` is provided, the dialog will only show properties that match one of the listed :ref:`Variant.Type` values. +|void| **popup_property_selector**\ (\ object\: :ref:`Object`, callback\: :ref:`Callable`, type_filter\: :ref:`PackedInt32Array` = PackedInt32Array(), current_value\: :ref:`String` = ""\ ) :ref:`๐Ÿ”—` -\ **Example:**\ +Pops up an editor dialog for selecting properties from ``object``. The ``callback`` must take a single argument of type :ref:`NodePath`. It is called on the selected property path (see :ref:`NodePath.get_as_property_path`) or the empty path ``^""`` if the dialog is canceled. If ``type_filter`` is provided, the dialog will only show properties that match one of the listed :ref:`Variant.Type` values. If ``current_value`` is provided, the property will be selected automatically in the property list, if it exists. :: diff --git a/classes/class_editorplugin.rst b/classes/class_editorplugin.rst index c86d0689e21..3ff2efec755 100644 --- a/classes/class_editorplugin.rst +++ b/classes/class_editorplugin.rst @@ -89,6 +89,8 @@ Methods +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_autoload_singleton`\ (\ name\: :ref:`String`, path\: :ref:`String`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_context_menu_plugin`\ (\ slot\: :ref:`ContextMenuSlot`, plugin\: :ref:`EditorContextMenuPlugin`\ ) | + +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Button` | :ref:`add_control_to_bottom_panel`\ (\ control\: :ref:`Control`, title\: :ref:`String`, shortcut\: :ref:`Shortcut` = null\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_control_to_container`\ (\ container\: :ref:`CustomControlContainer`, control\: :ref:`Control`\ ) | @@ -99,6 +101,8 @@ Methods +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_debugger_plugin`\ (\ script\: :ref:`EditorDebuggerPlugin`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_export_platform`\ (\ platform\: :ref:`EditorExportPlatform`\ ) | + +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_export_plugin`\ (\ plugin\: :ref:`EditorExportPlugin`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_import_plugin`\ (\ importer\: :ref:`EditorImportPlugin`, first_priority\: :ref:`bool` = false\ ) | @@ -139,6 +143,8 @@ Methods +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_autoload_singleton`\ (\ name\: :ref:`String`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`remove_context_menu_plugin`\ (\ slot\: :ref:`ContextMenuSlot`, plugin\: :ref:`EditorContextMenuPlugin`\ ) | + +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_control_from_bottom_panel`\ (\ control\: :ref:`Control`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_control_from_container`\ (\ container\: :ref:`CustomControlContainer`, control\: :ref:`Control`\ ) | @@ -149,6 +155,8 @@ Methods +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_debugger_plugin`\ (\ script\: :ref:`EditorDebuggerPlugin`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`remove_export_platform`\ (\ platform\: :ref:`EditorExportPlatform`\ ) | + +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_export_plugin`\ (\ plugin\: :ref:`EditorExportPlugin`\ ) | +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_import_plugin`\ (\ importer\: :ref:`EditorImportPlugin`\ ) | @@ -484,6 +492,48 @@ Prevents the :ref:`InputEvent` from reaching other Editor clas Pass the :ref:`InputEvent` to other editor plugins except the main :ref:`Node3D` one. This can be used to prevent node selection changes and work with sub-gizmos instead. +.. rst-class:: classref-item-separator + +---- + +.. _enum_EditorPlugin_ContextMenuSlot: + +.. rst-class:: classref-enumeration + +enum **ContextMenuSlot**: :ref:`๐Ÿ”—` + +.. _class_EditorPlugin_constant_CONTEXT_SLOT_SCENE_TREE: + +.. rst-class:: classref-enumeration-constant + +:ref:`ContextMenuSlot` **CONTEXT_SLOT_SCENE_TREE** = ``0`` + +Context menu slot for the SceneTree. + +.. _class_EditorPlugin_constant_CONTEXT_SLOT_FILESYSTEM: + +.. rst-class:: classref-enumeration-constant + +:ref:`ContextMenuSlot` **CONTEXT_SLOT_FILESYSTEM** = ``1`` + +Context menu slot for the FileSystem. + +.. _class_EditorPlugin_constant_CONTEXT_SLOT_SCRIPT_EDITOR: + +.. rst-class:: classref-enumeration-constant + +:ref:`ContextMenuSlot` **CONTEXT_SLOT_SCRIPT_EDITOR** = ``2`` + +Context menu slot for the ScriptEditor file list. + +.. _class_EditorPlugin_constant_CONTEXT_SUBMENU_SLOT_FILESYSTEM_CREATE: + +.. rst-class:: classref-enumeration-constant + +:ref:`ContextMenuSlot` **CONTEXT_SUBMENU_SLOT_FILESYSTEM_CREATE** = ``3`` + +Context menu slot for the FileSystem create submenu. + .. rst-class:: classref-section-separator ---- @@ -642,8 +692,6 @@ You need to enable calling of this method by using :ref:`set_force_draw_over_for Called when there is a root node in the current edited scene, :ref:`_handles` is implemented, and an :ref:`InputEvent` happens in the 3D viewport. The return value decides whether the :ref:`InputEvent` is consumed or forwarded to other **EditorPlugin**\ s. See :ref:`AfterGUIInput` for options. -\ **Example:**\ - .. tabs:: @@ -663,9 +711,7 @@ Called when there is a root node in the current edited scene, :ref:`_handles` to other Editor classes. - -\ **Example:**\ +This method must return :ref:`AFTER_GUI_INPUT_PASS` in order to forward the :ref:`InputEvent` to other Editor classes. .. tabs:: @@ -759,9 +805,7 @@ You need to enable calling of this method by using :ref:`set_force_draw_over_for :ref:`bool` **_forward_canvas_gui_input**\ (\ event\: :ref:`InputEvent`\ ) |virtual| :ref:`๐Ÿ”—` -Called when there is a root node in the current edited scene, :ref:`_handles` is implemented and an :ref:`InputEvent` happens in the 2D viewport. Intercepts the :ref:`InputEvent`, if ``return true`` **EditorPlugin** consumes the ``event``, otherwise forwards ``event`` to other Editor classes. - -\ **Example:**\ +Called when there is a root node in the current edited scene, :ref:`_handles` is implemented, and an :ref:`InputEvent` happens in the 2D viewport. If this method returns ``true``, ``event`` is intercepted by this **EditorPlugin**, otherwise ``event`` is forwarded to other Editor classes. .. tabs:: @@ -782,9 +826,7 @@ Called when there is a root node in the current edited scene, :ref:`_handles` to other Editor classes. - -\ **Example:**\ +This method must return ``false`` in order to forward the :ref:`InputEvent` to other Editor classes. .. tabs:: @@ -1089,6 +1131,20 @@ Adds a script at ``path`` to the Autoload list as ``name``. ---- +.. _class_EditorPlugin_method_add_context_menu_plugin: + +.. rst-class:: classref-method + +|void| **add_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot`, plugin\: :ref:`EditorContextMenuPlugin`\ ) :ref:`๐Ÿ”—` + +Adds a plugin to the context menu. ``slot`` is the position in the context menu where the plugin will be added. + +Context menus are supported for three commonly used areas: the file system, scene tree, and editor script list panel. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorPlugin_method_add_control_to_bottom_panel: .. rst-class:: classref-method @@ -1171,6 +1227,18 @@ Adds a :ref:`Script` as debugger plugin to the Debugger. The scrip ---- +.. _class_EditorPlugin_method_add_export_platform: + +.. rst-class:: classref-method + +|void| **add_export_platform**\ (\ platform\: :ref:`EditorExportPlatform`\ ) :ref:`๐Ÿ”—` + +Registers a new :ref:`EditorExportPlatform`. Export platforms provides functionality of exporting to the specific platform. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorPlugin_method_add_export_plugin: .. rst-class:: classref-method @@ -1453,6 +1521,18 @@ Removes an Autoload ``name`` from the list. ---- +.. _class_EditorPlugin_method_remove_context_menu_plugin: + +.. rst-class:: classref-method + +|void| **remove_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot`, plugin\: :ref:`EditorContextMenuPlugin`\ ) :ref:`๐Ÿ”—` + +Removes a context menu plugin from the specified slot. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorPlugin_method_remove_control_from_bottom_panel: .. rst-class:: classref-method @@ -1513,6 +1593,18 @@ Removes the debugger plugin with given script from the Debugger. ---- +.. _class_EditorPlugin_method_remove_export_platform: + +.. rst-class:: classref-method + +|void| **remove_export_platform**\ (\ platform\: :ref:`EditorExportPlatform`\ ) :ref:`๐Ÿ”—` + +Removes an export platform registered by :ref:`add_export_platform`. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorPlugin_method_remove_export_plugin: .. rst-class:: classref-method diff --git a/classes/class_editorresourcepreviewgenerator.rst b/classes/class_editorresourcepreviewgenerator.rst index 6229916f434..016c9d3a007 100644 --- a/classes/class_editorresourcepreviewgenerator.rst +++ b/classes/class_editorresourcepreviewgenerator.rst @@ -72,7 +72,7 @@ By default, it returns ``false``. Generate a preview from a given resource with the specified size. This must always be implemented. -Returning an empty texture is an OK way to fail and let another generator take care. +Returning ``null`` is an OK way to fail and let another generator take care. Care must be taken because this function is always called from a thread (not the main thread). @@ -90,7 +90,7 @@ Care must be taken because this function is always called from a thread (not the Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call :ref:`_generate`. -Returning an empty texture is an OK way to fail and let another generator take care. +Returning ``null`` is an OK way to fail and let another generator take care. Care must be taken because this function is always called from a thread (not the main thread). diff --git a/classes/class_editorsettings.rst b/classes/class_editorsettings.rst index 0a147646091..aaeae5118c6 100644 --- a/classes/class_editorsettings.rst +++ b/classes/class_editorsettings.rst @@ -67,12 +67,16 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debugger/profiler_frame_max_functions` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`debugger/profiler_target_fps` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`debugger/remote_inspect_refresh_interval` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`debugger/remote_scene_tree_refresh_interval` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`docks/filesystem/always_show_folders` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`docks/filesystem/other_file_extensions` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`docks/filesystem/textfile_extensions` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`docks/filesystem/thumbnail_size` | @@ -111,6 +115,8 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Color` | :ref:`editors/2d/viewport_border_color` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`editors/2d/zoom_speed_factor` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`editors/3d/default_fov` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`editors/3d/default_z_far` | @@ -153,13 +159,13 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`editors/3d/navigation/navigation_scheme` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`editors/3d/navigation/orbit_modifier` | + | :ref:`int` | :ref:`editors/3d/navigation/orbit_mouse_button` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`editors/3d/navigation/pan_modifier` | + | :ref:`int` | :ref:`editors/3d/navigation/pan_mouse_button` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`editors/3d/navigation/warped_mouse_panning` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`editors/3d/navigation/zoom_modifier` | + | :ref:`int` | :ref:`editors/3d/navigation/zoom_mouse_button` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`editors/3d/navigation/zoom_style` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -337,6 +343,8 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/expand_to_title` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`interface/editor/font_allow_msdf` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`interface/editor/font_antialiasing` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/font_disable_embedded_bitmaps` | @@ -347,6 +355,8 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/import_resources_when_unfocused` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`interface/editor/keep_screen_on` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/localize_settings` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`interface/editor/low_processor_mode_sleep_usec` | @@ -361,6 +371,8 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`interface/editor/project_manager_screen` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`interface/editor/remember_window_size_and_position` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/save_each_scene_on_quit` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`interface/editor/save_on_focus_loss` | @@ -507,6 +519,8 @@ Properties +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`run/window_placement/android_window` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`run/window_placement/play_window_pip_mode` | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`run/window_placement/rect` | +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`run/window_placement/rect_custom_position` | @@ -843,6 +857,18 @@ The maximum number of script functions that can be displayed per frame in the pr ---- +.. _class_EditorSettings_property_debugger/profiler_target_fps: + +.. rst-class:: classref-property + +:ref:`int` **debugger/profiler_target_fps** :ref:`๐Ÿ”—` + +The target frame rate shown in the visual profiler graph, in frames per second. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_debugger/remote_inspect_refresh_interval: .. rst-class:: classref-property @@ -881,13 +907,25 @@ If ``true``, displays folders in the FileSystem dock's bottom pane when split mo ---- +.. _class_EditorSettings_property_docks/filesystem/other_file_extensions: + +.. rst-class:: classref-property + +:ref:`String` **docks/filesystem/other_file_extensions** :ref:`๐Ÿ”—` + +A comma separated list of unsupported file extensions to show in the FileSystem dock, e.g. ``"ico,icns"``. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_docks/filesystem/textfile_extensions: .. rst-class:: classref-property :ref:`String` **docks/filesystem/textfile_extensions** :ref:`๐Ÿ”—` -List of file extensions to consider as editable text files in the FileSystem dock (by double-clicking on the files). +A comma separated list of file extensions to consider as editable text files in the FileSystem dock (by double-clicking on the files), e.g. ``"txt,md,cfg,ini,log,json,yml,yaml,toml,xml"``. .. rst-class:: classref-item-separator @@ -1095,7 +1133,7 @@ The color to use when drawing smart snapping lines in the 2D editor. The smart s :ref:`bool` **editors/2d/use_integer_zoom_by_default** :ref:`๐Ÿ”—` -If ``true``, the 2D editor will snap to integer zoom values while not holding the :kbd:`Alt` key and powers of two while holding it. If ``false``, this behavior is swapped. +If ``true``, the 2D editor will snap to integer zoom values when not holding the :kbd:`Alt` key. If ``false``, this behavior is swapped. .. rst-class:: classref-item-separator @@ -1113,6 +1151,18 @@ The color of the viewport border in the 2D editor. This border represents the vi ---- +.. _class_EditorSettings_property_editors/2d/zoom_speed_factor: + +.. rst-class:: classref-property + +:ref:`float` **editors/2d/zoom_speed_factor** :ref:`๐Ÿ”—` + +The factor to use when zooming in or out in the 2D editor. For example, ``1.1`` will zoom in by 10% with every step. If set to ``2.0``, zooming will only cycle through powers of two. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_editors/3d/default_fov: .. rst-class:: classref-property @@ -1289,7 +1339,7 @@ The grid size in units. Higher values prevent the grid from appearing "cut off" :ref:`bool` **editors/3d/grid_xy_plane** :ref:`๐Ÿ”—` -If ``true``, render the grid on an XY plane. This can be useful for 3D side-scrolling games. +If ``true``, renders the grid on the XY plane in perspective view. This can be useful for 3D side-scrolling games. .. rst-class:: classref-item-separator @@ -1301,7 +1351,7 @@ If ``true``, render the grid on an XY plane. This can be useful for 3D side-scro :ref:`bool` **editors/3d/grid_xz_plane** :ref:`๐Ÿ”—` -If ``true``, render the grid on an XZ plane. +If ``true``, renders the grid on the XZ plane in perspective view. .. rst-class:: classref-item-separator @@ -1313,7 +1363,7 @@ If ``true``, render the grid on an XZ plane. :ref:`bool` **editors/3d/grid_yz_plane** :ref:`๐Ÿ”—` -If ``true``, render the grid on a YZ plane. This can be useful for 3D side-scrolling games. +If ``true``, renders the grid on the YZ plane in perspective view. This can be useful for 3D side-scrolling games. .. rst-class:: classref-item-separator @@ -1329,8 +1379,6 @@ If ``true``, enables 3-button mouse emulation mode. This is useful on laptops wh When 3-button mouse emulation mode is enabled, the pan, zoom and orbit modifiers can always be used in the 3D editor viewport, even when not holding down any mouse button. -\ **Note:** No matter the orbit modifier configured in :ref:`editors/3d/navigation/orbit_modifier`, :kbd:`Alt` will always remain usable for orbiting in this mode to improve usability with graphics tablets. - .. rst-class:: classref-item-separator ---- @@ -1377,15 +1425,17 @@ If ``true``, invert the vertical mouse axis when panning, orbiting, or using fre :ref:`int` **editors/3d/navigation/navigation_scheme** :ref:`๐Ÿ”—` -The navigation scheme to use in the 3D editor. Changing this setting will affect the mouse buttons that must be held down to perform certain operations in the 3D editor viewport. +The navigation scheme preset to use in the 3D editor. Changing this setting will affect the mouse button and modifier controls used to navigate the 3D editor viewport. + +All schemes can use :kbd:`Mouse wheel` to zoom. -- **Godot** Middle mouse button to orbit, :kbd:`Shift + Middle mouse button` to pan. :kbd:`Mouse wheel` to zoom. +- **Godot:** :kbd:`Middle mouse button` to orbit. :kbd:`Shift + Middle mouse button` to pan. :kbd:`Ctrl + Shift + Middle mouse button` to zoom. -- **Maya:** :kbd:`Alt + Left mouse button` to orbit. :kbd:`Middle mouse button` to pan, :kbd:`Shift + Middle mouse button` to pan 10 times faster. :kbd:`Mouse wheel` to zoom. +- **Maya:** :kbd:`Alt + Left mouse button` to orbit. :kbd:`Middle mouse button` to pan, :kbd:`Shift + Middle mouse button` to pan 10 times faster. :kbd:`Alt + Right mouse button` to zoom. - **Modo:** :kbd:`Alt + Left mouse button` to orbit. :kbd:`Alt + Shift + Left mouse button` to pan. :kbd:`Ctrl + Alt + Left mouse button` to zoom. -See also :ref:`editors/3d/freelook/freelook_navigation_scheme`. +See also :ref:`editors/3d/navigation/orbit_mouse_button`, :ref:`editors/3d/navigation/pan_mouse_button`, :ref:`editors/3d/navigation/zoom_mouse_button`, and :ref:`editors/3d/freelook/freelook_navigation_scheme`. \ **Note:** On certain window managers on Linux, the :kbd:`Alt` key will be intercepted by the window manager when clicking a mouse button at the same time. This means Godot will not see the modifier key as being pressed. @@ -1393,31 +1443,25 @@ See also :ref:`editors/3d/freelook/freelook_navigation_scheme` **editors/3d/navigation/orbit_modifier** :ref:`๐Ÿ”—` - -The modifier key that must be held to orbit in the 3D editor. +:ref:`int` **editors/3d/navigation/orbit_mouse_button** :ref:`๐Ÿ”—` -\ **Note:** If :ref:`editors/3d/navigation/emulate_3_button_mouse` is ``true``, :kbd:`Alt` will always remain usable for orbiting to improve usability with graphics tablets. - -\ **Note:** On certain window managers on Linux, the :kbd:`Alt` key will be intercepted by the window manager when clicking a mouse button at the same time. This means Godot will not see the modifier key as being pressed. +The mouse button that needs to be held down to orbit in the 3D editor viewport. .. rst-class:: classref-item-separator ---- -.. _class_EditorSettings_property_editors/3d/navigation/pan_modifier: +.. _class_EditorSettings_property_editors/3d/navigation/pan_mouse_button: .. rst-class:: classref-property -:ref:`int` **editors/3d/navigation/pan_modifier** :ref:`๐Ÿ”—` +:ref:`int` **editors/3d/navigation/pan_mouse_button** :ref:`๐Ÿ”—` -The modifier key that must be held to pan in the 3D editor. - -\ **Note:** On certain window managers on Linux, the :kbd:`Alt` key will be intercepted by the window manager when clicking a mouse button at the same time. This means Godot will not see the modifier key as being pressed. +The mouse button that needs to be held down to pan in the 3D editor viewport. .. rst-class:: classref-item-separator @@ -1435,15 +1479,13 @@ If ``true``, warps the mouse around the 3D viewport while panning in the 3D edit ---- -.. _class_EditorSettings_property_editors/3d/navigation/zoom_modifier: +.. _class_EditorSettings_property_editors/3d/navigation/zoom_mouse_button: .. rst-class:: classref-property -:ref:`int` **editors/3d/navigation/zoom_modifier** :ref:`๐Ÿ”—` - -The modifier key that must be held to zoom in the 3D editor. +:ref:`int` **editors/3d/navigation/zoom_mouse_button** :ref:`๐Ÿ”—` -\ **Note:** On certain window managers on Linux, the :kbd:`Alt` key will be intercepted by the window manager when clicking a mouse button at the same time. This means Godot will not see the modifier key as being pressed. +The mouse button that needs to be held down to zoom in the 3D editor viewport. .. rst-class:: classref-item-separator @@ -2575,6 +2617,18 @@ Specific to the macOS platform. ---- +.. _class_EditorSettings_property_interface/editor/font_allow_msdf: + +.. rst-class:: classref-property + +:ref:`bool` **interface/editor/font_allow_msdf** :ref:`๐Ÿ”—` + +If set to ``true``, MSDF font rendering will be used for the visual shader graph editor. You may need to set this to ``false`` when using a custom main font, as some fonts will look broken due to the use of self-intersecting outlines in their font data. Downloading the font from the font maker's official website as opposed to a service like Google Fonts can help resolve this issue. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_interface/editor/font_antialiasing: .. rst-class:: classref-property @@ -2643,6 +2697,18 @@ If ``true``, (re)imports resources even if the editor window is unfocused or min ---- +.. _class_EditorSettings_property_interface/editor/keep_screen_on: + +.. rst-class:: classref-property + +:ref:`bool` **interface/editor/keep_screen_on** :ref:`๐Ÿ”—` + +If ``true``, keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_interface/editor/localize_settings: .. rst-class:: classref-property @@ -2731,6 +2797,18 @@ The preferred monitor to display the project manager. ---- +.. _class_EditorSettings_property_interface/editor/remember_window_size_and_position: + +.. rst-class:: classref-property + +:ref:`bool` **interface/editor/remember_window_size_and_position** :ref:`๐Ÿ”—` + +If ``true``, the editor window will remember its size, position, and which screen it was displayed on across restarts. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorSettings_property_interface/editor/save_each_scene_on_quit: .. rst-class:: classref-property @@ -3685,7 +3763,35 @@ If ``true``, on Linux/BSD, the editor will check for Wayland first instead of X1 :ref:`int` **run/window_placement/android_window** :ref:`๐Ÿ”—` -The Android window to display the project on when starting the project from the editor. +Specifies how the Play window is launched relative to the Android editor. + +- **Auto (based on screen size)** (default) will automatically choose how to launch the Play window based on the device and screen metrics. Defaults to **Same as Editor** on phones and **Side-by-side with Editor** on tablets. + +- **Same as Editor** will launch the Play window in the same window as the Editor. + +- **Side-by-side with Editor** will launch the Play window side-by-side with the Editor window. + +- **Launch in PiP mode** will launch the Play window directly in picture-in-picture (PiP) mode if PiP mode is supported and enabled. When maximized, the Play window will occupy the same window as the Editor. + +\ **Note:** Only available in the Android editor. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorSettings_property_run/window_placement/play_window_pip_mode: + +.. rst-class:: classref-property + +:ref:`int` **run/window_placement/play_window_pip_mode** :ref:`๐Ÿ”—` + +Specifies the picture-in-picture (PiP) mode for the Play window. + +- **Disabled:** PiP is disabled for the Play window. + +- **Enabled:** If the device supports it, PiP is always enabled for the Play window. The Play window will contain a button to enter PiP mode. + +- **Enabled when Play window is same as Editor** (default for Android editor): If the device supports it, PiP is enabled when the Play window is the same as the Editor. The Play window will contain a button to enter PiP mode. \ **Note:** Only available in the Android editor. @@ -4934,8 +5040,6 @@ Adds a custom property info to a property. The dictionary must contain: - optionally ``hint``: :ref:`int` (see :ref:`PropertyHint`) and ``hint_string``: :ref:`String`\ -\ **Example:**\ - .. tabs:: diff --git a/classes/class_editorspinslider.rst b/classes/class_editorspinslider.rst index 1906c45136a..0699cf88e13 100644 --- a/classes/class_editorspinslider.rst +++ b/classes/class_editorspinslider.rst @@ -49,6 +49,20 @@ Properties | :ref:`String` | :ref:`suffix` | ``""`` | +--------------------------------------------------------+-----------------------------------------------------------------+------------------------------------------------------------------------------+ +.. rst-class:: classref-reftable-group + +Theme Properties +---------------- + +.. table:: + :widths: auto + + +-----------------------------------+---------------------------------------------------------------------------+ + | :ref:`Texture2D` | :ref:`updown` | + +-----------------------------------+---------------------------------------------------------------------------+ + | :ref:`Texture2D` | :ref:`updown_disabled` | + +-----------------------------------+---------------------------------------------------------------------------+ + .. rst-class:: classref-section-separator ---- @@ -192,6 +206,35 @@ If ``true``, the slider can't be interacted with. The suffix to display after the value (in a faded color). This should generally be a plural word. You may have to use an abbreviation if the suffix is too long to be displayed. +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Theme Property Descriptions +--------------------------- + +.. _class_EditorSpinSlider_theme_icon_updown: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **updown** :ref:`๐Ÿ”—` + +Single texture representing both the up and down buttons. + +.. rst-class:: classref-item-separator + +---- + +.. _class_EditorSpinSlider_theme_icon_updown_disabled: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **updown_disabled** :ref:`๐Ÿ”—` + +Single texture representing both the up and down buttons, when the control is readonly or disabled. + .. |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.)` diff --git a/classes/class_editorsyntaxhighlighter.rst b/classes/class_editorsyntaxhighlighter.rst index 27f6bc9de21..0fc9fb80429 100644 --- a/classes/class_editorsyntaxhighlighter.rst +++ b/classes/class_editorsyntaxhighlighter.rst @@ -12,6 +12,8 @@ EditorSyntaxHighlighter **Inherits:** :ref:`SyntaxHighlighter` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` +**Inherited By:** :ref:`GDScriptSyntaxHighlighter` + Base class for :ref:`SyntaxHighlighter` used by the :ref:`ScriptEditor`. .. rst-class:: classref-introduction-group diff --git a/classes/class_editorundoredomanager.rst b/classes/class_editorundoredomanager.rst index 19b1042bf1e..5e0b31c8c78 100644 --- a/classes/class_editorundoredomanager.rst +++ b/classes/class_editorundoredomanager.rst @@ -56,6 +56,8 @@ Methods +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_undo_reference`\ (\ object\: :ref:`Object`\ ) | +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`clear_history`\ (\ id\: :ref:`int` = -99, increase_version\: :ref:`bool` = true\ ) | + +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`commit_action`\ (\ execute\: :ref:`bool` = true\ ) | +---------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`create_action`\ (\ name\: :ref:`String`, merge_mode\: :ref:`MergeMode` = 0, custom_context\: :ref:`Object` = null, backward_undo_ops\: :ref:`bool` = false\ ) | @@ -226,6 +228,28 @@ Register a reference for "undo" that will be erased if the "undo" history is los ---- +.. _class_EditorUndoRedoManager_method_clear_history: + +.. rst-class:: classref-method + +|void| **clear_history**\ (\ id\: :ref:`int` = -99, increase_version\: :ref:`bool` = true\ ) :ref:`๐Ÿ”—` + +Clears the given undo history. You can clear history for a specific scene, global history, or for all scenes at once if ``id`` is :ref:`INVALID_HISTORY`. + +If ``increase_version`` is ``true``, the undo history version will be increased, marking it as unsaved. Useful for operations that modify the scene, but don't support undo. + +:: + + var scene_root = EditorInterface.get_edited_scene_root() + var undo_redo = EditorInterface.get_editor_undo_redo() + undo_redo.clear_history(undo_redo.get_object_history_id(scene_root)) + +\ **Note:** If you want to mark an edited scene as unsaved without clearing its history, use :ref:`EditorInterface.mark_scene_as_unsaved` instead. + +.. rst-class:: classref-item-separator + +---- + .. _class_EditorUndoRedoManager_method_commit_action: .. rst-class:: classref-method diff --git a/classes/class_gdextensionmanager.rst b/classes/class_gdextensionmanager.rst index 406d574613b..9352a887616 100644 --- a/classes/class_gdextensionmanager.rst +++ b/classes/class_gdextensionmanager.rst @@ -63,6 +63,34 @@ Methods Signals ------- +.. _class_GDExtensionManager_signal_extension_loaded: + +.. rst-class:: classref-signal + +**extension_loaded**\ (\ extension\: :ref:`GDExtension`\ ) :ref:`๐Ÿ”—` + +Emitted after the editor has finished loading a new extension. + +\ **Note:** This signal is only emitted in editor builds. + +.. rst-class:: classref-item-separator + +---- + +.. _class_GDExtensionManager_signal_extension_unloading: + +.. rst-class:: classref-signal + +**extension_unloading**\ (\ extension\: :ref:`GDExtension`\ ) :ref:`๐Ÿ”—` + +Emitted before the editor starts unloading an extension. + +\ **Note:** This signal is only emitted in editor builds. + +.. rst-class:: classref-item-separator + +---- + .. _class_GDExtensionManager_signal_extensions_reloaded: .. rst-class:: classref-signal diff --git a/classes/class_gdscriptsyntaxhighlighter.rst b/classes/class_gdscriptsyntaxhighlighter.rst new file mode 100644 index 00000000000..d49f2b44fcb --- /dev/null +++ b/classes/class_gdscriptsyntaxhighlighter.rst @@ -0,0 +1,48 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/modules/gdscript/doc_classes/GDScriptSyntaxHighlighter.xml. + +.. _class_GDScriptSyntaxHighlighter: + +GDScriptSyntaxHighlighter +========================= + +**Inherits:** :ref:`EditorSyntaxHighlighter` **<** :ref:`SyntaxHighlighter` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` + +A GDScript syntax highlighter that can be used with :ref:`TextEdit` and :ref:`CodeEdit` nodes. + +.. rst-class:: classref-introduction-group + +Description +----------- + +**Note:** This class can only be used for editor plugins because it relies on editor settings. + + +.. tabs:: + + .. code-tab:: gdscript + + var code_preview = TextEdit.new() + var highlighter = GDScriptSyntaxHighlighter.new() + code_preview.syntax_highlighter = highlighter + + .. code-tab:: csharp + + var codePreview = new TextEdit(); + var highlighter = new GDScriptSyntaxHighlighter(); + codePreview.SyntaxHighlighter = highlighter; + + + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_geometry2d.rst b/classes/class_geometry2d.rst index dc692e09d7a..023e8858327 100644 --- a/classes/class_geometry2d.rst +++ b/classes/class_geometry2d.rst @@ -387,9 +387,40 @@ Returns ``true`` if ``polygon``'s vertices are ordered in clockwise order, other :ref:`Variant` **line_intersects_line**\ (\ from_a\: :ref:`Vector2`, dir_a\: :ref:`Vector2`, from_b\: :ref:`Vector2`, dir_b\: :ref:`Vector2`\ ) :ref:`๐Ÿ”—` -Checks if the two lines (``from_a``, ``dir_a``) and (``from_b``, ``dir_b``) intersect. If yes, return the point of intersection as :ref:`Vector2`. If no intersection takes place, returns ``null``. +Returns the point of intersection between the two lines (``from_a``, ``dir_a``) and (``from_b``, ``dir_b``). Returns a :ref:`Vector2`, or ``null`` if the lines are parallel. + +\ ``from`` and ``dir`` are *not* endpoints of a line segment or ray but the slope (``dir``) and a known point (``from``) on that line. + + +.. tabs:: + + .. code-tab:: gdscript + + var from_a = Vector2.ZERO + var dir_a = Vector2.RIGHT + var from_b = Vector2.DOWN + + # Returns Vector2(1, 0) + Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(1, -1)) + # Returns Vector2(-1, 0) + Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2(-1, -1)) + # Returns null + Geometry2D.line_intersects_line(from_a, dir_a, from_b, Vector2.RIGHT) + + .. code-tab:: csharp + + var fromA = Vector2.Zero; + var dirA = Vector2.Right; + var fromB = Vector2.Down; + + // Returns new Vector2(1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1)); + // Returns new Vector2(-1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1)); + // Returns null + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right); + -\ **Note:** The lines are specified using direction vectors, not end points. .. rst-class:: classref-item-separator diff --git a/classes/class_gltfaccessor.rst b/classes/class_gltfaccessor.rst index d3febd05a38..dc3b57eba93 100644 --- a/classes/class_gltfaccessor.rst +++ b/classes/class_gltfaccessor.rst @@ -12,16 +12,16 @@ GLTFAccessor **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF accessor. +Represents a glTF accessor. .. rst-class:: classref-introduction-group Description ----------- -GLTFAccessor is a data structure representing GLTF a ``accessor`` that would be found in the ``"accessors"`` array. A buffer is a blob of binary data. A buffer view is a slice of a buffer. An accessor is a typed interpretation of the data in a buffer view. +GLTFAccessor is a data structure representing a glTF ``accessor`` that would be found in the ``"accessors"`` array. A buffer is a blob of binary data. A buffer view is a slice of a buffer. An accessor is a typed interpretation of the data in a buffer view. -Most custom data stored in GLTF does not need accessors, only buffer views (see :ref:`GLTFBufferView`). Accessors are for more advanced use cases such as interleaved mesh data encoded for the GPU. +Most custom data stored in glTF does not need accessors, only buffer views (see :ref:`GLTFBufferView`). Accessors are for more advanced use cases such as interleaved mesh data encoded for the GPU. .. rst-class:: classref-introduction-group @@ -163,7 +163,7 @@ Property Descriptions - |void| **set_accessor_type**\ (\ value\: :ref:`GLTFAccessorType`\ ) - :ref:`GLTFAccessorType` **get_accessor_type**\ (\ ) -The GLTF accessor type as an enum. Possible values are 0 for "SCALAR", 1 for "VEC2", 2 for "VEC3", 3 for "VEC4", 4 for "MAT2", 5 for "MAT3", and 6 for "MAT4". +The glTF accessor type as an enum. Possible values are 0 for "SCALAR", 1 for "VEC2", 2 for "VEC3", 3 for "VEC4", 4 for "MAT2", 5 for "MAT3", and 6 for "MAT4". .. rst-class:: classref-item-separator @@ -214,7 +214,7 @@ The offset relative to the start of the buffer view in bytes. - |void| **set_component_type**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_component_type**\ (\ ) -The GLTF component type as an enum. Possible values are 5120 for "BYTE", 5121 for "UNSIGNED_BYTE", 5122 for "SHORT", 5123 for "UNSIGNED_SHORT", 5125 for "UNSIGNED_INT", and 5126 for "FLOAT". A value of 5125 or "UNSIGNED_INT" must not be used for any accessor that is not referenced by mesh.primitive.indices. +The glTF component type as an enum. Possible values are 5120 for "BYTE", 5121 for "UNSIGNED_BYTE", 5122 for "SHORT", 5123 for "UNSIGNED_SHORT", 5125 for "UNSIGNED_INT", and 5126 for "FLOAT". A value of 5125 or "UNSIGNED_INT" must not be used for any accessor that is not referenced by mesh.primitive.indices. .. rst-class:: classref-item-separator @@ -403,7 +403,7 @@ The offset relative to the start of the bufferView in bytes. **Deprecated:** Use :ref:`accessor_type` instead. -The GLTF accessor type as an enum. Use :ref:`accessor_type` instead. +The glTF accessor type as an enum. Use :ref:`accessor_type` instead. .. |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.)` diff --git a/classes/class_gltfanimation.rst b/classes/class_gltfanimation.rst index fd6195bdee6..1b5b651824b 100644 --- a/classes/class_gltfanimation.rst +++ b/classes/class_gltfanimation.rst @@ -109,7 +109,7 @@ Method Descriptions Gets additional arbitrary data in this **GLTFAnimation** instance. This can be used to keep per-node state data in :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null. +The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is null. .. rst-class:: classref-item-separator @@ -123,7 +123,7 @@ The argument should be the :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want. +The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. .. |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.)` diff --git a/classes/class_gltfbufferview.rst b/classes/class_gltfbufferview.rst index dc1f3c1cb81..2bc977316a4 100644 --- a/classes/class_gltfbufferview.rst +++ b/classes/class_gltfbufferview.rst @@ -12,14 +12,14 @@ GLTFBufferView **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF buffer view. +Represents a glTF buffer view. .. rst-class:: classref-introduction-group Description ----------- -GLTFBufferView is a data structure representing GLTF a ``bufferView`` that would be found in the ``"bufferViews"`` array. A buffer is a blob of binary data. A buffer view is a slice of a buffer that can be used to identify and extract data from the buffer. +GLTFBufferView is a data structure representing a glTF ``bufferView`` that would be found in the ``"bufferViews"`` array. A buffer is a blob of binary data. A buffer view is a slice of a buffer that can be used to identify and extract data from the buffer. Most custom uses of buffers only need to use the :ref:`buffer`, :ref:`byte_length`, and :ref:`byte_offset`. The :ref:`byte_stride` and :ref:`indices` properties are for more advanced use cases such as interleaved mesh data encoded for the GPU. diff --git a/classes/class_gltfcamera.rst b/classes/class_gltfcamera.rst index 418bbfa1c25..b1eced242cc 100644 --- a/classes/class_gltfcamera.rst +++ b/classes/class_gltfcamera.rst @@ -12,14 +12,14 @@ GLTFCamera **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF camera. +Represents a glTF camera. .. rst-class:: classref-introduction-group Description ----------- -Represents a camera as defined by the base GLTF spec. +Represents a camera as defined by the base glTF spec. .. rst-class:: classref-introduction-group @@ -28,9 +28,9 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `GLTF camera detailed specification `__ +- `glTF camera detailed specification `__ -- `GLTF camera spec and example file `__ +- `glTF camera spec and example file `__ .. rst-class:: classref-reftable-group @@ -90,7 +90,7 @@ Property Descriptions - |void| **set_depth_far**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_depth_far**\ (\ ) -The distance to the far culling boundary for this camera relative to its local Z axis, in meters. This maps to GLTF's ``zfar`` property. +The distance to the far culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's ``zfar`` property. .. rst-class:: classref-item-separator @@ -107,7 +107,7 @@ The distance to the far culling boundary for this camera relative to its local Z - |void| **set_depth_near**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_depth_near**\ (\ ) -The distance to the near culling boundary for this camera relative to its local Z axis, in meters. This maps to GLTF's ``znear`` property. +The distance to the near culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's ``znear`` property. .. rst-class:: classref-item-separator @@ -124,7 +124,7 @@ The distance to the near culling boundary for this camera relative to its local - |void| **set_fov**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_fov**\ (\ ) -The FOV of the camera. This class and GLTF define the camera FOV in radians, while Godot uses degrees. This maps to GLTF's ``yfov`` property. This value is only used for perspective cameras, when :ref:`perspective` is true. +The FOV of the camera. This class and glTF define the camera FOV in radians, while Godot uses degrees. This maps to glTF's ``yfov`` property. This value is only used for perspective cameras, when :ref:`perspective` is true. .. rst-class:: classref-item-separator @@ -141,7 +141,7 @@ The FOV of the camera. This class and GLTF define the camera FOV in radians, whi - |void| **set_perspective**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **get_perspective**\ (\ ) -Whether or not the camera is in perspective mode. If false, the camera is in orthographic/orthogonal mode. This maps to GLTF's camera ``type`` property. See :ref:`Camera3D.projection` and the GLTF spec for more information. +Whether or not the camera is in perspective mode. If false, the camera is in orthographic/orthogonal mode. This maps to glTF's camera ``type`` property. See :ref:`Camera3D.projection` and the glTF spec for more information. .. rst-class:: classref-item-separator @@ -158,7 +158,7 @@ Whether or not the camera is in perspective mode. If false, the camera is in ort - |void| **set_size_mag**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_size_mag**\ (\ ) -The size of the camera. This class and GLTF define the camera size magnitude as a radius in meters, while Godot defines it as a diameter in meters. This maps to GLTF's ``ymag`` property. This value is only used for orthographic/orthogonal cameras, when :ref:`perspective` is false. +The size of the camera. This class and glTF define the camera size magnitude as a radius in meters, while Godot defines it as a diameter in meters. This maps to glTF's ``ymag`` property. This value is only used for orthographic/orthogonal cameras, when :ref:`perspective` is false. .. rst-class:: classref-section-separator diff --git a/classes/class_gltfdocument.rst b/classes/class_gltfdocument.rst index f5d8a657bc0..8401f4c3592 100644 --- a/classes/class_gltfdocument.rst +++ b/classes/class_gltfdocument.rst @@ -23,7 +23,7 @@ Description GLTFDocument supports reading data from a glTF file, buffer, or Godot scene. This data can then be written to the filesystem, buffer, or used to create a Godot scene. -All of the data in a GLTF scene is stored in the :ref:`GLTFState` class. GLTFDocument processes state objects, but does not contain any scene data itself. GLTFDocument has member variables to store export configuration settings such as the image format, but is otherwise stateless. Multiple scenes can be processed with the same settings using the same GLTFDocument object and different :ref:`GLTFState` objects. +All of the data in a glTF scene is stored in the :ref:`GLTFState` class. GLTFDocument processes state objects, but does not contain any scene data itself. GLTFDocument has member variables to store export configuration settings such as the image format, but is otherwise stateless. Multiple scenes can be processed with the same settings using the same GLTFDocument object and different :ref:`GLTFState` objects. GLTFDocument can be extended with arbitrary functionality by extending the :ref:`GLTFDocumentExtension` class and registering it with GLTFDocument via :ref:`register_gltf_document_extension`. This allows for custom data to be imported and exported. @@ -62,23 +62,25 @@ Methods .. table:: :widths: auto - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`append_from_buffer`\ (\ bytes\: :ref:`PackedByteArray`, base_path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`append_from_file`\ (\ path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0, base_path\: :ref:`String` = ""\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`append_from_scene`\ (\ node\: :ref:`Node`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`PackedByteArray` | :ref:`generate_buffer`\ (\ state\: :ref:`GLTFState`\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Node` | :ref:`generate_scene`\ (\ state\: :ref:`GLTFState`, bake_fps\: :ref:`float` = 30, trimming\: :ref:`bool` = false, remove_immutable_tracks\: :ref:`bool` = true\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`register_gltf_document_extension`\ (\ extension\: :ref:`GLTFDocumentExtension`, first_priority\: :ref:`bool` = false\ ) |static| | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`unregister_gltf_document_extension`\ (\ extension\: :ref:`GLTFDocumentExtension`\ ) |static| | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`write_to_filesystem`\ (\ state\: :ref:`GLTFState`, path\: :ref:`String`\ ) | - +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`append_from_buffer`\ (\ bytes\: :ref:`PackedByteArray`, base_path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`append_from_file`\ (\ path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0, base_path\: :ref:`String` = ""\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`append_from_scene`\ (\ node\: :ref:`Node`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedByteArray` | :ref:`generate_buffer`\ (\ state\: :ref:`GLTFState`\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Node` | :ref:`generate_scene`\ (\ state\: :ref:`GLTFState`, bake_fps\: :ref:`float` = 30, trimming\: :ref:`bool` = false, remove_immutable_tracks\: :ref:`bool` = true\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_supported_gltf_extensions`\ (\ ) |static| | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`register_gltf_document_extension`\ (\ extension\: :ref:`GLTFDocumentExtension`, first_priority\: :ref:`bool` = false\ ) |static| | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`unregister_gltf_document_extension`\ (\ extension\: :ref:`GLTFDocumentExtension`\ ) |static| | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Error` | :ref:`write_to_filesystem`\ (\ state\: :ref:`GLTFState`, path\: :ref:`String`\ ) | + +---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -139,7 +141,7 @@ Property Descriptions - |void| **set_image_format**\ (\ value\: :ref:`String`\ ) - :ref:`String` **get_image_format**\ (\ ) -The user-friendly name of the export image format. This is used when exporting the GLTF file, including writing to a file and writing to a byte array. +The user-friendly name of the export image format. This is used when exporting the glTF file, including writing to a file and writing to a byte array. By default, Godot allows the following options: "None", "PNG", "JPEG", "Lossless WebP", and "Lossy WebP". Support for more image formats can be added in :ref:`GLTFDocumentExtension` classes. @@ -194,7 +196,7 @@ Method Descriptions :ref:`Error` **append_from_buffer**\ (\ bytes\: :ref:`PackedByteArray`, base_path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0\ ) :ref:`๐Ÿ”—` -Takes a :ref:`PackedByteArray` defining a GLTF and imports the data to the given :ref:`GLTFState` object through the ``state`` parameter. +Takes a :ref:`PackedByteArray` defining a glTF and imports the data to the given :ref:`GLTFState` object through the ``state`` parameter. \ **Note:** The ``base_path`` tells :ref:`append_from_buffer` where to find dependencies and can be empty. @@ -208,7 +210,7 @@ Takes a :ref:`PackedByteArray` defining a GLTF and import :ref:`Error` **append_from_file**\ (\ path\: :ref:`String`, state\: :ref:`GLTFState`, flags\: :ref:`int` = 0, base_path\: :ref:`String` = ""\ ) :ref:`๐Ÿ”—` -Takes a path to a GLTF file and imports the data at that file path to the given :ref:`GLTFState` object through the ``state`` parameter. +Takes a path to a glTF file and imports the data at that file path to the given :ref:`GLTFState` object through the ``state`` parameter. \ **Note:** The ``base_path`` tells :ref:`append_from_file` where to find dependencies and can be empty. @@ -234,7 +236,7 @@ Takes a Godot Engine scene node and exports it and its descendants to the given :ref:`PackedByteArray` **generate_buffer**\ (\ state\: :ref:`GLTFState`\ ) :ref:`๐Ÿ”—` -Takes a :ref:`GLTFState` object through the ``state`` parameter and returns a GLTF :ref:`PackedByteArray`. +Takes a :ref:`GLTFState` object through the ``state`` parameter and returns a glTF :ref:`PackedByteArray`. .. rst-class:: classref-item-separator @@ -254,6 +256,20 @@ The ``bake_fps`` parameter overrides the bake_fps in ``state``. ---- +.. _class_GLTFDocument_method_get_supported_gltf_extensions: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **get_supported_gltf_extensions**\ (\ ) |static| :ref:`๐Ÿ”—` + +Returns a list of all support glTF extensions, including extensions supported directly by the engine, and extensions supported by user plugins registering :ref:`GLTFDocumentExtension` classes. + +\ **Note:** If this method is run before a GLTFDocumentExtension is registered, its extensions won't be included in the list. Be sure to only run this method after all extensions are registered. If you run this when the engine starts, consider waiting a frame before calling this method to ensure all extensions are registered. + +.. rst-class:: classref-item-separator + +---- + .. _class_GLTFDocument_method_register_gltf_document_extension: .. rst-class:: classref-method diff --git a/classes/class_gltfdocumentextension.rst b/classes/class_gltfdocumentextension.rst index 9daad61f3f2..8e846284b76 100644 --- a/classes/class_gltfdocumentextension.rst +++ b/classes/class_gltfdocumentextension.rst @@ -21,7 +21,7 @@ GLTFDocumentExtension Description ----------- -Extends the functionality of the :ref:`GLTFDocument` class by allowing you to run arbitrary code at various stages of GLTF import or export. +Extends the functionality of the :ref:`GLTFDocument` class by allowing you to run arbitrary code at various stages of glTF import or export. To use, make a new class extending GLTFDocumentExtension, override any methods you need, make an instance of your class, and register it using :ref:`GLTFDocument.register_gltf_document_extension`. @@ -113,7 +113,7 @@ Runs when converting the data from a Godot scene node. This method can be used t Part of the export process. This method is run after :ref:`_get_saveable_image_formats` and before :ref:`_export_post`. If this **GLTFDocumentExtension** is used for exporting images, this runs after :ref:`_serialize_texture_json`. -This method can be used to modify the final JSON of each node. Data should be primarily stored in ``gltf_node`` prior to serializing the JSON, but the original Godot ``node`` is also provided if available. The node may be null if not available, such as when exporting GLTF data not generated from a Godot scene. +This method can be used to modify the final JSON of each node. Data should be primarily stored in ``gltf_node`` prior to serializing the JSON, but the original Godot ``node`` is also provided if available. The node may be null if not available, such as when exporting glTF data not generated from a Godot scene. .. rst-class:: classref-item-separator @@ -127,7 +127,7 @@ This method can be used to modify the final JSON of each node. Data should be pr Part of the export process. This method is run last, after all other parts of the export process. -This method can be used to modify the final JSON of the generated GLTF file. +This method can be used to modify the final JSON of the generated glTF file. .. rst-class:: classref-item-separator @@ -141,7 +141,7 @@ This method can be used to modify the final JSON of the generated GLTF file. Part of the export process. This method is run first, before all other parts of the export process. -The return value is used to determine if this **GLTFDocumentExtension** instance should be used for exporting a given GLTF file. If :ref:`@GlobalScope.OK`, the export will use this **GLTFDocumentExtension** instance. If not overridden, :ref:`@GlobalScope.OK` is returned. +The return value is used to determine if this **GLTFDocumentExtension** instance should be used for exporting a given glTF file. If :ref:`@GlobalScope.OK`, the export will use this **GLTFDocumentExtension** instance. If not overridden, :ref:`@GlobalScope.OK` is returned. .. rst-class:: classref-item-separator @@ -211,7 +211,7 @@ Returns an array of the image formats that can be saved/exported by this extensi Part of the import process. This method is run after :ref:`_import_preflight` and before :ref:`_parse_node_extensions`. -Returns an array of the GLTF extensions supported by this GLTFDocumentExtension class. This is used to validate if a GLTF file with required extensions can be loaded. +Returns an array of the glTF extensions supported by this GLTFDocumentExtension class. This is used to validate if a glTF file with required extensions can be loaded. .. rst-class:: classref-item-separator @@ -267,7 +267,7 @@ This method can be used to modify any of the data imported so far after parsing, Part of the import process. This method is run first, before all other parts of the import process. -The return value is used to determine if this **GLTFDocumentExtension** instance should be used for importing a given GLTF file. If :ref:`@GlobalScope.OK`, the import will use this **GLTFDocumentExtension** instance. If not overridden, :ref:`@GlobalScope.OK` is returned. +The return value is used to determine if this **GLTFDocumentExtension** instance should be used for importing a given glTF file. If :ref:`@GlobalScope.OK`, the import will use this **GLTFDocumentExtension** instance. If not overridden, :ref:`@GlobalScope.OK` is returned. .. rst-class:: classref-item-separator @@ -281,7 +281,7 @@ The return value is used to determine if this **GLTFDocumentExtension** instance Part of the import process. This method is run after :ref:`_parse_node_extensions` and before :ref:`_parse_texture_json`. -Runs when parsing image data from a GLTF file. The data could be sourced from a separate file, a URI, or a buffer, and then is passed as a byte array. +Runs when parsing image data from a glTF file. The data could be sourced from a separate file, a URI, or a buffer, and then is passed as a byte array. .. rst-class:: classref-item-separator @@ -309,7 +309,7 @@ Runs when parsing the node extensions of a GLTFNode. This method can be used to Part of the import process. This method is run after :ref:`_parse_image_data` and before :ref:`_generate_scene_node`. -Runs when parsing the texture JSON from the GLTF textures array. This can be used to set the source image index to use as the texture. +Runs when parsing the texture JSON from the glTF textures array. This can be used to set the source image index to use as the texture. .. rst-class:: classref-item-separator @@ -323,7 +323,7 @@ Runs when parsing the texture JSON from the GLTF textures array. This can be use Part of the export process. This method is run after :ref:`_get_saveable_image_formats` and before :ref:`_serialize_texture_json`. -This method is run when saving images separately from the GLTF file. When images are embedded, :ref:`_serialize_image_to_bytes` runs instead. Note that these methods only run when this **GLTFDocumentExtension** is selected as the image exporter. +This method is run when saving images separately from the glTF file. When images are embedded, :ref:`_serialize_image_to_bytes` runs instead. Note that these methods only run when this **GLTFDocumentExtension** is selected as the image exporter. .. rst-class:: classref-item-separator @@ -337,7 +337,7 @@ This method is run when saving images separately from the GLTF file. When images Part of the export process. This method is run after :ref:`_get_saveable_image_formats` and before :ref:`_serialize_texture_json`. -This method is run when embedding images in the GLTF file. When images are saved separately, :ref:`_save_image_at_path` runs instead. Note that these methods only run when this **GLTFDocumentExtension** is selected as the image exporter. +This method is run when embedding images in the glTF file. When images are saved separately, :ref:`_save_image_at_path` runs instead. Note that these methods only run when this **GLTFDocumentExtension** is selected as the image exporter. This method must set the image MIME type in the ``image_dict`` with the ``"mimeType"`` key. For example, for a PNG image, it would be set to ``"image/png"``. The return value must be a :ref:`PackedByteArray` containing the image data. diff --git a/classes/class_gltflight.rst b/classes/class_gltflight.rst index d92a7c3a890..f9c74903bc1 100644 --- a/classes/class_gltflight.rst +++ b/classes/class_gltflight.rst @@ -12,14 +12,14 @@ GLTFLight **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF light. +Represents a glTF light. .. rst-class:: classref-introduction-group Description ----------- -Represents a light as defined by the ``KHR_lights_punctual`` GLTF extension. +Represents a light as defined by the ``KHR_lights_punctual`` glTF extension. .. rst-class:: classref-introduction-group @@ -28,7 +28,7 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `KHR_lights_punctual GLTF extension spec `__ +- `KHR_lights_punctual glTF extension spec `__ .. rst-class:: classref-reftable-group @@ -183,7 +183,7 @@ At this angle, the light drops off to zero brightness. Between the inner and out - |void| **set_range**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_range**\ (\ ) -The range of the light, beyond which the light has no effect. GLTF lights with no range defined behave like physical lights (which have infinite range). When creating a Godot light, the range is clamped to 4096. +The range of the light, beyond which the light has no effect. glTF lights with no range defined behave like physical lights (which have infinite range). When creating a Godot light, the range is clamped to 4096. .. rst-class:: classref-section-separator diff --git a/classes/class_gltfmesh.rst b/classes/class_gltfmesh.rst index 1003478aa10..d56c474eec9 100644 --- a/classes/class_gltfmesh.rst +++ b/classes/class_gltfmesh.rst @@ -12,14 +12,14 @@ GLTFMesh **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -GLTFMesh represents a GLTF mesh. +GLTFMesh represents a glTF mesh. .. rst-class:: classref-introduction-group Description ----------- -GLTFMesh handles 3D mesh data imported from GLTF files. It includes properties for blend channels, blend weights, instance materials, and the mesh itself. +GLTFMesh handles 3D mesh data imported from glTF files. It includes properties for blend channels, blend weights, instance materials, and the mesh itself. .. rst-class:: classref-introduction-group @@ -152,7 +152,7 @@ Method Descriptions Gets additional arbitrary data in this **GLTFMesh** instance. This can be used to keep per-node state data in :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null. +The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is null. .. rst-class:: classref-item-separator @@ -166,7 +166,7 @@ The argument should be the :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want. +The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. .. |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.)` diff --git a/classes/class_gltfnode.rst b/classes/class_gltfnode.rst index dde695d27d3..77459360253 100644 --- a/classes/class_gltfnode.rst +++ b/classes/class_gltfnode.rst @@ -12,16 +12,16 @@ GLTFNode **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -GLTF node class. +glTF node class. .. rst-class:: classref-introduction-group Description ----------- -Represents a GLTF node. GLTF nodes may have names, transforms, children (other GLTF nodes), and more specialized properties (represented by their own classes). +Represents a glTF node. glTF nodes may have names, transforms, children (other glTF nodes), and more specialized properties (represented by their own classes). -GLTF nodes generally exist inside of :ref:`GLTFState` which represents all data of a GLTF file. Most of GLTFNode's properties are indices of other data in the GLTF file. You can extend a GLTF node with additional properties by using :ref:`get_additional_data` and :ref:`set_additional_data`. +glTF nodes generally exist inside of :ref:`GLTFState` which represents all data of a glTF file. Most of GLTFNode's properties are indices of other data in the glTF file. You can extend a glTF node with additional properties by using :ref:`get_additional_data` and :ref:`set_additional_data`. .. rst-class:: classref-introduction-group @@ -30,7 +30,7 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `GLTF scene and node spec `__ +- `glTF scene and node spec `__ .. rst-class:: classref-reftable-group @@ -102,7 +102,7 @@ Property Descriptions - |void| **set_camera**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_camera**\ (\ ) -If this GLTF node is a camera, the index of the :ref:`GLTFCamera` in the :ref:`GLTFState` that describes the camera's properties. If -1, this node is not a camera. +If this glTF node is a camera, the index of the :ref:`GLTFCamera` in the :ref:`GLTFState` that describes the camera's properties. If -1, this node is not a camera. .. rst-class:: classref-item-separator @@ -119,7 +119,7 @@ If this GLTF node is a camera, the index of the :ref:`GLTFCamera`\ ) - :ref:`PackedInt32Array` **get_children**\ (\ ) -The indices of the child nodes in the :ref:`GLTFState`. If this GLTF node has no children, this will be an empty array. +The indices of the child nodes in the :ref:`GLTFState`. If this glTF node has no children, this will be an empty array. **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. @@ -155,7 +155,7 @@ How deep into the node hierarchy this node is. A root node will have a height of - |void| **set_light**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_light**\ (\ ) -If this GLTF node is a light, the index of the :ref:`GLTFLight` in the :ref:`GLTFState` that describes the light's properties. If -1, this node is not a light. +If this glTF node is a light, the index of the :ref:`GLTFLight` in the :ref:`GLTFState` that describes the light's properties. If -1, this node is not a light. .. rst-class:: classref-item-separator @@ -172,7 +172,7 @@ If this GLTF node is a light, the index of the :ref:`GLTFLight` - |void| **set_mesh**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_mesh**\ (\ ) -If this GLTF node is a mesh, the index of the :ref:`GLTFMesh` in the :ref:`GLTFState` that describes the mesh's properties. If -1, this node is not a mesh. +If this glTF node is a mesh, the index of the :ref:`GLTFMesh` in the :ref:`GLTFState` that describes the mesh's properties. If -1, this node is not a mesh. .. rst-class:: classref-item-separator @@ -223,7 +223,7 @@ The index of the parent node in the :ref:`GLTFState`. If -1, th - |void| **set_position**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_position**\ (\ ) -The position of the GLTF node relative to its parent. +The position of the glTF node relative to its parent. .. rst-class:: classref-item-separator @@ -240,7 +240,7 @@ The position of the GLTF node relative to its parent. - |void| **set_rotation**\ (\ value\: :ref:`Quaternion`\ ) - :ref:`Quaternion` **get_rotation**\ (\ ) -The rotation of the GLTF node relative to its parent. +The rotation of the glTF node relative to its parent. .. rst-class:: classref-item-separator @@ -257,7 +257,7 @@ The rotation of the GLTF node relative to its parent. - |void| **set_scale**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_scale**\ (\ ) -The scale of the GLTF node relative to its parent. +The scale of the glTF node relative to its parent. .. rst-class:: classref-item-separator @@ -274,7 +274,7 @@ The scale of the GLTF node relative to its parent. - |void| **set_skeleton**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_skeleton**\ (\ ) -If this GLTF node has a skeleton, the index of the :ref:`GLTFSkeleton` in the :ref:`GLTFState` that describes the skeleton's properties. If -1, this node does not have a skeleton. +If this glTF node has a skeleton, the index of the :ref:`GLTFSkeleton` in the :ref:`GLTFState` that describes the skeleton's properties. If -1, this node does not have a skeleton. .. rst-class:: classref-item-separator @@ -291,7 +291,7 @@ If this GLTF node has a skeleton, the index of the :ref:`GLTFSkeleton`\ ) - :ref:`int` **get_skin**\ (\ ) -If this GLTF node has a skin, the index of the :ref:`GLTFSkin` in the :ref:`GLTFState` that describes the skin's properties. If -1, this node does not have a skin. +If this glTF node has a skin, the index of the :ref:`GLTFSkin` in the :ref:`GLTFState` that describes the skin's properties. If -1, this node does not have a skin. .. rst-class:: classref-item-separator @@ -308,7 +308,7 @@ If this GLTF node has a skin, the index of the :ref:`GLTFSkin` i - |void| **set_xform**\ (\ value\: :ref:`Transform3D`\ ) - :ref:`Transform3D` **get_xform**\ (\ ) -The transform of the GLTF node relative to its parent. This property is usually unused since the position, rotation, and scale properties are preferred. +The transform of the glTF node relative to its parent. This property is usually unused since the position, rotation, and scale properties are preferred. .. rst-class:: classref-section-separator @@ -327,7 +327,7 @@ Method Descriptions Gets additional arbitrary data in this **GLTFNode** instance. This can be used to keep per-node state data in :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null. +The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is null. .. rst-class:: classref-item-separator @@ -341,7 +341,7 @@ The argument should be the :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want. +The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. .. |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.)` diff --git a/classes/class_gltfphysicsbody.rst b/classes/class_gltfphysicsbody.rst index 4eb9962f904..e2879a47810 100644 --- a/classes/class_gltfphysicsbody.rst +++ b/classes/class_gltfphysicsbody.rst @@ -12,14 +12,14 @@ GLTFPhysicsBody **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF physics body. +Represents a glTF physics body. .. rst-class:: classref-introduction-group Description ----------- -Represents a physics body as an intermediary between the ``OMI_physics_body`` GLTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different GLTF physics extensions in the future. +Represents a physics body as an intermediary between the ``OMI_physics_body`` glTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different glTF physics extensions in the future. .. rst-class:: classref-introduction-group @@ -28,7 +28,7 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `OMI_physics_body GLTF extension `__ +- `OMI_physics_body glTF extension `__ .. rst-class:: classref-reftable-group @@ -236,7 +236,7 @@ Method Descriptions :ref:`GLTFPhysicsBody` **from_dictionary**\ (\ dictionary\: :ref:`Dictionary`\ ) |static| :ref:`๐Ÿ”—` -Creates a new GLTFPhysicsBody instance by parsing the given :ref:`Dictionary` in the ``OMI_physics_body`` GLTF extension format. +Creates a new GLTFPhysicsBody instance by parsing the given :ref:`Dictionary` in the ``OMI_physics_body`` glTF extension format. .. rst-class:: classref-item-separator @@ -260,7 +260,7 @@ Creates a new GLTFPhysicsBody instance from the given Godot :ref:`CollisionObjec :ref:`Dictionary` **to_dictionary**\ (\ ) |const| :ref:`๐Ÿ”—` -Serializes this GLTFPhysicsBody instance into a :ref:`Dictionary`. It will be in the format expected by the ``OMI_physics_body`` GLTF extension. +Serializes this GLTFPhysicsBody instance into a :ref:`Dictionary`. It will be in the format expected by the ``OMI_physics_body`` glTF extension. .. rst-class:: classref-item-separator diff --git a/classes/class_gltfphysicsshape.rst b/classes/class_gltfphysicsshape.rst index b0b5cb10d41..fae4b8bd87b 100644 --- a/classes/class_gltfphysicsshape.rst +++ b/classes/class_gltfphysicsshape.rst @@ -12,14 +12,14 @@ GLTFPhysicsShape **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF physics shape. +Represents a glTF physics shape. .. rst-class:: classref-introduction-group Description ----------- -Represents a physics shape as defined by the ``OMI_physics_shape`` or ``OMI_collider`` GLTF extensions. This class is an intermediary between the GLTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different GLTF physics extensions in the future. +Represents a physics shape as defined by the ``OMI_physics_shape`` or ``OMI_collider`` glTF extensions. This class is an intermediary between the glTF data and Godot's nodes, and it's abstracted in a way that allows adding support for different glTF physics extensions in the future. .. rst-class:: classref-introduction-group @@ -28,9 +28,9 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `OMI_physics_shape GLTF extension `__ +- `OMI_physics_shape glTF extension `__ -- `OMI_collider GLTF extension `__ +- `OMI_collider glTF extension `__ .. rst-class:: classref-reftable-group @@ -151,7 +151,7 @@ This is the only variable not used in the :ref:`to_node`\ ) - :ref:`int` **get_mesh_index**\ (\ ) -The index of the shape's mesh in the GLTF file. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). +The index of the shape's mesh in the glTF file. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). .. rst-class:: classref-item-separator diff --git a/classes/class_gltfskeleton.rst b/classes/class_gltfskeleton.rst index 9951dfc18aa..988e380374f 100644 --- a/classes/class_gltfskeleton.rst +++ b/classes/class_gltfskeleton.rst @@ -85,6 +85,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-item-separator ---- @@ -104,6 +106,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-section-separator ---- @@ -147,7 +151,7 @@ Method Descriptions :ref:`Dictionary` **get_godot_bone_node**\ (\ ) :ref:`๐Ÿ”—` -Returns a :ref:`Dictionary` that maps skeleton bone indices to the indices of GLTF nodes. This property is unused during import, and only set during export. In a GLTF file, a bone is a node, so Godot converts skeleton bones to GLTF nodes. +Returns a :ref:`Dictionary` that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. .. rst-class:: classref-item-separator @@ -187,7 +191,7 @@ Returns a :ref:`Dictionary` that maps skeleton bone indices to |void| **set_godot_bone_node**\ (\ godot_bone_node\: :ref:`Dictionary`\ ) :ref:`๐Ÿ”—` -Sets a :ref:`Dictionary` that maps skeleton bone indices to the indices of GLTF nodes. This property is unused during import, and only set during export. In a GLTF file, a bone is a node, so Godot converts skeleton bones to GLTF nodes. +Sets a :ref:`Dictionary` that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. .. rst-class:: classref-item-separator diff --git a/classes/class_gltfskin.rst b/classes/class_gltfskin.rst index fabbff6adeb..1a1b7201ee8 100644 --- a/classes/class_gltfskin.rst +++ b/classes/class_gltfskin.rst @@ -112,6 +112,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-item-separator ---- @@ -131,6 +133,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-item-separator ---- @@ -150,6 +154,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-item-separator ---- @@ -169,6 +175,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. + .. rst-class:: classref-item-separator ---- diff --git a/classes/class_gltfspecgloss.rst b/classes/class_gltfspecgloss.rst index a5cb4f2d997..0cc58a899d4 100644 --- a/classes/class_gltfspecgloss.rst +++ b/classes/class_gltfspecgloss.rst @@ -12,14 +12,14 @@ GLTFSpecGloss **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Archived GLTF extension for specular/glossy materials. +Archived glTF extension for specular/glossy materials. .. rst-class:: classref-introduction-group Description ----------- -KHR_materials_pbrSpecularGlossiness is an archived GLTF extension. This means that it is deprecated and not recommended for new files. However, it is still supported for loading old files. +KHR_materials_pbrSpecularGlossiness is an archived glTF extension. This means that it is deprecated and not recommended for new files. However, it is still supported for loading old files. .. rst-class:: classref-introduction-group @@ -28,7 +28,7 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `KHR_materials_pbrSpecularGlossiness GLTF extension spec `__ +- `KHR_materials_pbrSpecularGlossiness glTF extension spec `__ .. rst-class:: classref-reftable-group diff --git a/classes/class_gltfstate.rst b/classes/class_gltfstate.rst index 9faaf6c653d..2cc29142e42 100644 --- a/classes/class_gltfstate.rst +++ b/classes/class_gltfstate.rst @@ -14,16 +14,16 @@ GLTFState **Inherited By:** :ref:`FBXState` -Represents all data of a GLTF file. +Represents all data of a glTF file. .. rst-class:: classref-introduction-group Description ----------- -Contains all nodes and resources of a GLTF file. This is used by :ref:`GLTFDocument` as data storage, which allows :ref:`GLTFDocument` and all :ref:`GLTFDocumentExtension` classes to remain stateless. +Contains all nodes and resources of a glTF file. This is used by :ref:`GLTFDocument` as data storage, which allows :ref:`GLTFDocument` and all :ref:`GLTFDocumentExtension` classes to remain stateless. -GLTFState can be populated by :ref:`GLTFDocument` reading a file or by converting a Godot scene. Then the data can either be used to create a Godot scene or save to a GLTF file. The code that converts to/from a Godot scene can be intercepted at arbitrary points by :ref:`GLTFDocumentExtension` classes. This allows for custom data to be stored in the GLTF file or for custom data to be converted to/from Godot nodes. +GLTFState can be populated by :ref:`GLTFDocument` reading a file or by converting a Godot scene. Then the data can either be used to create a Godot scene or save to a glTF file. The code that converts to/from a Godot scene can be intercepted at arbitrary points by :ref:`GLTFDocumentExtension` classes. This allows for custom data to be stored in the glTF file or for custom data to be converted to/from Godot nodes. .. rst-class:: classref-introduction-group @@ -32,7 +32,7 @@ Tutorials - :doc:`Runtime file loading and saving <../tutorials/io/runtime_file_loading_and_saving>` -- `GLTF asset header schema `__ +- `glTF asset header schema `__ .. rst-class:: classref-reftable-group @@ -240,7 +240,7 @@ The baking fps of the animation for either import or export. - |void| **set_base_path**\ (\ value\: :ref:`String`\ ) - :ref:`String` **get_base_path**\ (\ ) -The folder path associated with this GLTF data. This is used to find other files the GLTF file references, like images or binary buffers. This will be set during import when appending from a file, and will be set during export when writing to a file. +The folder path associated with this glTF data. This is used to find other files the glTF file references, like images or binary buffers. This will be set during import when appending from a file, and will be set during export when writing to a file. .. rst-class:: classref-item-separator @@ -276,7 +276,7 @@ The folder path associated with this GLTF data. This is used to find other files - |void| **set_copyright**\ (\ value\: :ref:`String`\ ) - :ref:`String` **get_copyright**\ (\ ) -The copyright string in the asset header of the GLTF file. This is set during import if present and export if non-empty. See the GLTF asset header documentation for more information. +The copyright string in the asset header of the glTF file. This is set during import if present and export if non-empty. See the glTF asset header documentation for more information. .. rst-class:: classref-item-separator @@ -312,7 +312,7 @@ The copyright string in the asset header of the GLTF file. This is set during im - |void| **set_filename**\ (\ value\: :ref:`String`\ ) - :ref:`String` **get_filename**\ (\ ) -The file name associated with this GLTF data. If it ends with ``.gltf``, this is text-based GLTF, otherwise this is binary GLB. This will be set during import when appending from a file, and will be set during export when writing to a file. If writing to a buffer, this will be an empty string. +The file name associated with this glTF data. If it ends with ``.gltf``, this is text-based glTF, otherwise this is binary GLB. This will be set during import when appending from a file, and will be set during export when writing to a file. If writing to a buffer, this will be an empty string. .. rst-class:: classref-item-separator @@ -420,7 +420,7 @@ The original raw JSON document corresponding to this GLTFState. - |void| **set_root_nodes**\ (\ value\: :ref:`PackedInt32Array`\ ) - :ref:`PackedInt32Array` **get_root_nodes**\ (\ ) -The root nodes of the GLTF file. Typically, a GLTF file will only have one scene, and therefore one root node. However, a GLTF file may have multiple scenes and therefore multiple root nodes, which will be generated as siblings of each other and as children of the root node of the generated Godot scene. +The root nodes of the glTF file. Typically, a glTF file will only have one scene, and therefore one root node. However, a glTF file may have multiple scenes and therefore multiple root nodes, which will be generated as siblings of each other and as children of the root node of the generated Godot scene. **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedInt32Array` for more details. @@ -439,7 +439,7 @@ The root nodes of the GLTF file. Typically, a GLTF file will only have one scene - |void| **set_scene_name**\ (\ value\: :ref:`String`\ ) - :ref:`String` **get_scene_name**\ (\ ) -The name of the scene. When importing, if not specified, this will be the file name. When exporting, if specified, the scene name will be saved to the GLTF file. +The name of the scene. When importing, if not specified, this will be the file name. When exporting, if specified, the scene name will be saved to the glTF file. .. rst-class:: classref-item-separator @@ -475,7 +475,7 @@ Method Descriptions |void| **add_used_extension**\ (\ extension_name\: :ref:`String`, required\: :ref:`bool`\ ) :ref:`๐Ÿ”—` -Appends an extension to the list of extensions used by this GLTF file during serialization. If ``required`` is true, the extension will also be added to the list of required extensions. Do not run this in :ref:`GLTFDocumentExtension._export_post`, as that stage is too late to add extensions. The final list is sorted alphabetically. +Appends an extension to the list of extensions used by this glTF file during serialization. If ``required`` is true, the extension will also be added to the list of required extensions. Do not run this in :ref:`GLTFDocumentExtension._export_post`, as that stage is too late to add extensions. The final list is sorted alphabetically. .. rst-class:: classref-item-separator @@ -515,7 +515,7 @@ Appends the given byte array data to the buffers and creates a :ref:`GLTFBufferV Gets additional arbitrary data in this **GLTFState** instance. This can be used to keep per-file state data in :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the return value can be anything you set. If nothing was set, the return value is null. +The argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is null. .. rst-class:: classref-item-separator @@ -527,7 +527,7 @@ The argument should be the :ref:`GLTFDocumentExtension` **get_animation_player**\ (\ idx\: :ref:`int`\ ) :ref:`๐Ÿ”—` -Returns the :ref:`AnimationPlayer` node with the given index. These nodes are only used during the export process when converting Godot :ref:`AnimationPlayer` nodes to GLTF animations. +Returns the :ref:`AnimationPlayer` node with the given index. These nodes are only used during the export process when converting Godot :ref:`AnimationPlayer` nodes to glTF animations. .. rst-class:: classref-item-separator @@ -539,7 +539,7 @@ Returns the :ref:`AnimationPlayer` node with the given in :ref:`int` **get_animation_players_count**\ (\ idx\: :ref:`int`\ ) :ref:`๐Ÿ”—` -Returns the number of :ref:`AnimationPlayer` nodes in this **GLTFState**. These nodes are only used during the export process when converting Godot :ref:`AnimationPlayer` nodes to GLTF animations. +Returns the number of :ref:`AnimationPlayer` nodes in this **GLTFState**. These nodes are only used during the export process when converting Godot :ref:`AnimationPlayer` nodes to glTF animations. .. rst-class:: classref-item-separator @@ -551,7 +551,7 @@ Returns the number of :ref:`AnimationPlayer` nodes in thi :ref:`Array`\[:ref:`GLTFAnimation`\] **get_animations**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFAnimation`\ s in the GLTF file. When importing, these will be generated as animations in an :ref:`AnimationPlayer` node. When exporting, these will be generated from Godot :ref:`AnimationPlayer` nodes. +Returns an array of all :ref:`GLTFAnimation`\ s in the glTF file. When importing, these will be generated as animations in an :ref:`AnimationPlayer` node. When exporting, these will be generated from Godot :ref:`AnimationPlayer` nodes. .. rst-class:: classref-item-separator @@ -577,7 +577,7 @@ Returns an array of all :ref:`GLTFAnimation`\ s in the GLTF :ref:`Array`\[:ref:`GLTFCamera`\] **get_cameras**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFCamera`\ s in the GLTF file. These are the cameras that the :ref:`GLTFNode.camera` index refers to. +Returns an array of all :ref:`GLTFCamera`\ s in the glTF file. These are the cameras that the :ref:`GLTFNode.camera` index refers to. .. rst-class:: classref-item-separator @@ -603,7 +603,7 @@ Returns an array of all :ref:`GLTFCamera`\ s in the GLTF file. :ref:`Array`\[:ref:`Texture2D`\] **get_images**\ (\ ) :ref:`๐Ÿ”—` -Gets the images of the GLTF file as an array of :ref:`Texture2D`\ s. These are the images that the :ref:`GLTFTexture.src_image` index refers to. +Gets the images of the glTF file as an array of :ref:`Texture2D`\ s. These are the images that the :ref:`GLTFTexture.src_image` index refers to. .. rst-class:: classref-item-separator @@ -615,7 +615,7 @@ Gets the images of the GLTF file as an array of :ref:`Texture2D :ref:`Array`\[:ref:`GLTFLight`\] **get_lights**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFLight`\ s in the GLTF file. These are the lights that the :ref:`GLTFNode.light` index refers to. +Returns an array of all :ref:`GLTFLight`\ s in the glTF file. These are the lights that the :ref:`GLTFNode.light` index refers to. .. rst-class:: classref-item-separator @@ -641,7 +641,7 @@ Returns an array of all :ref:`GLTFLight`\ s in the GLTF file. T :ref:`Array`\[:ref:`GLTFMesh`\] **get_meshes**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFMesh`\ es in the GLTF file. These are the meshes that the :ref:`GLTFNode.mesh` index refers to. +Returns an array of all :ref:`GLTFMesh`\ es in the glTF file. These are the meshes that the :ref:`GLTFNode.mesh` index refers to. .. rst-class:: classref-item-separator @@ -667,7 +667,7 @@ Returns the index of the :ref:`GLTFNode` corresponding to this G :ref:`Array`\[:ref:`GLTFNode`\] **get_nodes**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFNode`\ s in the GLTF file. These are the nodes that :ref:`GLTFNode.children` and :ref:`root_nodes` refer to. This includes nodes that may not be generated in the Godot scene, or nodes that may generate multiple Godot scene nodes. +Returns an array of all :ref:`GLTFNode`\ s in the glTF file. These are the nodes that :ref:`GLTFNode.children` and :ref:`root_nodes` refer to. This includes nodes that may not be generated in the Godot scene, or nodes that may generate multiple Godot scene nodes. .. rst-class:: classref-item-separator @@ -693,7 +693,7 @@ Returns the Godot scene node that corresponds to the same index as the :ref:`GLT :ref:`Array`\[:ref:`GLTFSkeleton`\] **get_skeletons**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFSkeleton`\ s in the GLTF file. These are the skeletons that the :ref:`GLTFNode.skeleton` index refers to. +Returns an array of all :ref:`GLTFSkeleton`\ s in the glTF file. These are the skeletons that the :ref:`GLTFNode.skeleton` index refers to. .. rst-class:: classref-item-separator @@ -705,7 +705,7 @@ Returns an array of all :ref:`GLTFSkeleton`\ s in the GLTF f :ref:`Array`\[:ref:`GLTFSkin`\] **get_skins**\ (\ ) :ref:`๐Ÿ”—` -Returns an array of all :ref:`GLTFSkin`\ s in the GLTF file. These are the skins that the :ref:`GLTFNode.skin` index refers to. +Returns an array of all :ref:`GLTFSkin`\ s in the glTF file. These are the skins that the :ref:`GLTFNode.skin` index refers to. .. rst-class:: classref-item-separator @@ -717,7 +717,7 @@ Returns an array of all :ref:`GLTFSkin`\ s in the GLTF file. The :ref:`Array`\[:ref:`GLTFTextureSampler`\] **get_texture_samplers**\ (\ ) :ref:`๐Ÿ”—` -Retrieves the array of texture samplers that are used by the textures contained in the GLTF. +Retrieves the array of texture samplers that are used by the textures contained in the glTF. .. rst-class:: classref-item-separator @@ -783,7 +783,7 @@ Returns an array of unique node names. This is used in both the import process a Sets additional arbitrary data in this **GLTFState** instance. This can be used to keep per-file state data in :ref:`GLTFDocumentExtension` classes, which is important because they are stateless. -The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the GLTF file), and the second argument can be anything you want. +The first argument should be the :ref:`GLTFDocumentExtension` name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. .. rst-class:: classref-item-separator @@ -933,7 +933,7 @@ Sets the :ref:`GLTFSkin`\ s in the state. These are the skins th |void| **set_texture_samplers**\ (\ texture_samplers\: :ref:`Array`\[:ref:`GLTFTextureSampler`\]\ ) :ref:`๐Ÿ”—` -Sets the array of texture samplers that are used by the textures contained in the GLTF. +Sets the array of texture samplers that are used by the textures contained in the glTF. .. rst-class:: classref-item-separator diff --git a/classes/class_gltftexture.rst b/classes/class_gltftexture.rst index 187d5364509..5dff769778a 100644 --- a/classes/class_gltftexture.rst +++ b/classes/class_gltftexture.rst @@ -12,7 +12,7 @@ GLTFTexture **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -GLTFTexture represents a texture in a GLTF file. +GLTFTexture represents a texture in a glTF file. .. rst-class:: classref-introduction-group diff --git a/classes/class_gltftexturesampler.rst b/classes/class_gltftexturesampler.rst index dad254a2c83..9e120d012d1 100644 --- a/classes/class_gltftexturesampler.rst +++ b/classes/class_gltftexturesampler.rst @@ -12,14 +12,14 @@ GLTFTextureSampler **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` -Represents a GLTF texture sampler +Represents a glTF texture sampler .. rst-class:: classref-introduction-group Description ----------- -Represents a texture sampler as defined by the base GLTF spec. Texture samplers in GLTF specify how to sample data from the texture's base image, when rendering the texture on an object. +Represents a texture sampler as defined by the base glTF spec. Texture samplers in glTF specify how to sample data from the texture's base image, when rendering the texture on an object. .. rst-class:: classref-introduction-group diff --git a/classes/class_httpclient.rst b/classes/class_httpclient.rst index e91837ea0dd..45e2fe61cd0 100644 --- a/classes/class_httpclient.rst +++ b/classes/class_httpclient.rst @@ -930,9 +930,7 @@ Returns the response headers. :ref:`Dictionary` **get_response_headers_as_dictionary**\ (\ ) :ref:`๐Ÿ”—` -Returns all response headers as a Dictionary of structure ``{ "key": "value1; value2" }`` where the case-sensitivity of the keys and values is kept like the server delivers it. A value is a simple String, this string can have more than one value where "; " is used as separator. - -\ **Example:**\ +Returns all response headers as a :ref:`Dictionary`. Each entry is composed by the header name, and a :ref:`String` containing the values separated by ``"; "``. The casing is kept the same as the headers were received. :: diff --git a/classes/class_image.rst b/classes/class_image.rst index 4e594fca6d5..03479cc4f22 100644 --- a/classes/class_image.rst +++ b/classes/class_image.rst @@ -137,6 +137,8 @@ Methods +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_invisible`\ (\ ) |const| | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`linear_to_srgb`\ (\ ) | + +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`load`\ (\ path\: :ref:`String`\ ) | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`load_bmp_from_buffer`\ (\ buffer\: :ref:`PackedByteArray`\ ) | @@ -1382,6 +1384,18 @@ Returns ``true`` if all the image's pixels have an alpha value of 0. Returns ``f ---- +.. _class_Image_method_linear_to_srgb: + +.. rst-class:: classref-method + +|void| **linear_to_srgb**\ (\ ) :ref:`๐Ÿ”—` + +Converts the entire image from the linear colorspace to the sRGB colorspace. Only works on images with :ref:`FORMAT_RGB8` or :ref:`FORMAT_RGBA8` formats. + +.. rst-class:: classref-item-separator + +---- + .. _class_Image_method_load: .. rst-class:: classref-method @@ -1734,8 +1748,6 @@ Overwrites data of an existing **Image**. Non-static equivalent of :ref:`create_ Sets the :ref:`Color` of the pixel at ``(x, y)`` to ``color``. -\ **Example:**\ - .. tabs:: @@ -1771,8 +1783,6 @@ This is the same as :ref:`set_pixelv`, but with a Sets the :ref:`Color` of the pixel at ``point`` to ``color``. -\ **Example:**\ - .. tabs:: @@ -1818,7 +1828,7 @@ Shrinks the image by a factor of 2 on each axis (this divides the pixel count by |void| **srgb_to_linear**\ (\ ) :ref:`๐Ÿ”—` -Converts the raw data from the sRGB colorspace to a linear scale. +Converts the raw data from the sRGB colorspace to a linear scale. Only works on images with :ref:`FORMAT_RGB8` or :ref:`FORMAT_RGBA8` formats. .. |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.)` diff --git a/classes/class_importermesh.rst b/classes/class_importermesh.rst index 45246548813..fbb9070e815 100644 --- a/classes/class_importermesh.rst +++ b/classes/class_importermesh.rst @@ -25,18 +25,6 @@ Unlike its runtime counterpart, **ImporterMesh** contains mesh data before vario .. rst-class:: classref-reftable-group -Properties ----------- - -.. table:: - :widths: auto - - +-------------------------------------+-------------------------------------------------+------------------------+ - | :ref:`Dictionary` | :ref:`_data` | ``{ "surfaces": [] }`` | - +-------------------------------------+-------------------------------------------------+------------------------+ - -.. rst-class:: classref-reftable-group - Methods ------- @@ -97,25 +85,6 @@ Methods .. rst-class:: classref-descriptions-group -Property Descriptions ---------------------- - -.. _class_ImporterMesh_property__data: - -.. rst-class:: classref-property - -:ref:`Dictionary` **_data** = ``{ "surfaces": [] }`` :ref:`๐Ÿ”—` - -.. container:: contribute - - There is currently no description for this property. Please help us by :ref:`contributing one `! - -.. rst-class:: classref-section-separator - ----- - -.. rst-class:: classref-descriptions-group - Method Descriptions ------------------- diff --git a/classes/class_input.rst b/classes/class_input.rst index bae03e0b96f..cf5c2f9321d 100644 --- a/classes/class_input.rst +++ b/classes/class_input.rst @@ -672,6 +672,8 @@ On Linux: \ ``steam_input_index``: The Steam Input gamepad index, if the device is not a Steam Input device this key won't be present. +\ **Note:** The returned dictionary is always empty on Web, iOS, Android, and macOS. + .. rst-class:: classref-item-separator ---- @@ -934,8 +936,6 @@ Returns ``true`` if you are pressing the key in the physical location on the 101 Feeds an :ref:`InputEvent` to the game. Can be used to artificially trigger input events from code. Also generates :ref:`Node._input` calls. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_inputeventmousemotion.rst b/classes/class_inputeventmousemotion.rst index c2a16ef66fb..f96c1679e06 100644 --- a/classes/class_inputeventmousemotion.rst +++ b/classes/class_inputeventmousemotion.rst @@ -23,6 +23,8 @@ Stores information about a mouse or a pen motion. This includes relative positio \ **Note:** By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set :ref:`Input.use_accumulated_input` to ``false`` to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing `Bresenham's line algorithm `__ as well to avoid visible gaps in lines if the user is moving the mouse quickly. +\ **Note:** This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that ``relative.is_zero_approx()`` is ``false``. + .. rst-class:: classref-introduction-group Tutorials @@ -116,7 +118,7 @@ Represents the pressure the user puts on the pen. Ranges from ``0.0`` to ``1.0`` The mouse position relative to the previous position (position at the last frame). -\ **Note:** Since **InputEventMouseMotion** is only emitted when the mouse moves, the last event won't have a relative position of ``Vector2(0, 0)`` when the user stops moving the mouse. +\ **Note:** Since **InputEventMouseMotion** may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. \ **Note:** :ref:`relative` is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using :ref:`relative` in a script that handles mouse aiming with the :ref:`Input.MOUSE_MODE_CAPTURED` mouse mode. To avoid this, use :ref:`screen_relative` instead. @@ -137,7 +139,9 @@ The mouse position relative to the previous position (position at the last frame The unscaled mouse position relative to the previous position in the coordinate system of the screen (position at the last frame). -\ **Note:** Since **InputEventMouseMotion** is only emitted when the mouse moves, the last event won't have a relative position of ``Vector2(0, 0)`` when the user stops moving the mouse. This coordinate is *not* scaled according to the content scale factor or calls to :ref:`InputEvent.xformed_by`. This should be preferred over :ref:`relative` for mouse aiming when using the :ref:`Input.MOUSE_MODE_CAPTURED` mouse mode, regardless of the project's stretch mode. +\ **Note:** Since **InputEventMouseMotion** may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. + +\ **Note:** This coordinate is *not* scaled according to the content scale factor or calls to :ref:`InputEvent.xformed_by`. This should be preferred over :ref:`relative` for mouse aiming when using the :ref:`Input.MOUSE_MODE_CAPTURED` mouse mode, regardless of the project's stretch mode. .. rst-class:: classref-item-separator diff --git a/classes/class_javaclass.rst b/classes/class_javaclass.rst index ec46c89bd14..5ca861d1a7c 100644 --- a/classes/class_javaclass.rst +++ b/classes/class_javaclass.rst @@ -12,19 +12,76 @@ JavaClass **Inherits:** :ref:`RefCounted` **<** :ref:`Object` -Represents an object from the Java Native Interface. +Represents a class from the Java Native Interface. .. rst-class:: classref-introduction-group Description ----------- -Represents an object from the Java Native Interface. It is returned from :ref:`JavaClassWrapper.wrap`. +Represents a class from the Java Native Interface. It is returned from :ref:`JavaClassWrapper.wrap`. -\ **Note:** This class only works on Android. For any other build, this class does nothing. +\ **Note:** This class only works on Android. On any other platform, this class does nothing. \ **Note:** This class is not to be confused with :ref:`JavaScriptObject`. +.. rst-class:: classref-reftable-group + +Methods +------- + +.. table:: + :widths: auto + + +------------------------------------------------------------------+------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_java_class_name`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------+ + | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`get_java_method_list`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------+ + | :ref:`JavaClass` | :ref:`get_java_parent_class`\ (\ ) |const| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Method Descriptions +------------------- + +.. _class_JavaClass_method_get_java_class_name: + +.. rst-class:: classref-method + +:ref:`String` **get_java_class_name**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the Java class name. + +.. rst-class:: classref-item-separator + +---- + +.. _class_JavaClass_method_get_java_method_list: + +.. rst-class:: classref-method + +:ref:`Array`\[:ref:`Dictionary`\] **get_java_method_list**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the object's Java methods and their signatures as an :ref:`Array` of dictionaries, in the same format as :ref:`Object.get_method_list`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_JavaClass_method_get_java_parent_class: + +.. rst-class:: classref-method + +:ref:`JavaClass` **get_java_parent_class**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns a **JavaClass** representing the Java parent class of this class. + .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` diff --git a/classes/class_javaclasswrapper.rst b/classes/class_javaclasswrapper.rst index de7c0c2146c..dd228632d4b 100644 --- a/classes/class_javaclasswrapper.rst +++ b/classes/class_javaclasswrapper.rst @@ -23,6 +23,16 @@ The JavaClassWrapper singleton provides a way for the Godot application to send \ **Note:** This singleton is only available in Android builds. +:: + + var LocalDateTime = JavaClassWrapper.wrap("java.time.LocalDateTime") + var DateTimeFormatter = JavaClassWrapper.wrap("java.time.format.DateTimeFormatter") + + var datetime = LocalDateTime.now() + var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss") + + print(datetime.format(formatter)) + .. rst-class:: classref-reftable-group Methods diff --git a/classes/class_javaobject.rst b/classes/class_javaobject.rst new file mode 100644 index 00000000000..5a03e96075c --- /dev/null +++ b/classes/class_javaobject.rst @@ -0,0 +1,64 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/JavaObject.xml. + +.. _class_JavaObject: + +JavaObject +========== + +**Inherits:** :ref:`RefCounted` **<** :ref:`Object` + +Represents an object from the Java Native Interface. + +.. rst-class:: classref-introduction-group + +Description +----------- + +Represents an object from the Java Native Interface. It can be returned from Java methods called on :ref:`JavaClass` or other **JavaObject**\ s. See :ref:`JavaClassWrapper` for an example. + +\ **Note:** This class only works on Android. On any other platform, this class does nothing. + +\ **Note:** This class is not to be confused with :ref:`JavaScriptObject`. + +.. rst-class:: classref-reftable-group + +Methods +------- + +.. table:: + :widths: auto + + +-----------------------------------+-----------------------------------------------------------------------------+ + | :ref:`JavaClass` | :ref:`get_java_class`\ (\ ) |const| | + +-----------------------------------+-----------------------------------------------------------------------------+ + +.. rst-class:: classref-section-separator + +---- + +.. rst-class:: classref-descriptions-group + +Method Descriptions +------------------- + +.. _class_JavaObject_method_get_java_class: + +.. rst-class:: classref-method + +:ref:`JavaClass` **get_java_class**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the :ref:`JavaClass` that this object is an instance of. + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_javascriptobject.rst b/classes/class_javascriptobject.rst index f42c6517c1d..87addd31d18 100644 --- a/classes/class_javascriptobject.rst +++ b/classes/class_javascriptobject.rst @@ -21,8 +21,6 @@ Description JavaScriptObject is used to interact with JavaScript objects retrieved or created via :ref:`JavaScriptBridge.get_interface`, :ref:`JavaScriptBridge.create_object`, or :ref:`JavaScriptBridge.create_callback`. -\ **Example:**\ - :: extends Node diff --git a/classes/class_json.rst b/classes/class_json.rst index 40b167e48e6..b741881af36 100644 --- a/classes/class_json.rst +++ b/classes/class_json.rst @@ -23,9 +23,7 @@ The **JSON** class enables all data types to be converted to and from a JSON str \ :ref:`stringify` is used to convert any data type into a JSON string. -\ :ref:`parse` is used to convert any existing JSON data into a :ref:`Variant` that can be used within Godot. If successfully parsed, use :ref:`data` to retrieve the :ref:`Variant`, and use ``typeof`` to check if the Variant's type is what you expect. JSON Objects are converted into a :ref:`Dictionary`, but JSON data can be used to store :ref:`Array`\ s, numbers, :ref:`String`\ s and even just a boolean. - -\ **Example**\ +\ :ref:`parse` is used to convert any existing JSON data into a :ref:`Variant` that can be used within Godot. If successfully parsed, use :ref:`data` to retrieve the :ref:`Variant`, and use :ref:`@GlobalScope.typeof` to check if the Variant's type is what you expect. JSON Objects are converted into a :ref:`Dictionary`, but JSON data can be used to store :ref:`Array`\ s, numbers, :ref:`String`\ s and even just a boolean. :: @@ -59,7 +57,7 @@ Alternatively, you can parse strings using the static :ref:`parse_string` which is generally more lax than the JSON specification. -- Certain errors, such as invalid Unicode sequences, do not cause a parser error. Instead, the string is cleansed and an error is logged to the console. +- Certain errors, such as invalid Unicode sequences, do not cause a parser error. Instead, the string is cleaned up and an error is logged to the console. .. rst-class:: classref-reftable-group @@ -81,6 +79,8 @@ Methods .. table:: :widths: auto + +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`from_native`\ (\ variant\: :ref:`Variant`, allow_classes\: :ref:`bool` = false, allow_scripts\: :ref:`bool` = false\ ) |static| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_error_line`\ (\ ) |const| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -94,6 +94,8 @@ Methods +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`stringify`\ (\ data\: :ref:`Variant`, indent\: :ref:`String` = "", sort_keys\: :ref:`bool` = true, full_precision\: :ref:`bool` = false\ ) |static| | +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`to_native`\ (\ json\: :ref:`Variant`, allow_classes\: :ref:`bool` = false, allow_scripts\: :ref:`bool` = false\ ) |static| | + +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -126,6 +128,20 @@ Contains the parsed JSON data in :ref:`Variant` form. Method Descriptions ------------------- +.. _class_JSON_method_from_native: + +.. rst-class:: classref-method + +:ref:`Variant` **from_native**\ (\ variant\: :ref:`Variant`, allow_classes\: :ref:`bool` = false, allow_scripts\: :ref:`bool` = false\ ) |static| :ref:`๐Ÿ”—` + +Converts a native engine type to a JSON-compliant dictionary. + +By default, classes and scripts are ignored for security reasons, unless ``allow_classes`` or ``allow_scripts`` are specified. + +.. rst-class:: classref-item-separator + +---- + .. _class_JSON_method_get_error_line: .. rst-class:: classref-method @@ -245,6 +261,20 @@ The ``indent`` parameter controls if and how something is indented; its contents ...] } +.. rst-class:: classref-item-separator + +---- + +.. _class_JSON_method_to_native: + +.. rst-class:: classref-method + +:ref:`Variant` **to_native**\ (\ json\: :ref:`Variant`, allow_classes\: :ref:`bool` = false, allow_scripts\: :ref:`bool` = false\ ) |static| :ref:`๐Ÿ”—` + +Converts a JSON-compliant dictionary that was created with :ref:`from_native` back to native engine types. + +By default, classes and scripts are ignored for security reasons, unless ``allow_classes`` or ``allow_scripts`` are specified. + .. |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.)` diff --git a/classes/class_label.rst b/classes/class_label.rst index 909c66b28b5..cfc6079901c 100644 --- a/classes/class_label.rst +++ b/classes/class_label.rst @@ -225,7 +225,7 @@ Controls the text's horizontal alignment. Supports left, center, right, and fill - |void| **set_justification_flags**\ (\ value\: |bitfield|\[:ref:`JustificationFlag`\]\ ) - |bitfield|\[:ref:`JustificationFlag`\] **get_justification_flags**\ (\ ) -Line fill alignment rules. For more info see :ref:`JustificationFlag`. +Line fill alignment rules. See :ref:`JustificationFlag` for more information. .. rst-class:: classref-item-separator diff --git a/classes/class_label3d.rst b/classes/class_label3d.rst index 594fc95ac52..7fe374de68a 100644 --- a/classes/class_label3d.rst +++ b/classes/class_label3d.rst @@ -454,7 +454,7 @@ Controls the text's horizontal alignment. Supports left, center, right, and fill - |void| **set_justification_flags**\ (\ value\: |bitfield|\[:ref:`JustificationFlag`\]\ ) - |bitfield|\[:ref:`JustificationFlag`\] **get_justification_flags**\ (\ ) -Line fill alignment rules. For more info see :ref:`JustificationFlag`. +Line fill alignment rules. See :ref:`JustificationFlag` for more information. .. rst-class:: classref-item-separator diff --git a/classes/class_lineedit.rst b/classes/class_lineedit.rst index a084669c4cc..7dde88ddf5a 100644 --- a/classes/class_lineedit.rst +++ b/classes/class_lineedit.rst @@ -887,9 +887,9 @@ Language code used for line-breaking and text shaping algorithms. If left empty, Maximum number of characters that can be entered inside the **LineEdit**. If ``0``, there is no limit. -When a limit is defined, characters that would exceed :ref:`max_length` are truncated. This happens both for existing :ref:`text` contents when setting the max length, or for new text inserted in the **LineEdit**, including pasting. If any input text is truncated, the :ref:`text_change_rejected` signal is emitted with the truncated substring as parameter. +When a limit is defined, characters that would exceed :ref:`max_length` are truncated. This happens both for existing :ref:`text` contents when setting the max length, or for new text inserted in the **LineEdit**, including pasting. -\ **Example:**\ +If any input text is truncated, the :ref:`text_change_rejected` signal is emitted with the truncated substring as parameter: .. tabs:: diff --git a/classes/class_linkbutton.rst b/classes/class_linkbutton.rst index 6a6f3fca4d4..6fd24d30a39 100644 --- a/classes/class_linkbutton.rst +++ b/classes/class_linkbutton.rst @@ -248,8 +248,6 @@ The underline mode to use for the text. See :ref:`UnderlineMode`__ for this **LinkButton**. If set to a valid URI, pressing the button opens the URI using the operating system's default program for the protocol (via :ref:`OS.shell_open`). HTTP and HTTPS URLs open the default web browser. -\ **Examples:**\ - .. tabs:: diff --git a/classes/class_menubar.rst b/classes/class_menubar.rst index 24c7825ed93..7d65e6fd3b8 100644 --- a/classes/class_menubar.rst +++ b/classes/class_menubar.rst @@ -12,14 +12,14 @@ MenuBar **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` -A horizontal menu bar that creates a :ref:`MenuButton` for each :ref:`PopupMenu` child. +A horizontal menu bar that creates a menu for each :ref:`PopupMenu` child. .. rst-class:: classref-introduction-group Description ----------- -A horizontal menu bar that creates a :ref:`MenuButton` for each :ref:`PopupMenu` child. New items are created by adding :ref:`PopupMenu`\ s to this node. +A horizontal menu bar that creates a menu for each :ref:`PopupMenu` child. New items are created by adding :ref:`PopupMenu`\ s to this node. .. rst-class:: classref-reftable-group @@ -185,6 +185,10 @@ Language code used for line-breaking and text shaping algorithms, if left empty If ``true``, **MenuBar** will use system global menu when supported. +\ **Note:** If ``true`` and global menu is supported, this node is not displayed, has zero size, and all its child nodes except :ref:`PopupMenu`\ s are inaccessible. + +\ **Note:** This property overrides the value of the :ref:`PopupMenu.prefer_native_menu` property of the child nodes. + .. rst-class:: classref-item-separator ---- @@ -200,7 +204,7 @@ If ``true``, **MenuBar** will use system global menu when supported. - |void| **set_start_index**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_start_index**\ (\ ) -Position in the global menu to insert first **MenuBar** item at. +Position order in the global menu to insert **MenuBar** items at. All menu items in the **MenuBar** are always inserted as a continuous range. Menus with lower :ref:`start_index` are inserted first. Menus with :ref:`start_index` equal to ``-1`` are inserted last. .. rst-class:: classref-item-separator diff --git a/classes/class_meshdatatool.rst b/classes/class_meshdatatool.rst index befab3f9868..40f22a67cf5 100644 --- a/classes/class_meshdatatool.rst +++ b/classes/class_meshdatatool.rst @@ -320,9 +320,7 @@ Calculates and returns the face normal of the given face. Returns the specified vertex index of the given face. -Vertex argument must be either 0, 1, or 2 because faces contain three vertices. - -\ **Example:**\ +\ ``vertex`` must be either ``0``, ``1``, or ``2`` because faces contain three vertices. .. tabs:: diff --git a/classes/class_meshinstance3d.rst b/classes/class_meshinstance3d.rst index 604d6978821..26ed979ba97 100644 --- a/classes/class_meshinstance3d.rst +++ b/classes/class_meshinstance3d.rst @@ -63,6 +63,8 @@ Methods +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ArrayMesh` | :ref:`bake_mesh_from_current_blend_shape_mix`\ (\ existing\: :ref:`ArrayMesh` = null\ ) | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`ArrayMesh` | :ref:`bake_mesh_from_current_skeleton_pose`\ (\ existing\: :ref:`ArrayMesh` = null\ ) | + +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`create_convex_collision`\ (\ clean\: :ref:`bool` = true, simplify\: :ref:`bool` = false\ ) | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`create_debug_tangents`\ (\ ) | @@ -169,6 +171,20 @@ Takes a snapshot from the current :ref:`ArrayMesh` with all ble ---- +.. _class_MeshInstance3D_method_bake_mesh_from_current_skeleton_pose: + +.. rst-class:: classref-method + +:ref:`ArrayMesh` **bake_mesh_from_current_skeleton_pose**\ (\ existing\: :ref:`ArrayMesh` = null\ ) :ref:`๐Ÿ”—` + +Takes a snapshot of the current animated skeleton pose of the skinned mesh and bakes it to the provided ``existing`` mesh. If no ``existing`` mesh is provided a new :ref:`ArrayMesh` is created, baked, and returned. Requires a skeleton with a registered skin to work. Blendshapes are ignored. Mesh surface materials are not copied. + +\ **Performance:** :ref:`Mesh` data needs to be retrieved from the GPU, stalling the :ref:`RenderingServer` in the process. + +.. rst-class:: classref-item-separator + +---- + .. _class_MeshInstance3D_method_create_convex_collision: .. rst-class:: classref-method diff --git a/classes/class_multimesh.rst b/classes/class_multimesh.rst index bfef9e8093f..8cdee6bb9b4 100644 --- a/classes/class_multimesh.rst +++ b/classes/class_multimesh.rst @@ -53,31 +53,33 @@ Properties .. table:: :widths: auto - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`PackedFloat32Array` | :ref:`buffer` | ``PackedFloat32Array()`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`PackedColorArray` | :ref:`color_array` | | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`AABB` | :ref:`custom_aabb` | ``AABB(0, 0, 0, 0, 0, 0)`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`PackedColorArray` | :ref:`custom_data_array` | | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`int` | :ref:`instance_count` | ``0`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`Mesh` | :ref:`mesh` | | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`PackedVector2Array` | :ref:`transform_2d_array` | | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`PackedVector3Array` | :ref:`transform_array` | | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`TransformFormat` | :ref:`transform_format` | ``0`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`bool` | :ref:`use_colors` | ``false`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`bool` | :ref:`use_custom_data` | ``false`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ - | :ref:`int` | :ref:`visible_instance_count` | ``-1`` | - +--------------------------------------------------------+--------------------------------------------------------------------------------+----------------------------+ + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PackedFloat32Array` | :ref:`buffer` | ``PackedFloat32Array()`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PackedColorArray` | :ref:`color_array` | | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`AABB` | :ref:`custom_aabb` | ``AABB(0, 0, 0, 0, 0, 0)`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PackedColorArray` | :ref:`custom_data_array` | | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`int` | :ref:`instance_count` | ``0`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`Mesh` | :ref:`mesh` | | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PhysicsInterpolationQuality` | :ref:`physics_interpolation_quality` | ``0`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PackedVector2Array` | :ref:`transform_2d_array` | | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`PackedVector3Array` | :ref:`transform_array` | | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`TransformFormat` | :ref:`transform_format` | ``0`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`bool` | :ref:`use_colors` | ``false`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`bool` | :ref:`use_custom_data` | ``false`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ + | :ref:`int` | :ref:`visible_instance_count` | ``-1`` | + +--------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+----------------------------+ .. rst-class:: classref-reftable-group @@ -87,25 +89,29 @@ Methods .. table:: :widths: auto - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`AABB` | :ref:`get_aabb`\ (\ ) |const| | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Color` | :ref:`get_instance_color`\ (\ instance\: :ref:`int`\ ) |const| | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Color` | :ref:`get_instance_custom_data`\ (\ instance\: :ref:`int`\ ) |const| | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Transform3D` | :ref:`get_instance_transform`\ (\ instance\: :ref:`int`\ ) |const| | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Transform2D` | :ref:`get_instance_transform_2d`\ (\ instance\: :ref:`int`\ ) |const| | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_instance_color`\ (\ instance\: :ref:`int`, color\: :ref:`Color`\ ) | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_instance_custom_data`\ (\ instance\: :ref:`int`, custom_data\: :ref:`Color`\ ) | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_instance_transform`\ (\ instance\: :ref:`int`, transform\: :ref:`Transform3D`\ ) | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_instance_transform_2d`\ (\ instance\: :ref:`int`, transform\: :ref:`Transform2D`\ ) | - +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`AABB` | :ref:`get_aabb`\ (\ ) |const| | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Color` | :ref:`get_instance_color`\ (\ instance\: :ref:`int`\ ) |const| | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Color` | :ref:`get_instance_custom_data`\ (\ instance\: :ref:`int`\ ) |const| | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Transform3D` | :ref:`get_instance_transform`\ (\ instance\: :ref:`int`\ ) |const| | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Transform2D` | :ref:`get_instance_transform_2d`\ (\ instance\: :ref:`int`\ ) |const| | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`reset_instance_physics_interpolation`\ (\ instance\: :ref:`int`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_buffer_interpolated`\ (\ buffer_curr\: :ref:`PackedFloat32Array`, buffer_prev\: :ref:`PackedFloat32Array`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_instance_color`\ (\ instance\: :ref:`int`, color\: :ref:`Color`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_instance_custom_data`\ (\ instance\: :ref:`int`, custom_data\: :ref:`Color`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_instance_transform`\ (\ instance\: :ref:`int`, transform\: :ref:`Transform3D`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_instance_transform_2d`\ (\ instance\: :ref:`int`, transform\: :ref:`Transform2D`\ ) | + +---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -138,6 +144,32 @@ Use this when using 2D transforms. Use this when using 3D transforms. +.. rst-class:: classref-item-separator + +---- + +.. _enum_MultiMesh_PhysicsInterpolationQuality: + +.. rst-class:: classref-enumeration + +enum **PhysicsInterpolationQuality**: :ref:`๐Ÿ”—` + +.. _class_MultiMesh_constant_INTERP_QUALITY_FAST: + +.. rst-class:: classref-enumeration-constant + +:ref:`PhysicsInterpolationQuality` **INTERP_QUALITY_FAST** = ``0`` + +Always interpolate using Basis lerping, which can produce warping artifacts in some situations. + +.. _class_MultiMesh_constant_INTERP_QUALITY_HIGH: + +.. rst-class:: classref-enumeration-constant + +:ref:`PhysicsInterpolationQuality` **INTERP_QUALITY_HIGH** = ``1`` + +Attempt to interpolate using Basis slerping (spherical linear interpolation) where possible, otherwise fall back to lerping. + .. rst-class:: classref-section-separator ---- @@ -162,6 +194,8 @@ Property Descriptions There is currently no description for this property. Please help us by :ref:`contributing one `! +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedFloat32Array` for more details. + .. rst-class:: classref-item-separator ---- @@ -253,6 +287,27 @@ The looks of the individual instances can be modified using :ref:`set_instance_c ---- +.. _class_MultiMesh_property_physics_interpolation_quality: + +.. rst-class:: classref-property + +:ref:`PhysicsInterpolationQuality` **physics_interpolation_quality** = ``0`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_physics_interpolation_quality**\ (\ value\: :ref:`PhysicsInterpolationQuality`\ ) +- :ref:`PhysicsInterpolationQuality` **get_physics_interpolation_quality**\ (\ ) + +Choose whether to use an interpolation method that favors speed or quality. + +When using low physics tick rates (typically below 20) or high rates of object rotation, you may get better results from the high quality setting. + +\ **Note:** Fast quality does not equate to low quality. Except in the special cases mentioned above, the quality should be comparable to high quality. + +.. rst-class:: classref-item-separator + +---- + .. _class_MultiMesh_property_transform_2d_array: .. rst-class:: classref-property @@ -418,6 +473,36 @@ Returns the :ref:`Transform2D` of a specific instance. ---- +.. _class_MultiMesh_method_reset_instance_physics_interpolation: + +.. rst-class:: classref-method + +|void| **reset_instance_physics_interpolation**\ (\ instance\: :ref:`int`\ ) :ref:`๐Ÿ”—` + +When using *physics interpolation*, this function allows you to prevent interpolation on an instance in the current physics tick. + +This allows you to move instances instantaneously, and should usually be used when initially placing an instance such as a bullet to prevent graphical glitches. + +.. rst-class:: classref-item-separator + +---- + +.. _class_MultiMesh_method_set_buffer_interpolated: + +.. rst-class:: classref-method + +|void| **set_buffer_interpolated**\ (\ buffer_curr\: :ref:`PackedFloat32Array`, buffer_prev\: :ref:`PackedFloat32Array`\ ) :ref:`๐Ÿ”—` + +An alternative to setting the :ref:`buffer` property, which can be used with *physics interpolation*. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame. + +This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems. + +When the order of instances is coherent, the simpler alternative of setting :ref:`buffer` can still be used with interpolation. + +.. rst-class:: classref-item-separator + +---- + .. _class_MultiMesh_method_set_instance_color: .. rst-class:: classref-method diff --git a/classes/class_multiplayerspawner.rst b/classes/class_multiplayerspawner.rst index 557d860fb72..d2d78757a08 100644 --- a/classes/class_multiplayerspawner.rst +++ b/classes/class_multiplayerspawner.rst @@ -113,7 +113,7 @@ Property Descriptions - |void| **set_spawn_function**\ (\ value\: :ref:`Callable`\ ) - :ref:`Callable` **get_spawn_function**\ (\ ) -Method called on all peers when for every custom :ref:`spawn` requested by the authority. Will receive the ``data`` parameter, and should return a :ref:`Node` that is not in the scene tree. +Method called on all peers when a custom :ref:`spawn` is requested by the authority. Will receive the ``data`` parameter, and should return a :ref:`Node` that is not in the scene tree. \ **Note:** The returned node should **not** be added to the scene with :ref:`Node.add_child`. This is done automatically. @@ -132,7 +132,7 @@ Method called on all peers when for every custom :ref:`spawn`\ ) - :ref:`int` **get_spawn_limit**\ (\ ) -Maximum nodes that is allowed to be spawned by this spawner. Includes both spawnable scenes and custom spawns. +Maximum number of nodes allowed to be spawned by this spawner. Includes both spawnable scenes and custom spawns. When set to ``0`` (the default), there is no limit. diff --git a/classes/class_navigationlink2d.rst b/classes/class_navigationlink2d.rst index ee524d16615..ee45e15a15b 100644 --- a/classes/class_navigationlink2d.rst +++ b/classes/class_navigationlink2d.rst @@ -69,6 +69,8 @@ Methods +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_navigation_layer_value`\ (\ layer_number\: :ref:`int`\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`RID` | :ref:`get_navigation_map`\ (\ ) |const| | + +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`get_rid`\ (\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_global_end_position`\ (\ position\: :ref:`Vector2`\ ) | @@ -77,6 +79,8 @@ Methods +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_navigation_layer_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_navigation_map`\ (\ navigation_map\: :ref:`RID`\ ) | + +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -255,6 +259,18 @@ Returns whether or not the specified layer of the :ref:`navigation_layers` **get_navigation_map**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the current navigation map :ref:`RID` used by this link. + +.. rst-class:: classref-item-separator + +---- + .. _class_NavigationLink2D_method_get_rid: .. rst-class:: classref-method @@ -299,6 +315,18 @@ Sets the :ref:`start_position` t Based on ``value``, enables or disables the specified layer in the :ref:`navigation_layers` bitmask, given a ``layer_number`` between 1 and 32. +.. rst-class:: classref-item-separator + +---- + +.. _class_NavigationLink2D_method_set_navigation_map: + +.. rst-class:: classref-method + +|void| **set_navigation_map**\ (\ navigation_map\: :ref:`RID`\ ) :ref:`๐Ÿ”—` + +Sets the :ref:`RID` of the navigation map this link should use. By default the link will automatically join the :ref:`World2D` default navigation map so this function is only required to override the default map. + .. |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.)` diff --git a/classes/class_navigationlink3d.rst b/classes/class_navigationlink3d.rst index 11a90a70ecd..698f0dff394 100644 --- a/classes/class_navigationlink3d.rst +++ b/classes/class_navigationlink3d.rst @@ -69,6 +69,8 @@ Methods +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_navigation_layer_value`\ (\ layer_number\: :ref:`int`\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`RID` | :ref:`get_navigation_map`\ (\ ) |const| | + +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`get_rid`\ (\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_global_end_position`\ (\ position\: :ref:`Vector3`\ ) | @@ -77,6 +79,8 @@ Methods +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_navigation_layer_value`\ (\ layer_number\: :ref:`int`, value\: :ref:`bool`\ ) | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_navigation_map`\ (\ navigation_map\: :ref:`RID`\ ) | + +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -255,6 +259,18 @@ Returns whether or not the specified layer of the :ref:`navigation_layers` **get_navigation_map**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the current navigation map :ref:`RID` used by this link. + +.. rst-class:: classref-item-separator + +---- + .. _class_NavigationLink3D_method_get_rid: .. rst-class:: classref-method @@ -299,6 +315,18 @@ Sets the :ref:`start_position` t Based on ``value``, enables or disables the specified layer in the :ref:`navigation_layers` bitmask, given a ``layer_number`` between 1 and 32. +.. rst-class:: classref-item-separator + +---- + +.. _class_NavigationLink3D_method_set_navigation_map: + +.. rst-class:: classref-method + +|void| **set_navigation_map**\ (\ navigation_map\: :ref:`RID`\ ) :ref:`๐Ÿ”—` + +Sets the :ref:`RID` of the navigation map this link should use. By default the link will automatically join the :ref:`World3D` default navigation map so this function is only required to override the default map. + .. |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.)` diff --git a/classes/class_navigationmesh.rst b/classes/class_navigationmesh.rst index 1562e6021af..7e37ec9c77a 100644 --- a/classes/class_navigationmesh.rst +++ b/classes/class_navigationmesh.rst @@ -75,7 +75,7 @@ Properties +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------------+ | :ref:`int` | :ref:`geometry_collision_mask` | ``4294967295`` | +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------------+ - | :ref:`ParsedGeometryType` | :ref:`geometry_parsed_geometry_type` | ``0`` | + | :ref:`ParsedGeometryType` | :ref:`geometry_parsed_geometry_type` | ``2`` | +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------------+ | :ref:`SourceGeometryMode` | :ref:`geometry_source_geometry_mode` | ``0`` | +---------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------+-------------------------------------+ @@ -567,7 +567,7 @@ Only used when :ref:`geometry_parsed_geometry_type` **geometry_parsed_geometry_type** = ``0`` :ref:`๐Ÿ”—` +:ref:`ParsedGeometryType` **geometry_parsed_geometry_type** = ``2`` :ref:`๐Ÿ”—` .. rst-class:: classref-property-setget diff --git a/classes/class_navigationmeshsourcegeometrydata2d.rst b/classes/class_navigationmeshsourcegeometrydata2d.rst index 557a839f4c5..cb2bb11b82e 100644 --- a/classes/class_navigationmeshsourcegeometrydata2d.rst +++ b/classes/class_navigationmeshsourcegeometrydata2d.rst @@ -46,6 +46,8 @@ Methods +----------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_projected_obstructions`\ (\ ) | +----------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Rect2` | :ref:`get_bounds`\ (\ ) | + +----------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`PackedVector2Array`\] | :ref:`get_obstruction_outlines`\ (\ ) |const| | +----------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_projected_obstructions`\ (\ ) |const| | @@ -156,6 +158,18 @@ Clears all projected obstructions. ---- +.. _class_NavigationMeshSourceGeometryData2D_method_get_bounds: + +.. rst-class:: classref-method + +:ref:`Rect2` **get_bounds**\ (\ ) :ref:`๐Ÿ”—` + +Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + +.. rst-class:: classref-item-separator + +---- + .. _class_NavigationMeshSourceGeometryData2D_method_get_obstruction_outlines: .. rst-class:: classref-method diff --git a/classes/class_navigationmeshsourcegeometrydata3d.rst b/classes/class_navigationmeshsourcegeometrydata3d.rst index 1543fe5205e..65a1c0f99d6 100644 --- a/classes/class_navigationmeshsourcegeometrydata3d.rst +++ b/classes/class_navigationmeshsourcegeometrydata3d.rst @@ -46,6 +46,8 @@ Methods +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_projected_obstructions`\ (\ ) | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`AABB` | :ref:`get_bounds`\ (\ ) | + +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedInt32Array` | :ref:`get_indices`\ (\ ) |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_projected_obstructions`\ (\ ) |const| | @@ -156,6 +158,18 @@ Clears all projected obstructions. ---- +.. _class_NavigationMeshSourceGeometryData3D_method_get_bounds: + +.. rst-class:: classref-method + +:ref:`AABB` **get_bounds**\ (\ ) :ref:`๐Ÿ”—` + +Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + +.. rst-class:: classref-item-separator + +---- + .. _class_NavigationMeshSourceGeometryData3D_method_get_indices: .. rst-class:: classref-method diff --git a/classes/class_navigationpolygon.rst b/classes/class_navigationpolygon.rst index b55607d9068..8b2eecc205f 100644 --- a/classes/class_navigationpolygon.rst +++ b/classes/class_navigationpolygon.rst @@ -88,25 +88,27 @@ Properties .. table:: :widths: auto - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`float` | :ref:`agent_radius` | ``10.0`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`Rect2` | :ref:`baking_rect` | ``Rect2(0, 0, 0, 0)`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`Vector2` | :ref:`baking_rect_offset` | ``Vector2(0, 0)`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`float` | :ref:`border_size` | ``0.0`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`float` | :ref:`cell_size` | ``1.0`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`int` | :ref:`parsed_collision_mask` | ``4294967295`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`ParsedGeometryType` | :ref:`parsed_geometry_type` | ``2`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`StringName` | :ref:`source_geometry_group_name` | ``&"navigation_polygon_source_geometry_group"`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ - | :ref:`SourceGeometryMode` | :ref:`source_geometry_mode` | ``0`` | - +----------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`float` | :ref:`agent_radius` | ``10.0`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`Rect2` | :ref:`baking_rect` | ``Rect2(0, 0, 0, 0)`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`Vector2` | :ref:`baking_rect_offset` | ``Vector2(0, 0)`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`float` | :ref:`border_size` | ``0.0`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`float` | :ref:`cell_size` | ``1.0`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`int` | :ref:`parsed_collision_mask` | ``4294967295`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`ParsedGeometryType` | :ref:`parsed_geometry_type` | ``2`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`SamplePartitionType` | :ref:`sample_partition_type` | ``0`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`StringName` | :ref:`source_geometry_group_name` | ``&"navigation_polygon_source_geometry_group"`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ + | :ref:`SourceGeometryMode` | :ref:`source_geometry_mode` | ``0`` | + +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+-------------------------------------------------+ .. rst-class:: classref-reftable-group @@ -163,6 +165,40 @@ Methods Enumerations ------------ +.. _enum_NavigationPolygon_SamplePartitionType: + +.. rst-class:: classref-enumeration + +enum **SamplePartitionType**: :ref:`๐Ÿ”—` + +.. _class_NavigationPolygon_constant_SAMPLE_PARTITION_CONVEX_PARTITION: + +.. rst-class:: classref-enumeration-constant + +:ref:`SamplePartitionType` **SAMPLE_PARTITION_CONVEX_PARTITION** = ``0`` + +Convex partitioning that yields navigation mesh with convex polygons. + +.. _class_NavigationPolygon_constant_SAMPLE_PARTITION_TRIANGULATE: + +.. rst-class:: classref-enumeration-constant + +:ref:`SamplePartitionType` **SAMPLE_PARTITION_TRIANGULATE** = ``1`` + +Triangulation partitioning that yields navigation mesh with triangle polygons. + +.. _class_NavigationPolygon_constant_SAMPLE_PARTITION_MAX: + +.. rst-class:: classref-enumeration-constant + +:ref:`SamplePartitionType` **SAMPLE_PARTITION_MAX** = ``2`` + +Represents the size of the :ref:`SamplePartitionType` enum. + +.. rst-class:: classref-item-separator + +---- + .. _enum_NavigationPolygon_ParsedGeometryType: .. rst-class:: classref-enumeration @@ -377,6 +413,23 @@ Determines which type of nodes will be parsed as geometry. See :ref:`ParsedGeome ---- +.. _class_NavigationPolygon_property_sample_partition_type: + +.. rst-class:: classref-property + +:ref:`SamplePartitionType` **sample_partition_type** = ``0`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_sample_partition_type**\ (\ value\: :ref:`SamplePartitionType`\ ) +- :ref:`SamplePartitionType` **get_sample_partition_type**\ (\ ) + +Partitioning algorithm for creating the navigation mesh polys. See :ref:`SamplePartitionType` for possible values. + +.. rst-class:: classref-item-separator + +---- + .. _class_NavigationPolygon_property_source_geometry_group_name: .. rst-class:: classref-property diff --git a/classes/class_navigationserver3d.rst b/classes/class_navigationserver3d.rst index 370ebd0bf5e..d6462951ddb 100644 --- a/classes/class_navigationserver3d.rst +++ b/classes/class_navigationserver3d.rst @@ -472,6 +472,14 @@ Constant to get the number of navigation mesh polygon edges that are considered Constant to get the number of navigation mesh polygon edges that could not be merged but may be still connected by edge proximity or with links. +.. _class_NavigationServer3D_constant_INFO_OBSTACLE_COUNT: + +.. rst-class:: classref-enumeration-constant + +:ref:`ProcessInfo` **INFO_OBSTACLE_COUNT** = ``9`` + +Constant to get the number of active navigation obstacles. + .. rst-class:: classref-section-separator ---- diff --git a/classes/class_node.rst b/classes/class_node.rst index 318db3705a8..7d01b701387 100644 --- a/classes/class_node.rst +++ b/classes/class_node.rst @@ -1781,7 +1781,7 @@ The Tween will start automatically on the next process frame or physics frame (d :ref:`Node` **duplicate**\ (\ flags\: :ref:`int` = 15\ ) |const| :ref:`๐Ÿ”—` -Duplicates the node, returning a new node with all of its properties, signals and groups copied from the original. The behavior can be tweaked through the ``flags`` (see :ref:`DuplicateFlags`). +Duplicates the node, returning a new node with all of its properties, signals, groups, and children copied from the original. The behavior can be tweaked through the ``flags`` (see :ref:`DuplicateFlags`). \ **Note:** For nodes with a :ref:`Script` attached, if :ref:`Object._init` has been defined with required parameters, the duplicated node will not have a :ref:`Script`. diff --git a/classes/class_node3d.rst b/classes/class_node3d.rst index f8a6153a0cc..2f1eea7f782 100644 --- a/classes/class_node3d.rst +++ b/classes/class_node3d.rst @@ -101,6 +101,8 @@ Methods +--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Node3DGizmo`\] | :ref:`get_gizmos`\ (\ ) |const| | +--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Transform3D` | :ref:`get_global_transform_interpolated`\ (\ ) | + +--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Node3D` | :ref:`get_parent_node_3d`\ (\ ) |const| | +--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`World3D` | :ref:`get_world_3d`\ (\ ) |const| | @@ -648,6 +650,22 @@ Returns all the gizmos attached to this **Node3D**. ---- +.. _class_Node3D_method_get_global_transform_interpolated: + +.. rst-class:: classref-method + +:ref:`Transform3D` **get_global_transform_interpolated**\ (\ ) :ref:`๐Ÿ”—` + +When using physics interpolation, there will be circumstances in which you want to know the interpolated (displayed) transform of a node rather than the standard transform (which may only be accurate to the most recent physics tick). + +This is particularly important for frame-based operations that take place in :ref:`Node._process`, rather than :ref:`Node._physics_process`. Examples include :ref:`Camera3D`\ s focusing on a node, or finding where to fire lasers from on a frame rather than physics tick. + +\ **Note:** This function creates an interpolation pump on the **Node3D** the first time it is called, which can respond to physics interpolation resets. If you get problems with "streaking" when initially following a **Node3D**, be sure to call :ref:`get_global_transform_interpolated` at least once *before* resetting the **Node3D** physics interpolation. + +.. rst-class:: classref-item-separator + +---- + .. _class_Node3D_method_get_parent_node_3d: .. rst-class:: classref-method diff --git a/classes/class_object.rst b/classes/class_object.rst index 9916ba56184..cb05668ae90 100644 --- a/classes/class_object.rst +++ b/classes/class_object.rst @@ -75,6 +75,12 @@ Methods +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_init`\ (\ ) |virtual| | +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`_iter_get`\ (\ iter\: :ref:`Variant`\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_iter_init`\ (\ iter\: :ref:`Array`\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`_iter_next`\ (\ iter\: :ref:`Array`\ ) |virtual| | + +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_notification`\ (\ what\: :ref:`int`\ ) |virtual| | +------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_property_can_revert`\ (\ property\: :ref:`StringName`\ ) |virtual| | @@ -431,7 +437,7 @@ The example below displays a list of numbers shown as words going from ``ZERO`` } } - private List _numbers = new(); + private Godot.Collections.Array _numbers = new(); public override Godot.Collections.Array _GetPropertyList() { @@ -468,7 +474,7 @@ The example below displays a list of numbers shown as words going from ``ZERO`` if (propertyName.StartsWith("number_")) { int index = int.Parse(propertyName.Substring("number_".Length)); - numbers[index] = value.As(); + _numbers[index] = value.As(); return true; } return false; @@ -499,6 +505,73 @@ Called when the object's script is instantiated, oftentimes after the object is ---- +.. _class_Object_private_method__iter_get: + +.. rst-class:: classref-method + +:ref:`Variant` **_iter_get**\ (\ iter\: :ref:`Variant`\ ) |virtual| :ref:`๐Ÿ”—` + +Returns the current iterable value. ``iter`` stores the iteration state, but unlike :ref:`_iter_init` and :ref:`_iter_next` the state is supposed to be read-only, so there is no :ref:`Array` wrapper. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Object_private_method__iter_init: + +.. rst-class:: classref-method + +:ref:`bool` **_iter_init**\ (\ iter\: :ref:`Array`\ ) |virtual| :ref:`๐Ÿ”—` + +Initializes the iterator. ``iter`` stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns ``true`` so long as the iterator has not reached the end. + +Example: + +:: + + class MyRange: + var _from + var _to + + func _init(from, to): + assert(from <= to) + _from = from + _to = to + + func _iter_init(iter): + iter[0] = _from + return iter[0] < _to + + func _iter_next(iter): + iter[0] += 1 + return iter[0] < _to + + func _iter_get(iter): + return iter + + func _ready(): + var my_range = MyRange.new(2, 5) + for x in my_range: + print(x) # Prints 2, 3, 4. + +\ **Note:** Alternatively, you can ignore ``iter`` and use the object's state instead, see `online docs <../tutorials/scripting/gdscript/gdscript_advanced.html#custom-iterators>`__ for an example. Note that in this case you will not be able to reuse the same iterator instance in nested loops. Also, make sure you reset the iterator state in this method if you want to reuse the same instance multiple times. + +.. rst-class:: classref-item-separator + +---- + +.. _class_Object_private_method__iter_next: + +.. rst-class:: classref-method + +:ref:`bool` **_iter_next**\ (\ iter\: :ref:`Array`\ ) |virtual| :ref:`๐Ÿ”—` + +Moves the iterator to the next iteration. ``iter`` stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns ``true`` so long as the iterator has not reached the end. + +.. rst-class:: classref-item-separator + +---- + .. _class_Object_private_method__notification: .. rst-class:: classref-method diff --git a/classes/class_openxrapiextension.rst b/classes/class_openxrapiextension.rst index 60781adebea..56724f4ddc3 100644 --- a/classes/class_openxrapiextension.rst +++ b/classes/class_openxrapiextension.rst @@ -50,9 +50,13 @@ Methods .. table:: :widths: auto + +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`begin_debug_label_region`\ (\ label_name\: :ref:`String`\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`can_render`\ (\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`end_debug_label_region`\ (\ ) | + +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_error_string`\ (\ result\: :ref:`int`\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_hand_tracker`\ (\ hand_index\: :ref:`int`\ ) | @@ -73,6 +77,8 @@ Methods +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_system_id`\ (\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`insert_debug_label`\ (\ label_name\: :ref:`String`\ ) | + +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`OpenXRAlphaBlendModeSupport` | :ref:`is_environment_blend_mode_alpha_supported`\ (\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_initialized`\ (\ ) | @@ -85,6 +91,8 @@ Methods +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_emulate_environment_blend_mode_alpha_blend`\ (\ enabled\: :ref:`bool`\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_object_name`\ (\ object_type\: :ref:`int`, object_handle\: :ref:`int`, object_name\: :ref:`String`\ ) | + +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform3D` | :ref:`transform_from_pose`\ (\ pose\: ``const void*``\ ) | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`unregister_composition_layer_provider`\ (\ extension\: :ref:`OpenXRExtensionWrapperExtension`\ ) | @@ -140,6 +148,18 @@ Means that :ref:`XRInterface.XR_ENV_BLEND_MODE_ALPHA_BLEND`\ ) :ref:`๐Ÿ”—` + +Begins a new debug label region, this label will be reported in debug messages for any calls following this until :ref:`end_debug_label_region` is called. Debug labels can be stacked. + +.. rst-class:: classref-item-separator + +---- + .. _class_OpenXRAPIExtension_method_can_render: .. rst-class:: classref-method @@ -152,6 +172,18 @@ Returns ``true`` if OpenXR is initialized for rendering with an XR viewport. ---- +.. _class_OpenXRAPIExtension_method_end_debug_label_region: + +.. rst-class:: classref-method + +|void| **end_debug_label_region**\ (\ ) :ref:`๐Ÿ”—` + +Marks the end of a debug label region. Removes the latest debug label region added by calling :ref:`begin_debug_label_region`. + +.. rst-class:: classref-item-separator + +---- + .. _class_OpenXRAPIExtension_method_get_error_string: .. rst-class:: classref-method @@ -274,6 +306,18 @@ Returns the id of the system, which is a `XrSystemId `\ ) :ref:`๐Ÿ”—` + +Inserts a debug label, this label is reported in any debug message resulting from the OpenXR calls that follows, until any of :ref:`begin_debug_label_region`, :ref:`end_debug_label_region`, or :ref:`insert_debug_label` is called. + +.. rst-class:: classref-item-separator + +---- + .. _class_OpenXRAPIExtension_method_is_environment_blend_mode_alpha_supported: .. rst-class:: classref-method @@ -346,6 +390,18 @@ If set to ``true``, an OpenXR extension is loaded which is capable of emulating ---- +.. _class_OpenXRAPIExtension_method_set_object_name: + +.. rst-class:: classref-method + +|void| **set_object_name**\ (\ object_type\: :ref:`int`, object_handle\: :ref:`int`, object_name\: :ref:`String`\ ) :ref:`๐Ÿ”—` + +Set the object name of an OpenXR object, used for debug output. ``object_type`` must be a valid OpenXR ``XrObjectType`` enum and ``object_handle`` must be a valid OpenXR object handle. + +.. rst-class:: classref-item-separator + +---- + .. _class_OpenXRAPIExtension_method_transform_from_pose: .. rst-class:: classref-method diff --git a/classes/class_openxrvisibilitymask.rst b/classes/class_openxrvisibilitymask.rst new file mode 100644 index 00000000000..d74f8e0019e --- /dev/null +++ b/classes/class_openxrvisibilitymask.rst @@ -0,0 +1,33 @@ +:github_url: hide + +.. DO NOT EDIT THIS FILE!!! +.. Generated automatically from Godot engine sources. +.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. +.. XML source: https://github.com/godotengine/godot/tree/master/modules/openxr/doc_classes/OpenXRVisibilityMask.xml. + +.. _class_OpenXRVisibilityMask: + +OpenXRVisibilityMask +==================== + +**Inherits:** :ref:`VisualInstance3D` **<** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` + +Draws a stereo correct visibility mask. + +.. rst-class:: classref-introduction-group + +Description +----------- + +The visibility mask allows us to black out the part of the render result that is invisible due to lens distortion. + +As this is rendered first, it prevents fragments with expensive lighting calculations to be processed as they are discarded through z-checking. + +.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` +.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` +.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` +.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` +.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` +.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` +.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` +.. |void| replace:: :abbr:`void (No return value.)` diff --git a/classes/class_os.rst b/classes/class_os.rst index b26590dfea6..c3376160375 100644 --- a/classes/class_os.rst +++ b/classes/class_os.rst @@ -71,7 +71,7 @@ Methods +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`execute`\ (\ path\: :ref:`String`, arguments\: :ref:`PackedStringArray`, output\: :ref:`Array` = [], read_stderr\: :ref:`bool` = false, open_console\: :ref:`bool` = false\ ) | +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Dictionary` | :ref:`execute_with_pipe`\ (\ path\: :ref:`String`, arguments\: :ref:`PackedStringArray`\ ) | + | :ref:`Dictionary` | :ref:`execute_with_pipe`\ (\ path\: :ref:`String`, arguments\: :ref:`PackedStringArray`, blocking\: :ref:`bool` = true\ ) | +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Key` | :ref:`find_keycode_from_string`\ (\ string\: :ref:`String`\ ) |const| | +---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -231,6 +231,14 @@ The OpenGL 3 rendering driver. It uses OpenGL 3.3 Core Profile on desktop platfo The Direct3D 12 rendering driver. +.. _class_OS_constant_RENDERING_DRIVER_METAL: + +.. rst-class:: classref-enumeration-constant + +:ref:`RenderingDriver` **RENDERING_DRIVER_METAL** = ``3`` + +The Metal rendering driver. + .. rst-class:: classref-item-separator ---- @@ -573,10 +581,12 @@ If you wish to access a shell built-in or execute a composite command, a platfor .. rst-class:: classref-method -:ref:`Dictionary` **execute_with_pipe**\ (\ path\: :ref:`String`, arguments\: :ref:`PackedStringArray`\ ) :ref:`๐Ÿ”—` +:ref:`Dictionary` **execute_with_pipe**\ (\ path\: :ref:`String`, arguments\: :ref:`PackedStringArray`, blocking\: :ref:`bool` = true\ ) :ref:`๐Ÿ”—` Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in ``path`` must exist and be an executable file or macOS ``.app`` bundle. The path is resolved based on the current platform. The ``arguments`` are used in the given order and separated by a space. +If ``blocking`` is ``false``, created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use :ref:`FileAccess.get_error` to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty :ref:`Dictionary`. Otherwise, this method returns a :ref:`Dictionary` with the following keys: - ``"stdio"`` - :ref:`FileAccess` to access the process stdin and stdout pipes (read/write). diff --git a/classes/class_packedscene.rst b/classes/class_packedscene.rst index 497d46b6eb9..7b4c67b1d6b 100644 --- a/classes/class_packedscene.rst +++ b/classes/class_packedscene.rst @@ -110,18 +110,6 @@ Tutorials .. rst-class:: classref-reftable-group -Properties ----------- - -.. table:: - :widths: auto - - +-------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Dictionary` | :ref:`_bundled` | ``{ "conn_count": 0, "conns": PackedInt32Array(), "editable_instances": [], "names": PackedStringArray(), "node_count": 0, "node_paths": [], "nodes": PackedInt32Array(), "variants": [], "version": 3 }`` | - +-------------------------------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -.. rst-class:: classref-reftable-group - Methods ------- @@ -197,25 +185,6 @@ It's similar to :ref:`GEN_EDIT_STATE_MAIN` **_bundled** = ``{ "conn_count": 0, "conns": PackedInt32Array(), "editable_instances": [], "names": PackedStringArray(), "node_count": 0, "node_paths": [], "nodes": PackedInt32Array(), "variants": [], "version": 3 }`` :ref:`๐Ÿ”—` - -A dictionary representation of the scene contents. - -Available keys include "names" and "variants" for resources, "node_count", "nodes", "node_paths" for nodes, "editable_instances" for paths to overridden nodes, "conn_count" and "conns" for signal connections, and "version" for the format style of the PackedScene. - -.. rst-class:: classref-section-separator - ----- - -.. rst-class:: classref-descriptions-group - Method Descriptions ------------------- diff --git a/classes/class_particleprocessmaterial.rst b/classes/class_particleprocessmaterial.rst index 0ea83a1e990..e471fec0b67 100644 --- a/classes/class_particleprocessmaterial.rst +++ b/classes/class_particleprocessmaterial.rst @@ -100,6 +100,8 @@ Properties +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`Vector3` | :ref:`emission_ring_axis` | | +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`float` | :ref:`emission_ring_cone_angle` | | + +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`float` | :ref:`emission_ring_height` | | +--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-------------------------+ | :ref:`float` | :ref:`emission_ring_inner_radius` | | @@ -1284,6 +1286,25 @@ The axis of the ring when using the emitter :ref:`EMISSION_SHAPE_RING` **emission_ring_cone_angle** :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_emission_ring_cone_angle**\ (\ value\: :ref:`float`\ ) +- :ref:`float` **get_emission_ring_cone_angle**\ (\ ) + +The angle of the cone when using the emitter :ref:`EMISSION_SHAPE_RING`. The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + +\ **Note:** Depending on :ref:`emission_ring_height`, the angle may be clamped if the ring's end is reached to form a perfect cone. + +.. rst-class:: classref-item-separator + +---- + .. _class_ParticleProcessMaterial_property_emission_ring_height: .. rst-class:: classref-property diff --git a/classes/class_pathfollow2d.rst b/classes/class_pathfollow2d.rst index 16ecfbdfd0f..3f2e9391654 100644 --- a/classes/class_pathfollow2d.rst +++ b/classes/class_pathfollow2d.rst @@ -141,6 +141,8 @@ The distance along the path, in pixels. Changing this value sets this node's pos The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the progress within the path, as the offset supplied is multiplied internally by the path's length. +It can be set or get only if the **PathFollow2D** is the child of a :ref:`Path2D` which is part of the scene tree, and that this :ref:`Path2D` has a :ref:`Curve2D` with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return ``0.0``. + .. rst-class:: classref-item-separator ---- diff --git a/classes/class_pathfollow3d.rst b/classes/class_pathfollow3d.rst index 1323bd70faf..6aad313fb15 100644 --- a/classes/class_pathfollow3d.rst +++ b/classes/class_pathfollow3d.rst @@ -212,6 +212,8 @@ The distance from the first vertex, measured in 3D units along the path. Changin The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the progress within the path, as the progress supplied is multiplied internally by the path's length. +It can be set or get only if the **PathFollow3D** is the child of a :ref:`Path3D` which is part of the scene tree, and that this :ref:`Path3D` has a :ref:`Curve3D` with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return ``0.0``. + .. rst-class:: classref-item-separator ---- diff --git a/classes/class_performance.rst b/classes/class_performance.rst index 8928c4e8237..f66d110dc04 100644 --- a/classes/class_performance.rst +++ b/classes/class_performance.rst @@ -332,11 +332,19 @@ Number of polygon edges that are considered connected by edge proximity :ref:`Na Number of navigation mesh polygon edges that could not be merged in the :ref:`NavigationServer3D`. The edges still may be connected by edge proximity or with links. +.. _class_Performance_constant_NAVIGATION_OBSTACLE_COUNT: + +.. rst-class:: classref-enumeration-constant + +:ref:`Monitor` **NAVIGATION_OBSTACLE_COUNT** = ``33`` + +Number of active navigation obstacles in the :ref:`NavigationServer3D`. + .. _class_Performance_constant_MONITOR_MAX: .. rst-class:: classref-enumeration-constant -:ref:`Monitor` **MONITOR_MAX** = ``33`` +:ref:`Monitor` **MONITOR_MAX** = ``34`` Represents the size of the :ref:`Monitor` enum. diff --git a/classes/class_polygon2d.rst b/classes/class_polygon2d.rst index 3ccc0cef189..ebcae4cf138 100644 --- a/classes/class_polygon2d.rst +++ b/classes/class_polygon2d.rst @@ -32,8 +32,6 @@ Properties +-----------------------------------------------------+------------------------------------------------------------------------------+--------------------------+ | :ref:`bool` | :ref:`antialiased` | ``false`` | +-----------------------------------------------------+------------------------------------------------------------------------------+--------------------------+ - | :ref:`Array` | :ref:`bones` | ``[]`` | - +-----------------------------------------------------+------------------------------------------------------------------------------+--------------------------+ | :ref:`Color` | :ref:`color` | ``Color(1, 1, 1, 1)`` | +-----------------------------------------------------+------------------------------------------------------------------------------+--------------------------+ | :ref:`int` | :ref:`internal_vertex_count` | ``0`` | @@ -115,18 +113,6 @@ If ``true``, polygon edges will be anti-aliased. ---- -.. _class_Polygon2D_property_bones: - -.. rst-class:: classref-property - -:ref:`Array` **bones** = ``[]`` :ref:`๐Ÿ”—` - -Internal list of :ref:`Bone2D` nodes used by the assigned :ref:`skeleton`. Edited using the Polygon2D editor ("UV" button on the top toolbar). - -.. rst-class:: classref-item-separator - ----- - .. _class_Polygon2D_property_color: .. rst-class:: classref-property diff --git a/classes/class_polygonpathfinder.rst b/classes/class_polygonpathfinder.rst index cf7319af0f3..50a410cad1e 100644 --- a/classes/class_polygonpathfinder.rst +++ b/classes/class_polygonpathfinder.rst @@ -127,9 +127,35 @@ Method Descriptions :ref:`bool` **is_point_inside**\ (\ point\: :ref:`Vector2`\ ) |const| :ref:`๐Ÿ”—` -.. container:: contribute +Returns ``true`` if ``point`` falls inside the polygon area. + + +.. tabs:: + + .. code-tab:: gdscript + + var polygon_path_finder = PolygonPathFinder.new() + var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)] + var connections = [0, 1, 1, 2, 2, 0] + polygon_path_finder.setup(points, connections) + print(polygon_path_finder.is_point_inside(Vector2(0.2, 0.2))) # Prints true + print(polygon_path_finder.is_point_inside(Vector2(1.0, 1.0))) # Prints false + + .. code-tab:: csharp + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints true + GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints false + - There is currently no description for this method. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator @@ -155,9 +181,33 @@ Method Descriptions |void| **setup**\ (\ points\: :ref:`PackedVector2Array`, connections\: :ref:`PackedInt32Array`\ ) :ref:`๐Ÿ”—` -.. container:: contribute +Sets up **PolygonPathFinder** with an array of points that define the vertices of the polygon, and an array of indices that determine the edges of the polygon. + +The length of ``connections`` must be even, returns an error if odd. + + +.. tabs:: + + .. code-tab:: gdscript + + var polygon_path_finder = PolygonPathFinder.new() + var points = [Vector2(0.0, 0.0), Vector2(1.0, 0.0), Vector2(0.0, 1.0)] + var connections = [0, 1, 1, 2, 2, 0] + polygon_path_finder.setup(points, connections) + + .. code-tab:: csharp + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + - There is currently no description for this method. Please help us by :ref:`contributing one `! .. |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.)` diff --git a/classes/class_portablecompressedtexture2d.rst b/classes/class_portablecompressedtexture2d.rst index 5ccb0fd9995..3fbe6b1667b 100644 --- a/classes/class_portablecompressedtexture2d.rst +++ b/classes/class_portablecompressedtexture2d.rst @@ -37,15 +37,13 @@ Properties .. table:: :widths: auto - +-----------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ - | :ref:`PackedByteArray` | :ref:`_data` | ``PackedByteArray()`` | - +-----------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`keep_compressed_buffer` | ``false`` | - +-----------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ - | :ref:`bool` | resource_local_to_scene | ``false`` (overrides :ref:`Resource`) | - +-----------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ - | :ref:`Vector2` | :ref:`size_override` | ``Vector2(0, 0)`` | - +-----------------------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ + +-------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`keep_compressed_buffer` | ``false`` | + +-------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ + | :ref:`bool` | resource_local_to_scene | ``false`` (overrides :ref:`Resource`) | + +-------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ + | :ref:`Vector2` | :ref:`size_override` | ``Vector2(0, 0)`` | + +-------------------------------+--------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group @@ -163,20 +161,6 @@ enum **CompressionMode**: :ref:`๐Ÿ”—` **_data** = ``PackedByteArray()`` :ref:`๐Ÿ”—` - -.. container:: contribute - - There is currently no description for this property. Please help us by :ref:`contributing one `! - -.. rst-class:: classref-item-separator - ----- - .. _class_PortableCompressedTexture2D_property_keep_compressed_buffer: .. rst-class:: classref-property diff --git a/classes/class_projectsettings.rst b/classes/class_projectsettings.rst index 0ff76597b42..72101831437 100644 --- a/classes/class_projectsettings.rst +++ b/classes/class_projectsettings.rst @@ -213,6 +213,8 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/gdscript/warnings/integer_division` | ``1`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`debug/gdscript/warnings/missing_tool` | ``1`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/gdscript/warnings/narrowing_conversion` | ``1`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/gdscript/warnings/native_method_override` | ``2`` | @@ -277,6 +279,8 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/settings/gdscript/max_call_stack` | ``1024`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`debug/settings/physics_interpolation/enable_warnings` | ``true`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/settings/profiler/max_functions` | ``16384`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`debug/settings/profiler/max_timestamp_query_elements` | ``256`` | @@ -399,8 +403,6 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`display/window/energy_saving/keep_screen_on` | ``true`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`display/window/energy_saving/keep_screen_on.editor_hint` | ``false`` | - +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`display/window/handheld/orientation` | ``0`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`display/window/ios/allow_high_refresh_rate` | ``true`` | @@ -493,7 +495,7 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`editor/run/main_run_args` | ``""`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ - | :ref:`PackedStringArray` | :ref:`editor/script/search_in_file_extensions` | ``PackedStringArray("gd", "gdshader")`` | + | :ref:`PackedStringArray` | :ref:`editor/script/search_in_file_extensions` | | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`editor/script/templates_search_path` | ``"res://script_templates"`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ @@ -723,6 +725,14 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`input_devices/pointing/emulate_touch_from_mouse` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`input_devices/sensors/enable_accelerometer` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`input_devices/sensors/enable_gravity` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`input_devices/sensors/enable_gyroscope` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`input_devices/sensors/enable_magnetometer` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`internationalization/locale/fallback` | ``"en"`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`internationalization/locale/include_text_server_data` | ``false`` | @@ -1417,6 +1427,8 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`rendering/lightmapping/denoising/denoiser` | ``0`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`rendering/lightmapping/lightmap_gi/use_bicubic_filter` | ``true`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`rendering/lightmapping/primitive_meshes/texel_size` | ``0.2`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`rendering/lightmapping/probe_capture/update_speed` | ``15`` | @@ -1583,6 +1595,8 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`rendering/textures/lossless_compression/force_png` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`rendering/textures/vram_compression/compress_with_gpu` | ``true`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`rendering/textures/vram_compression/import_etc2_astc` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`rendering/textures/vram_compression/import_s3tc_bptc` | ``false`` | @@ -1609,11 +1623,19 @@ Properties +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`xr/openxr/environment_blend_mode` | ``"0"`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`xr/openxr/extensions/debug_message_types` | ``"15"`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`xr/openxr/extensions/debug_utils` | ``"0"`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`xr/openxr/extensions/eye_gaze_interaction` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`xr/openxr/extensions/hand_interaction_profile` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`xr/openxr/extensions/hand_tracking` | ``true`` | + | :ref:`bool` | :ref:`xr/openxr/extensions/hand_tracking` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`xr/openxr/extensions/hand_tracking_controller_data_source` | ``false`` | + +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`xr/openxr/extensions/hand_tracking_unobstructed_data_source` | ``false`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`xr/openxr/form_factor` | ``"0"`` | +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+ @@ -2800,6 +2822,18 @@ When set to ``warn`` or ``error``, produces a warning or an error respectively w ---- +.. _class_ProjectSettings_property_debug/gdscript/warnings/missing_tool: + +.. rst-class:: classref-property + +:ref:`int` **debug/gdscript/warnings/missing_tool** = ``1`` :ref:`๐Ÿ”—` + +When set to ``warn`` or ``error``, produces a warning or an error respectively when the base class script has the ``@tool`` annotation, but the current class script does not have it. + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_debug/gdscript/warnings/narrowing_conversion: .. rst-class:: classref-property @@ -3188,6 +3222,20 @@ Maximum call stack allowed for debugging GDScript. ---- +.. _class_ProjectSettings_property_debug/settings/physics_interpolation/enable_warnings: + +.. rst-class:: classref-property + +:ref:`bool` **debug/settings/physics_interpolation/enable_warnings** = ``true`` :ref:`๐Ÿ”—` + +If ``true``, enables warnings which can help pinpoint where nodes are being incorrectly updated, which will result in incorrect interpolation and visual glitches. + +When a node is being interpolated, it is essential that the transform is set during :ref:`Node._physics_process` (during a physics tick) rather than :ref:`Node._process` (during a frame). + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_debug/settings/profiler/max_functions: .. rst-class:: classref-property @@ -3922,18 +3970,6 @@ If ``true``, keeps the screen on (even in case of inactivity), so the screensave ---- -.. _class_ProjectSettings_property_display/window/energy_saving/keep_screen_on.editor_hint: - -.. rst-class:: classref-property - -:ref:`bool` **display/window/energy_saving/keep_screen_on.editor_hint** = ``false`` :ref:`๐Ÿ”—` - -Editor-only override for :ref:`display/window/energy_saving/keep_screen_on`. Does not affect running project. - -.. rst-class:: classref-item-separator - ----- - .. _class_ProjectSettings_property_display/window/handheld/orientation: .. rst-class:: classref-property @@ -4586,7 +4622,7 @@ For example, this can be used to force the project to run on the dedicated GPU i .. rst-class:: classref-property -:ref:`PackedStringArray` **editor/script/search_in_file_extensions** = ``PackedStringArray("gd", "gdshader")`` :ref:`๐Ÿ”—` +:ref:`PackedStringArray` **editor/script/search_in_file_extensions** :ref:`๐Ÿ”—` Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. ``tscn`` if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files. @@ -6134,6 +6170,54 @@ If ``true``, sends touch input events when clicking or dragging the mouse. ---- +.. _class_ProjectSettings_property_input_devices/sensors/enable_accelerometer: + +.. rst-class:: classref-property + +:ref:`bool` **input_devices/sensors/enable_accelerometer** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, the accelerometer sensor is enabled and :ref:`Input.get_accelerometer` returns valid data. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_input_devices/sensors/enable_gravity: + +.. rst-class:: classref-property + +:ref:`bool` **input_devices/sensors/enable_gravity** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, the gravity sensor is enabled and :ref:`Input.get_gravity` returns valid data. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_input_devices/sensors/enable_gyroscope: + +.. rst-class:: classref-property + +:ref:`bool` **input_devices/sensors/enable_gyroscope** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, the gyroscope sensor is enabled and :ref:`Input.get_gyroscope` returns valid data. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_input_devices/sensors/enable_magnetometer: + +.. rst-class:: classref-property + +:ref:`bool` **input_devices/sensors/enable_magnetometer** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, the magnetometer sensor is enabled and :ref:`Input.get_magnetometer` returns valid data. + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_internationalization/locale/fallback: .. rst-class:: classref-property @@ -9538,8 +9622,6 @@ If ``true``, the renderer will interpolate the transforms of physics objects bet \ **Note:** This property is only read when the project starts. To toggle physics interpolation at runtime, set :ref:`SceneTree.physics_interpolation` instead. -\ **Note:** This feature is currently only implemented in the 2D renderer. - .. rst-class:: classref-item-separator ---- @@ -9552,7 +9634,9 @@ If ``true``, the renderer will interpolate the transforms of physics objects bet Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows smoothing out framerate jitters. The default value of 0.5 should be good enough for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. -\ **Note:** When using a physics interpolation solution (such as enabling :ref:`physics/common/physics_interpolation` or using a custom solution), the physics jitter fix should be disabled by setting :ref:`physics/common/physics_jitter_fix` to ``0.0``. +\ **Note:** Jitter fix is automatically disabled at runtime when :ref:`physics/common/physics_interpolation` is enabled. + +\ **Note:** When using a custom physics interpolation solution, the physics jitter fix should be disabled by setting :ref:`physics/common/physics_jitter_fix` to ``0.0``. \ **Note:** This property is only read when the project starts. To change the physics jitter fix at runtime, set :ref:`Engine.physics_jitter_fix` instead. @@ -10246,9 +10330,9 @@ If ``true``, the compatibility renderer will fall back to OpenGLES if desktop Op :ref:`bool` **rendering/gl_compatibility/fallback_to_native** = ``true`` :ref:`๐Ÿ”—` -If ``true``, the compatibility renderer will fall back to native OpenGL if ANGLE over Metal is not supported. +If ``true``, the compatibility renderer will fall back to native OpenGL if ANGLE is not supported, or ANGLE dynamic libraries aren't found. -\ **Note:** This setting is implemented only on macOS. +\ **Note:** This setting is implemented on macOS and Windows. .. rst-class:: classref-item-separator @@ -10524,6 +10608,20 @@ If no GPU acceleration is configured on the system, multi-threaded CPU-based den ---- +.. _class_ProjectSettings_property_rendering/lightmapping/lightmap_gi/use_bicubic_filter: + +.. rst-class:: classref-property + +:ref:`bool` **rendering/lightmapping/lightmap_gi/use_bicubic_filter** = ``true`` :ref:`๐Ÿ”—` + +If ``true``, applies a bicubic filter during lightmap sampling. This makes lightmaps look much smoother, at a moderate performance cost. + +\ **Note:** The bicubic filter exaggerates the 'bleeding' effect that occurs when a lightmap's resolution is low enough. + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_rendering/lightmapping/primitive_meshes/texel_size: .. rst-class:: classref-property @@ -10854,9 +10952,9 @@ The minimum number of instances that must be present in a scene to enable cullin :ref:`float` **rendering/limits/time/time_rollover_secs** = ``3600`` :ref:`๐Ÿ”—` -.. container:: contribute +Maximum time (in seconds) before the ``TIME`` shader built-in variable rolls over. The ``TIME`` variable increments by ``delta`` each frame, and when it exceeds this value, it rolls over to ``0.0``. Since large floating-point values are less precise than small floating-point values, this should be set as low as possible to maximize the precision of the ``TIME`` built-in variable in shaders. This is especially important on mobile platforms where precision in shaders is significantly reduced. However, if this is set too low, shader animations may appear to restart from the beginning while the project is running. - There is currently no description for this property. Please help us by :ref:`contributing one `! +On desktop platforms, values below ``4096`` are recommended, ideally below ``2048``. On mobile platforms, values below ``64`` are recommended, ideally below ``32``. .. rst-class:: classref-item-separator @@ -11628,6 +11726,22 @@ If ``true``, the texture importer will import lossless textures using the PNG fo ---- +.. _class_ProjectSettings_property_rendering/textures/vram_compression/compress_with_gpu: + +.. rst-class:: classref-property + +:ref:`bool` **rendering/textures/vram_compression/compress_with_gpu** = ``true`` :ref:`๐Ÿ”—` + +If ``true``, the texture importer will utilize the GPU for compressing textures, which makes large textures import significantly faster. + +\ **Note:** This setting requires either Vulkan or D3D12 available as a rendering backend. + +\ **Note:** Currently this only affects BC6H compression, which is used on Desktop and Console for HDR images. + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_rendering/textures/vram_compression/import_etc2_astc: .. rst-class:: classref-property @@ -11690,7 +11804,11 @@ The default compression factor for lossless WebP. Decompression speed is mostly :ref:`bool` **rendering/viewport/hdr_2d** = ``false`` :ref:`๐Ÿ”—` -If ``true``, enables :ref:`Viewport.use_hdr_2d` on the root viewport. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow). +If ``true``, enables :ref:`Viewport.use_hdr_2d` on the root viewport. 2D rendering will use an high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an ``RGBA16`` framebuffer, while when using the Mobile renderer it will be an ``RGB10_A2`` framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen. Practically speaking, this means that the end result of the Viewport will not be clamped into the ``0-1`` range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. + +\ **Note:** This setting will have no effect when using the GL Compatibility renderer as the GL Compatibility renderer always renders in low dynamic range for performance reasons. + +\ **Note:** This property is only read when the project starts. To toggle HDR 2D at runtime, set :ref:`Viewport.use_hdr_2d` on the root :ref:`Viewport`. .. rst-class:: classref-item-separator @@ -11807,6 +11925,30 @@ Specify how OpenXR should blend in the environment. This is specific to certain ---- +.. _class_ProjectSettings_property_xr/openxr/extensions/debug_message_types: + +.. rst-class:: classref-property + +:ref:`int` **xr/openxr/extensions/debug_message_types** = ``"15"`` :ref:`๐Ÿ”—` + +Specifies the message types for which we request debug messages. Requires :ref:`xr/openxr/extensions/debug_utils` to be set and the extension to be supported by the XR runtime. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_xr/openxr/extensions/debug_utils: + +.. rst-class:: classref-property + +:ref:`int` **xr/openxr/extensions/debug_utils** = ``"0"`` :ref:`๐Ÿ”—` + +Enables debug utilities on XR runtimes that supports the debug utils extension. Sets the maximum severity being reported (0 = disabled, 1 = error, 2 = warning, 3 = info, 4 = verbose). + +.. rst-class:: classref-item-separator + +---- + .. _class_ProjectSettings_property_xr/openxr/extensions/eye_gaze_interaction: .. rst-class:: classref-property @@ -11825,7 +11967,7 @@ Specify whether to enable eye tracking for this project. Depending on the platfo :ref:`bool` **xr/openxr/extensions/hand_interaction_profile** = ``false`` :ref:`๐Ÿ”—` -If true the hand interaction profile extension will be activated if supported by the platform. +If ``true`` the hand interaction profile extension will be activated if supported by the platform. .. rst-class:: classref-item-separator @@ -11835,9 +11977,39 @@ If true the hand interaction profile extension will be activated if supported by .. rst-class:: classref-property -:ref:`bool` **xr/openxr/extensions/hand_tracking** = ``true`` :ref:`๐Ÿ”—` +:ref:`bool` **xr/openxr/extensions/hand_tracking** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, the hand tracking extension is enabled if available. -If true we enable the hand tracking extension if available. +\ **Note:** By default hand tracking will only work for data sources chosen by the XR runtime. For SteamVR this is the controller inferred data source, for most other runtimes this is the unobstructed data source. There is no way to query this. If a runtime supports the OpenXR data source extension you can use the :ref:`xr/openxr/extensions/hand_tracking_controller_data_source` and/or :ref:`xr/openxr/extensions/hand_tracking_unobstructed_data_source` to indicate you wish to enable these data sources. If neither is selected the data source extension is not enabled and the XR runtimes default behavior persists. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_xr/openxr/extensions/hand_tracking_controller_data_source: + +.. rst-class:: classref-property + +:ref:`bool` **xr/openxr/extensions/hand_tracking_controller_data_source** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, support for the controller inferred data source is requested. If supported, you will receive hand tracking data even if the user has a controller in hand, with finger positions automatically inferred from controller input and/or sensors. + +\ **Node:** This requires the OpenXR data source extension and controller inferred handtracking to be supported by the XR runtime. If not supported this setting will be ignored. :ref:`xr/openxr/extensions/hand_tracking` must be enabled for this setting to be used. + +.. rst-class:: classref-item-separator + +---- + +.. _class_ProjectSettings_property_xr/openxr/extensions/hand_tracking_unobstructed_data_source: + +.. rst-class:: classref-property + +:ref:`bool` **xr/openxr/extensions/hand_tracking_unobstructed_data_source** = ``false`` :ref:`๐Ÿ”—` + +If ``true``, support for the unobstructed data source is requested. If supported, you will receive hand tracking data based on the actual finger positions of the user often determined by optical tracking. + +\ **Node:** This requires the OpenXR data source extension and unobstructed handtracking to be supported by the XR runtime. If not supported this setting will be ignored. :ref:`xr/openxr/extensions/hand_tracking` must be enabled for this setting to be used. .. rst-class:: classref-item-separator @@ -11962,8 +12134,6 @@ Adds a custom property info to a property. The dictionary must contain: - optionally ``"hint"``: :ref:`int` (see :ref:`PropertyHint`) and ``"hint_string"``: :ref:`String`\ -\ **Example:**\ - .. tabs:: @@ -12056,8 +12226,6 @@ Returns the order of a configuration value (influences when saved to the config Returns the value of the setting identified by ``name``. If the setting doesn't exist and ``default_value`` is specified, the value of ``default_value`` is returned. Otherwise, ``null`` is returned. -\ **Example:**\ - .. tabs:: @@ -12087,9 +12255,7 @@ Returns the value of the setting identified by ``name``. If the setting doesn't Similar to :ref:`get_setting`, but applies feature tag overrides if any exists and is valid. -\ **Example:**\ - -If the following setting override exists "application/config/name.windows", and the following code is executed: +\ **Example:**\ If the setting override ``"application/config/name.windows"`` exists, and the following code is executed on a *Windows* operating system, the overridden setting is printed instead: .. tabs:: @@ -12104,8 +12270,6 @@ If the following setting override exists "application/config/name.windows", and -Then the overridden setting will be returned instead if the project is running on the *Windows* operating system. - .. rst-class:: classref-item-separator ---- @@ -12274,8 +12438,6 @@ Sets whether a setting requires restarting the editor to properly take effect. Sets the value of a setting. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_propertytweener.rst b/classes/class_propertytweener.rst index 966125b95f8..65d20e588fa 100644 --- a/classes/class_propertytweener.rst +++ b/classes/class_propertytweener.rst @@ -21,6 +21,8 @@ Description **PropertyTweener** is used to interpolate a property in an object. See :ref:`Tween.tween_property` for more usage information. +The tweener will finish automatically if the target object is freed. + \ **Note:** :ref:`Tween.tween_property` is the only correct way to create **PropertyTweener**. Any **PropertyTweener** created manually will not function correctly. .. rst-class:: classref-reftable-group @@ -64,12 +66,12 @@ Method Descriptions When called, the final value will be used as a relative value instead. -\ **Example:**\ +\ **Example:** Move the node by ``100`` pixels to the right. :: var tween = get_tree().create_tween() - tween.tween_property(self, "position", Vector2.RIGHT * 100, 1).as_relative() #the node will move by 100 pixels to the right + tween.tween_property(self, "position", Vector2.RIGHT * 100, 1).as_relative() .. rst-class:: classref-item-separator @@ -83,12 +85,12 @@ When called, the final value will be used as a relative value instead. Sets a custom initial value to the **PropertyTweener**. -\ **Example:**\ +\ **Example:** Move the node from position ``(100, 100)`` to ``(200, 100)``. :: var tween = get_tree().create_tween() - tween.tween_property(self, "position", Vector2(200, 100), 1).from(Vector2(100, 100)) #this will move the node from position (100, 100) to (200, 100) + tween.tween_property(self, "position", Vector2(200, 100), 1).from(Vector2(100, 100)) .. rst-class:: classref-item-separator @@ -119,8 +121,6 @@ Makes the **PropertyTweener** use the current property value (i.e. at the time o Allows interpolating the value with a custom easing function. The provided ``interpolator_method`` will be called with a value ranging from ``0.0`` to ``1.0`` and is expected to return a value within the same range (values outside the range can be used for overshoot). The return value of the method is then used for interpolation between initial and final value. Note that the parameter passed to the method is still subject to the tweener's own easing. -\ **Example:**\ - :: @export var curve: Curve diff --git a/classes/class_rect2.rst b/classes/class_rect2.rst index 65d11ae327c..ba2d6e7f15c 100644 --- a/classes/class_rect2.rst +++ b/classes/class_rect2.rst @@ -95,6 +95,8 @@ Methods +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_center`\ (\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Vector2` | :ref:`get_support`\ (\ direction\: :ref:`Vector2`\ ) |const| | + +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Rect2` | :ref:`grow`\ (\ amount\: :ref:`float`\ ) |const| | +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Rect2` | :ref:`grow_individual`\ (\ left\: :ref:`float`, top\: :ref:`float`, right\: :ref:`float`, bottom\: :ref:`float`\ ) |const| | @@ -337,6 +339,18 @@ Returns the center point of the rectangle. This is the same as ``position + (siz ---- +.. _class_Rect2_method_get_support: + +.. rst-class:: classref-method + +:ref:`Vector2` **get_support**\ (\ direction\: :ref:`Vector2`\ ) |const| :ref:`๐Ÿ”—` + +Returns the vertex's position of this rect that's the farthest in the given direction. This point is commonly known as the support point in collision detection algorithms. + +.. rst-class:: classref-item-separator + +---- + .. _class_Rect2_method_grow: .. rst-class:: classref-method diff --git a/classes/class_refcounted.rst b/classes/class_refcounted.rst index fefdffe9bce..755e1e8faca 100644 --- a/classes/class_refcounted.rst +++ b/classes/class_refcounted.rst @@ -12,7 +12,7 @@ RefCounted **Inherits:** :ref:`Object` -**Inherited By:** :ref:`AESContext`, :ref:`AStar2D`, :ref:`AStar3D`, :ref:`AStarGrid2D`, :ref:`AudioEffectInstance`, :ref:`AudioSample`, :ref:`AudioSamplePlayback`, :ref:`AudioStreamPlayback`, :ref:`CameraFeed`, :ref:`CharFXTransform`, :ref:`ConfigFile`, :ref:`Crypto`, :ref:`DirAccess`, :ref:`DTLSServer`, :ref:`EditorDebuggerPlugin`, :ref:`EditorDebuggerSession`, :ref:`EditorExportPlatform`, :ref:`EditorExportPlugin`, :ref:`EditorFeatureProfile`, :ref:`EditorFileSystemImportFormatSupportQuery`, :ref:`EditorInspectorPlugin`, :ref:`EditorResourceConversionPlugin`, :ref:`EditorResourcePreviewGenerator`, :ref:`EditorResourceTooltipPlugin`, :ref:`EditorSceneFormatImporter`, :ref:`EditorScenePostImport`, :ref:`EditorScenePostImportPlugin`, :ref:`EditorScript`, :ref:`EditorTranslationParserPlugin`, :ref:`EncodedObjectAsID`, :ref:`ENetConnection`, :ref:`EngineProfiler`, :ref:`Expression`, :ref:`FileAccess`, :ref:`HashingContext`, :ref:`HMACContext`, :ref:`HTTPClient`, :ref:`ImageFormatLoader`, :ref:`JavaClass`, :ref:`JavaScriptObject`, :ref:`KinematicCollision2D`, :ref:`KinematicCollision3D`, :ref:`Lightmapper`, :ref:`MeshConvexDecompositionSettings`, :ref:`MeshDataTool`, :ref:`MultiplayerAPI`, :ref:`Mutex`, :ref:`NavigationPathQueryParameters2D`, :ref:`NavigationPathQueryParameters3D`, :ref:`NavigationPathQueryResult2D`, :ref:`NavigationPathQueryResult3D`, :ref:`Node3DGizmo`, :ref:`OggPacketSequencePlayback`, :ref:`OpenXRAPIExtension`, :ref:`PackedDataContainerRef`, :ref:`PacketPeer`, :ref:`PCKPacker`, :ref:`PhysicsPointQueryParameters2D`, :ref:`PhysicsPointQueryParameters3D`, :ref:`PhysicsRayQueryParameters2D`, :ref:`PhysicsRayQueryParameters3D`, :ref:`PhysicsShapeQueryParameters2D`, :ref:`PhysicsShapeQueryParameters3D`, :ref:`PhysicsTestMotionParameters2D`, :ref:`PhysicsTestMotionParameters3D`, :ref:`PhysicsTestMotionResult2D`, :ref:`PhysicsTestMotionResult3D`, :ref:`RandomNumberGenerator`, :ref:`RDAttachmentFormat`, :ref:`RDFramebufferPass`, :ref:`RDPipelineColorBlendState`, :ref:`RDPipelineColorBlendStateAttachment`, :ref:`RDPipelineDepthStencilState`, :ref:`RDPipelineMultisampleState`, :ref:`RDPipelineRasterizationState`, :ref:`RDPipelineSpecializationConstant`, :ref:`RDSamplerState`, :ref:`RDShaderSource`, :ref:`RDTextureFormat`, :ref:`RDTextureView`, :ref:`RDUniform`, :ref:`RDVertexAttribute`, :ref:`RegEx`, :ref:`RegExMatch`, :ref:`RenderSceneBuffers`, :ref:`RenderSceneBuffersConfiguration`, :ref:`Resource`, :ref:`ResourceFormatLoader`, :ref:`ResourceFormatSaver`, :ref:`ResourceImporter`, :ref:`SceneState`, :ref:`SceneTreeTimer`, :ref:`Semaphore`, :ref:`SkinReference`, :ref:`StreamPeer`, :ref:`SurfaceTool`, :ref:`TCPServer`, :ref:`TextLine`, :ref:`TextParagraph`, :ref:`TextServer`, :ref:`Thread`, :ref:`TLSOptions`, :ref:`TriangleMesh`, :ref:`Tween`, :ref:`Tweener`, :ref:`UDPServer`, :ref:`UPNP`, :ref:`UPNPDevice`, :ref:`WeakRef`, :ref:`WebRTCPeerConnection`, :ref:`XMLParser`, :ref:`XRInterface`, :ref:`XRPose`, :ref:`XRTracker`, :ref:`ZIPPacker`, :ref:`ZIPReader` +**Inherited By:** :ref:`AESContext`, :ref:`AStar2D`, :ref:`AStar3D`, :ref:`AStarGrid2D`, :ref:`AudioEffectInstance`, :ref:`AudioSample`, :ref:`AudioSamplePlayback`, :ref:`AudioStreamPlayback`, :ref:`CameraFeed`, :ref:`CharFXTransform`, :ref:`ConfigFile`, :ref:`Crypto`, :ref:`DirAccess`, :ref:`DTLSServer`, :ref:`EditorContextMenuPlugin`, :ref:`EditorDebuggerPlugin`, :ref:`EditorDebuggerSession`, :ref:`EditorExportPlatform`, :ref:`EditorExportPlugin`, :ref:`EditorExportPreset`, :ref:`EditorFeatureProfile`, :ref:`EditorFileSystemImportFormatSupportQuery`, :ref:`EditorInspectorPlugin`, :ref:`EditorResourceConversionPlugin`, :ref:`EditorResourcePreviewGenerator`, :ref:`EditorResourceTooltipPlugin`, :ref:`EditorSceneFormatImporter`, :ref:`EditorScenePostImport`, :ref:`EditorScenePostImportPlugin`, :ref:`EditorScript`, :ref:`EditorTranslationParserPlugin`, :ref:`EncodedObjectAsID`, :ref:`ENetConnection`, :ref:`EngineProfiler`, :ref:`Expression`, :ref:`FileAccess`, :ref:`HashingContext`, :ref:`HMACContext`, :ref:`HTTPClient`, :ref:`ImageFormatLoader`, :ref:`JavaClass`, :ref:`JavaObject`, :ref:`JavaScriptObject`, :ref:`KinematicCollision2D`, :ref:`KinematicCollision3D`, :ref:`Lightmapper`, :ref:`MeshConvexDecompositionSettings`, :ref:`MeshDataTool`, :ref:`MultiplayerAPI`, :ref:`Mutex`, :ref:`NavigationPathQueryParameters2D`, :ref:`NavigationPathQueryParameters3D`, :ref:`NavigationPathQueryResult2D`, :ref:`NavigationPathQueryResult3D`, :ref:`Node3DGizmo`, :ref:`OggPacketSequencePlayback`, :ref:`OpenXRAPIExtension`, :ref:`PackedDataContainerRef`, :ref:`PacketPeer`, :ref:`PCKPacker`, :ref:`PhysicsPointQueryParameters2D`, :ref:`PhysicsPointQueryParameters3D`, :ref:`PhysicsRayQueryParameters2D`, :ref:`PhysicsRayQueryParameters3D`, :ref:`PhysicsShapeQueryParameters2D`, :ref:`PhysicsShapeQueryParameters3D`, :ref:`PhysicsTestMotionParameters2D`, :ref:`PhysicsTestMotionParameters3D`, :ref:`PhysicsTestMotionResult2D`, :ref:`PhysicsTestMotionResult3D`, :ref:`RandomNumberGenerator`, :ref:`RDAttachmentFormat`, :ref:`RDFramebufferPass`, :ref:`RDPipelineColorBlendState`, :ref:`RDPipelineColorBlendStateAttachment`, :ref:`RDPipelineDepthStencilState`, :ref:`RDPipelineMultisampleState`, :ref:`RDPipelineRasterizationState`, :ref:`RDPipelineSpecializationConstant`, :ref:`RDSamplerState`, :ref:`RDShaderSource`, :ref:`RDTextureFormat`, :ref:`RDTextureView`, :ref:`RDUniform`, :ref:`RDVertexAttribute`, :ref:`RegEx`, :ref:`RegExMatch`, :ref:`RenderSceneBuffers`, :ref:`RenderSceneBuffersConfiguration`, :ref:`Resource`, :ref:`ResourceFormatLoader`, :ref:`ResourceFormatSaver`, :ref:`ResourceImporter`, :ref:`SceneState`, :ref:`SceneTreeTimer`, :ref:`Semaphore`, :ref:`SkinReference`, :ref:`StreamPeer`, :ref:`SurfaceTool`, :ref:`TCPServer`, :ref:`TextLine`, :ref:`TextParagraph`, :ref:`TextServer`, :ref:`Thread`, :ref:`TLSOptions`, :ref:`TriangleMesh`, :ref:`Tween`, :ref:`Tweener`, :ref:`UDPServer`, :ref:`UPNP`, :ref:`UPNPDevice`, :ref:`WeakRef`, :ref:`WebRTCPeerConnection`, :ref:`XMLParser`, :ref:`XRInterface`, :ref:`XRPose`, :ref:`XRTracker`, :ref:`ZIPPacker`, :ref:`ZIPReader` Base class for reference-counted objects. diff --git a/classes/class_regex.rst b/classes/class_regex.rst index 57368a09e3c..27f2b19d7ad 100644 --- a/classes/class_regex.rst +++ b/classes/class_regex.rst @@ -86,9 +86,9 @@ Methods +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear`\ (\ ) | +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Error` | :ref:`compile`\ (\ pattern\: :ref:`String`\ ) | + | :ref:`Error` | :ref:`compile`\ (\ pattern\: :ref:`String`, show_error\: :ref:`bool` = true\ ) | +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`RegEx` | :ref:`create_from_string`\ (\ pattern\: :ref:`String`\ ) |static| | + | :ref:`RegEx` | :ref:`create_from_string`\ (\ pattern\: :ref:`String`, show_error\: :ref:`bool` = true\ ) |static| | +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_group_count`\ (\ ) |const| | +------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -130,9 +130,9 @@ This method resets the state of the object, as if it was freshly created. Namely .. rst-class:: classref-method -:ref:`Error` **compile**\ (\ pattern\: :ref:`String`\ ) :ref:`๐Ÿ”—` +:ref:`Error` **compile**\ (\ pattern\: :ref:`String`, show_error\: :ref:`bool` = true\ ) :ref:`๐Ÿ”—` -Compiles and assign the search pattern to use. Returns :ref:`@GlobalScope.OK` if the compilation is successful. If an error is encountered, details are printed to standard output and an error is returned. +Compiles and assign the search pattern to use. Returns :ref:`@GlobalScope.OK` if the compilation is successful. If compilation fails, returns :ref:`@GlobalScope.FAILED` and when ``show_error`` is ``true``, details are printed to standard output. .. rst-class:: classref-item-separator @@ -142,9 +142,9 @@ Compiles and assign the search pattern to use. Returns :ref:`@GlobalScope.OK` **create_from_string**\ (\ pattern\: :ref:`String`\ ) |static| :ref:`๐Ÿ”—` +:ref:`RegEx` **create_from_string**\ (\ pattern\: :ref:`String`, show_error\: :ref:`bool` = true\ ) |static| :ref:`๐Ÿ”—` -Creates and compiles a new **RegEx** object. +Creates and compiles a new **RegEx** object. See also :ref:`compile`. .. rst-class:: classref-item-separator diff --git a/classes/class_renderingdevice.rst b/classes/class_renderingdevice.rst index d7e988760f8..ed49c2e2d6e 100644 --- a/classes/class_renderingdevice.rst +++ b/classes/class_renderingdevice.rst @@ -85,7 +85,7 @@ Methods +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`draw_command_insert_label`\ (\ name\: :ref:`String`, color\: :ref:`Color`\ ) | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`draw_list_begin`\ (\ framebuffer\: :ref:`RID`, initial_color_action\: :ref:`InitialAction`, final_color_action\: :ref:`FinalAction`, initial_depth_action\: :ref:`InitialAction`, final_depth_action\: :ref:`FinalAction`, clear_color_values\: :ref:`PackedColorArray` = PackedColorArray(), clear_depth\: :ref:`float` = 1.0, clear_stencil\: :ref:`int` = 0, region\: :ref:`Rect2` = Rect2(0, 0, 0, 0)\ ) | + | :ref:`int` | :ref:`draw_list_begin`\ (\ framebuffer\: :ref:`RID`, initial_color_action\: :ref:`InitialAction`, final_color_action\: :ref:`FinalAction`, initial_depth_action\: :ref:`InitialAction`, final_depth_action\: :ref:`FinalAction`, clear_color_values\: :ref:`PackedColorArray` = PackedColorArray(), clear_depth\: :ref:`float` = 1.0, clear_stencil\: :ref:`int` = 0, region\: :ref:`Rect2` = Rect2(0, 0, 0, 0), breadcrumb\: :ref:`int` = 0\ ) | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`draw_list_begin_for_screen`\ (\ screen\: :ref:`int` = 0, clear_color\: :ref:`Color` = Color(0, 0, 0, 1)\ ) | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -147,18 +147,42 @@ Methods +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_captured_timestamps_frame`\ (\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_device_allocation_count`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_device_allocs_by_object_type`\ (\ type\: :ref:`int`\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_device_memory_by_object_type`\ (\ type\: :ref:`int`\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_device_name`\ (\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_device_pipeline_cache_uuid`\ (\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_device_total_memory`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_device_vendor_name`\ (\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_driver_allocation_count`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_driver_allocs_by_object_type`\ (\ type\: :ref:`int`\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_driver_and_device_memory_report`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_driver_memory_by_object_type`\ (\ type\: :ref:`int`\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_driver_resource`\ (\ resource\: :ref:`DriverResource`, rid\: :ref:`RID`, index\: :ref:`int`\ ) | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_driver_total_memory`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_frame_delay`\ (\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_memory_usage`\ (\ type\: :ref:`MemoryType`\ ) |const| | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_perf_report`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`String` | :ref:`get_tracked_object_name`\ (\ type_index\: :ref:`int`\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_tracked_object_type_count`\ (\ ) |const| | + +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`index_array_create`\ (\ index_buffer\: :ref:`RID`, index_offset\: :ref:`int`, index_count\: :ref:`int`\ ) | +------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`index_buffer_create`\ (\ size_indices\: :ref:`int`, format\: :ref:`IndexBufferFormat`, data\: :ref:`PackedByteArray` = PackedByteArray(), use_restart_indices\: :ref:`bool` = false\ ) | @@ -4507,6 +4531,172 @@ Memory taken by buffers. Total memory taken. This is greater than the sum of :ref:`MEMORY_TEXTURES` and :ref:`MEMORY_BUFFERS`, as it also includes miscellaneous memory usage. +.. rst-class:: classref-item-separator + +---- + +.. _enum_RenderingDevice_BreadcrumbMarker: + +.. rst-class:: classref-enumeration + +enum **BreadcrumbMarker**: :ref:`๐Ÿ”—` + +.. _class_RenderingDevice_constant_NONE: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **NONE** = ``0`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_REFLECTION_PROBES: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **REFLECTION_PROBES** = ``65536`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_SKY_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **SKY_PASS** = ``131072`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_LIGHTMAPPER_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **LIGHTMAPPER_PASS** = ``196608`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_SHADOW_PASS_DIRECTIONAL: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **SHADOW_PASS_DIRECTIONAL** = ``262144`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_SHADOW_PASS_CUBE: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **SHADOW_PASS_CUBE** = ``327680`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_OPAQUE_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **OPAQUE_PASS** = ``393216`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_ALPHA_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **ALPHA_PASS** = ``458752`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_TRANSPARENT_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **TRANSPARENT_PASS** = ``524288`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_POST_PROCESSING_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **POST_PROCESSING_PASS** = ``589824`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_BLIT_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **BLIT_PASS** = ``655360`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_UI_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **UI_PASS** = ``720896`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + +.. _class_RenderingDevice_constant_DEBUG_PASS: + +.. rst-class:: classref-enumeration-constant + +:ref:`BreadcrumbMarker` **DEBUG_PASS** = ``786432`` + +.. container:: contribute + + There is currently no description for this enum. Please help us by :ref:`contributing one `! + + + .. rst-class:: classref-section-separator ---- @@ -4839,7 +5029,7 @@ This method does nothing. .. rst-class:: classref-method -:ref:`int` **draw_list_begin**\ (\ framebuffer\: :ref:`RID`, initial_color_action\: :ref:`InitialAction`, final_color_action\: :ref:`FinalAction`, initial_depth_action\: :ref:`InitialAction`, final_depth_action\: :ref:`FinalAction`, clear_color_values\: :ref:`PackedColorArray` = PackedColorArray(), clear_depth\: :ref:`float` = 1.0, clear_stencil\: :ref:`int` = 0, region\: :ref:`Rect2` = Rect2(0, 0, 0, 0)\ ) :ref:`๐Ÿ”—` +:ref:`int` **draw_list_begin**\ (\ framebuffer\: :ref:`RID`, initial_color_action\: :ref:`InitialAction`, final_color_action\: :ref:`FinalAction`, initial_depth_action\: :ref:`InitialAction`, final_depth_action\: :ref:`FinalAction`, clear_color_values\: :ref:`PackedColorArray` = PackedColorArray(), clear_depth\: :ref:`float` = 1.0, clear_stencil\: :ref:`int` = 0, region\: :ref:`Rect2` = Rect2(0, 0, 0, 0), breadcrumb\: :ref:`int` = 0\ ) :ref:`๐Ÿ”—` Starts a list of raster drawing commands created with the ``draw_*`` methods. The returned value should be passed to other ``draw_list_*`` functions. @@ -4851,7 +5041,7 @@ A simple drawing operation might look like this (code is not a complete example) var rd = RenderingDevice.new() var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) - var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors, RenderingDevice.OPAQUE_PASS) # Draw opaque. rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) @@ -4866,6 +5056,14 @@ A simple drawing operation might look like this (code is not a complete example) rd.draw_list_end() +The ``breadcrumb`` parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + +It does not affect rendering behavior and can be set to 0. It is recommended to use :ref:`BreadcrumbMarker` enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + +:: + + rd.draw_list_begin(fb[i], RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_READ, RenderingDevice.INITIAL_ACTION_CLEAR, RenderingDevice.FINAL_ACTION_DISCARD, clear_colors, RenderingDevice.OPAQUE_PASS | 5) + .. rst-class:: classref-item-separator ---- @@ -5248,6 +5446,52 @@ Returns the index of the last frame rendered that has rendering timestamps avail ---- +.. _class_RenderingDevice_method_get_device_allocation_count: + +.. rst-class:: classref-method + +:ref:`int` **get_device_allocation_count**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns how many allocations the GPU has performed for internal driver structures. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_device_allocs_by_object_type: + +.. rst-class:: classref-method + +:ref:`int` **get_device_allocs_by_object_type**\ (\ type\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Same as :ref:`get_device_allocation_count` but filtered for a given object type. + +The type argument must be in range ``[0; get_tracked_object_type_count - 1]``. If :ref:`get_tracked_object_type_count` is 0, then type argument is ignored and always returns 0. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_device_memory_by_object_type: + +.. rst-class:: classref-method + +:ref:`int` **get_device_memory_by_object_type**\ (\ type\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Same as :ref:`get_device_total_memory` but filtered for a given object type. + +The type argument must be in range ``[0; get_tracked_object_type_count - 1]``. If :ref:`get_tracked_object_type_count` is 0, then type argument is ignored and always returns 0. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingDevice_method_get_device_name: .. rst-class:: classref-method @@ -5272,6 +5516,20 @@ Returns the universally unique identifier for the pipeline cache. This is used t ---- +.. _class_RenderingDevice_method_get_device_total_memory: + +.. rst-class:: classref-method + +:ref:`int` **get_device_total_memory**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns how much bytes the GPU is using. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingDevice_method_get_device_vendor_name: .. rst-class:: classref-method @@ -5284,6 +5542,86 @@ Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). Equivalent ---- +.. _class_RenderingDevice_method_get_driver_allocation_count: + +.. rst-class:: classref-method + +:ref:`int` **get_driver_allocation_count**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns how many allocations the GPU driver has performed for internal driver structures. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_driver_allocs_by_object_type: + +.. rst-class:: classref-method + +:ref:`int` **get_driver_allocs_by_object_type**\ (\ type\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Same as :ref:`get_driver_allocation_count` but filtered for a given object type. + +The type argument must be in range ``[0; get_tracked_object_type_count - 1]``. If :ref:`get_tracked_object_type_count` is 0, then type argument is ignored and always returns 0. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_driver_and_device_memory_report: + +.. rst-class:: classref-method + +:ref:`String` **get_driver_and_device_memory_report**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns string report in CSV format using the following methods: + +- :ref:`get_tracked_object_name`\ + +- :ref:`get_tracked_object_type_count`\ + +- :ref:`get_driver_total_memory`\ + +- :ref:`get_driver_allocation_count`\ + +- :ref:`get_driver_memory_by_object_type`\ + +- :ref:`get_driver_allocs_by_object_type`\ + +- :ref:`get_device_total_memory`\ + +- :ref:`get_device_allocation_count`\ + +- :ref:`get_device_memory_by_object_type`\ + +- :ref:`get_device_allocs_by_object_type`\ + +This is only used by Vulkan in debug builds. Godot must also be started with the ``--extra-gpu-memory-tracking`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_driver_memory_by_object_type: + +.. rst-class:: classref-method + +:ref:`int` **get_driver_memory_by_object_type**\ (\ type\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Same as :ref:`get_driver_total_memory` but filtered for a given object type. + +The type argument must be in range ``[0; get_tracked_object_type_count - 1]``. If :ref:`get_tracked_object_type_count` is 0, then type argument is ignored and always returns 0. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingDevice_method_get_driver_resource: .. rst-class:: classref-method @@ -5296,6 +5634,20 @@ Returns the unique identifier of the driver ``resource`` for the specified ``rid ---- +.. _class_RenderingDevice_method_get_driver_total_memory: + +.. rst-class:: classref-method + +:ref:`int` **get_driver_total_memory**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns how much bytes the GPU driver is using for internal driver structures. + +This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingDevice_method_get_frame_delay: .. rst-class:: classref-method @@ -5320,6 +5672,58 @@ Returns the memory usage in bytes corresponding to the given ``type``. When usin ---- +.. _class_RenderingDevice_method_get_perf_report: + +.. rst-class:: classref-method + +:ref:`String` **get_perf_report**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns a string with a performance report from the past frame. Updates every frame. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_tracked_object_name: + +.. rst-class:: classref-method + +:ref:`String` **get_tracked_object_name**\ (\ type_index\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Returns the name of the type of object for the given ``type_index``. This value must be in range ``[0; get_tracked_object_type_count - 1]``. If :ref:`get_tracked_object_type_count` is 0, then type argument is ignored and always returns the same string. + +The return value is important because it gives meaning to the types passed to :ref:`get_driver_memory_by_object_type`, :ref:`get_driver_allocs_by_object_type`, :ref:`get_device_memory_by_object_type`, and :ref:`get_device_allocs_by_object_type`. Examples of strings it can return (not exhaustive): + +- DEVICE_MEMORY + +- PIPELINE_CACHE + +- SWAPCHAIN_KHR + +- COMMAND_POOL + +Thus if e.g. ``get_tracked_object_name(5)`` returns "COMMAND_POOL", then ``get_device_memory_by_object_type(5)`` returns the bytes used by the GPU for command pools. + +This is only used by Vulkan in debug builds. Godot must also be started with the ``--extra-gpu-memory-tracking`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingDevice_method_get_tracked_object_type_count: + +.. rst-class:: classref-method + +:ref:`int` **get_tracked_object_type_count**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns how many types of trackable objects are. + +This is only used by Vulkan in debug builds. Godot must also be started with the ``--extra-gpu-memory-tracking`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingDevice_method_index_array_create: .. rst-class:: classref-method diff --git a/classes/class_renderingserver.rst b/classes/class_renderingserver.rst index 21fd6d7b8fc..7459a2980c3 100644 --- a/classes/class_renderingserver.rst +++ b/classes/class_renderingserver.rst @@ -141,6 +141,8 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`canvas_item_add_triangle_array`\ (\ item\: :ref:`RID`, indices\: :ref:`PackedInt32Array`, points\: :ref:`PackedVector2Array`, colors\: :ref:`PackedColorArray`, uvs\: :ref:`PackedVector2Array` = PackedVector2Array(), bones\: :ref:`PackedInt32Array` = PackedInt32Array(), weights\: :ref:`PackedFloat32Array` = PackedFloat32Array(), texture\: :ref:`RID` = RID(), count\: :ref:`int` = -1\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`canvas_item_attach_skeleton`\ (\ item\: :ref:`RID`, skeleton\: :ref:`RID`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`canvas_item_clear`\ (\ item\: :ref:`RID`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`canvas_item_create`\ (\ ) | @@ -477,6 +479,8 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_geometry_set_visibility_range`\ (\ instance\: :ref:`RID`, min\: :ref:`float`, max\: :ref:`float`, min_margin\: :ref:`float`, max_margin\: :ref:`float`, fade_mode\: :ref:`VisibilityRangeFadeMode`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`instance_reset_physics_interpolation`\ (\ instance\: :ref:`RID`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_set_base`\ (\ instance\: :ref:`RID`, base\: :ref:`RID`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_set_blend_shape_weight`\ (\ instance\: :ref:`RID`, shape\: :ref:`int`, weight\: :ref:`float`\ ) | @@ -487,6 +491,8 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_set_ignore_culling`\ (\ instance\: :ref:`RID`, enabled\: :ref:`bool`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`instance_set_interpolated`\ (\ instance\: :ref:`RID`, interpolated\: :ref:`bool`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_set_layer_mask`\ (\ instance\: :ref:`RID`, mask\: :ref:`int`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`instance_set_pivot_data`\ (\ instance\: :ref:`RID`, sorting_offset\: :ref:`float`, use_aabb_center\: :ref:`bool`\ ) | @@ -561,6 +567,8 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`lightmap_set_textures`\ (\ lightmap\: :ref:`RID`, light\: :ref:`RID`, uses_sh\: :ref:`bool`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`lightmaps_set_bicubic_filter`\ (\ enable\: :ref:`bool`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`make_sphere_mesh`\ (\ latitudes\: :ref:`int`, longitudes\: :ref:`int`, radius\: :ref:`float`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`material_create`\ (\ ) | @@ -649,6 +657,8 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform2D` | :ref:`multimesh_instance_get_transform_2d`\ (\ multimesh\: :ref:`RID`, index\: :ref:`int`\ ) |const| | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`multimesh_instance_reset_physics_interpolation`\ (\ multimesh\: :ref:`RID`, index\: :ref:`int`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_instance_set_color`\ (\ multimesh\: :ref:`RID`, index\: :ref:`int`, color\: :ref:`Color`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_instance_set_custom_data`\ (\ multimesh\: :ref:`RID`, index\: :ref:`int`, custom_data\: :ref:`Color`\ ) | @@ -659,10 +669,16 @@ Methods +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_set_buffer`\ (\ multimesh\: :ref:`RID`, buffer\: :ref:`PackedFloat32Array`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`multimesh_set_buffer_interpolated`\ (\ multimesh\: :ref:`RID`, buffer\: :ref:`PackedFloat32Array`, buffer_previous\: :ref:`PackedFloat32Array`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_set_custom_aabb`\ (\ multimesh\: :ref:`RID`, aabb\: :ref:`AABB`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_set_mesh`\ (\ multimesh\: :ref:`RID`, mesh\: :ref:`RID`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`multimesh_set_physics_interpolated`\ (\ multimesh\: :ref:`RID`, interpolated\: :ref:`bool`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`multimesh_set_physics_interpolation_quality`\ (\ multimesh\: :ref:`RID`, quality\: :ref:`MultimeshPhysicsInterpolationQuality`\ ) | + +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`multimesh_set_visible_instances`\ (\ multimesh\: :ref:`RID`, visible\: :ref:`int`\ ) | +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`RID` | :ref:`occluder_create`\ (\ ) | @@ -1866,6 +1882,32 @@ Use :ref:`Transform3D` to store MultiMesh transform. ---- +.. _enum_RenderingServer_MultimeshPhysicsInterpolationQuality: + +.. rst-class:: classref-enumeration + +enum **MultimeshPhysicsInterpolationQuality**: :ref:`๐Ÿ”—` + +.. _class_RenderingServer_constant_MULTIMESH_INTERP_QUALITY_FAST: + +.. rst-class:: classref-enumeration-constant + +:ref:`MultimeshPhysicsInterpolationQuality` **MULTIMESH_INTERP_QUALITY_FAST** = ``0`` + +MultiMesh physics interpolation favors speed over quality. + +.. _class_RenderingServer_constant_MULTIMESH_INTERP_QUALITY_HIGH: + +.. rst-class:: classref-enumeration-constant + +:ref:`MultimeshPhysicsInterpolationQuality` **MULTIMESH_INTERP_QUALITY_HIGH** = ``1`` + +MultiMesh physics interpolation favors quality over speed. + +.. rst-class:: classref-item-separator + +---- + .. _enum_RenderingServer_LightProjectorFilter: .. rst-class:: classref-enumeration @@ -6184,6 +6226,8 @@ Draws particles on the :ref:`CanvasItem` pointed to by the ``i Draws a 2D polygon on the :ref:`CanvasItem` pointed to by the ``item`` :ref:`RID`. If you need more flexibility (such as being able to use bones), use :ref:`canvas_item_add_triangle_array` instead. See also :ref:`CanvasItem.draw_polygon`. +\ **Note:** If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with :ref:`Geometry2D.triangulate_polygon` and using :ref:`CanvasItem.draw_mesh`, :ref:`CanvasItem.draw_multimesh`, or :ref:`canvas_item_add_triangle_array`. + .. rst-class:: classref-item-separator ---- @@ -6274,6 +6318,18 @@ Draws a triangle array on the :ref:`CanvasItem` pointed to by ---- +.. _class_RenderingServer_method_canvas_item_attach_skeleton: + +.. rst-class:: classref-method + +|void| **canvas_item_attach_skeleton**\ (\ item\: :ref:`RID`, skeleton\: :ref:`RID`\ ) :ref:`๐Ÿ”—` + +Attaches a skeleton to the :ref:`CanvasItem`. Removes the previous skeleton. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_canvas_item_clear: .. rst-class:: classref-method @@ -7086,7 +7142,9 @@ Sets the shape of the occluder polygon. |void| **canvas_set_item_mirroring**\ (\ canvas\: :ref:`RID`, item\: :ref:`RID`, mirroring\: :ref:`Vector2`\ ) :ref:`๐Ÿ”—` -A copy of the canvas item will be drawn with a local offset of the mirroring :ref:`Vector2`. +A copy of the canvas item will be drawn with a local offset of the ``mirroring``. + +\ **Note:** This is equivalent to calling :ref:`canvas_set_item_repeat` like ``canvas_set_item_repeat(item, mirroring, 1)``, with an additional check ensuring ``canvas`` is a parent of ``item``. .. rst-class:: classref-item-separator @@ -8432,6 +8490,20 @@ Sets the visibility range values for the given geometry instance. Equivalent to ---- +.. _class_RenderingServer_method_instance_reset_physics_interpolation: + +.. rst-class:: classref-method + +|void| **instance_reset_physics_interpolation**\ (\ instance\: :ref:`RID`\ ) :ref:`๐Ÿ”—` + +Prevents physics interpolation for the current physics tick. + +This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_instance_set_base: .. rst-class:: classref-method @@ -8492,6 +8564,18 @@ If ``true``, ignores both frustum and occlusion culling on the specified 3D geom ---- +.. _class_RenderingServer_method_instance_set_interpolated: + +.. rst-class:: classref-method + +|void| **instance_set_interpolated**\ (\ instance\: :ref:`RID`, interpolated\: :ref:`bool`\ ) :ref:`๐Ÿ”—` + +Turns on and off physics interpolation for the instance. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_instance_set_layer_mask: .. rst-class:: classref-method @@ -8962,6 +9046,18 @@ Set the textures on the given ``lightmap`` GI instance to the texture array poin ---- +.. _class_RenderingServer_method_lightmaps_set_bicubic_filter: + +.. rst-class:: classref-method + +|void| **lightmaps_set_bicubic_filter**\ (\ enable\: :ref:`bool`\ ) :ref:`๐Ÿ”—` + +Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_make_sphere_mesh: .. rst-class:: classref-method @@ -9526,6 +9622,20 @@ Returns the :ref:`Transform2D` of the specified instance. For ---- +.. _class_RenderingServer_method_multimesh_instance_reset_physics_interpolation: + +.. rst-class:: classref-method + +|void| **multimesh_instance_reset_physics_interpolation**\ (\ multimesh\: :ref:`RID`, index\: :ref:`int`\ ) :ref:`๐Ÿ”—` + +Prevents physics interpolation for the specified instance during the current physics tick. + +This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_multimesh_instance_set_color: .. rst-class:: classref-method @@ -9601,6 +9711,20 @@ The per-instance data size and expected data order is: ---- +.. _class_RenderingServer_method_multimesh_set_buffer_interpolated: + +.. rst-class:: classref-method + +|void| **multimesh_set_buffer_interpolated**\ (\ multimesh\: :ref:`RID`, buffer\: :ref:`PackedFloat32Array`, buffer_previous\: :ref:`PackedFloat32Array`\ ) :ref:`๐Ÿ”—` + +Alternative version of :ref:`multimesh_set_buffer` for use with physics interpolation. + +Takes both an array of current data and an array of data for the previous physics tick. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_multimesh_set_custom_aabb: .. rst-class:: classref-method @@ -9625,6 +9749,32 @@ Sets the mesh to be drawn by the multimesh. Equivalent to :ref:`MultiMesh.mesh`, interpolated\: :ref:`bool`\ ) :ref:`๐Ÿ”—` + +Turns on and off physics interpolation for this MultiMesh resource. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RenderingServer_method_multimesh_set_physics_interpolation_quality: + +.. rst-class:: classref-method + +|void| **multimesh_set_physics_interpolation_quality**\ (\ multimesh\: :ref:`RID`, quality\: :ref:`MultimeshPhysicsInterpolationQuality`\ ) :ref:`๐Ÿ”—` + +Sets the physics interpolation quality for the :ref:`MultiMesh`. + +A value of :ref:`MULTIMESH_INTERP_QUALITY_FAST` gives fast but low quality interpolation, a value of :ref:`MULTIMESH_INTERP_QUALITY_HIGH` gives slower but higher quality interpolation. + +.. rst-class:: classref-item-separator + +---- + .. _class_RenderingServer_method_multimesh_set_visible_instances: .. rst-class:: classref-method diff --git a/classes/class_resource.rst b/classes/class_resource.rst index 830345729a1..6239494b12f 100644 --- a/classes/class_resource.rst +++ b/classes/class_resource.rst @@ -65,7 +65,7 @@ Methods :widths: auto +---------------------------------+-----------------------------------------------------------------------------------------------------------------+ - | :ref:`RID` | :ref:`_get_rid`\ (\ ) |virtual| | + | :ref:`RID` | :ref:`_get_rid`\ (\ ) |virtual| |const| | +---------------------------------+-----------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_setup_local_to_scene`\ (\ ) |virtual| | +---------------------------------+-----------------------------------------------------------------------------------------------------------------+ @@ -215,7 +215,7 @@ Method Descriptions .. rst-class:: classref-method -:ref:`RID` **_get_rid**\ (\ ) |virtual| :ref:`๐Ÿ”—` +:ref:`RID` **_get_rid**\ (\ ) |virtual| |const| :ref:`๐Ÿ”—` Override this method to return a custom :ref:`RID` when :ref:`get_rid` is called. diff --git a/classes/class_resourceimporterdynamicfont.rst b/classes/class_resourceimporterdynamicfont.rst index c0388887f2e..9cacce548df 100644 --- a/classes/class_resourceimporterdynamicfont.rst +++ b/classes/class_resourceimporterdynamicfont.rst @@ -73,7 +73,7 @@ Properties +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------+-----------+ | :ref:`Dictionary` | :ref:`script_support` | ``{}`` | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`subpixel_positioning` | ``1`` | + | :ref:`int` | :ref:`subpixel_positioning` | ``4`` | +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------+-----------+ .. rst-class:: classref-section-separator @@ -299,7 +299,7 @@ Override the list of language scripts supported by this font. If left empty, thi .. rst-class:: classref-property -:ref:`int` **subpixel_positioning** = ``1`` :ref:`๐Ÿ”—` +:ref:`int` **subpixel_positioning** = ``4`` :ref:`๐Ÿ”—` Subpixel positioning improves font rendering appearance, especially at smaller font sizes. The downside is that it takes more time to initially render the font, which can cause stuttering during gameplay, especially if used with large font sizes. This should be set to **Disabled** for fonts with a pixel art appearance. @@ -311,6 +311,8 @@ Subpixel positioning improves font rendering appearance, especially at smaller f \ **One Quarter of a Pixel:** Always perform precise subpixel positioning regardless of font size. Highest quality, slowest rendering. +\ **Auto (Except Pixel Fonts):** **Disabled** for the pixel style fonts (each glyph contours contain only straight horizontal and vertical lines), **Auto** for the other fonts. + .. |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.)` diff --git a/classes/class_resourceimporterimagefont.rst b/classes/class_resourceimporterimagefont.rst index 989f5f61ffb..d6882106b0b 100644 --- a/classes/class_resourceimporterimagefont.rst +++ b/classes/class_resourceimporterimagefont.rst @@ -183,7 +183,7 @@ Margin to cut on the sides of the entire image. This can be used to cut parts of Kerning pairs for the font. Kerning pair adjust the spacing between two characters. -Each string consist of three space separated values: "from" string, "to" string and integer offset. Each combination form the two string for a kerning pair, e.g, ``ab cd -3`` will create kerning pairs ``ac``, ``ad``, ``bc``, and ``bd`` with offset ``-3``. +Each string consist of three space separated values: "from" string, "to" string and integer offset. Each combination form the two string for a kerning pair, e.g, ``ab cd -3`` will create kerning pairs ``ac``, ``ad``, ``bc``, and ``bd`` with offset ``-3``. ``\uXXXX`` escape sequences can be used to add Unicode characters. **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedStringArray` for more details. diff --git a/classes/class_resourceimporterobj.rst b/classes/class_resourceimporterobj.rst index db0de9ba1fd..cfc2b3127c6 100644 --- a/classes/class_resourceimporterobj.rst +++ b/classes/class_resourceimporterobj.rst @@ -45,8 +45,6 @@ Properties +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+ | :ref:`Vector3` | :ref:`offset_mesh` | ``Vector3(0, 0, 0)`` | +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+ - | :ref:`bool` | :ref:`optimize_mesh` | ``true`` | - +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+ | :ref:`Vector3` | :ref:`scale_mesh` | ``Vector3(1, 1, 1)`` | +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+ @@ -97,18 +95,6 @@ Offsets the mesh's data by the specified value. This can be used to work around ---- -.. _class_ResourceImporterOBJ_property_optimize_mesh: - -.. rst-class:: classref-property - -:ref:`bool` **optimize_mesh** = ``true`` :ref:`๐Ÿ”—` - -Unused parameter. This currently has no effect. - -.. rst-class:: classref-item-separator - ----- - .. _class_ResourceImporterOBJ_property_scale_mesh: .. rst-class:: classref-property diff --git a/classes/class_resourceimporterwav.rst b/classes/class_resourceimporterwav.rst index 6cbf8292c99..cb205171af4 100644 --- a/classes/class_resourceimporterwav.rst +++ b/classes/class_resourceimporterwav.rst @@ -19,7 +19,9 @@ Imports a WAV audio file for playback. Description ----------- -WAV is an uncompressed format, which can provide higher quality compared to Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means high numbers of WAV sounds can be played at the same time, even on low-end deviceS. +WAV is an uncompressed format, which can provide higher quality compared to Ogg Vorbis and MP3. It also has the lowest CPU cost to decode. This means high numbers of WAV sounds can be played at the same time, even on low-end devices. + +By default, Godot imports WAV files using the lossy Quite OK Audio compression. You may change this by setting the :ref:`compress/mode` property. .. rst-class:: classref-introduction-group @@ -37,7 +39,7 @@ Properties :widths: auto +---------------------------+--------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`compress/mode` | ``0`` | + | :ref:`int` | :ref:`compress/mode` | ``2`` | +---------------------------+--------------------------------------------------------------------------------+-----------+ | :ref:`int` | :ref:`edit/loop_begin` | ``0`` | +---------------------------+--------------------------------------------------------------------------------+-----------+ @@ -71,15 +73,15 @@ Property Descriptions .. rst-class:: classref-property -:ref:`int` **compress/mode** = ``0`` :ref:`๐Ÿ”—` +:ref:`int` **compress/mode** = ``2`` :ref:`๐Ÿ”—` The compression mode to use on import. -\ **Disabled:** Imports audio data without any compression. This results in the highest possible quality. +- **PCM (Uncompressed):** Imports audio data without any form of compression, preserving the highest possible quality. It has the lowest CPU cost, but the highest memory usage. -\ **RAM (Ima-ADPCM):** Performs fast lossy compression on import. Low CPU cost, but quality is noticeably decreased compared to Ogg Vorbis or even MP3. +- **IMA ADPCM:** Applies fast, lossy compression during import, noticeably decreasing the quality, but with low CPU cost and memory usage. Does not support seeking and only Forward loop mode is supported. -\ **QOA (`Quite OK Audio `__):** Performs lossy compression on import. CPU cost is slightly higher than IMA-ADPCM, but quality is much higher. +- **\ `Quite OK Audio `__:** Also applies lossy compression on import, having a slightly higher CPU cost compared to IMA ADPCM, but much higher quality and the lowest memory usage. .. rst-class:: classref-item-separator @@ -115,15 +117,17 @@ The end loop point to use when :ref:`edit/loop_mode` **edit/loop_mode** = ``0`` :ref:`๐Ÿ”—` -Controls how audio should loop. This is automatically read from the WAV metadata on import. +Controls how audio should loop. + +- **Detect From WAV:** Uses loop information from the WAV metadata. -\ **Disabled:** Don't loop audio, even if metadata indicates the file should be played back looping. +- **Disabled:** Don't loop audio, even if the metadata indicates the file playback should loop. -\ **Forward:** Standard audio looping. +- **Forward:** Standard audio looping. Plays the audio forward from the beginning to :ref:`edit/loop_end`, then returns to :ref:`edit/loop_begin` and repeats. -\ **Ping-Pong:** Play audio forward until it's done playing, then play it backward and repeat. This is similar to mirrored texture repeat, but for audio. +- **Ping-Pong:** Plays the audio forward until :ref:`edit/loop_end`, then backwards to :ref:`edit/loop_begin`, repeating this cycle. -\ **Backward:** Play audio in reverse and loop back to the end when done playing. +- **Backward:** Plays the audio backwards from :ref:`edit/loop_end` to :ref:`edit/loop_begin`, then repeats. \ **Note:** In :ref:`AudioStreamPlayer`, the :ref:`AudioStreamPlayer.finished` signal won't be emitted for looping audio when it reaches the end of the audio file, as the audio will keep playing indefinitely. diff --git a/classes/class_resourceloader.rst b/classes/class_resourceloader.rst index 845ce3d19e0..a039c11dda5 100644 --- a/classes/class_resourceloader.rst +++ b/classes/class_resourceloader.rst @@ -45,6 +45,8 @@ Methods +---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`exists`\ (\ path\: :ref:`String`, type_hint\: :ref:`String` = ""\ ) | +---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Resource` | :ref:`get_cached_ref`\ (\ path\: :ref:`String`\ ) | + +---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_dependencies`\ (\ path\: :ref:`String`\ ) | +---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_recognized_extensions_for_type`\ (\ type\: :ref:`String`\ ) | @@ -202,6 +204,20 @@ An optional ``type_hint`` can be used to further specify the :ref:`Resource` **get_cached_ref**\ (\ path\: :ref:`String`\ ) :ref:`๐Ÿ”—` + +Returns the cached resource reference for the given ``path``. + +\ **Note:** If the resource is not cached, the returned :ref:`Resource` will be invalid. + +.. rst-class:: classref-item-separator + +---- + .. _class_ResourceLoader_method_get_dependencies: .. rst-class:: classref-method diff --git a/classes/class_resourceuid.rst b/classes/class_resourceuid.rst index cc39a4191b4..47a1cf2a7ea 100644 --- a/classes/class_resourceuid.rst +++ b/classes/class_resourceuid.rst @@ -19,7 +19,7 @@ A singleton that manages the unique identifiers of all resources within a projec Description ----------- -Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files can renamed or moved. They can be accessed with ``uid://``. +Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with ``uid://``. \ **ResourceUID** keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations. diff --git a/classes/class_richtextlabel.rst b/classes/class_richtextlabel.rst index f1a0d6a2b4e..0f10265ceaa 100644 --- a/classes/class_richtextlabel.rst +++ b/classes/class_richtextlabel.rst @@ -67,6 +67,10 @@ Properties +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`bool` | :ref:`hint_underlined` | ``true`` | +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ + | :ref:`HorizontalAlignment` | :ref:`horizontal_alignment` | ``0`` | + +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ + | |bitfield|\[:ref:`JustificationFlag`\] | :ref:`justification_flags` | ``163`` | + +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`String` | :ref:`language` | ``""`` | +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`bool` | :ref:`meta_underlined` | ``true`` | @@ -87,6 +91,8 @@ Properties +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`int` | :ref:`tab_size` | ``4`` | +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ + | :ref:`PackedFloat32Array` | :ref:`tab_stops` | ``PackedFloat32Array()`` | + +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`String` | :ref:`text` | ``""`` | +-----------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------+ | :ref:`TextDirection` | :ref:`text_direction` | ``0`` | @@ -157,6 +163,8 @@ Methods +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`invalidate_paragraph`\ (\ paragraph\: :ref:`int`\ ) | +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_finished`\ (\ ) |const| | + +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_menu_visible`\ (\ ) |const| | +-------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_ready`\ (\ ) |const| | @@ -722,6 +730,40 @@ If ``true``, the label underlines hint tags such as ``[hint=description]{text}[/ ---- +.. _class_RichTextLabel_property_horizontal_alignment: + +.. rst-class:: classref-property + +:ref:`HorizontalAlignment` **horizontal_alignment** = ``0`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_horizontal_alignment**\ (\ value\: :ref:`HorizontalAlignment`\ ) +- :ref:`HorizontalAlignment` **get_horizontal_alignment**\ (\ ) + +Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the :ref:`HorizontalAlignment` constants. + +.. rst-class:: classref-item-separator + +---- + +.. _class_RichTextLabel_property_justification_flags: + +.. rst-class:: classref-property + +|bitfield|\[:ref:`JustificationFlag`\] **justification_flags** = ``163`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_justification_flags**\ (\ value\: |bitfield|\[:ref:`JustificationFlag`\]\ ) +- |bitfield|\[:ref:`JustificationFlag`\] **get_justification_flags**\ (\ ) + +Line fill alignment rules. See :ref:`JustificationFlag` for more information. + +.. rst-class:: classref-item-separator + +---- + .. _class_RichTextLabel_property_language: .. rst-class:: classref-property @@ -894,6 +936,25 @@ The number of spaces associated with a single tab length. Does not affect ``\t`` ---- +.. _class_RichTextLabel_property_tab_stops: + +.. rst-class:: classref-property + +:ref:`PackedFloat32Array` **tab_stops** = ``PackedFloat32Array()`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_tab_stops**\ (\ value\: :ref:`PackedFloat32Array`\ ) +- :ref:`PackedFloat32Array` **get_tab_stops**\ (\ ) + +Aligns text to the given tab-stops. + +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedFloat32Array` for more details. + +.. rst-class:: classref-item-separator + +---- + .. _class_RichTextLabel_property_text: .. rst-class:: classref-property @@ -1089,7 +1150,7 @@ Clears the current selection. Returns the line number of the character position provided. Line and character numbers are both zero-indexed. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1103,7 +1164,7 @@ Returns the line number of the character position provided. Line and character n Returns the paragraph number of the character position provided. Paragraph and character numbers are both zero-indexed. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1117,7 +1178,7 @@ Returns the paragraph number of the character position provided. Paragraph and c Returns the height of the content. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1131,7 +1192,7 @@ Returns the height of the content. Returns the width of the content. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1145,7 +1206,7 @@ Returns the width of the content. Returns the total number of lines in the text. Wrapped text is counted as multiple lines. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1159,7 +1220,7 @@ Returns the total number of lines in the text. Wrapped text is counted as multip Returns the vertical offset of the line found at the provided index. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1244,7 +1305,7 @@ Returns the total number of paragraphs (newlines or ``p`` tags in the tag stack' Returns the vertical offset of the paragraph found at the provided index. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1332,7 +1393,7 @@ Returns the vertical scrollbar. Returns the number of visible lines. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1346,7 +1407,7 @@ Returns the number of visible lines. Returns the number of visible paragraphs. A paragraph is considered visible if at least one of its lines is visible. -\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_ready` or :ref:`finished` to determine whether document is fully loaded. +\ **Note:** If :ref:`threaded` is enabled, this method returns a value for the loaded part of the document. Use :ref:`is_finished` or :ref:`finished` to determine whether document is fully loaded. .. rst-class:: classref-item-separator @@ -1401,6 +1462,18 @@ Invalidates ``paragraph`` and all subsequent paragraphs cache. ---- +.. _class_RichTextLabel_method_is_finished: + +.. rst-class:: classref-method + +:ref:`bool` **is_finished**\ (\ ) |const| :ref:`๐Ÿ”—` + +If :ref:`threaded` is enabled, returns ``true`` if the background thread has finished text processing, otherwise always return ``true``. + +.. rst-class:: classref-item-separator + +---- + .. _class_RichTextLabel_method_is_menu_visible: .. rst-class:: classref-method @@ -1419,6 +1492,8 @@ Returns whether the menu is visible. Use this instead of ``get_menu().visible`` :ref:`bool` **is_ready**\ (\ ) |const| :ref:`๐Ÿ”—` +**Deprecated:** Use :ref:`is_finished` instead. + If :ref:`threaded` is enabled, returns ``true`` if the background thread has finished text processing, otherwise always return ``true``. .. rst-class:: classref-item-separator diff --git a/classes/class_scripteditor.rst b/classes/class_scripteditor.rst index f7963518b6d..554d9de0ea1 100644 --- a/classes/class_scripteditor.rst +++ b/classes/class_scripteditor.rst @@ -31,6 +31,8 @@ Methods .. table:: :widths: auto + +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedStringArray` | :ref:`get_breakpoints`\ (\ ) | +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ScriptEditorBase` | :ref:`get_current_editor`\ (\ ) |const| | +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -89,6 +91,18 @@ Emitted when editor is about to close the active script. Argument is a :ref:`Scr Method Descriptions ------------------- +.. _class_ScriptEditor_method_get_breakpoints: + +.. rst-class:: classref-method + +:ref:`PackedStringArray` **get_breakpoints**\ (\ ) :ref:`๐Ÿ”—` + +Returns array of breakpoints. + +.. rst-class:: classref-item-separator + +---- + .. _class_ScriptEditor_method_get_current_editor: .. rst-class:: classref-method @@ -147,8 +161,6 @@ Opens help for the given topic. The ``topic`` is an encoded string that controls The supported ``topic`` formats include ``class_name:class``, ``class_method:class:method``, ``class_constant:class:constant``, ``class_signal:class:signal``, ``class_annotation:class:@annotation``, ``class_property:class:property``, and ``class_theme_item:class:item``, where ``class`` is the class name, ``method`` is the method name, ``constant`` is the constant name, ``signal`` is the signal name, ``annotation`` is the annotation name, ``property`` is the property name, and ``item`` is the theme item. -\ **Examples:**\ - :: # Shows help for the Node class. diff --git a/classes/class_scriptlanguageextension.rst b/classes/class_scriptlanguageextension.rst index 5c3fde62ee9..4ad7879b7b4 100644 --- a/classes/class_scriptlanguageextension.rst +++ b/classes/class_scriptlanguageextension.rst @@ -127,6 +127,8 @@ Methods +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_reload_all_scripts`\ (\ ) |virtual| | +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`_reload_scripts`\ (\ scripts\: :ref:`Array`, soft_reload\: :ref:`bool`\ ) |virtual| | + +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_reload_tool_script`\ (\ script\: :ref:`Script`, soft_reload\: :ref:`bool`\ ) |virtual| | +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`_remove_named_global_constant`\ (\ name\: :ref:`StringName`\ ) |virtual| | @@ -1180,6 +1182,20 @@ Returns the line where the function is defined in the code, or ``-1`` if the fun ---- +.. _class_ScriptLanguageExtension_private_method__reload_scripts: + +.. rst-class:: classref-method + +|void| **_reload_scripts**\ (\ scripts\: :ref:`Array`, soft_reload\: :ref:`bool`\ ) |virtual| :ref:`๐Ÿ”—` + +.. container:: contribute + + There is currently no description for this method. Please help us by :ref:`contributing one `! + +.. rst-class:: classref-item-separator + +---- + .. _class_ScriptLanguageExtension_private_method__reload_tool_script: .. rst-class:: classref-method diff --git a/classes/class_semaphore.rst b/classes/class_semaphore.rst index dba9b2dc128..ab7c8890dcb 100644 --- a/classes/class_semaphore.rst +++ b/classes/class_semaphore.rst @@ -46,13 +46,13 @@ Methods .. table:: :widths: auto - +-------------------------+--------------------------------------------------------+ - | |void| | :ref:`post`\ (\ ) | - +-------------------------+--------------------------------------------------------+ - | :ref:`bool` | :ref:`try_wait`\ (\ ) | - +-------------------------+--------------------------------------------------------+ - | |void| | :ref:`wait`\ (\ ) | - +-------------------------+--------------------------------------------------------+ + +-------------------------+-----------------------------------------------------------------------------------+ + | |void| | :ref:`post`\ (\ count\: :ref:`int` = 1\ ) | + +-------------------------+-----------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`try_wait`\ (\ ) | + +-------------------------+-----------------------------------------------------------------------------------+ + | |void| | :ref:`wait`\ (\ ) | + +-------------------------+-----------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -67,9 +67,9 @@ Method Descriptions .. rst-class:: classref-method -|void| **post**\ (\ ) :ref:`๐Ÿ”—` +|void| **post**\ (\ count\: :ref:`int` = 1\ ) :ref:`๐Ÿ”—` -Lowers the **Semaphore**, allowing one more thread in. +Lowers the **Semaphore**, allowing one thread in, or more if ``count`` is specified. .. rst-class:: classref-item-separator diff --git a/classes/class_shader.rst b/classes/class_shader.rst index 00d4576142b..20d7683c8d3 100644 --- a/classes/class_shader.rst +++ b/classes/class_shader.rst @@ -52,15 +52,15 @@ Methods .. table:: :widths: auto - +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Texture2D` | :ref:`get_default_texture_parameter`\ (\ name\: :ref:`StringName`, index\: :ref:`int` = 0\ ) |const| | - +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Mode` | :ref:`get_mode`\ (\ ) |const| | - +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Array` | :ref:`get_shader_uniform_list`\ (\ get_groups\: :ref:`bool` = false\ ) | - +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_default_texture_parameter`\ (\ name\: :ref:`StringName`, texture\: :ref:`Texture2D`, index\: :ref:`int` = 0\ ) | - +-----------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Texture` | :ref:`get_default_texture_parameter`\ (\ name\: :ref:`StringName`, index\: :ref:`int` = 0\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Mode` | :ref:`get_mode`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Array` | :ref:`get_shader_uniform_list`\ (\ get_groups\: :ref:`bool` = false\ ) | + +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_default_texture_parameter`\ (\ name\: :ref:`StringName`, texture\: :ref:`Texture`, index\: :ref:`int` = 0\ ) | + +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -152,7 +152,7 @@ Method Descriptions .. rst-class:: classref-method -:ref:`Texture2D` **get_default_texture_parameter**\ (\ name\: :ref:`StringName`, index\: :ref:`int` = 0\ ) |const| :ref:`๐Ÿ”—` +:ref:`Texture` **get_default_texture_parameter**\ (\ name\: :ref:`StringName`, index\: :ref:`int` = 0\ ) |const| :ref:`๐Ÿ”—` Returns the texture that is set as default for the specified parameter. @@ -194,7 +194,7 @@ If argument ``get_groups`` is true, parameter grouping hints will be provided. .. rst-class:: classref-method -|void| **set_default_texture_parameter**\ (\ name\: :ref:`StringName`, texture\: :ref:`Texture2D`, index\: :ref:`int` = 0\ ) :ref:`๐Ÿ”—` +|void| **set_default_texture_parameter**\ (\ name\: :ref:`StringName`, texture\: :ref:`Texture`, index\: :ref:`int` = 0\ ) :ref:`๐Ÿ”—` Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the :ref:`ShaderMaterial`. diff --git a/classes/class_shapecast2d.rst b/classes/class_shapecast2d.rst index fefcbd4e2df..0e93e897b49 100644 --- a/classes/class_shapecast2d.rst +++ b/classes/class_shapecast2d.rst @@ -153,7 +153,7 @@ If ``true``, collisions with :ref:`PhysicsBody2D`\ s will b - |void| **set_collision_mask**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_collision_mask**\ (\ ) -The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. +The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information. .. rst-class:: classref-item-separator @@ -165,6 +165,10 @@ The shape's collision mask. Only objects in at least one collision layer enabled :ref:`Array` **collision_result** = ``[]`` :ref:`๐Ÿ”—` +.. rst-class:: classref-property-setget + +- :ref:`Array` **get_collision_result**\ (\ ) + Returns the complete collision information from the collision sweep. The data returned is the same as in the :ref:`PhysicsDirectSpaceState2D.get_rest_info` method. .. rst-class:: classref-item-separator @@ -250,7 +254,7 @@ The number of intersections can be limited with this parameter, to reduce the pr - |void| **set_shape**\ (\ value\: :ref:`Shape2D`\ ) - :ref:`Shape2D` **get_shape**\ (\ ) -The :ref:`Shape2D`-derived shape to be used for collision queries. +The shape to be used for collision queries. .. rst-class:: classref-item-separator @@ -267,7 +271,7 @@ The :ref:`Shape2D`-derived shape to be used for collision queries - |void| **set_target_position**\ (\ value\: :ref:`Vector2`\ ) - :ref:`Vector2` **get_target_position**\ (\ ) -The shape's destination point, relative to this node's ``position``. +The shape's destination point, relative to this node's :ref:`Node2D.position`. .. rst-class:: classref-section-separator @@ -284,7 +288,7 @@ Method Descriptions |void| **add_exception**\ (\ node\: :ref:`CollisionObject2D`\ ) :ref:`๐Ÿ”—` -Adds a collision exception so the shape does not report collisions with the specified :ref:`CollisionObject2D` node. +Adds a collision exception so the shape does not report collisions with the specified node. .. rst-class:: classref-item-separator @@ -322,7 +326,7 @@ Removes all collision exceptions for this shape. Updates the collision information for the shape immediately, without waiting for the next ``_physics_process`` call. Use this method, for example, when the shape or its parent has changed state. -\ **Note:** ``enabled == true`` is not required for this to work. +\ **Note:** Setting :ref:`enabled` to ``true`` is not required for this to work. .. rst-class:: classref-item-separator @@ -334,7 +338,7 @@ Updates the collision information for the shape immediately, without waiting for :ref:`float` **get_closest_collision_safe_fraction**\ (\ ) |const| :ref:`๐Ÿ”—` -The fraction from the **ShapeCast2D**'s origin to its :ref:`target_position` (between 0 and 1) of how far the shape can move without triggering a collision. +Returns the fraction from this cast's origin to its :ref:`target_position` of how far the shape can move without triggering a collision, as a value between ``0.0`` and ``1.0``. .. rst-class:: classref-item-separator @@ -346,7 +350,7 @@ The fraction from the **ShapeCast2D**'s origin to its :ref:`target_position` **get_closest_collision_unsafe_fraction**\ (\ ) |const| :ref:`๐Ÿ”—` -The fraction from the **ShapeCast2D**'s origin to its :ref:`target_position` (between 0 and 1) of how far the shape must move to trigger a collision. +Returns the fraction from this cast's origin to its :ref:`target_position` of how far the shape must move to trigger a collision, as a value between ``0.0`` and ``1.0``. In ideal conditions this would be the same as :ref:`get_closest_collision_safe_fraction`, however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. @@ -434,7 +438,7 @@ Returns the normal of one of the multiple collisions at ``index`` of the interse Returns the collision point of one of the multiple collisions at ``index`` where the shape intersects the colliding object. -\ **Note:** this point is in the **global** coordinate system. +\ **Note:** This point is in the **global** coordinate system. .. rst-class:: classref-item-separator @@ -458,7 +462,7 @@ Returns whether any object is intersecting with the shape's vector (considering |void| **remove_exception**\ (\ node\: :ref:`CollisionObject2D`\ ) :ref:`๐Ÿ”—` -Removes a collision exception so the shape does report collisions with the specified :ref:`CollisionObject2D` node. +Removes a collision exception so the shape does report collisions with the specified node. .. rst-class:: classref-item-separator diff --git a/classes/class_shapecast3d.rst b/classes/class_shapecast3d.rst index 09a71f904f8..cb1dc3cbd71 100644 --- a/classes/class_shapecast3d.rst +++ b/classes/class_shapecast3d.rst @@ -169,6 +169,10 @@ The shape's collision mask. Only objects in at least one collision layer enabled :ref:`Array` **collision_result** = ``[]`` :ref:`๐Ÿ”—` +.. rst-class:: classref-property-setget + +- :ref:`Array` **get_collision_result**\ (\ ) + Returns the complete collision information from the collision sweep. The data returned is the same as in the :ref:`PhysicsDirectSpaceState3D.get_rest_info` method. .. rst-class:: classref-item-separator @@ -273,7 +277,7 @@ The number of intersections can be limited with this parameter, to reduce the pr - |void| **set_shape**\ (\ value\: :ref:`Shape3D`\ ) - :ref:`Shape3D` **get_shape**\ (\ ) -The :ref:`Shape3D`-derived shape to be used for collision queries. +The shape to be used for collision queries. .. rst-class:: classref-item-separator @@ -290,7 +294,7 @@ The :ref:`Shape3D`-derived shape to be used for collision queries - |void| **set_target_position**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_target_position**\ (\ ) -The shape's destination point, relative to this node's ``position``. +The shape's destination point, relative to this node's :ref:`Node3D.position`. .. rst-class:: classref-section-separator @@ -307,7 +311,7 @@ Method Descriptions |void| **add_exception**\ (\ node\: :ref:`CollisionObject3D`\ ) :ref:`๐Ÿ”—` -Adds a collision exception so the shape does not report collisions with the specified :ref:`CollisionObject3D` node. +Adds a collision exception so the shape does not report collisions with the specified node. .. rst-class:: classref-item-separator @@ -331,7 +335,7 @@ Adds a collision exception so the shape does not report collisions with the spec |void| **clear_exceptions**\ (\ ) :ref:`๐Ÿ”—` -Removes all collision exceptions for this **ShapeCast3D**. +Removes all collision exceptions for this shape. .. rst-class:: classref-item-separator @@ -345,7 +349,7 @@ Removes all collision exceptions for this **ShapeCast3D**. Updates the collision information for the shape immediately, without waiting for the next ``_physics_process`` call. Use this method, for example, when the shape or its parent has changed state. -\ **Note:** ``enabled == true`` is not required for this to work. +\ **Note:** Setting :ref:`enabled` to ``true`` is not required for this to work. .. rst-class:: classref-item-separator @@ -357,7 +361,7 @@ Updates the collision information for the shape immediately, without waiting for :ref:`float` **get_closest_collision_safe_fraction**\ (\ ) |const| :ref:`๐Ÿ”—` -The fraction from the **ShapeCast3D**'s origin to its :ref:`target_position` (between 0 and 1) of how far the shape can move without triggering a collision. +Returns the fraction from this cast's origin to its :ref:`target_position` of how far the shape can move without triggering a collision, as a value between ``0.0`` and ``1.0``. .. rst-class:: classref-item-separator @@ -369,7 +373,7 @@ The fraction from the **ShapeCast3D**'s origin to its :ref:`target_position` **get_closest_collision_unsafe_fraction**\ (\ ) |const| :ref:`๐Ÿ”—` -The fraction from the **ShapeCast3D**'s origin to its :ref:`target_position` (between 0 and 1) of how far the shape must move to trigger a collision. +Returns the fraction from this cast's origin to its :ref:`target_position` of how far the shape must move to trigger a collision, as a value between ``0.0`` and ``1.0``. In ideal conditions this would be the same as :ref:`get_closest_collision_safe_fraction`, however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. @@ -457,7 +461,7 @@ Returns the normal of one of the multiple collisions at ``index`` of the interse Returns the collision point of one of the multiple collisions at ``index`` where the shape intersects the colliding object. -\ **Note:** this point is in the **global** coordinate system. +\ **Note:** This point is in the **global** coordinate system. .. rst-class:: classref-item-separator @@ -481,7 +485,7 @@ Returns whether any object is intersecting with the shape's vector (considering |void| **remove_exception**\ (\ node\: :ref:`CollisionObject3D`\ ) :ref:`๐Ÿ”—` -Removes a collision exception so the shape does report collisions with the specified :ref:`CollisionObject3D` node. +Removes a collision exception so the shape does report collisions with the specified node. .. rst-class:: classref-item-separator diff --git a/classes/class_signal.rst b/classes/class_signal.rst index de512669939..04fd6d08243 100644 --- a/classes/class_signal.rst +++ b/classes/class_signal.rst @@ -279,7 +279,7 @@ Returns ``true`` if the specified :ref:`Callable` is connected t :ref:`bool` **is_null**\ (\ ) |const| :ref:`๐Ÿ”—` -Returns ``true`` if the signal's name does not exist in its object, or the object is not valid. +Returns ``true`` if this **Signal** has no object and the signal name is empty. Equivalent to ``signal == Signal()``. .. rst-class:: classref-section-separator diff --git a/classes/class_spinbox.rst b/classes/class_spinbox.rst index fe44c94d495..e917bda31bb 100644 --- a/classes/class_spinbox.rst +++ b/classes/class_spinbox.rst @@ -24,7 +24,7 @@ Description **SpinBox** is a numerical input text field. It allows entering integers and floating-point numbers. -\ **Example:**\ +\ **Example:** Create a **SpinBox**, disable its context menu and set its text alignment to right. .. tabs:: @@ -47,13 +47,11 @@ Description -The above code will create a **SpinBox**, disable context menu on it and set the text alignment to right. - See :ref:`Range` class for more options over the **SpinBox**. \ **Note:** With the **SpinBox**'s context menu disabled, you can right-click the bottom half of the spinbox to set the value to its minimum, while right-clicking the top half sets the value to its maximum. -\ **Note:** **SpinBox** relies on an underlying :ref:`LineEdit` node. To theme a **SpinBox**'s background, add theme items for :ref:`LineEdit` and customize them. +\ **Note:** **SpinBox** relies on an underlying :ref:`LineEdit` node. To theme a **SpinBox**'s background, add theme items for :ref:`LineEdit` and customize them. The :ref:`LineEdit` has the ``SpinBoxInnerLineEdit`` theme variation, so that you can give it a distinct appearance from regular :ref:`LineEdit`\ s. \ **Note:** If you want to implement drag and drop for the underlying :ref:`LineEdit`, you can use :ref:`Control.set_drag_forwarding` on the node returned by :ref:`get_line_edit`. @@ -107,9 +105,69 @@ Theme Properties .. table:: :widths: auto - +-----------------------------------+------------------------------------------------+ - | :ref:`Texture2D` | :ref:`updown` | - +-----------------------------------+------------------------------------------------+ + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`down_disabled_icon_modulate` | ``Color(0.875, 0.875, 0.875, 0.5)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`down_hover_icon_modulate` | ``Color(0.95, 0.95, 0.95, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`down_icon_modulate` | ``Color(0.875, 0.875, 0.875, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`down_pressed_icon_modulate` | ``Color(0.95, 0.95, 0.95, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`up_disabled_icon_modulate` | ``Color(0.875, 0.875, 0.875, 0.5)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`up_hover_icon_modulate` | ``Color(0.95, 0.95, 0.95, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`up_icon_modulate` | ``Color(0.875, 0.875, 0.875, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Color` | :ref:`up_pressed_icon_modulate` | ``Color(0.95, 0.95, 0.95, 1)`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`int` | :ref:`buttons_vertical_separation` | ``0`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`int` | :ref:`buttons_width` | ``16`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`int` | :ref:`field_and_buttons_separation` | ``2`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`int` | :ref:`set_min_buttons_width_from_icons` | ``1`` | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`down` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`down_disabled` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`down_hover` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`down_pressed` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`up` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`up_disabled` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`up_hover` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`up_pressed` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`Texture2D` | :ref:`updown` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`down_background` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`down_background_disabled` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`down_background_hovered` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`down_background_pressed` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`field_and_buttons_separator` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`up_background` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`up_background_disabled` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`up_background_hovered` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`up_background_pressed` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ + | :ref:`StyleBox` | :ref:`up_down_buttons_separator` | | + +-----------------------------------+--------------------------------------------------------------------------------------------------------+-------------------------------------+ .. rst-class:: classref-section-separator @@ -275,13 +333,373 @@ Returns the :ref:`LineEdit` instance from this **SpinBox**. You Theme Property Descriptions --------------------------- +.. _class_SpinBox_theme_color_down_disabled_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **down_disabled_icon_modulate** = ``Color(0.875, 0.875, 0.875, 0.5)`` :ref:`๐Ÿ”—` + +Down button icon modulation color, when the button is disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_down_hover_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **down_hover_icon_modulate** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐Ÿ”—` + +Down button icon modulation color, when the button is hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_down_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **down_icon_modulate** = ``Color(0.875, 0.875, 0.875, 1)`` :ref:`๐Ÿ”—` + +Down button icon modulation color. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_down_pressed_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **down_pressed_icon_modulate** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐Ÿ”—` + +Down button icon modulation color, when the button is being pressed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_up_disabled_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **up_disabled_icon_modulate** = ``Color(0.875, 0.875, 0.875, 0.5)`` :ref:`๐Ÿ”—` + +Up button icon modulation color, when the button is disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_up_hover_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **up_hover_icon_modulate** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐Ÿ”—` + +Up button icon modulation color, when the button is hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_up_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **up_icon_modulate** = ``Color(0.875, 0.875, 0.875, 1)`` :ref:`๐Ÿ”—` + +Up button icon modulation color. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_color_up_pressed_icon_modulate: + +.. rst-class:: classref-themeproperty + +:ref:`Color` **up_pressed_icon_modulate** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐Ÿ”—` + +Up button icon modulation color, when the button is being pressed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_constant_buttons_vertical_separation: + +.. rst-class:: classref-themeproperty + +:ref:`int` **buttons_vertical_separation** = ``0`` :ref:`๐Ÿ”—` + +Vertical separation between the up and down buttons. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_constant_buttons_width: + +.. rst-class:: classref-themeproperty + +:ref:`int` **buttons_width** = ``16`` :ref:`๐Ÿ”—` + +Width of the up and down buttons. If smaller than any icon set on the buttons, the respective icon may overlap neighboring elements. If smaller than ``0``, the width is automatically adjusted from the icon size. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_constant_field_and_buttons_separation: + +.. rst-class:: classref-themeproperty + +:ref:`int` **field_and_buttons_separation** = ``2`` :ref:`๐Ÿ”—` + +Width of the horizontal separation between the text input field (:ref:`LineEdit`) and the buttons. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_constant_set_min_buttons_width_from_icons: + +.. rst-class:: classref-themeproperty + +:ref:`int` **set_min_buttons_width_from_icons** = ``1`` :ref:`๐Ÿ”—` + +If not ``0``, the minimum button width corresponds to the widest of all icons set on those buttons, even if :ref:`buttons_width` is smaller. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_down: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **down** :ref:`๐Ÿ”—` + +Down button icon, displayed in the middle of the down (value-decreasing) button. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_down_disabled: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **down_disabled** :ref:`๐Ÿ”—` + +Down button icon when the button is disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_down_hover: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **down_hover** :ref:`๐Ÿ”—` + +Down button icon when the button is hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_down_pressed: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **down_pressed** :ref:`๐Ÿ”—` + +Down button icon when the button is being pressed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_up: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **up** :ref:`๐Ÿ”—` + +Up button icon, displayed in the middle of the up (value-increasing) button. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_up_disabled: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **up_disabled** :ref:`๐Ÿ”—` + +Up button icon when the button is disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_up_hover: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **up_hover** :ref:`๐Ÿ”—` + +Up button icon when the button is hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_icon_up_pressed: + +.. rst-class:: classref-themeproperty + +:ref:`Texture2D` **up_pressed** :ref:`๐Ÿ”—` + +Up button icon when the button is being pressed. + +.. rst-class:: classref-item-separator + +---- + .. _class_SpinBox_theme_icon_updown: .. rst-class:: classref-themeproperty :ref:`Texture2D` **updown** :ref:`๐Ÿ”—` -Sets a custom :ref:`Texture2D` for up and down arrows of the **SpinBox**. +Single texture representing both the up and down buttons icons. It is displayed in the middle of the buttons and does not change upon interaction. It is recommended to use individual :ref:`up` and :ref:`down` graphics for better usability. This can also be used as additional decoration between the two buttons. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_down_background: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **down_background** :ref:`๐Ÿ”—` + +Background style of the down button. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_down_background_disabled: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **down_background_disabled** :ref:`๐Ÿ”—` + +Background style of the down button when disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_down_background_hovered: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **down_background_hovered** :ref:`๐Ÿ”—` + +Background style of the down button when hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_down_background_pressed: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **down_background_pressed** :ref:`๐Ÿ”—` + +Background style of the down button when being pressed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_field_and_buttons_separator: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **field_and_buttons_separator** :ref:`๐Ÿ”—` + +:ref:`StyleBox` drawn in the space occupied by the separation between the input field and the buttons. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_up_background: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **up_background** :ref:`๐Ÿ”—` + +Background style of the up button. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_up_background_disabled: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **up_background_disabled** :ref:`๐Ÿ”—` + +Background style of the up button when disabled. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_up_background_hovered: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **up_background_hovered** :ref:`๐Ÿ”—` + +Background style of the up button when hovered. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_up_background_pressed: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **up_background_pressed** :ref:`๐Ÿ”—` + +Background style of the up button when being pressed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_SpinBox_theme_style_up_down_buttons_separator: + +.. rst-class:: classref-themeproperty + +:ref:`StyleBox` **up_down_buttons_separator** :ref:`๐Ÿ”—` + +:ref:`StyleBox` drawn in the space occupied by the separation between the up and down buttons. .. |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.)` diff --git a/classes/class_sprite2d.rst b/classes/class_sprite2d.rst index 4040bce9faa..4acb0f4a924 100644 --- a/classes/class_sprite2d.rst +++ b/classes/class_sprite2d.rst @@ -331,9 +331,9 @@ Method Descriptions :ref:`Rect2` **get_rect**\ (\ ) |const| :ref:`๐Ÿ”—` -Returns a :ref:`Rect2` representing the Sprite2D's boundary in local coordinates. Can be used to detect if the Sprite2D was clicked. +Returns a :ref:`Rect2` representing the Sprite2D's boundary in local coordinates. -\ **Example:**\ +\ **Example:** Detect if the Sprite2D was clicked: .. tabs:: diff --git a/classes/class_spriteframes.rst b/classes/class_spriteframes.rst index 86e11ef0a13..ab02369819f 100644 --- a/classes/class_spriteframes.rst +++ b/classes/class_spriteframes.rst @@ -38,6 +38,8 @@ Methods +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_all`\ (\ ) | +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`duplicate_animation`\ (\ anim_from\: :ref:`StringName`, anim_to\: :ref:`StringName`\ ) | + +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_animation_loop`\ (\ anim\: :ref:`StringName`\ ) |const| | +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_animation_names`\ (\ ) |const| | @@ -122,6 +124,18 @@ Removes all animations. An empty ``default`` animation will be created. ---- +.. _class_SpriteFrames_method_duplicate_animation: + +.. rst-class:: classref-method + +|void| **duplicate_animation**\ (\ anim_from\: :ref:`StringName`, anim_to\: :ref:`StringName`\ ) :ref:`๐Ÿ”—` + +Duplicates the animation ``anim_from`` to a new animation named ``anim_to``. Fails if ``anim_to`` already exists, or if ``anim_from`` does not exist. + +.. rst-class:: classref-item-separator + +---- + .. _class_SpriteFrames_method_get_animation_loop: .. rst-class:: classref-method diff --git a/classes/class_string.rst b/classes/class_string.rst index c9e175f5fc5..9039a710fe8 100644 --- a/classes/class_string.rst +++ b/classes/class_string.rst @@ -137,6 +137,8 @@ Methods +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_subsequence_ofn`\ (\ text\: :ref:`String`\ ) |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_valid_ascii_identifier`\ (\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_filename`\ (\ ) |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_float`\ (\ ) |const| | @@ -151,6 +153,8 @@ Methods +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_ip_address`\ (\ ) |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_valid_unicode_identifier`\ (\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`join`\ (\ parts\: :ref:`PackedStringArray`\ ) |const| | +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`json_escape`\ (\ ) |const| | @@ -816,8 +820,6 @@ Splits the string using a ``delimiter`` and returns the substring at index ``sli This is faster than :ref:`split`, if you only need one substring. -\ **Example:**\ - :: print("i/am/example/hi".get_slice("/", 2)) # Prints "example" @@ -1033,6 +1035,27 @@ Returns ``true`` if all characters of this string can be found in ``text`` in th ---- +.. _class_String_method_is_valid_ascii_identifier: + +.. rst-class:: classref-method + +:ref:`bool` **is_valid_ascii_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if this string is a valid ASCII identifier. A valid ASCII identifier may contain only letters, digits, and underscores (``_``), and the first character may not be a digit. + +:: + + print("node_2d".is_valid_ascii_identifier()) # Prints true + print("TYPE_FLOAT".is_valid_ascii_identifier()) # Prints true + print("1st_method".is_valid_ascii_identifier()) # Prints false + print("MyMethod#2".is_valid_ascii_identifier()) # Prints false + +See also :ref:`is_valid_unicode_identifier`. + +.. rst-class:: classref-item-separator + +---- + .. _class_String_method_is_valid_filename: .. rst-class:: classref-method @@ -1104,6 +1127,8 @@ Returns ``true`` if this string is a valid color in hexadecimal HTML notation. T :ref:`bool` **is_valid_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` +**Deprecated:** Use :ref:`is_valid_ascii_identifier` instead. + Returns ``true`` if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (``_``), and the first character may not be a digit. :: @@ -1149,6 +1174,33 @@ Returns ``true`` if this string represents a well-formatted IPv4 or IPv6 address ---- +.. _class_String_method_is_valid_unicode_identifier: + +.. rst-class:: classref-method + +:ref:`bool` **is_valid_unicode_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if this string is a valid Unicode identifier. + +A valid Unicode identifier must begin with a Unicode character of class ``XID_Start`` or ``"_"``, and may contain Unicode characters of class ``XID_Continue`` in the other positions. + +:: + + print("node_2d".is_valid_unicode_identifier()) # Prints true + print("1st_method".is_valid_unicode_identifier()) # Prints false + print("MyMethod#2".is_valid_unicode_identifier()) # Prints false + print("รกllรณkรฉpessรฉg".is_valid_unicode_identifier()) # Prints true + print("ะฒั‹ะฝะพัะปะธะฒะพัั‚ัŒ".is_valid_unicode_identifier()) # Prints true + print("ไฝ“ๅŠ›".is_valid_unicode_identifier()) # Prints true + +See also :ref:`is_valid_ascii_identifier`. + +\ **Note:** This method checks identifiers the same way as GDScript. See :ref:`TextServer.is_valid_identifier` for more advanced checks. + +.. rst-class:: classref-item-separator + +---- + .. _class_String_method_join: .. rst-class:: classref-method @@ -1157,8 +1209,6 @@ Returns ``true`` if this string represents a well-formatted IPv4 or IPv6 address Returns the concatenation of ``parts``' elements, with each element separated by the string calling this method. This method is the opposite of :ref:`split`. -\ **Example:**\ - .. tabs:: @@ -1362,8 +1412,6 @@ If ``decimals`` is ``-1`` as by default, the string representation may only have Trailing zeros are not included in the string. The last digit is rounded, not truncated. -\ **Example:**\ - :: String.num(3.141593) # Returns "3.141593" @@ -1598,8 +1646,6 @@ If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are e If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split, which is mostly identical to :ref:`split`. -\ **Example:**\ - .. tabs:: @@ -1732,8 +1778,6 @@ If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are e If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_stringname.rst b/classes/class_stringname.rst index 3355a4ee007..401fa86b7b5 100644 --- a/classes/class_stringname.rst +++ b/classes/class_stringname.rst @@ -130,6 +130,8 @@ Methods +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_subsequence_ofn`\ (\ text\: :ref:`String`\ ) |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_valid_ascii_identifier`\ (\ ) |const| | + +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_filename`\ (\ ) |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_float`\ (\ ) |const| | @@ -144,6 +146,8 @@ Methods +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_valid_ip_address`\ (\ ) |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_valid_unicode_identifier`\ (\ ) |const| | + +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`join`\ (\ parts\: :ref:`PackedStringArray`\ ) |const| | +-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`json_escape`\ (\ ) |const| | @@ -763,8 +767,6 @@ Splits the string using a ``delimiter`` and returns the substring at index ``sli This is faster than :ref:`split`, if you only need one substring. -\ **Example:**\ - :: print("i/am/example/hi".get_slice("/", 2)) # Prints "example" @@ -966,6 +968,27 @@ Returns ``true`` if all characters of this string can be found in ``text`` in th ---- +.. _class_StringName_method_is_valid_ascii_identifier: + +.. rst-class:: classref-method + +:ref:`bool` **is_valid_ascii_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if this string is a valid ASCII identifier. A valid ASCII identifier may contain only letters, digits, and underscores (``_``), and the first character may not be a digit. + +:: + + print("node_2d".is_valid_ascii_identifier()) # Prints true + print("TYPE_FLOAT".is_valid_ascii_identifier()) # Prints true + print("1st_method".is_valid_ascii_identifier()) # Prints false + print("MyMethod#2".is_valid_ascii_identifier()) # Prints false + +See also :ref:`is_valid_unicode_identifier`. + +.. rst-class:: classref-item-separator + +---- + .. _class_StringName_method_is_valid_filename: .. rst-class:: classref-method @@ -1037,6 +1060,8 @@ Returns ``true`` if this string is a valid color in hexadecimal HTML notation. T :ref:`bool` **is_valid_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` +**Deprecated:** Use :ref:`is_valid_ascii_identifier` instead. + Returns ``true`` if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (``_``), and the first character may not be a digit. :: @@ -1082,6 +1107,33 @@ Returns ``true`` if this string represents a well-formatted IPv4 or IPv6 address ---- +.. _class_StringName_method_is_valid_unicode_identifier: + +.. rst-class:: classref-method + +:ref:`bool` **is_valid_unicode_identifier**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if this string is a valid Unicode identifier. + +A valid Unicode identifier must begin with a Unicode character of class ``XID_Start`` or ``"_"``, and may contain Unicode characters of class ``XID_Continue`` in the other positions. + +:: + + print("node_2d".is_valid_unicode_identifier()) # Prints true + print("1st_method".is_valid_unicode_identifier()) # Prints false + print("MyMethod#2".is_valid_unicode_identifier()) # Prints false + print("รกllรณkรฉpessรฉg".is_valid_unicode_identifier()) # Prints true + print("ะฒั‹ะฝะพัะปะธะฒะพัั‚ัŒ".is_valid_unicode_identifier()) # Prints true + print("ไฝ“ๅŠ›".is_valid_unicode_identifier()) # Prints true + +See also :ref:`is_valid_ascii_identifier`. + +\ **Note:** This method checks identifiers the same way as GDScript. See :ref:`TextServer.is_valid_identifier` for more advanced checks. + +.. rst-class:: classref-item-separator + +---- + .. _class_StringName_method_join: .. rst-class:: classref-method @@ -1090,8 +1142,6 @@ Returns ``true`` if this string represents a well-formatted IPv4 or IPv6 address Returns the concatenation of ``parts``' elements, with each element separated by the string calling this method. This method is the opposite of :ref:`split`. -\ **Example:**\ - .. tabs:: @@ -1434,8 +1484,6 @@ If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are e If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split, which is mostly identical to :ref:`split`. -\ **Example:**\ - .. tabs:: @@ -1568,8 +1616,6 @@ If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are e If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_styleboxflat.rst b/classes/class_styleboxflat.rst index 1b8f6d7b08a..043c1a26f31 100644 --- a/classes/class_styleboxflat.rst +++ b/classes/class_styleboxflat.rst @@ -21,9 +21,7 @@ Description By configuring various properties of this style box, you can achieve many common looks without the need of a texture. This includes optionally rounded borders, antialiasing, shadows, and skew. -Setting corner radius to high values is allowed. As soon as corners overlap, the stylebox will switch to a relative system. - -\ **Example:**\ +Setting corner radius to high values is allowed. As soon as corners overlap, the stylebox will switch to a relative system: .. code:: text diff --git a/classes/class_textedit.rst b/classes/class_textedit.rst index f71171de46c..ad8f4780551 100644 --- a/classes/class_textedit.rst +++ b/classes/class_textedit.rst @@ -95,6 +95,8 @@ Properties +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`scroll_fit_content_height` | ``false`` | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`scroll_fit_content_width` | ``false`` | + +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`scroll_horizontal` | ``0`` | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`scroll_past_end_of_file` | ``false`` | @@ -1508,7 +1510,24 @@ Text shown when the **TextEdit** is empty. It is **not** the **TextEdit**'s defa - |void| **set_fit_content_height_enabled**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_fit_content_height_enabled**\ (\ ) -If ``true``, **TextEdit** will disable vertical scroll and fit minimum height to the number of visible lines. +If ``true``, **TextEdit** will disable vertical scroll and fit minimum height to the number of visible lines. When both this property and :ref:`scroll_fit_content_width` are ``true``, no scrollbars will be displayed. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TextEdit_property_scroll_fit_content_width: + +.. rst-class:: classref-property + +:ref:`bool` **scroll_fit_content_width** = ``false`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_fit_content_width_enabled**\ (\ value\: :ref:`bool`\ ) +- :ref:`bool` **is_fit_content_width_enabled**\ (\ ) + +If ``true``, **TextEdit** will disable horizontal scroll and fit minimum width to the widest line in the text. When both this property and :ref:`scroll_fit_content_height` are ``true``, no scrollbars will be displayed. .. rst-class:: classref-item-separator diff --git a/classes/class_textmesh.rst b/classes/class_textmesh.rst index 5eb39463e92..0514e2e76fc 100644 --- a/classes/class_textmesh.rst +++ b/classes/class_textmesh.rst @@ -200,7 +200,7 @@ Controls the text's horizontal alignment. Supports left, center, right, and fill - |void| **set_justification_flags**\ (\ value\: |bitfield|\[:ref:`JustificationFlag`\]\ ) - |bitfield|\[:ref:`JustificationFlag`\] **get_justification_flags**\ (\ ) -Line fill alignment rules. For more info see :ref:`JustificationFlag`. +Line fill alignment rules. See :ref:`JustificationFlag` for more information. .. rst-class:: classref-item-separator diff --git a/classes/class_textparagraph.rst b/classes/class_textparagraph.rst index f9d6088f07b..98997a0c315 100644 --- a/classes/class_textparagraph.rst +++ b/classes/class_textparagraph.rst @@ -234,7 +234,7 @@ Ellipsis character used for text clipping. - |void| **set_justification_flags**\ (\ value\: |bitfield|\[:ref:`JustificationFlag`\]\ ) - |bitfield|\[:ref:`JustificationFlag`\] **get_justification_flags**\ (\ ) -Line fill alignment rules. For more info see :ref:`JustificationFlag`. +Line fill alignment rules. See :ref:`JustificationFlag` for more information. .. rst-class:: classref-item-separator diff --git a/classes/class_textserver.rst b/classes/class_textserver.rst index 655d54c9d71..cd8c968acb0 100644 --- a/classes/class_textserver.rst +++ b/classes/class_textserver.rst @@ -157,6 +157,8 @@ Methods +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`font_get_supported_chars`\ (\ font_rid\: :ref:`RID`\ ) |const| | +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedInt32Array` | :ref:`font_get_supported_glyphs`\ (\ font_rid\: :ref:`RID`\ ) |const| | + +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`font_get_texture_count`\ (\ font_rid\: :ref:`RID`, size\: :ref:`Vector2i`\ ) |const| | +------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Image` | :ref:`font_get_texture_image`\ (\ font_rid\: :ref:`RID`, size\: :ref:`Vector2i`, texture_index\: :ref:`int`\ ) |const| | @@ -2250,6 +2252,18 @@ Returns a string containing all the characters available in the font. ---- +.. _class_TextServer_method_font_get_supported_glyphs: + +.. rst-class:: classref-method + +:ref:`PackedInt32Array` **font_get_supported_glyphs**\ (\ font_rid\: :ref:`RID`\ ) |const| :ref:`๐Ÿ”—` + +Returns an array containing all glyph indices in the font. + +.. rst-class:: classref-item-separator + +---- + .. _class_TextServer_method_font_get_texture_count: .. rst-class:: classref-method diff --git a/classes/class_textserverextension.rst b/classes/class_textserverextension.rst index 04c009aa4eb..45d910800d5 100644 --- a/classes/class_textserverextension.rst +++ b/classes/class_textserverextension.rst @@ -142,6 +142,8 @@ Methods +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_font_get_supported_chars`\ (\ font_rid\: :ref:`RID`\ ) |virtual| |const| | +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedInt32Array` | :ref:`_font_get_supported_glyphs`\ (\ font_rid\: :ref:`RID`\ ) |virtual| |const| | + +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`_font_get_texture_count`\ (\ font_rid\: :ref:`RID`, size\: :ref:`Vector2i`\ ) |virtual| |const| | +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Image` | :ref:`_font_get_texture_image`\ (\ font_rid\: :ref:`RID`, size\: :ref:`Vector2i`, texture_index\: :ref:`int`\ ) |virtual| |const| | @@ -1244,6 +1246,20 @@ Returns a string containing all the characters available in the font. ---- +.. _class_TextServerExtension_private_method__font_get_supported_glyphs: + +.. rst-class:: classref-method + +:ref:`PackedInt32Array` **_font_get_supported_glyphs**\ (\ font_rid\: :ref:`RID`\ ) |virtual| |const| :ref:`๐Ÿ”—` + +**Required.**\ + +Returns an array containing all glyph indices in the font. + +.. rst-class:: classref-item-separator + +---- + .. _class_TextServerExtension_private_method__font_get_texture_count: .. rst-class:: classref-method diff --git a/classes/class_tiledata.rst b/classes/class_tiledata.rst index ff0db80faff..27501f317cb 100644 --- a/classes/class_tiledata.rst +++ b/classes/class_tiledata.rst @@ -61,57 +61,69 @@ Methods .. table:: :widths: auto - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`add_collision_polygon`\ (\ layer_id\: :ref:`int`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_collision_polygon_one_way_margin`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`PackedVector2Array` | :ref:`get_collision_polygon_points`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`get_collision_polygons_count`\ (\ layer_id\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_constant_angular_velocity`\ (\ layer_id\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Vector2` | :ref:`get_constant_linear_velocity`\ (\ layer_id\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Variant` | :ref:`get_custom_data`\ (\ layer_name\: :ref:`String`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`Variant` | :ref:`get_custom_data_by_layer_id`\ (\ layer_id\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`NavigationPolygon` | :ref:`get_navigation_polygon`\ (\ layer_id\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`OccluderPolygon2D` | :ref:`get_occluder`\ (\ layer_id\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`int` | :ref:`get_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_collision_polygon_one_way`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_valid_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`\ ) |const| | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`remove_collision_polygon`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_polygon_one_way`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, one_way\: :ref:`bool`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_polygon_one_way_margin`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, one_way_margin\: :ref:`float`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_polygon_points`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, polygon\: :ref:`PackedVector2Array`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_collision_polygons_count`\ (\ layer_id\: :ref:`int`, polygons_count\: :ref:`int`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_constant_angular_velocity`\ (\ layer_id\: :ref:`int`, velocity\: :ref:`float`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_constant_linear_velocity`\ (\ layer_id\: :ref:`int`, velocity\: :ref:`Vector2`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_custom_data`\ (\ layer_name\: :ref:`String`, value\: :ref:`Variant`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_custom_data_by_layer_id`\ (\ layer_id\: :ref:`int`, value\: :ref:`Variant`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_navigation_polygon`\ (\ layer_id\: :ref:`int`, navigation_polygon\: :ref:`NavigationPolygon`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_occluder`\ (\ layer_id\: :ref:`int`, occluder_polygon\: :ref:`OccluderPolygon2D`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | |void| | :ref:`set_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`, terrain\: :ref:`int`\ ) | - +-----------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_collision_polygon`\ (\ layer_id\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`add_occluder_polygon`\ (\ layer_id\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_collision_polygon_one_way_margin`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`PackedVector2Array` | :ref:`get_collision_polygon_points`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_collision_polygons_count`\ (\ layer_id\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_constant_angular_velocity`\ (\ layer_id\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Vector2` | :ref:`get_constant_linear_velocity`\ (\ layer_id\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`get_custom_data`\ (\ layer_name\: :ref:`String`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`Variant` | :ref:`get_custom_data_by_layer_id`\ (\ layer_id\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`NavigationPolygon` | :ref:`get_navigation_polygon`\ (\ layer_id\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`OccluderPolygon2D` | :ref:`get_occluder`\ (\ layer_id\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`OccluderPolygon2D` | :ref:`get_occluder_polygon`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_occluder_polygons_count`\ (\ layer_id\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`get_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_collision_polygon_one_way`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_valid_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`\ ) |const| | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`remove_collision_polygon`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`remove_occluder_polygon`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_polygon_one_way`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, one_way\: :ref:`bool`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_polygon_one_way_margin`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, one_way_margin\: :ref:`float`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_polygon_points`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, polygon\: :ref:`PackedVector2Array`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_collision_polygons_count`\ (\ layer_id\: :ref:`int`, polygons_count\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_constant_angular_velocity`\ (\ layer_id\: :ref:`int`, velocity\: :ref:`float`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_constant_linear_velocity`\ (\ layer_id\: :ref:`int`, velocity\: :ref:`Vector2`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_custom_data`\ (\ layer_name\: :ref:`String`, value\: :ref:`Variant`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_custom_data_by_layer_id`\ (\ layer_id\: :ref:`int`, value\: :ref:`Variant`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_navigation_polygon`\ (\ layer_id\: :ref:`int`, navigation_polygon\: :ref:`NavigationPolygon`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_occluder`\ (\ layer_id\: :ref:`int`, occluder_polygon\: :ref:`OccluderPolygon2D`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_occluder_polygon`\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, polygon\: :ref:`OccluderPolygon2D`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_occluder_polygons_count`\ (\ layer_id\: :ref:`int`, polygons_count\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`set_terrain_peering_bit`\ (\ peering_bit\: :ref:`CellNeighbor`, terrain\: :ref:`int`\ ) | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -343,6 +355,18 @@ Adds a collision polygon to the tile on the given TileSet physics layer. ---- +.. _class_TileData_method_add_occluder_polygon: + +.. rst-class:: classref-method + +|void| **add_occluder_polygon**\ (\ layer_id\: :ref:`int`\ ) :ref:`๐Ÿ”—` + +Adds an occlusion polygon to the tile on the TileSet occlusion layer with index ``layer_id``. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileData_method_get_collision_polygon_one_way_margin: .. rst-class:: classref-method @@ -447,6 +471,8 @@ Returns the navigation polygon of the tile for the TileSet navigation layer with :ref:`OccluderPolygon2D` **get_occluder**\ (\ layer_id\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| :ref:`๐Ÿ”—` +**Deprecated:** Use :ref:`get_occluder_polygon` instead. + Returns the occluder polygon of the tile for the TileSet occlusion layer with index ``layer_id``. \ ``flip_h``, ``flip_v``, and ``transpose`` allow transforming the returned polygon. @@ -455,6 +481,32 @@ Returns the occluder polygon of the tile for the TileSet occlusion layer with in ---- +.. _class_TileData_method_get_occluder_polygon: + +.. rst-class:: classref-method + +:ref:`OccluderPolygon2D` **get_occluder_polygon**\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, flip_h\: :ref:`bool` = false, flip_v\: :ref:`bool` = false, transpose\: :ref:`bool` = false\ ) |const| :ref:`๐Ÿ”—` + +Returns the occluder polygon at index ``polygon_index`` from the TileSet occlusion layer with index ``layer_id``. + +The ``flip_h``, ``flip_v``, and ``transpose`` parameters can be ``true`` to transform the returned polygon. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileData_method_get_occluder_polygons_count: + +.. rst-class:: classref-method + +:ref:`int` **get_occluder_polygons_count**\ (\ layer_id\: :ref:`int`\ ) |const| :ref:`๐Ÿ”—` + +Returns the number of occluder polygons of the tile in the TileSet occlusion layer with index ``layer_id``. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileData_method_get_terrain_peering_bit: .. rst-class:: classref-method @@ -503,6 +555,18 @@ Removes the polygon at index ``polygon_index`` for TileSet physics layer with in ---- +.. _class_TileData_method_remove_occluder_polygon: + +.. rst-class:: classref-method + +|void| **remove_occluder_polygon**\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`\ ) :ref:`๐Ÿ”—` + +Removes the polygon at index ``polygon_index`` for TileSet occlusion layer with index ``layer_id``. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileData_method_set_collision_polygon_one_way: .. rst-class:: classref-method @@ -521,7 +585,7 @@ Enables/disables one-way collisions on the polygon at index ``polygon_index`` fo |void| **set_collision_polygon_one_way_margin**\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, one_way_margin\: :ref:`float`\ ) :ref:`๐Ÿ”—` -Enables/disables one-way collisions on the polygon at index ``polygon_index`` for TileSet physics layer with index ``layer_id``. +Sets the one-way margin (for one-way platforms) of the polygon at index ``polygon_index`` for TileSet physics layer with index ``layer_id``. .. rst-class:: classref-item-separator @@ -617,12 +681,38 @@ Sets the navigation polygon for the TileSet navigation layer with index ``layer_ |void| **set_occluder**\ (\ layer_id\: :ref:`int`, occluder_polygon\: :ref:`OccluderPolygon2D`\ ) :ref:`๐Ÿ”—` +**Deprecated:** Use :ref:`set_occluder_polygon` instead. + Sets the occluder for the TileSet occlusion layer with index ``layer_id``. .. rst-class:: classref-item-separator ---- +.. _class_TileData_method_set_occluder_polygon: + +.. rst-class:: classref-method + +|void| **set_occluder_polygon**\ (\ layer_id\: :ref:`int`, polygon_index\: :ref:`int`, polygon\: :ref:`OccluderPolygon2D`\ ) :ref:`๐Ÿ”—` + +Sets the occluder for polygon with index ``polygon_index`` in the TileSet occlusion layer with index ``layer_id``. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileData_method_set_occluder_polygons_count: + +.. rst-class:: classref-method + +|void| **set_occluder_polygons_count**\ (\ layer_id\: :ref:`int`, polygons_count\: :ref:`int`\ ) :ref:`๐Ÿ”—` + +Sets the occluder polygon count in the TileSet occlusion layer with index ``layer_id``. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileData_method_set_terrain_peering_bit: .. rst-class:: classref-method diff --git a/classes/class_tilemap.rst b/classes/class_tilemap.rst index 878c1b28d0b..c5afd5f3356 100644 --- a/classes/class_tilemap.rst +++ b/classes/class_tilemap.rst @@ -132,6 +132,12 @@ Methods +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Rect2i` | :ref:`get_used_rect`\ (\ ) |const| | +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_flipped_h`\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| | + +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_flipped_v`\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| | + +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_transposed`\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| | + +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_layer_enabled`\ (\ layer\: :ref:`int`\ ) |const| | +--------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_layer_navigation_enabled`\ (\ layer\: :ref:`int`\ ) |const| | @@ -732,6 +738,42 @@ Returns a rectangle enclosing the used (non-empty) tiles of the map, including a ---- +.. _class_TileMap_method_is_cell_flipped_h: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_flipped_h**\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell on layer ``layer`` at coordinates ``coords`` is flipped horizontally. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileMap_method_is_cell_flipped_v: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_flipped_v**\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell on layer ``layer`` at coordinates ``coords`` is flipped vertically. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileMap_method_is_cell_transposed: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_transposed**\ (\ layer\: :ref:`int`, coords\: :ref:`Vector2i`, use_proxies\: :ref:`bool` = false\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell on layer ``layer`` at coordinates ``coords`` is transposed. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileMap_method_is_layer_enabled: .. rst-class:: classref-method diff --git a/classes/class_tilemaplayer.rst b/classes/class_tilemaplayer.rst index 62145b9fa45..58a5a61ea49 100644 --- a/classes/class_tilemaplayer.rst +++ b/classes/class_tilemaplayer.rst @@ -44,6 +44,8 @@ Properties +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------------------+ | :ref:`DebugVisibilityMode` | :ref:`navigation_visibility_mode` | ``0`` | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------------------+ + | :ref:`bool` | :ref:`occlusion_enabled` | ``true`` | + +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`rendering_quadrant_size` | ``16`` | +-------------------------------------------------------------------+-------------------------------------------------------------------------------------------+-----------------------+ | :ref:`PackedByteArray` | :ref:`tile_map_data` | ``PackedByteArray()`` | @@ -102,6 +104,12 @@ Methods +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_body_rid`\ (\ body\: :ref:`RID`\ ) |const| | +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_flipped_h`\ (\ coords\: :ref:`Vector2i`\ ) |const| | + +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_flipped_v`\ (\ coords\: :ref:`Vector2i`\ ) |const| | + +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_cell_transposed`\ (\ coords\: :ref:`Vector2i`\ ) |const| | + +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2i` | :ref:`local_to_map`\ (\ local_position\: :ref:`Vector2`\ ) |const| | +--------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2i` | :ref:`map_pattern`\ (\ position_in_tilemap\: :ref:`Vector2i`, coords_in_pattern\: :ref:`Vector2i`, pattern\: :ref:`TileMapPattern`\ ) | @@ -275,6 +283,23 @@ Show or hide the **TileMapLayer**'s navigation meshes. If set to :ref:`DEBUG_VIS ---- +.. _class_TileMapLayer_property_occlusion_enabled: + +.. rst-class:: classref-property + +:ref:`bool` **occlusion_enabled** = ``true`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_occlusion_enabled**\ (\ value\: :ref:`bool`\ ) +- :ref:`bool` **is_occlusion_enabled**\ (\ ) + +Enable or disable light occlusion. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileMapLayer_property_rendering_quadrant_size: .. rst-class:: classref-property @@ -630,6 +655,42 @@ Returns whether the provided ``body`` :ref:`RID` belongs to one of th ---- +.. _class_TileMapLayer_method_is_cell_flipped_h: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_flipped_h**\ (\ coords\: :ref:`Vector2i`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell at coordinates ``coords`` is flipped horizontally. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileMapLayer_method_is_cell_flipped_v: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_flipped_v**\ (\ coords\: :ref:`Vector2i`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell at coordinates ``coords`` is flipped vertically. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + +.. _class_TileMapLayer_method_is_cell_transposed: + +.. rst-class:: classref-method + +:ref:`bool` **is_cell_transposed**\ (\ coords\: :ref:`Vector2i`\ ) |const| :ref:`๐Ÿ”—` + +Returns ``true`` if the cell at coordinates ``coords`` is transposed. The result is valid only for atlas sources. + +.. rst-class:: classref-item-separator + +---- + .. _class_TileMapLayer_method_local_to_map: .. rst-class:: classref-method diff --git a/classes/class_timer.rst b/classes/class_timer.rst index fee0bdb49e2..0b0a08f8f1b 100644 --- a/classes/class_timer.rst +++ b/classes/class_timer.rst @@ -266,7 +266,7 @@ Returns ``true`` if the timer is stopped or has not started. |void| **start**\ (\ time_sec\: :ref:`float` = -1\ ) :ref:`๐Ÿ”—` -Starts the timer, if it was not started already. Fails if the timer is not inside the tree. If ``time_sec`` is greater than ``0``, this value is used for the :ref:`wait_time`. +Starts the timer, or resets the timer if it was started already. Fails if the timer is not inside the tree. If ``time_sec`` is greater than ``0``, this value is used for the :ref:`wait_time`. \ **Note:** This method does not resume a paused timer. See :ref:`paused`. diff --git a/classes/class_tween.rst b/classes/class_tween.rst index 615b14683d0..042f19a5ae8 100644 --- a/classes/class_tween.rst +++ b/classes/class_tween.rst @@ -617,8 +617,6 @@ Aborts all tweening operations and invalidates the **Tween**. Makes the next :ref:`Tweener` run parallelly to the previous one. -\ **Example:**\ - .. tabs:: @@ -965,8 +963,6 @@ Creates and appends a :ref:`MethodTweener`. This method is Creates and appends a :ref:`PropertyTweener`. This method tweens a ``property`` of an ``object`` between an initial value and ``final_val`` in a span of time equal to ``duration``, in seconds. The initial value by default is the property's value at the time the tweening of the :ref:`PropertyTweener` starts. -\ **Example:**\ - .. tabs:: diff --git a/classes/class_tweener.rst b/classes/class_tweener.rst index 355996804c2..5e7ae765ec4 100644 --- a/classes/class_tweener.rst +++ b/classes/class_tweener.rst @@ -38,7 +38,7 @@ Signals **finished**\ (\ ) :ref:`๐Ÿ”—` -Emitted when the **Tweener** has just finished its job. +Emitted when the **Tweener** has just finished its job or became invalid (e.g. due to a freed object). .. |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.)` diff --git a/classes/class_upnp.rst b/classes/class_upnp.rst index c178ce766c1..648596817d9 100644 --- a/classes/class_upnp.rst +++ b/classes/class_upnp.rst @@ -53,13 +53,13 @@ To close a specific port (e.g. after you have finished using it): if err != OK: push_error(str(err)) - emit_signal("upnp_completed", err) + upnp_completed.emit(err) return if upnp.get_gateway() and upnp.get_gateway().is_valid_gateway(): upnp.add_port_mapping(server_port, server_port, ProjectSettings.get_setting("application/config/name"), "UDP") upnp.add_port_mapping(server_port, server_port, ProjectSettings.get_setting("application/config/name"), "TCP") - emit_signal("upnp_completed", OK) + upnp_completed.emit(OK) func _ready(): thread = Thread.new() diff --git a/classes/class_vehiclewheel3d.rst b/classes/class_vehiclewheel3d.rst index 1df0021c1e3..9035314013f 100644 --- a/classes/class_vehiclewheel3d.rst +++ b/classes/class_vehiclewheel3d.rst @@ -76,15 +76,19 @@ Methods .. table:: :widths: auto - +-----------------------------+-------------------------------------------------------------------------------------+ - | :ref:`Node3D` | :ref:`get_contact_body`\ (\ ) |const| | - +-----------------------------+-------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_rpm`\ (\ ) |const| | - +-----------------------------+-------------------------------------------------------------------------------------+ - | :ref:`float` | :ref:`get_skidinfo`\ (\ ) |const| | - +-----------------------------+-------------------------------------------------------------------------------------+ - | :ref:`bool` | :ref:`is_in_contact`\ (\ ) |const| | - +-----------------------------+-------------------------------------------------------------------------------------+ + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`Node3D` | :ref:`get_contact_body`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`Vector3` | :ref:`get_contact_normal`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`Vector3` | :ref:`get_contact_point`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_rpm`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`get_skidinfo`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`is_in_contact`\ (\ ) |const| | + +-------------------------------+-----------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -358,6 +362,30 @@ Returns ``null`` if the wheel is not in contact with a surface, or the contact b ---- +.. _class_VehicleWheel3D_method_get_contact_normal: + +.. rst-class:: classref-method + +:ref:`Vector3` **get_contact_normal**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the normal of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns a vector pointing directly along the suspension axis toward the vehicle in world space. + +.. rst-class:: classref-item-separator + +---- + +.. _class_VehicleWheel3D_method_get_contact_point: + +.. rst-class:: classref-method + +:ref:`Vector3` **get_contact_point**\ (\ ) |const| :ref:`๐Ÿ”—` + +Returns the point of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns the maximum point of the wheel's ray cast in world space, which is defined by ``wheel_rest_length + wheel_radius``. + +.. rst-class:: classref-item-separator + +---- + .. _class_VehicleWheel3D_method_get_rpm: .. rst-class:: classref-method diff --git a/classes/class_viewport.rst b/classes/class_viewport.rst index a49e66d7ff7..4c51c893356 100644 --- a/classes/class_viewport.rst +++ b/classes/class_viewport.rst @@ -60,99 +60,101 @@ Properties .. table:: :widths: auto - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`audio_listener_enable_2d` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`audio_listener_enable_3d` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`int` | :ref:`canvas_cull_mask` | ``4294967295`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`DefaultCanvasItemTextureFilter` | :ref:`canvas_item_default_texture_filter` | ``1`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`DefaultCanvasItemTextureRepeat` | :ref:`canvas_item_default_texture_repeat` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`Transform2D` | :ref:`canvas_transform` | | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`DebugDraw` | :ref:`debug_draw` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`disable_3d` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`float` | :ref:`fsr_sharpness` | ``0.2`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`Transform2D` | :ref:`global_canvas_transform` | | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`gui_disable_input` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`gui_embed_subwindows` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`gui_snap_controls_to_pixels` | ``true`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`handle_input_locally` | ``true`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`float` | :ref:`mesh_lod_threshold` | ``1.0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`MSAA` | :ref:`msaa_2d` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`MSAA` | :ref:`msaa_3d` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`own_world_3d` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`physics_object_picking` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`physics_object_picking_first_only` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`physics_object_picking_sort` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`positional_shadow_atlas_16_bits` | ``true`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_0` | ``2`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_1` | ``2`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_2` | ``3`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_3` | ``4`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`int` | :ref:`positional_shadow_atlas_size` | ``2048`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`Scaling3DMode` | :ref:`scaling_3d_mode` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`float` | :ref:`scaling_3d_scale` | ``1.0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`ScreenSpaceAA` | :ref:`screen_space_aa` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`SDFOversize` | :ref:`sdf_oversize` | ``1`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`SDFScale` | :ref:`sdf_scale` | ``1`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`snap_2d_transforms_to_pixel` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`snap_2d_vertices_to_pixel` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`float` | :ref:`texture_mipmap_bias` | ``0.0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`transparent_bg` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`use_debanding` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`use_hdr_2d` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`use_occlusion_culling` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`use_taa` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`bool` | :ref:`use_xr` | ``false`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`VRSMode` | :ref:`vrs_mode` | ``0`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`Texture2D` | :ref:`vrs_texture` | | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`VRSUpdateMode` | :ref:`vrs_update_mode` | ``1`` | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`World2D` | :ref:`world_2d` | | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ - | :ref:`World3D` | :ref:`world_3d` | | - +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+----------------+ + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`audio_listener_enable_2d` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`audio_listener_enable_3d` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`canvas_cull_mask` | ``4294967295`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`DefaultCanvasItemTextureFilter` | :ref:`canvas_item_default_texture_filter` | ``1`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`DefaultCanvasItemTextureRepeat` | :ref:`canvas_item_default_texture_repeat` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`Transform2D` | :ref:`canvas_transform` | | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`DebugDraw` | :ref:`debug_draw` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`disable_3d` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`fsr_sharpness` | ``0.2`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`Transform2D` | :ref:`global_canvas_transform` | | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`gui_disable_input` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`gui_embed_subwindows` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`gui_snap_controls_to_pixels` | ``true`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`handle_input_locally` | ``true`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`mesh_lod_threshold` | ``1.0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`MSAA` | :ref:`msaa_2d` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`MSAA` | :ref:`msaa_3d` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`own_world_3d` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`PhysicsInterpolationMode` | physics_interpolation_mode | ``1`` (overrides :ref:`Node`) | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`physics_object_picking` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`physics_object_picking_first_only` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`physics_object_picking_sort` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`positional_shadow_atlas_16_bits` | ``true`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_0` | ``2`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_1` | ``2`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_2` | ``3`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`PositionalShadowAtlasQuadrantSubdiv` | :ref:`positional_shadow_atlas_quad_3` | ``4`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`int` | :ref:`positional_shadow_atlas_size` | ``2048`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`Scaling3DMode` | :ref:`scaling_3d_mode` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`scaling_3d_scale` | ``1.0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`ScreenSpaceAA` | :ref:`screen_space_aa` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`SDFOversize` | :ref:`sdf_oversize` | ``1`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`SDFScale` | :ref:`sdf_scale` | ``1`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`snap_2d_transforms_to_pixel` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`snap_2d_vertices_to_pixel` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`float` | :ref:`texture_mipmap_bias` | ``0.0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`transparent_bg` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`use_debanding` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`use_hdr_2d` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`use_occlusion_culling` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`use_taa` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`bool` | :ref:`use_xr` | ``false`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`VRSMode` | :ref:`vrs_mode` | ``0`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`Texture2D` | :ref:`vrs_texture` | | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`VRSUpdateMode` | :ref:`vrs_update_mode` | ``1`` | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`World2D` | :ref:`world_2d` | | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ + | :ref:`World3D` | :ref:`world_3d` | | + +-----------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group @@ -191,6 +193,8 @@ Methods +-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Rect2` | :ref:`get_visible_rect`\ (\ ) |const| | +-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | |void| | :ref:`gui_cancel_drag`\ (\ ) | + +-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`gui_get_drag_data`\ (\ ) |const| | +-----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Control` | :ref:`gui_get_focus_owner`\ (\ ) |const| | @@ -2051,6 +2055,8 @@ Returns the viewport's texture. await RenderingServer.frame_post_draw $Viewport.get_texture().get_image().save_png("user://Screenshot.png") +\ **Note:** When :ref:`use_hdr_2d` is ``true`` the returned texture will be an HDR image encoded in linear space. + .. rst-class:: classref-item-separator ---- @@ -2079,6 +2085,18 @@ Returns the visible rectangle in global screen coordinates. ---- +.. _class_Viewport_method_gui_cancel_drag: + +.. rst-class:: classref-method + +|void| **gui_cancel_drag**\ (\ ) :ref:`๐Ÿ”—` + +Cancels the drag operation that was previously started through :ref:`Control._get_drag_data` or forced with :ref:`Control.force_drag`. + +.. rst-class:: classref-item-separator + +---- + .. _class_Viewport_method_gui_get_drag_data: .. rst-class:: classref-method diff --git a/classes/class_viewporttexture.rst b/classes/class_viewporttexture.rst index 96387139a62..2684c184d88 100644 --- a/classes/class_viewporttexture.rst +++ b/classes/class_viewporttexture.rst @@ -27,6 +27,13 @@ To get a **ViewportTexture** in code, use the :ref:`Viewport.get_texture` with :ref:`Viewport.use_hdr_2d` set to ``true`` the returned texture will be an HDR image encoded in linear space. This may look darker than normal when displayed directly on screen. To convert to gamma space, you can do the following: + +:: + + img.convert(Image.FORMAT_RGBA8) + imb.linear_to_srgb() + .. rst-class:: classref-introduction-group Tutorials diff --git a/classes/class_visualinstance3d.rst b/classes/class_visualinstance3d.rst index 713d99f60ff..4645f7c459b 100644 --- a/classes/class_visualinstance3d.rst +++ b/classes/class_visualinstance3d.rst @@ -12,7 +12,7 @@ VisualInstance3D **Inherits:** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` -**Inherited By:** :ref:`Decal`, :ref:`FogVolume`, :ref:`GeometryInstance3D`, :ref:`GPUParticlesAttractor3D`, :ref:`GPUParticlesCollision3D`, :ref:`Light3D`, :ref:`LightmapGI`, :ref:`OccluderInstance3D`, :ref:`ReflectionProbe`, :ref:`RootMotionView`, :ref:`VisibleOnScreenNotifier3D`, :ref:`VoxelGI` +**Inherited By:** :ref:`Decal`, :ref:`FogVolume`, :ref:`GeometryInstance3D`, :ref:`GPUParticlesAttractor3D`, :ref:`GPUParticlesCollision3D`, :ref:`Light3D`, :ref:`LightmapGI`, :ref:`OccluderInstance3D`, :ref:`OpenXRVisibilityMask`, :ref:`ReflectionProbe`, :ref:`RootMotionView`, :ref:`VisibleOnScreenNotifier3D`, :ref:`VoxelGI` Parent of all visual 3D nodes. diff --git a/classes/class_visualshadernodecubemap.rst b/classes/class_visualshadernodecubemap.rst index 4e4b786940b..108da2e1a91 100644 --- a/classes/class_visualshadernodecubemap.rst +++ b/classes/class_visualshadernodecubemap.rst @@ -30,7 +30,7 @@ Properties :widths: auto +--------------------------------------------------------------+--------------------------------------------------------------------------+-------+ - | :ref:`Cubemap` | :ref:`cube_map` | | + | :ref:`TextureLayered` | :ref:`cube_map` | | +--------------------------------------------------------------+--------------------------------------------------------------------------+-------+ | :ref:`Source` | :ref:`source` | ``0`` | +--------------------------------------------------------------+--------------------------------------------------------------------------+-------+ @@ -131,12 +131,12 @@ Property Descriptions .. rst-class:: classref-property -:ref:`Cubemap` **cube_map** :ref:`๐Ÿ”—` +:ref:`TextureLayered` **cube_map** :ref:`๐Ÿ”—` .. rst-class:: classref-property-setget -- |void| **set_cube_map**\ (\ value\: :ref:`Cubemap`\ ) -- :ref:`Cubemap` **get_cube_map**\ (\ ) +- |void| **set_cube_map**\ (\ value\: :ref:`TextureLayered`\ ) +- :ref:`TextureLayered` **get_cube_map**\ (\ ) The :ref:`Cubemap` texture to sample when using :ref:`SOURCE_TEXTURE` as :ref:`source`. diff --git a/classes/class_visualshadernodeintparameter.rst b/classes/class_visualshadernodeintparameter.rst index ee79ad55fc1..bb727fd7a96 100644 --- a/classes/class_visualshadernodeintparameter.rst +++ b/classes/class_visualshadernodeintparameter.rst @@ -29,19 +29,21 @@ Properties .. table:: :widths: auto - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`default_value` | ``0`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`bool` | :ref:`default_value_enabled` | ``false`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`Hint` | :ref:`hint` | ``0`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`max` | ``100`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`min` | ``0`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ - | :ref:`int` | :ref:`step` | ``1`` | - +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-----------+ + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`int` | :ref:`default_value` | ``0`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`bool` | :ref:`default_value_enabled` | ``false`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`PackedStringArray` | :ref:`enum_names` | ``PackedStringArray()`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`Hint` | :ref:`hint` | ``0`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`int` | :ref:`max` | ``100`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`int` | :ref:`min` | ``0`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ + | :ref:`int` | :ref:`step` | ``1`` | + +-----------------------------------------------------+-------------------------------------------------------------------------------------------------+-------------------------+ .. rst-class:: classref-section-separator @@ -82,11 +84,19 @@ The parameter's value must be within the specified :ref:`min` between values. +.. _class_VisualShaderNodeIntParameter_constant_HINT_ENUM: + +.. rst-class:: classref-enumeration-constant + +:ref:`Hint` **HINT_ENUM** = ``3`` + +The parameter uses an enum to associate preset values to names in the editor. + .. _class_VisualShaderNodeIntParameter_constant_HINT_MAX: .. rst-class:: classref-enumeration-constant -:ref:`Hint` **HINT_MAX** = ``3`` +:ref:`Hint` **HINT_MAX** = ``4`` Represents the size of the :ref:`Hint` enum. @@ -133,6 +143,25 @@ If ``true``, the node will have a custom default value. ---- +.. _class_VisualShaderNodeIntParameter_property_enum_names: + +.. rst-class:: classref-property + +:ref:`PackedStringArray` **enum_names** = ``PackedStringArray()`` :ref:`๐Ÿ”—` + +.. rst-class:: classref-property-setget + +- |void| **set_enum_names**\ (\ value\: :ref:`PackedStringArray`\ ) +- :ref:`PackedStringArray` **get_enum_names**\ (\ ) + +The names used for the enum select in the editor. :ref:`hint` must be :ref:`HINT_ENUM` for this to take effect. + +**Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedStringArray` for more details. + +.. rst-class:: classref-item-separator + +---- + .. _class_VisualShaderNodeIntParameter_property_hint: .. rst-class:: classref-property diff --git a/classes/class_visualshadernodetexture2darray.rst b/classes/class_visualshadernodetexture2darray.rst index 3b725a70229..20823d66ce6 100644 --- a/classes/class_visualshadernodetexture2darray.rst +++ b/classes/class_visualshadernodetexture2darray.rst @@ -30,7 +30,7 @@ Properties :widths: auto +---------------------------------------------+-----------------------------------------------------------------------------------+ - | :ref:`Texture2DArray` | :ref:`texture_array` | + | :ref:`TextureLayered` | :ref:`texture_array` | +---------------------------------------------+-----------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator @@ -46,12 +46,12 @@ Property Descriptions .. rst-class:: classref-property -:ref:`Texture2DArray` **texture_array** :ref:`๐Ÿ”—` +:ref:`TextureLayered` **texture_array** :ref:`๐Ÿ”—` .. rst-class:: classref-property-setget -- |void| **set_texture_array**\ (\ value\: :ref:`Texture2DArray`\ ) -- :ref:`Texture2DArray` **get_texture_array**\ (\ ) +- |void| **set_texture_array**\ (\ value\: :ref:`TextureLayered`\ ) +- :ref:`TextureLayered` **get_texture_array**\ (\ ) A source texture array. Used if :ref:`VisualShaderNodeSample3D.source` is set to :ref:`VisualShaderNodeSample3D.SOURCE_TEXTURE`. diff --git a/classes/class_xrhandtracker.rst b/classes/class_xrhandtracker.rst index 9aeb48e332c..8fbfbbf92a9 100644 --- a/classes/class_xrhandtracker.rst +++ b/classes/class_xrhandtracker.rst @@ -117,11 +117,19 @@ The source of hand tracking data is unobstructed, meaning that an accurate metho The source of hand tracking data is a controller, meaning that joint positions are inferred from controller inputs. +.. _class_XRHandTracker_constant_HAND_TRACKING_SOURCE_NOT_TRACKED: + +.. rst-class:: classref-enumeration-constant + +:ref:`HandTrackingSource` **HAND_TRACKING_SOURCE_NOT_TRACKED** = ``3`` + +No hand tracking data is tracked, this either means the hand is obscured, the controller is turned off, or tracking is not supported for the current input type. + .. _class_XRHandTracker_constant_HAND_TRACKING_SOURCE_MAX: .. rst-class:: classref-enumeration-constant -:ref:`HandTrackingSource` **HAND_TRACKING_SOURCE_MAX** = ``3`` +:ref:`HandTrackingSource` **HAND_TRACKING_SOURCE_MAX** = ``4`` Represents the size of the :ref:`HandTrackingSource` enum. diff --git a/classes/index.rst b/classes/index.rst index fd3c02edabc..7f95012a5be 100644 --- a/classes/index.rst +++ b/classes/index.rst @@ -177,6 +177,7 @@ Nodes class_openxrcompositionlayerequirect class_openxrcompositionlayerquad class_openxrhand + class_openxrvisibilitymask class_optionbutton class_panel class_panelcontainer @@ -406,6 +407,7 @@ Resources class_fontvariation class_gdextension class_gdscript + class_gdscriptsyntaxhighlighter class_gltfaccessor class_gltfanimation class_gltfbufferview @@ -722,10 +724,12 @@ Other objects class_diraccess class_displayserver class_dtlsserver + class_editorcontextmenuplugin class_editordebuggerplugin class_editordebuggersession class_editorexportplatform class_editorexportplatformandroid + class_editorexportplatformextension class_editorexportplatformios class_editorexportplatformlinuxbsd class_editorexportplatformmacos @@ -733,6 +737,7 @@ Other objects class_editorexportplatformweb class_editorexportplatformwindows class_editorexportplugin + class_editorexportpreset class_editorfeatureprofile class_editorfilesystemdirectory class_editorfilesystemimportformatsupportquery @@ -780,6 +785,7 @@ Other objects class_ip class_javaclass class_javaclasswrapper + class_javaobject class_javascriptbridge class_javascriptobject class_jnisingleton @@ -976,10 +982,12 @@ Editor-only :name: toc-class-ref-editors class_editorcommandpalette + class_editorcontextmenuplugin class_editordebuggerplugin class_editordebuggersession class_editorexportplatform class_editorexportplatformandroid + class_editorexportplatformextension class_editorexportplatformios class_editorexportplatformlinuxbsd class_editorexportplatformmacos @@ -987,6 +995,7 @@ Editor-only class_editorexportplatformweb class_editorexportplatformwindows class_editorexportplugin + class_editorexportpreset class_editorfeatureprofile class_editorfiledialog class_editorfilesystem diff --git a/community/channels.rst b/community/channels.rst index 584b1d3acd2..0af6ac166a8 100644 --- a/community/channels.rst +++ b/community/channels.rst @@ -5,42 +5,8 @@ Community channels So, where is the Godot community and where can you ask questions and get help? -Note that some of these channels are run and moderated by members of the Godot community or third parties. - -A brief overview over these and other channels is also available on the `Godot website `_. - -Forums ------- - -- `Official Godot Forum `_ -- `Community Forum `_ - -Chats ------ - -- `Godot Contributors Chat `_ -- `Discord `_ -- `Matrix (IRC compatible) `_ -- `IRC (#godotengine on Libera.Chat) `_ - -.. note:: - - As of January 2021, core developer chat has moved to the Godot Contributors Chat platform listed above. - IRC is less active. Please stick around to get an answer, - as it may take several hours for someone to see and answer your questions. - -Social networks and other sites -------------------------------- - -- `GitHub `_ -- `Facebook group `_ -- `Twitter `_ - (see also the `#GodotEngine `_ hashtag) -- `Reddit `_ -- `YouTube `_ -- `Steam `_ -- `itch.io `_ -- `Links `_ +This page used to list the various official and user-supported Godot communities. +That list is now available on the `Godot website `_. Language-based communities -------------------------- diff --git a/conf.py b/conf.py index 49616ce43b2..2b4a71149c9 100644 --- a/conf.py +++ b/conf.py @@ -194,7 +194,7 @@ # Set this to `True` when in the `latest` branch to clearly indicate to the reader # that they are not reading the `stable` documentation. "godot_is_latest": True, - "godot_version": "4.3", + "godot_version": "4.4", # Enables a banner that displays the up-to-date status of each article. "godot_show_article_status": True, # Display user-contributed notes at the bottom of pages that don't have `:allow_comments: False` at the top. diff --git a/contributing/development/best_practices_for_engine_contributors.rst b/contributing/development/best_practices_for_engine_contributors.rst index 87fdf14a000..b0dd1de5608 100644 --- a/contributing/development/best_practices_for_engine_contributors.rst +++ b/contributing/development/best_practices_for_engine_contributors.rst @@ -167,7 +167,7 @@ who design software) to actually understand all future user needs. Trying to write very flexible structures that cater to many use cases at once is often a mistake. -We may come up with something we believe is brilliant but later find out that +We may come up with something we believe is brilliant, but later find out that users will never even use half of it or that they require features that don't quite fit into our original design, forcing us to either throw it away or make it even more complex. diff --git a/contributing/development/code_style_guidelines.rst b/contributing/development/code_style_guidelines.rst index 2b6e681a6c3..0d4fbd5defe 100644 --- a/contributing/development/code_style_guidelines.rst +++ b/contributing/development/code_style_guidelines.rst @@ -35,7 +35,7 @@ fine. If you plan to contribute regularly, however, we strongly advise that you set up clang-format locally to check and automatically fix all your commits. .. warning:: Godot's code style should *not* be applied to third-party code, - i.e. that is included in Godot's source tree but was not written + i.e. code that is included in Godot's source tree, but was not written specifically for our project. Such code usually comes from different upstream projects with their own style guides (or lack thereof), and don't want to introduce differences that would make @@ -65,7 +65,7 @@ Pre-commit hook ^^^^^^^^^^^^^^^ For ease of use, we provide hooks for Git with the `pre-commit `__ -Python framework that will run clang-format automatically on all your commits with the +Python framework that will run clang-format automatically on all your commits with the correct version of clang-format. To set up: @@ -77,7 +77,7 @@ To set up: You can also run the hook manually with ``pre-commit run``. -.. note:: +.. note:: Previously, we supplied a hook in the folder ``misc/hooks``. If you copied the script manually, these hooks should still work, but symlinks will be broken. @@ -382,7 +382,7 @@ instead. // ... } -For member variables, don't use Javadoc-style comments but use single-line comments instead: +For member variables, don't use Javadoc-style comments, but use single-line comments instead: .. code-block:: cpp diff --git a/contributing/development/compiling/compiling_for_linuxbsd.rst b/contributing/development/compiling/compiling_for_linuxbsd.rst index 942b5dff642..f3fcbc3f368 100644 --- a/contributing/development/compiling/compiling_for_linuxbsd.rst +++ b/contributing/development/compiling/compiling_for_linuxbsd.rst @@ -363,6 +363,72 @@ You don't even need to copy them, you can just reference the resulting files in the ``bin/`` directory of your Godot source folder, so the next time you build, you automatically have the custom templates referenced. +Cross-compiling for RISC-V devices +---------------------------------- + +To cross-compile Godot for RISC-V devices, we need to setup the following items: + +- `riscv-gnu-toolchain `__. + While we are not going to use this directly, it provides us with a sysroot, as well + as header and libraries files that we will need. There are many versions to choose + from, however, the older the toolchain, the more compatible our final binaries will be. + If in doubt, `use this version `__, + and download ``riscv64-glibc-ubuntu-18.04-nightly-2021.12.22-nightly.tar.gz``. Extract + it somewhere and remember its path. +- Clang. RISC-V GCC has + `bugs with its atomic operations `__ + which prevent it from compiling Godot correctly. Any version of Clang from 16.0.0 upwards + will suffice. Download it from the package manager of your distro, and make sure that + it *can* compile to RISC-V. You can verify by executing this command ``clang -print-targets``, + make sure you see ``riscv64`` on the list of targets. +- `mold `__. This fast linker, + is the only one that correctly links the resulting binary. Download it, extract it, + and make sure to add its ``bin`` folder to your PATH. Run + ``mold --help | grep support`` to check if your version of Mold supports RISC-V. + If you don't see RISC-V, your Mold may need to be updated. + +To make referencing our toolchain easier, we can set an environment +variable like this: + +:: + + export RISCV_TOOLCHAIN_PATH="path to toolchain here" + +This way, we won't have to manually set the directory location +each time we want to reference it. + +With all the above setup, we are now ready to build Godot. + +Go to the root of the source code, and execute the following build command: + +:: + + scons arch=rv64 use_llvm=yes linker=mold lto=none target=editor \ + ccflags="--sysroot=$RISCV_TOOLCHAIN_PATH/sysroot --gcc-toolchain=$RISCV_TOOLCHAIN_PATH -target riscv64-unknown-linux-gnu" \ + linkflags="--sysroot=$RISCV_TOOLCHAIN_PATH/sysroot --gcc-toolchain=$RISCV_TOOLCHAIN_PATH -target riscv64-unknown-linux-gnu" + +The command is similar in nature, but with some key changes. ``ccflags`` and +``linkflags`` append additional flags to the build. ``--sysroot`` points to +a folder simulating a Linux system, it contains all the headers, libraries, +and ``.so`` files Clang will use. ``--gcc-toolchain`` tells Clang where +the complete toolchain is, and ``-target riscv64-unknown-linux-gnu`` +indicates to Clang the target architecture, and OS we want to build for. + +If all went well, you should now see a ``bin`` directory, and within it, +a binary similar to the following: + +:: + + godot.linuxbsd.editor.rv64.llvm + +You can now copy this executable to your favorite RISC-V device, +then launch it there by double-clicking, which should bring up +the project manager. + +If you later decide to compile the export templates, copy the above +build command but change the value of ``target`` to ``template_debug`` for +a debug build, or ``template_release`` for a release build. + Using Clang and LLD for faster development ------------------------------------------ diff --git a/contributing/development/compiling/compiling_with_dotnet.rst b/contributing/development/compiling/compiling_with_dotnet.rst index a544f97b5a2..03b12ad2350 100644 --- a/contributing/development/compiling/compiling_with_dotnet.rst +++ b/contributing/development/compiling/compiling_with_dotnet.rst @@ -129,6 +129,16 @@ source and that conflicting versions of the package are removed from the NuGet cache. It's recommended to always use this option when building the C# solutions during development to avoid mistakes. +Building without depending on deprecated features (NO_DEPRECATED) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When building Godot without deprecated classes and functions, i.e. the ``deprecated=no`` +argument for scons, the managed libraries must also be built without dependencies to deprecated code. +This is done by passing the ``--no-deprecated`` argument: + +:: + ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin --push-nupkgs-local --no-deprecated + Double Precision Support (REAL_T_IS_DOUBLE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/contributing/development/compiling/introduction_to_the_buildsystem.rst b/contributing/development/compiling/introduction_to_the_buildsystem.rst index 2b01c0f8a59..47f9f254f0f 100644 --- a/contributing/development/compiling/introduction_to_the_buildsystem.rst +++ b/contributing/development/compiling/introduction_to_the_buildsystem.rst @@ -403,7 +403,7 @@ To perform an SCU build, use the ``scu_build=yes`` SCons option. regular build prior to submitting the PR. This is because SCU builds by nature include headers from earlier ``.cpp`` files in the translation unit, therefore won't catch all the includes you will - need in a regular build. The CI will catch these errors but it will + need in a regular build. The CI will catch these errors, but it will usually be faster to catch them on a local build on your machine. Export templates diff --git a/contributing/development/compiling/optimizing_for_size.rst b/contributing/development/compiling/optimizing_for_size.rst index 34e21a4880b..3fac49a650e 100644 --- a/contributing/development/compiling/optimizing_for_size.rst +++ b/contributing/development/compiling/optimizing_for_size.rst @@ -165,30 +165,34 @@ TextEdit or GraphEdit. They can be disabled using a build flag: This is everything that will be disabled: -- FileDialog -- PopupMenu -- Tree -- TextEdit -- CodeEdit -- SyntaxHighlighter -- CodeHighlighter -- TreeItem -- OptionButton -- SpinBox -- ColorPicker -- ColorPickerButton -- RichTextlabel -- RichTextEffect -- CharFXTransform -- AcceptDialog -- ConfirmationDialog -- MarginContainer -- SubViewportContainer -- SplitContainer -- HSplitContainer -- VSplitContainer -- GraphNode -- GraphEdit +- :ref:`class_AcceptDialog` +- :ref:`class_CharFXTransform` +- :ref:`class_CodeEdit` +- :ref:`class_CodeHighlighter` +- :ref:`class_ColorPickerButton` +- :ref:`class_ColorPicker` +- :ref:`class_ConfirmationDialog` +- :ref:`class_FileDialog` +- :ref:`class_GraphEdit` +- :ref:`class_GraphElement` +- :ref:`class_GraphFrame` +- :ref:`class_GraphNode` +- :ref:`class_HSplitContainer` +- :ref:`class_MenuBar` +- :ref:`class_MenuButton` +- :ref:`class_OptionButton` +- :ref:`class_PopupMenu` (will make all popup menus unavailable in code for classes that use them, + like :ref:`class_LineEdit`, even though those classes are still available) +- :ref:`class_RichTextEffect` +- :ref:`class_RichTextLabel` +- :ref:`class_SpinBox` +- :ref:`class_SplitContainer` +- :ref:`class_SubViewportContainer` +- :ref:`class_SyntaxHighlighter` +- :ref:`class_TextEdit` +- :ref:`class_TreeItem` +- :ref:`class_Tree` +- :ref:`class_VSplitContainer` Disabling unwanted modules -------------------------- diff --git a/contributing/development/configuring_an_ide/visual_studio_code.rst b/contributing/development/configuring_an_ide/visual_studio_code.rst index 919f7e04273..165b2a14b2e 100644 --- a/contributing/development/configuring_an_ide/visual_studio_code.rst +++ b/contributing/development/configuring_an_ide/visual_studio_code.rst @@ -115,7 +115,7 @@ To run and debug the project you need to create a new configuration in the ``lau }, { "description": "Load custom pretty-printers for Godot types.", - "text": "source ${workspaceRoot}/misc/scripts/godot_gdb_pretty_print.py" + "text": "source ${workspaceRoot}/misc/utility/godot_gdb_pretty_print.py" } ], "preLaunchTask": "build" diff --git a/contributing/development/core_and_modules/custom_godot_servers.rst b/contributing/development/core_and_modules/custom_godot_servers.rst index 798c3b8d4bc..0158092b0be 100644 --- a/contributing/development/core_and_modules/custom_godot_servers.rst +++ b/contributing/development/core_and_modules/custom_godot_servers.rst @@ -483,7 +483,7 @@ Here is the GDScript sample code: func _ready(): print("Start debugging") - HilbertHotel.connect("occupy_room", self, "_print_occupy_room") + HilbertHotel.occupy_room.connect(_print_occupy_room) var rid = HilbertHotel.create_bus() OS.delay_msec(2000) HilbertHotel.create_bus() diff --git a/contributing/development/core_and_modules/internal_rendering_architecture.rst b/contributing/development/core_and_modules/internal_rendering_architecture.rst index b2c8e0b791d..75ab68ef643 100644 --- a/contributing/development/core_and_modules/internal_rendering_architecture.rst +++ b/contributing/development/core_and_modules/internal_rendering_architecture.rst @@ -228,8 +228,8 @@ support Vulkan. OpenGL 3.3 Core Profile is used on desktop platforms to run this driver, as most graphics drivers on desktop don't support OpenGL ES. WebGL 2.0 is used for web exports. -It is possible to use the use of OpenGL ES 3.0 directly on desktop platforms -using the ``--rendering-driver opengl3_es`` command line argument, although this +It is possible to use OpenGL ES 3.0 directly on desktop platforms +by passing the ``--rendering-driver opengl3_es`` command line argument, although this will only work on graphics drivers that feature native OpenGL ES support (such as Mesa). diff --git a/contributing/development/core_and_modules/unit_testing.rst b/contributing/development/core_and_modules/unit_testing.rst index ebf2d2c008b..0f705693d62 100644 --- a/contributing/development/core_and_modules/unit_testing.rst +++ b/contributing/development/core_and_modules/unit_testing.rst @@ -129,6 +129,12 @@ Here's a minimal working test suite with a single test case written: #endif // TEST_STRING_H +.. note:: + You can quickly generate new tests using the ``create_test.py`` script found in the ``tests/`` directory. + This script automatically creates a new test file with the required boilerplate code in the appropriate location. + It's also able to automatically include the new header in ``tests/test_main.cpp`` using invasive mode (``-i`` flag). + To view usage instructions, run the script with the ``-h`` flag. + The ``tests/test_macros.h`` header encapsulates everything which is needed for writing C++ unit tests in Godot. It includes doctest assertion and logging macros such as ``CHECK`` as seen above, and of course the definitions for @@ -279,6 +285,48 @@ These tags can be added to the test case name to modify or extend the test envir You can use them together to combine multiple test environment extensions. +Testing signals +~~~~~~~~~~~~~~~ + +The following macros can be use to test signals: + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Macro + - Description + * - ``SIGNAL_WATCH(object, "signal_name")`` + - Starts watching the specified signal on the given object. + * - ``SIGNAL_UNWATCH(object, "signal_name")`` + - Stops watching the specified signal on the given object. + * - ``SIGNAL_CHECK("signal_name", Vector>)`` + - Checks the arguments of all fired signals. The outer vector contains each fired signal, while the inner vector contains the list of arguments for that signal. The order of signals is significant. + * - ``SIGNAL_CHECK_FALSE("signal_name")`` + - Checks if the specified signal was not fired. + * - ``SIGNAL_DISCARD("signal_name")`` + - Discards all records of the specified signal. + +Below is an example demonstrating the use of these macros: + +.. code-block:: cpp + + //... + SUBCASE("[Timer] Timer process timeout signal must be emitted") { + SIGNAL_WATCH(test_timer, SNAME("timeout")); + test_timer->start(0.1); + + SceneTree::get_singleton()->process(0.2); + + Array signal_args; + signal_args.push_back(Array()); + + SIGNAL_CHECK(SNAME("timeout"), signal_args); + + SIGNAL_UNWATCH(test_timer, SNAME("timeout")); + } + //... + Test tools ---------- diff --git a/contributing/documentation/building_the_manual.rst b/contributing/documentation/building_the_manual.rst index 4ac1d5059b4..a3752d14ecf 100644 --- a/contributing/documentation/building_the_manual.rst +++ b/contributing/documentation/building_the_manual.rst @@ -120,7 +120,7 @@ If you run into errors, you may try the following command: If you get a ``MemoryError`` or ``EOFError``, you can remove the ``classes/`` folder and run ``make`` again. -This will drop the class references from the final HTML documentation but will keep the +This will drop the class references from the final HTML documentation, but will keep the rest intact. .. important:: @@ -166,4 +166,4 @@ You can specify a list of files to build, which can greatly speed up compilation .. code:: sh - make FILELIST='classes/class_node.rst classes/class_resource.rst' html + make html FILELIST='classes/class_node.rst classes/class_resource.rst' diff --git a/contributing/documentation/contributing_to_the_documentation.rst b/contributing/documentation/contributing_to_the_documentation.rst index 396276fa56d..1634684f080 100644 --- a/contributing/documentation/contributing_to_the_documentation.rst +++ b/contributing/documentation/contributing_to_the_documentation.rst @@ -81,20 +81,29 @@ and to log in to use it. Once logged in, you can propose change like so: 1. Click the **Edit on GitHub** button. -2. On the GitHub page you're taken to, click the pencil icon in the top-right - corner near the **Raw**, **Blame**, and **Delete** buttons. It has the - tooltip "Fork this project and edit the file". +2. On the GitHub page you're taken to, make sure the current branch is "master". + Click the pencil icon in the top-right corner + near the **Raw**, **Blame**, and **Delete** buttons. + It has the tooltip "Fork this project and edit the file". 3. Edit the text in the text editor. -4. At the bottom of the web page, summarize the changes you made and click the - button **Propose file change**. Make sure to replace the placeholder "Update file.rst" - by a short but clear one-line description, as this is the commit title. +4. Click "Commit changes...", summarize the changes you made + and make sure to replace the placeholder "Update file.rst" by a short, + but clear one-line description, as this is the commit title. + Click the button **Propose changes**. 5. On the following screens, click the **Create pull request** button until you see a message like *Username wants to merge 1 commit into godotengine:master from Username:patch-1*. +.. note:: + + If there are more commits than your own in the pull request + it is likely that your branch was created using the wrong origin, + due to "master" not being the current branch in step 2. + You will need to rebase your branch to "master" or create a new branch. + Another contributor will review your changes and merge them into the docs if they're good. They may also make changes or ask you to do so before merging. diff --git a/contributing/how_to_contribute.rst b/contributing/how_to_contribute.rst index fd8c61f3083..47733956731 100644 --- a/contributing/how_to_contribute.rst +++ b/contributing/how_to_contribute.rst @@ -3,7 +3,7 @@ How to contribute ================= -The Godot Engine is free and open-source. Like any community-driven project, we rely on volunteer contributions. +The Godot Engine is free and open-source. Like any community-driven project, we rely on volunteer contributions. On this page we want to showcase the various ways you as users can participate - to help you find the right starting place with the skillset you have. Because contrary to popular opinion, we need more than just programmers on the project! @@ -13,18 +13,18 @@ Fundraising - **Donate** - We created the non-profit `Godot Foundation `_ to be able to support the Godot Engine in both matters of finance and administration. - In practice, this means the Foundation hires people to work part-time or full-time on the project. + We created the non-profit `Godot Foundation `_ to be able to support the Godot Engine in both matters of finance and administration. + In practice, this means the Foundation hires people to work part-time or full-time on the project. These jobs include engine development as well as related tasks like code reviews, production management, community & marketing efforts, and more. - With as little as 5 EUR per month, you can help us keep going strong. + With as little as 5ย EUR per month, you can help us keep going strong. Currently, we are intending to hire more core developers, as to cover more ground with full-time specialists that supplement and guide volunteer work. `Join the Development Fund `_ - **Donation Drives** Think about your followers on social media, or other communities you are active in. - Use that reach to remind your social environment that even small contributions can make a difference, especially when done by a great number of people at the same time. + Use that reach to remind your social environment that even small contributions can make a difference, especially when done by a great number of people at the same time. Are you a content creator? Consider adding a link to the `Godot Development Fund `_ to your descriptions. If you do live streams, perhaps think about organizing a stream with donation incentives. @@ -32,8 +32,8 @@ Fundraising .. - **Buy Official Merch** - **Publish Godot Games.** - You heard right, simply publishing a game #MadeWithGodot can positively impact the well-being of this project. - Your personal success elevates the engine to a viable alternative for other developers, growing the community further. + You heard right, simply publishing a game #MadeWithGodot can positively impact the well-being of this project. + Your personal success elevates the engine to a viable alternative for other developers, growing the community further. Additionally, it opens the doors for us to approach industry contacts about possible cooperations. @@ -49,62 +49,63 @@ Technical contributions - **Test Development Versions** While it is recommended to use the stable releases for your projects, you can help us test dev releases, betas, and release candidates - by opening a copy of your project in them and checking what problems this introduces or maybe even solves. + by opening a copy of your project in them and checking what problems this introduces or maybe even solves. Make sure to have a backup ready, since this can produce irreversible changes. Find recent `development versions `_ directly on our download page, or linked in their own blog posts. - + - **Contribute Engine Code (mainly C++)** - The engine development is mainly coordinated on our `Contributor RocketChat `_, + The engine development is mainly coordinated on our `Contributor RocketChat `_, so if you are serious about making PRs you should join us there! Read more about the **technical submission process**: :ref:`doc_first_steps` - For each subject area of the engine, there is a corresponding team to coordinate the work. - Join the linked chat to get more eyes on your related PR, learn about open todos, or partake in meetings. + For each subject area of the engine, there is a corresponding team to coordinate the work. + Join the linked chat to get more eyes on your related PR, learn about open todos, or partake in meetings. For some areas, specialists might even be encouraged to step up as maintainer! `List of teams `_ - **Review Code Contributions** All pull requests need to be thoroughly reviewed before they can be merged into the master branch. Help us get a headstart by participating in the code review process. - + To get started, chose any `open pull request `_ and reference our **style guide**: :ref:`doc_pr_review_guidelines` - **Write Plugins (GDScript, C#, & more)** Community addons are not directly included in the core engine download or repository, yet they provide essential quality of life upgrades for your fellow game developers. Upload your plugins to the `Godot Asset Library `_ to make them available to others. - .. update to talk about Asset Store later + .. + update to talk about Asset Store later - **Demo projects (GDScript, C#, and making Assets)** We provide new users with `demo projects `_ so they can quickly test new features or get familiar with the engine in the first place. - At industry events, we might even exhibit these demo projects to showcase what Godot can do! + At industry events, we might even exhibit these demo projects to showcase what Godot can do! Help improve existing projects or supply your own to be added to the pool, and join the `demo channel `_ in the Contributor RocketChat to talk about it. - **Documentation** - The documentation is one of the most essential parts of any tech project, yet the need to document new features and substantial changes often gets overlooked. + The documentation is one of the most essential parts of any tech project, yet the need to document new features and substantial changes often gets overlooked. Join the `documentation team `_ to improve the Godot Engine with your technical writing skills. - **Translations (spoken languages other than English)** - Are you interested in making the Godot Engine more accessible to non-English speakers? + Are you interested in making the Godot Engine more accessible to non-English speakers? Contribute to our `community-translations `_. Community support ----------------- - **Call for Moderators** - With a community of our size, we need people to step up as volunteer moderators in all kinds of places. + With a community of our size, we need people to step up as volunteer moderators in all kinds of places. These teams are organized by the Godot Foundation, but would not function without the dedication of active community members like you. - Have a look around your favorite community platform and you might come across open application calls. + Have a look around your favorite community platform and you might come across open application calls. - **Answer tech-support questions** - With many new people discovering the Godot Engine recently, the need for peer-to-peer tech-support has never been greater. - Be it on the `Forum `_, our `subreddit `_, or on `Discord `_, you can always brighten someone's day by helping them get their personal projects back on track. + With many new people discovering the Godot Engine recently, the need for peer-to-peer tech-support has never been greater. + See the `Godot website `_ for a list of official and user-supported Godot communities. - **Create tutorials & more** - How did you get started with the Godot Engine? + How did you get started with the Godot Engine? Chances are you looked for learning materials outside of what the documentation provides. Without content creators covering the game development process, there would not be this big of a community today. Therefore it seemed only right to mention them in a page about important contributions to the project. - + diff --git a/contributing/workflow/pr_review_guidelines.rst b/contributing/workflow/pr_review_guidelines.rst index b0cfc136949..66281dcc1a9 100644 --- a/contributing/workflow/pr_review_guidelines.rst +++ b/contributing/workflow/pr_review_guidelines.rst @@ -12,7 +12,7 @@ Pull request review process wanting to know how to ensure that their PR is merged. From a high level, the ideal life cycle of a pull request looks like the -following: +following: 1. A contributor opens a PR that fixes a specific problem (optimally closing a GitHub `issue `_ or implementing @@ -33,9 +33,9 @@ following: This document will explain steps 2, 3, 4, and 5 in more detail. For a more detailed explanation of the pull request workflow please see the :ref:`pull -request workflow document `. +request workflow document `. -.. note:: +.. note:: In practice these steps may blend together. Oftentimes maintainers will provide comments on code style and code quality at the same time and will approve a pull request for both. @@ -160,7 +160,7 @@ As you review pull requests, keep the Godot `Code of Conduct * Always assume positive intent from others. -* Feedback is always welcome but keep your criticism constructive. +* Feedback is always welcome, but keep your criticism constructive. Here are some things to avoid as you iterate on a pull request with a contributor: @@ -178,7 +178,7 @@ contributor: areas and in performance-sensitive areas than it is in editor code for example. -* **Expanding the scope of a pull request.** +* **Expanding the scope of a pull request.** Providing context or related/similar issues or proposals that may be fixed similarly can be helpful, but adding a "may as well fix that thing over there @@ -253,7 +253,7 @@ Merging pull requests In general, pull requests should only be merged by members of the production team or team leaders for pull requests in their area of the engine. For example, the networking team leader could merge a networking pull request that doesn't -substantially change non-networking sections of code. +substantially change non-networking sections of code. In practice it is best to wait for a member of the production team to merge the pull request as they keep a close eye on the entire codebase and will likely @@ -275,7 +275,7 @@ steps yourself. Production team members should ensure that the right people look at a pull request before it is merged. In some cases this may require multiple people to weigh in. In other cases, only one substantive approval is needed before the -code can be merged. +code can be merged. In general, try not to merge things based on one review alone, especially if it is your own. Get a second opinion from another maintainer, and make sure all the diff --git a/getting_started/first_2d_game/02.player_scene.rst b/getting_started/first_2d_game/02.player_scene.rst index acefaa5aa69..713598a85cd 100644 --- a/getting_started/first_2d_game/02.player_scene.rst +++ b/getting_started/first_2d_game/02.player_scene.rst @@ -61,11 +61,13 @@ appearance and animations for our player. Notice that there is a warning symbol next to the node. An ``AnimatedSprite2D`` requires a :ref:`SpriteFrames ` resource, which is a list of the animations it can display. To create one, find the ``Sprite Frames`` property under the ``Animation`` tab in the Inspector and click -"[empty]" -> "New SpriteFrames". Click on the ``SpriteFrames`` you just -created to open the "SpriteFrames" panel: +"[empty]" -> "New SpriteFrames": -.. image:: img/spriteframes_panel.webp +.. image:: img/new_spriteframes.webp + +Click on the ``SpriteFrames`` you just created to open the "SpriteFrames" panel: +.. image:: img/spriteframes_panel.webp On the left is a list of animations. Click the "default" one and rename it to "walk". Then click the "Add Animation" button to create a second animation named diff --git a/getting_started/first_2d_game/06.heads_up_display.rst b/getting_started/first_2d_game/06.heads_up_display.rst index f02f3ae7258..78556702250 100644 --- a/getting_started/first_2d_game/06.heads_up_display.rst +++ b/getting_started/first_2d_game/06.heads_up_display.rst @@ -285,12 +285,20 @@ mobs to remove themselves. We can do this with the "group" feature. In the ``Mob`` scene, select the root node and click the "Node" tab next to the Inspector (the same place where you find the node's signals). Next to "Signals", -click "Groups" and you can type a new group name and click "Add". +click "Groups" to open the group overview +and the "+" button to open the "Create New Group" dialog. .. image:: img/group_tab.webp -Now all mobs will be in the "mobs" group. We can then add the following line to -the ``new_game()`` function in ``Main``: +Name the group ``mobs`` and click "ok" to add a new scene group. + +.. image:: img/add_group_dialog.webp + +Now all mobs will be in the "mobs" group. + +.. image:: img/scene_group_mobs.webp + +We can then add the following line to the ``new_game()`` function in ``Main``: .. tabs:: .. code-tab:: gdscript GDScript diff --git a/getting_started/first_2d_game/07.finishing-up.rst b/getting_started/first_2d_game/07.finishing-up.rst index 8ca8d5fd7a8..75a537ade92 100644 --- a/getting_started/first_2d_game/07.finishing-up.rst +++ b/getting_started/first_2d_game/07.finishing-up.rst @@ -37,6 +37,8 @@ All audio is automatically imported with the ``Loop`` setting disabled. If you want the music to loop seamlessly, click on the Stream file arrow, select ``Make Unique``, then click on the Stream file and check the ``Loop`` box. +.. image:: img/unique_resource_music.webp + To play the music, add ``$Music.play()`` in the ``new_game()`` function and ``$Music.stop()`` in the ``game_over()`` function. diff --git a/getting_started/first_2d_game/img/add_group_dialog.webp b/getting_started/first_2d_game/img/add_group_dialog.webp new file mode 100644 index 00000000000..f1775d217db Binary files /dev/null and b/getting_started/first_2d_game/img/add_group_dialog.webp differ diff --git a/getting_started/first_2d_game/img/attach_node_window.webp b/getting_started/first_2d_game/img/attach_node_window.webp index 211f9608202..43f5b4e6706 100644 Binary files a/getting_started/first_2d_game/img/attach_node_window.webp and b/getting_started/first_2d_game/img/attach_node_window.webp differ diff --git a/getting_started/first_2d_game/img/group_tab.webp b/getting_started/first_2d_game/img/group_tab.webp index 7efcbab0e4e..abc430c42e8 100644 Binary files a/getting_started/first_2d_game/img/group_tab.webp and b/getting_started/first_2d_game/img/group_tab.webp differ diff --git a/getting_started/first_2d_game/img/input-mapping-add-action.webp b/getting_started/first_2d_game/img/input-mapping-add-action.webp index 73a99dfb6f7..a19ba89e300 100644 Binary files a/getting_started/first_2d_game/img/input-mapping-add-action.webp and b/getting_started/first_2d_game/img/input-mapping-add-action.webp differ diff --git a/getting_started/first_2d_game/img/input-mapping-add-key.webp b/getting_started/first_2d_game/img/input-mapping-add-key.webp index d13441349d1..c4447148dba 100644 Binary files a/getting_started/first_2d_game/img/input-mapping-add-key.webp and b/getting_started/first_2d_game/img/input-mapping-add-key.webp differ diff --git a/getting_started/first_2d_game/img/input-mapping-completed.webp b/getting_started/first_2d_game/img/input-mapping-completed.webp index 60fc11041ba..4516de9cf33 100644 Binary files a/getting_started/first_2d_game/img/input-mapping-completed.webp and b/getting_started/first_2d_game/img/input-mapping-completed.webp differ diff --git a/getting_started/first_2d_game/img/input-mapping-event-configuration.webp b/getting_started/first_2d_game/img/input-mapping-event-configuration.webp index fe61bb00e7e..2cb85b8b85c 100644 Binary files a/getting_started/first_2d_game/img/input-mapping-event-configuration.webp and b/getting_started/first_2d_game/img/input-mapping-event-configuration.webp differ diff --git a/getting_started/first_2d_game/img/new_spriteframes.webp b/getting_started/first_2d_game/img/new_spriteframes.webp new file mode 100644 index 00000000000..2b0b052a492 Binary files /dev/null and b/getting_started/first_2d_game/img/new_spriteframes.webp differ diff --git a/getting_started/first_2d_game/img/scene_group_mobs.webp b/getting_started/first_2d_game/img/scene_group_mobs.webp new file mode 100644 index 00000000000..89033ffb1f9 Binary files /dev/null and b/getting_started/first_2d_game/img/scene_group_mobs.webp differ diff --git a/getting_started/first_2d_game/img/setting-project-width-and-height.webp b/getting_started/first_2d_game/img/setting-project-width-and-height.webp index 2ba8412d616..573a18f5148 100644 Binary files a/getting_started/first_2d_game/img/setting-project-width-and-height.webp and b/getting_started/first_2d_game/img/setting-project-width-and-height.webp differ diff --git a/getting_started/first_2d_game/img/setting-stretch-mode.webp b/getting_started/first_2d_game/img/setting-stretch-mode.webp index df316bce7f8..3be5a6ae740 100644 Binary files a/getting_started/first_2d_game/img/setting-stretch-mode.webp and b/getting_started/first_2d_game/img/setting-stretch-mode.webp differ diff --git a/getting_started/first_2d_game/img/unique_resource_music.webp b/getting_started/first_2d_game/img/unique_resource_music.webp new file mode 100644 index 00000000000..eb1cbd0f6b6 Binary files /dev/null and b/getting_started/first_2d_game/img/unique_resource_music.webp differ diff --git a/getting_started/first_3d_game/02.player_input.rst b/getting_started/first_3d_game/02.player_input.rst index 282b722cab3..a9d49650ec7 100644 --- a/getting_started/first_3d_game/02.player_input.rst +++ b/getting_started/first_3d_game/02.player_input.rst @@ -51,10 +51,10 @@ You can rename it to ``Character``. .. note:: - The ``.glb`` files contain 3D scene data based on the open source GLTF 2.0 + The ``.glb`` files contain 3D scene data based on the open source glTF 2.0 specification. They're a modern and powerful alternative to a proprietary format like FBX, which Godot also supports. To produce these files, we designed the - model in `Blender 3D `__ and exported it to GLTF. + model in `Blender 3D `__ and exported it to glTF. As with all kinds of physics nodes, we need a collision shape for our character to collide with the environment. Select the ``Player`` node again and add a child node diff --git a/getting_started/first_3d_game/07.killing_player.rst b/getting_started/first_3d_game/07.killing_player.rst index 74b22d246b1..92a0a65b88e 100644 --- a/getting_started/first_3d_game/07.killing_player.rst +++ b/getting_started/first_3d_game/07.killing_player.rst @@ -138,7 +138,7 @@ Also note that the enemy colliding with the player and dying depends on the size ``Player`` and the ``Mob``\ 's collision shapes. You may need to move them and resize them to achieve a tight game feel. -You can pat yourself in the back: you prototyped a complete 3D game, +You can pat yourself on the back: you prototyped a complete 3D game, even if it's still a bit rough. From there, we'll add a score, the option to retry the game, and you'll diff --git a/getting_started/first_3d_game/08.score_and_replay.rst b/getting_started/first_3d_game/08.score_and_replay.rst index 7c97ddfec3f..66152fc44d0 100644 --- a/getting_started/first_3d_game/08.score_and_replay.rst +++ b/getting_started/first_3d_game/08.score_and_replay.rst @@ -324,7 +324,7 @@ game. Save the scene as ``music_player.tscn``. We have to register it as an autoload. Head to the *Project -> Project -Settingsโ€ฆ* menu and click on the *Autoload* tab. +Settingsโ€ฆ* menu and click on the *Globals -> Autoload* tab. In the *Path* field, you want to enter the path to your scene. Click the folder icon to open the file browser and double-click on ``music_player.tscn``. Then, diff --git a/getting_started/first_3d_game/img/08.score_and_replay/18_register_autoload.webp b/getting_started/first_3d_game/img/08.score_and_replay/18_register_autoload.webp index 6d5fa1b784c..4687d36e884 100644 Binary files a/getting_started/first_3d_game/img/08.score_and_replay/18_register_autoload.webp and b/getting_started/first_3d_game/img/08.score_and_replay/18_register_autoload.webp differ diff --git a/img/smoothstep_range.webp b/img/smoothstep_range.webp new file mode 100644 index 00000000000..08a5fb796f7 Binary files /dev/null and b/img/smoothstep_range.webp differ diff --git a/tutorials/2d/2d_movement.rst b/tutorials/2d/2d_movement.rst index 76c0f73ecd1..1f5da929bec 100644 --- a/tutorials/2d/2d_movement.rst +++ b/tutorials/2d/2d_movement.rst @@ -231,9 +231,9 @@ on the screen will cause the player to move to the target location. var target = position func _input(event): - if event is InputEventMouseButton: - if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: - target = get_global_mouse_position() + # Use is_action_pressed to only accept single taps as input instead of mouse drags. + if event.is_action_pressed(&"click"): + target = get_global_mouse_position() func _physics_process(delta): velocity = position.direction_to(target) * speed @@ -254,12 +254,10 @@ on the screen will cause the player to move to the target location. public override void _Input(InputEvent @event) { - if (@event is InputEventMouseButton eventMouseButton) + // Use IsActionPressed to only accept single taps as input instead of mouse drags. + if (@event.IsActionPressed("click")) { - if (eventMouseButton.ButtonIndex == MouseButton.Left && eventMouseButton.Pressed) - { - _target = GetGlobalMousePosition(); - } + _target = GetGlobalMousePosition(); } } diff --git a/tutorials/2d/2d_sprite_animation.rst b/tutorials/2d/2d_sprite_animation.rst index bce8da40dd3..912cbffbfec 100644 --- a/tutorials/2d/2d_sprite_animation.rst +++ b/tutorials/2d/2d_sprite_animation.rst @@ -271,7 +271,7 @@ released. it's important to keep in mind that ``play()`` isn't applied instantly. Instead, it's applied the next time the :ref:`AnimationPlayer ` is processed. This may end up being on the next frame, causing a 'glitch' frame, - where the property change was applied but the animation was not. + where the property change was applied, but the animation was not. If this turns out to be a problem, after calling ``play()``, you can call ``advance(0)`` to update the animation immediately. diff --git a/tutorials/2d/2d_transforms.rst b/tutorials/2d/2d_transforms.rst index 8403913f157..b8e8ccee8cd 100644 --- a/tutorials/2d/2d_transforms.rst +++ b/tutorials/2d/2d_transforms.rst @@ -45,7 +45,7 @@ resizing or stretching the screen. This transform is used internally (as described in :ref:`doc_multiple_resolutions`), but can also be manually set on each viewport. -Input events are multiplied by this transform but lack the ones above. To +Input events are multiplied by this transform, but lack the ones above. To convert InputEvent coordinates to local CanvasItem coordinates, the :ref:`CanvasItem.make_input_local() ` function was added for convenience. diff --git a/tutorials/2d/img/using_tilesets_edit_custom_data.webp b/tutorials/2d/img/using_tilesets_edit_custom_data.webp index aa7e7b5f042..eb47402c0ba 100644 Binary files a/tutorials/2d/img/using_tilesets_edit_custom_data.webp and b/tutorials/2d/img/using_tilesets_edit_custom_data.webp differ diff --git a/tutorials/2d/particle_systems_2d.rst b/tutorials/2d/particle_systems_2d.rst index 14fc22776cf..e2f815b250c 100644 --- a/tutorials/2d/particle_systems_2d.rst +++ b/tutorials/2d/particle_systems_2d.rst @@ -199,6 +199,12 @@ This setting can be used to set the particle system to render at a fixed FPS. For instance, changing the value to ``2`` will make the particles render at 2 frames per second. Note this does not slow down the particle system itself. +.. note:: + + Godot 4.3 does not currently support physics interpolation for 2D particles. + As a workaround, disable physics interpolation for the particles node by setting + **Node > Physics Interpolation > Mode** at the bottom of the inspector. + Fract Delta ~~~~~~~~~~~ diff --git a/tutorials/2d/using_tilemaps.rst b/tutorials/2d/using_tilemaps.rst index 41a0373eb52..8582073ea3d 100644 --- a/tutorials/2d/using_tilemaps.rst +++ b/tutorials/2d/using_tilemaps.rst @@ -39,7 +39,7 @@ resource and choose **Save**: Saving the built-in TileSet resource to an external resource file -Multiple TileMaplayers and settings +Multiple TileMapLayers and settings ----------------------------------- When working with tilemaps it's generally advised that you use multiple TileMapLayer @@ -108,9 +108,9 @@ of the editor: .. figure:: img/using_tilemaps_open_tilemap_editor.webp :align: center - :alt: Opening the TileMap panel at the bottom of the editor. The TileMap node must be selected first. + :alt: Opening the TileMap panel at the bottom of the editor. The TileMapLayer node must be selected first. - Opening the TileMap panel at the bottom of the editor. The TileMap node must be selected first. + Opening the TileMap panel at the bottom of the editor. The TileMapLayer node must be selected first. Selecting tiles to use for painting ----------------------------------- @@ -127,7 +127,7 @@ layer you wish to paint on: .. tip:: In the 2D editor, the layers you aren't currently editing from the same - TileMap node will appear grayed out while in the TileMap editor. You can + TileMapLayer node will appear grayed out while in the TileMap editor. You can disable this behavior by clicking the icon next to the layer selection menu (**Highlight Selected TileMap Layer** tooltip). @@ -404,7 +404,7 @@ Rectangle or Bucket Fill painting modes. Handling tile connections automatically using terrains ------------------------------------------------------ -To use terrains, the TileMap node must feature at least one terrain set and a +To use terrains, the TileMapLayer node must feature at least one terrain set and a terrain within this terrain set. See :ref:`doc_using_tilesets_creating_terrain_sets` if you haven't created a terrain set for the TileSet yet. diff --git a/tutorials/2d/using_tilesets.rst b/tutorials/2d/using_tilesets.rst index 8dbc0e39272..b8afbc116b0 100644 --- a/tutorials/2d/using_tilesets.rst +++ b/tutorials/2d/using_tilesets.rst @@ -394,9 +394,7 @@ the custom data for the alternative tile only. You can reorder custom data without breaking existing metadata: the TileSet editor will update automatically after reordering custom data properties. -Note that in the editor, property names do not appear (only their index, which -matches the order in which they are defined). For example, with the custom data -layers example shown above, we're assigning a tile to have the +With the custom data layers example shown above, we're assigning a tile to have the ``damage_per_second`` metadata set to ``25`` and the ``destructible`` metadata to ``false``: @@ -526,7 +524,7 @@ Depending on your use cases, one method may be faster than the other: Using multiple tile selection ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you wish to configure various properties on several times at once, +If you wish to configure various properties on several tiles at once, choose the **Select** mode at the top of the TileSet editor: After doing this, you can select multiple tiles on the right column by holding diff --git a/tutorials/3d/environment_and_post_processing.rst b/tutorials/3d/environment_and_post_processing.rst index ff84da5226f..cacc178e0b8 100644 --- a/tutorials/3d/environment_and_post_processing.rst +++ b/tutorials/3d/environment_and_post_processing.rst @@ -499,7 +499,7 @@ own, the effect may not be that noticeable, which is intended. Instead, :abbr:`SSIL (Screen-Space Indirect Lighting)` is meant to be used as a *complement* to other global illumination techniques such as VoxelGI, SDFGI and LightmapGI. :abbr:`SSIL (Screen-Space Indirect Lighting)` also provides -a subtle ambient occlusion effect, similar to SSAO but with less detail. +a subtle ambient occlusion effect, similar to SSAO, but with less detail. This feature only provides indirect lighting. It is not a full global illumination solution. This makes it different from screen-space global illumination (SSGI) diff --git a/tutorials/3d/global_illumination/reflection_probes.rst b/tutorials/3d/global_illumination/reflection_probes.rst index b7ef32dff0a..8f3eb1f8de7 100644 --- a/tutorials/3d/global_illumination/reflection_probes.rst +++ b/tutorials/3d/global_illumination/reflection_probes.rst @@ -194,3 +194,7 @@ advanced project setting. When using the Forward Mobile backend, only 8 reflection probes can be applied on each individual Mesh *resource*. If there are more reflection probes affecting a single mesh, not all of them will be rendered on the mesh. + +Similarly, when using the Compatibility backend, up to 2 reflection probes can be applied +per mesh. If more than 2 reflection probes affect a single mesh, additional probes will +not be rendered. diff --git a/tutorials/3d/img/next_pass.webp b/tutorials/3d/img/next_pass.webp new file mode 100644 index 00000000000..c8719361573 Binary files /dev/null and b/tutorials/3d/img/next_pass.webp differ diff --git a/tutorials/3d/lights_and_shadows.rst b/tutorials/3d/lights_and_shadows.rst index 6f3b31b2add..f2806896a0c 100644 --- a/tutorials/3d/lights_and_shadows.rst +++ b/tutorials/3d/lights_and_shadows.rst @@ -160,12 +160,12 @@ at the cost of decreased performance. all" settings. To achieve the best visuals, you may need to use different shadow bias values on a per-light basis. -**Note on Appearance Changes**: When enabling shadows on a light, be aware that the light's -appearance might change compared to when it's rendered without shadows in the compatibility -renderer. Due to limitations with older mobile devices, shadows are implemented using a multi-pass -rendering approach so lights with shadows are rendered in sRGB space instead of linear space. -This change in rendering space can sometimes drastically alter the light's appearance. To achieve a similar -appearance to an unshadowed light, you may need to adjust the light's energy setting. +**Note on Appearance Changes**: When enabling shadows on a light, be aware that the light's +appearance might change compared to when it's rendered without shadows in the compatibility +renderer. Due to limitations with older mobile devices, shadows are implemented using a multi-pass +rendering approach so lights with shadows are rendered in sRGB space instead of linear space. +This change in rendering space can sometimes drastically alter the light's appearance. To achieve a similar +appearance to an unshadowed light, you may need to adjust the light's energy setting. Directional light ----------------- @@ -208,10 +208,10 @@ receive low-resolution shadows that may appear blocky. To fix this, a technique named *Parallel Split Shadow Maps* (PSSM) is used. This splits the view frustum in 2 or 4 areas. Each area gets its own shadow map. This allows small areas close to the viewer to have the same shadow resolution -as a huge, far-away area. When shadows are enabled for DirectionalLight3D, the -default shadow mode is PSSM with 4 splits. In scenarios where an object is large -enough to appear in all four splits, it results in increased draw calls. Specifically, -such an object will be rendered five times in total: once for each of the four shadow +as a huge, far-away area. When shadows are enabled for DirectionalLight3D, the +default shadow mode is PSSM with 4 splits. In scenarios where an object is large +enough to appear in all four splits, it results in increased draw calls. Specifically, +such an object will be rendered five times in total: once for each of the four shadow splits and once for the final scene rendering. This can impact performance, understanding this behavior is important for optimizing your scene and managing performance expectations. @@ -535,7 +535,7 @@ not use mipmaps, which makes them faster to render. However, projectors will look grainy at distance. **Nearest/Linear Mipmaps** will look smoother at a distance, but projectors will look blurry when viewed from oblique angles. This can be resolved by using **Nearest/Linear Mipmaps Anisotropic**, which is the -highest-quality mode but also the most expensive. +highest-quality mode, but also the most expensive. If your project has a pixel art style, consider setting the filter to one of the **Nearest** values so that projectors use nearest-neighbor filtering. Otherwise, diff --git a/tutorials/3d/mesh_lod.rst b/tutorials/3d/mesh_lod.rst index d073dbffd3e..6fd3d71cd9d 100644 --- a/tutorials/3d/mesh_lod.rst +++ b/tutorials/3d/mesh_lod.rst @@ -138,24 +138,29 @@ by changing the **Rendering > Mesh LOD > LOD Change > Threshold Pixels** project setting. To change this value at run-time, set ``mesh_lod_threshold`` on the root viewport as follows: -:: +.. tabs:: + .. code-tab:: gdscript get_tree().root.mesh_lod_threshold = 4.0 + .. code-tab:: csharp + + GetTree().Root.MeshLodThreshold = 4.0f; + Each viewport has its own ``mesh_lod_threshold`` property, which can be set independently from other viewports. The default mesh LOD threshold of 1 pixel is tuned to look *perceptually* lossless; it provides a significant performance gain with an unnoticeable loss in quality. Higher values will make LOD transitions happen sooner when the -camera moves away, resulting in higher performance but lower quality. +camera moves away, resulting in higher performance, but lower quality. If you need to perform per-object adjustments to mesh LOD, you can adjust how aggressive LOD transitions should be by adjusting the **LOD Bias** property on any node that inherits from GeometryInstance3D. Values *above* ``1.0`` will make -LOD transitions happen later than usual (resulting in higher quality but lower +LOD transitions happen later than usual (resulting in higher quality, but lower performance). Values *below* ``1.0`` will make LOD transitions happen sooner than -usual (resulting in lower quality but higher performance). +usual (resulting in lower quality, but higher performance). Additionally, ReflectionProbe nodes have their own **Mesh LOD Threshold** property that can be adjusted to improve rendering performance when the reflection probe diff --git a/tutorials/3d/occlusion_culling.rst b/tutorials/3d/occlusion_culling.rst index f6b984b5bea..d5e97098fb5 100644 --- a/tutorials/3d/occlusion_culling.rst +++ b/tutorials/3d/occlusion_culling.rst @@ -195,10 +195,16 @@ occluders in front of the camera. To toggle occlusion culling at run-time, set ``use_occlusion_culling`` on the root viewport as follows: -:: +.. tabs:: + .. code-tab:: gdscript get_tree().root.use_occlusion_culling = true + .. code-tab:: csharp + + GetTree().Root.UseOcclusionCulling = true; + + Toggling occlusion culling at run-time is useful to compare performance on a running project. diff --git a/tutorials/3d/standard_material_3d.rst b/tutorials/3d/standard_material_3d.rst index b9eeb8acdbd..963e6184d44 100644 --- a/tutorials/3d/standard_material_3d.rst +++ b/tutorials/3d/standard_material_3d.rst @@ -738,8 +738,21 @@ The rendering order of objects can be changed, although this is mostly useful for transparent objects (or opaque objects that perform depth draw but no color draw, such as cracks on the floor). +Objects are sorted by an opaque/transparent queue, then :ref:`render_priority`, +with higher priority being drawn later. Transparent objects are also sorted by depth. + +Depth testing overrules priority. Priority alone cannot force opaque objects to be drawn over each other. + Next Pass --------- -Sets the material to be used for the next pass. This renders the object -again with a different material. +Setting :ref:`next_pass` on a material +will cause an object to be rendered again with that next material. + +Materials are sorted by an opaque/transparent queue, then :ref:`render_priority`, +with higher priority being drawn later. + +.. image:: img/next_pass.webp + +Depth will test equal between both materials unless the grow setting or other vertex transformations are used. +Multiple transparent passes should use :ref:`render_priority` to ensure correct ordering. diff --git a/tutorials/3d/using_decals.rst b/tutorials/3d/using_decals.rst index 9998865d5a5..dcb2f07ac47 100644 --- a/tutorials/3d/using_decals.rst +++ b/tutorials/3d/using_decals.rst @@ -29,7 +29,7 @@ On this page, you'll learn: .. seealso:: The Godot demo projects repository contains a - `3D decals demo `__. + `3D decals demo `__. If you're looking to write arbitrary 3D text on top of a surface, use :ref:`doc_3d_text` placed close to a surface instead of a Decal node. @@ -240,7 +240,7 @@ textures should be filtered. **Nearest/Linear** does not use mipmaps. However, decals will look grainy at a distance. **Nearest/Linear Mipmaps** will look smoother at a distance, but decals will look blurry when viewed from oblique angles. This can be resolved by using **Nearest/Linear Mipmaps Anisotropic**, -which provides the highest quality but is also slower to render. +which provides the highest quality, but is also slower to render. If your project has a pixel art style, consider setting the filter to one of the **Nearest** values so that decals use nearest-neighbor filtering. Otherwise, diff --git a/tutorials/3d/variable_rate_shading.rst b/tutorials/3d/variable_rate_shading.rst index 82f20fae7cd..81b902c25cf 100644 --- a/tutorials/3d/variable_rate_shading.rst +++ b/tutorials/3d/variable_rate_shading.rst @@ -37,12 +37,12 @@ density map linked at the bottom of this page: .. figure:: img/variable_rate_shading_textured_enabled.webp :align: center - :alt: Variable rate shading enabled in textured scene (lower quality but higher performance) + :alt: Variable rate shading enabled in textured scene (lower quality, but higher performance) - Variable rate shading enabled in textured scene (lower quality but higher performance) + Variable rate shading enabled in textured scene (lower quality, but higher performance) When used in scenes with low-frequency detail (such as scenes with a -stylized/low-poly aesthetic), it's possible to achieve similar performance gains +stylized/low-poly aesthetic), it's possible to achieve similar performance gains, but with less reduction in visual quality: .. figure:: img/variable_rate_shading_untextured_disabled.webp @@ -53,9 +53,9 @@ but with less reduction in visual quality: .. figure:: img/variable_rate_shading_untextured_enabled.webp :align: center - :alt: Variable rate shading enabled in untextured scene (lower quality but higher performance) + :alt: Variable rate shading enabled in untextured scene (lower quality, but higher performance) - Variable rate shading enabled in untextured scene (lower quality but higher performance) + Variable rate shading enabled in untextured scene (lower quality, but higher performance) Hardware support ---------------- diff --git a/tutorials/3d/visibility_ranges.rst b/tutorials/3d/visibility_ranges.rst index 02cba970372..0c882bd1adf 100644 --- a/tutorials/3d/visibility_ranges.rst +++ b/tutorials/3d/visibility_ranges.rst @@ -15,7 +15,7 @@ On this page, you'll learn: .. seealso:: - If you only need meshes to become less detailed over distance but don't have + If you only need meshes to become less detailed over distance, but don't have manually authored LOD meshes, consider relying on automatic :ref:`doc_mesh_lod` instead. diff --git a/tutorials/3d/volumetric_fog.rst b/tutorials/3d/volumetric_fog.rst index f5fca792360..e32acee8344 100644 --- a/tutorials/3d/volumetric_fog.rst +++ b/tutorials/3d/volumetric_fog.rst @@ -142,11 +142,11 @@ and quality: for better performance. - **Rendering > Environment > Volumetric Fog > Volume Depth:** Number of slices to use along the depth of the froxel buffer for volumetric fog. A lower number - will be more efficient but may result in artifacts appearing during camera + will be more efficient, but may result in artifacts appearing during camera movement. - **Rendering > Environment > Volumetric Fog > Use Filter:** Enables filtering of the volumetric fog effect prior to integration. This substantially blurs - the fog which reduces fine details but also smooths out harsh edges and + the fog which reduces fine details, but also smooths out harsh edges and aliasing artifacts. Disable when more detail is required. .. note:: @@ -159,7 +159,7 @@ Using fog volumes for local volumetric fog ------------------------------------------ Sometimes, you want fog to be constrained to specific areas. Conversely, you may -want to have global volumetric fog but fog should be excluded from certain +want to have global volumetric fog, but fog should be excluded from certain areas. Both approaches can be followed using FogVolume nodes. Here's a quick start guide to using FogVolumes: diff --git a/tutorials/animation/creating_movies.rst b/tutorials/animation/creating_movies.rst index b27d211245e..f7f5178b978 100644 --- a/tutorials/animation/creating_movies.rst +++ b/tutorials/animation/creating_movies.rst @@ -285,7 +285,8 @@ This feature tag can also be queried in a script to increase quality settings that are set in the Environment resource. For example, to further improve SDFGI detail and reduce light leaking: -:: +.. tabs:: + .. code-tab:: gdscript extends Node3D @@ -296,6 +297,24 @@ detail and reduce light leaking: get_viewport().world_3d.environment.sdfgi_min_cell_size *= 0.25 get_viewport().world_3d.environment.sdfgi_cascades = 8 + .. code-tab:: csharp + + using Godot; + + public partial class MyNode3D : Node3D + { + public override void _Ready() + { + if (OS.HasFeature("movie")) + { + // When recording a movie, improve SDFGI cell density + // without decreasing its maximum distance. + GetViewport().World3D.Environment.SdfgiMinCellSize *= 0.25f; + GetViewport().World3D.Environment.SdfgiCascades = 8; + } + } + } + .. _doc_creating_movies_recording_at_higher_resolution: Rendering at a higher resolution than the screen resolution diff --git a/tutorials/animation/introduction.rst b/tutorials/animation/introduction.rst index 2c13fc60a92..dc8b0e7acdb 100644 --- a/tutorials/animation/introduction.rst +++ b/tutorials/animation/introduction.rst @@ -140,8 +140,8 @@ animation. Enter a name for the animation in the dialog box. Add a new animation -Manage an animation libraries -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Managing animation libraries +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For reusability, the animation is registered in a list in the animation library resource. If you add an animation to AnimationPlayer without specifying any particular settings, the animation will be registered in the [Global] animation library that AnimationPlayer has by default. @@ -373,10 +373,10 @@ If you want to reset the tracks in the editor, select the AnimationPlayer node, open the **Animation** bottom panel then choose **Apply Reset** in the animation editor's **Edit** dropdown menu. -when using the keyframe icon next to a property in the inspector the editor will +When using the keyframe icon next to a property in the inspector the editor will ask you to automatically create a RESET track. -.. note:: RESET tracks is also used as a reference value for blending. See also `For better blending <../animation/animation_tree.html#for-better-blending>`__. +.. note:: RESET tracks are also used as reference values for blending. See also `For better blending <../animation/animation_tree.html#for-better-blending>`__. Onion Skinning -------------- diff --git a/tutorials/animation/playing_videos.rst b/tutorials/animation/playing_videos.rst index 9862d8e4282..d2ec01b50dc 100644 --- a/tutorials/animation/playing_videos.rst +++ b/tutorials/animation/playing_videos.rst @@ -268,32 +268,32 @@ To implement the chroma key effect, follow these steps: 2. In the "ChromaKeyShader.gdshader" file, write the custom shader code as shown below: -.. code-block:: gd +.. code-block:: glsl shader_type canvas_item; - # Uniform variables for chroma key effect + // Uniform variables for chroma key effect uniform vec3 chroma_key_color : source_color = vec3(0.0, 1.0, 0.0); uniform float pickup_range : hint_range(0.0, 1.0) = 0.1; uniform float fade_amount : hint_range(0.0, 1.0) = 0.1; void fragment() { - # Get the color from the texture at the given UV coordinates + // Get the color from the texture at the given UV coordinates vec4 color = texture(TEXTURE, UV); - # Calculate the distance between the current color and the chroma key color + // Calculate the distance between the current color and the chroma key color float distance = length(color.rgb - chroma_key_color); - # If the distance is within the pickup range, discard the pixel - # the lesser the distance more likely the colors are + // If the distance is within the pickup range, discard the pixel + // the lesser the distance more likely the colors are if (distance <= pickup_range) { discard; } - # Calculate the fade factor based on the pickup range and fade amount + // Calculate the fade factor based on the pickup range and fade amount float fade_factor = smoothstep(pickup_range, pickup_range + fade_amount, distance); - # Set the output color with the original RGB values and the calculated fade factor + // Set the output color with the original RGB values and the calculated fade factor COLOR = vec4(color.rgb, fade_factor); } @@ -311,25 +311,64 @@ UI Controls To allow users to manipulate the chroma key effect in real-time, we created sliders in the `Control` node. The `Control` node's script contains the following functions: -.. code-block:: gd +.. tabs:: + .. code-tab:: gdscript - extends Control + extends Control - func _on_color_picker_button_color_changed(color): - # Update the "chroma_key_color" shader parameter of the VideoStreamPlayer's material - $VideoStreamPlayer.material.set("shader_parameter/chroma_key_color", color) + func _on_color_picker_button_color_changed(color): + # Update the "chroma_key_color" shader parameter of the VideoStreamPlayer's material. + $VideoStreamPlayer.material.set("shader_parameter/chroma_key_color", color) - func _on_h_slider_value_changed(value): - # Update the "pickup_range" shader parameter of the VideoStreamPlayer's material - $VideoStreamPlayer.material.set("shader_parameter/pickup_range", value) + func _on_h_slider_value_changed(value): + # Update the "pickup_range" shader parameter of the VideoStreamPlayer's material. + $VideoStreamPlayer.material.set("shader_parameter/pickup_range", value) - func _on_h_slider_2_value_changed(value): - # Update the "fade_amount" shader parameter of the VideoStreamPlayer's material - $VideoStreamPlayer.material.set("shader_parameter/fade_amount", value) + func _on_h_slider_2_value_changed(value): + # Update the "fade_amount" shader parameter of the VideoStreamPlayer's material. + $VideoStreamPlayer.material.set("shader_parameter/fade_amount", value) func _on_video_stream_player_finished(): - # Restart the video playback when it's finished - $VideoStreamPlayer.play() + # Restart the video playback when it's finished. + $VideoStreamPlayer.play() + + .. code-tab:: csharp + + using Godot; + + public partial class MyControl : Control + { + private VideoStreamPlayer _videoStreamPlayer; + + public override void _Ready() + { + _videoStreamPlayer = GetNode("VideoStreamPlayer"); + } + + private void OnColorPickerButtonColorChanged(Color color) + { + // Update the "chroma_key_color" shader parameter of the VideoStreamPlayer's material. + _videoStreamPlayer.Material.Set("shader_parameter/chroma_key_color", color); + } + + private void OnHSliderValueChanged(double value) + { + // Update the "pickup_range" shader parameter of the VideoStreamPlayer's material. + _videoStreamPlayer.Material.Set("shader_parameter/pickup_range", value); + } + + private void OnHSlider2ValueChanged(double value) + { + // Update the "fade_amount" shader parameter of the VideoStreamPlayer's material. + _videoStreamPlayer.Material.Set("shader_parameter/fade_amount", value); + } + + private void OnVideoStreamPlayerFinished() + { + // Restart the video playback when it's finished. + _videoStreamPlayer.Play(); + } + } also make sure that the range of the sliders are appropriate, our settings are : diff --git a/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst b/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst index f852a432b0c..8d7a2be0a45 100644 --- a/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst +++ b/tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst @@ -160,7 +160,7 @@ exported from other tools such as Maya. **FBX** - **Importer** Which import method is used. ubfx handles fbx files as fbx files. - FBX2glTF converts FBX files to glTF on import and requires additonal setup. + FBX2glTF converts FBX files to glTF on import and requires additional setup. FBX2glTF is not recommended unless you have a specific rason to use it over ufbx or working with a different file format. - **Allow Geometry Helper Nodes** enables or disables geometry helper nodes diff --git a/tutorials/best_practices/autoloads_versus_internal_nodes.rst b/tutorials/best_practices/autoloads_versus_internal_nodes.rst index 48664a26a59..2f8b10a92a9 100644 --- a/tutorials/best_practices/autoloads_versus_internal_nodes.rst +++ b/tutorials/best_practices/autoloads_versus_internal_nodes.rst @@ -87,7 +87,7 @@ limitation of static functions is that they can't reference member variables, non-static functions or ``self``. Since Godot 4.1, GDScript also supports ``static`` variables using ``static var``. -This means you can now share a variables across instances of a class without +This means you can now share variables across instances of a class without having to create a separate autoload. Still, autoloaded nodes can simplify your code for systems with a wide scope. If diff --git a/tutorials/best_practices/data_preferences.rst b/tutorials/best_practices/data_preferences.rst index 7bd718267c0..994d3d45e98 100644 --- a/tutorials/best_practices/data_preferences.rst +++ b/tutorials/best_practices/data_preferences.rst @@ -332,15 +332,15 @@ in a :ref:`TileSet ` and integrate it with a :ref:`TileMapLayer ` for many auto-animating backgrounds that all render in a single batched draw call. -The AnimatedSprite2D node, in combination with the +The :ref:`AnimatedSprite2D ` node, in combination with the :ref:`SpriteFrames ` resource, allows one to create a variety of animation sequences through spritesheets, flip between animations, and control their speed, regional offset, and orientation. This makes them well-suited to controlling 2D frame-based animations. -If one needs trigger other effects in relation to animation changes (for +If one needs to trigger other effects in relation to animation changes (for example, create particle effects, call functions, or manipulate other -peripheral elements besides the frame-based animation), then will need to use +peripheral elements besides the frame-based animation), then one will need to use an :ref:`AnimationPlayer ` node in conjunction with the AnimatedSprite2D. diff --git a/tutorials/best_practices/godot_notifications.rst b/tutorials/best_practices/godot_notifications.rst index e388ecaec62..75a0d237816 100644 --- a/tutorials/best_practices/godot_notifications.rst +++ b/tutorials/best_practices/godot_notifications.rst @@ -279,7 +279,7 @@ nodes that one might create at runtime. { private Node _parentCache; - public void ConnectionCheck() + public bool ConnectionCheck() { return _parentCache.HasUserSignal("InteractedWith"); } diff --git a/tutorials/export/exporting_for_macos.rst b/tutorials/export/exporting_for_macos.rst index ddc3c60a4e7..1961338f485 100644 --- a/tutorials/export/exporting_for_macos.rst +++ b/tutorials/export/exporting_for_macos.rst @@ -13,6 +13,11 @@ macOS apps exported with the official export templates are exported as a single This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS). `Universal binaries for macOS support both Intel x86_64 and ARM64 (Apple silicon, i.e. M1) architectures `__. +.. warning:: + Due to file system limitations, raw ``.app`` bundles exported from Windows lack ``executable`` flag and won't run on macOS. + To fix it, use the ``chmod +x {executable_name}`` command after transferring the exported ``.app`` to macOS or Linux. Projects exported as ``.zip`` aren't affected by this issue. + The main executable located in the ``Contents/MacOS/`` subfolder, as well as optional helper executables in the ``Contents/Helpers/`` subfolder, should have ``executable`` permission for the ``.app`` bundle to be valid. + Requirements ------------ diff --git a/tutorials/i18n/internationalizing_games.rst b/tutorials/i18n/internationalizing_games.rst index 18cc299cdc3..afffbd0a1e0 100644 --- a/tutorials/i18n/internationalizing_games.rst +++ b/tutorials/i18n/internationalizing_games.rst @@ -75,11 +75,17 @@ Translate** in the inspector. In code, the :ref:`Object.tr() ` function can be used. This will just look up the text in the translations and convert it if found: -:: +.. tabs:: + .. code-tab:: gdscript level.text = tr("LEVEL_5_NAME") status.text = tr("GAME_STATUS_%d" % status_index) + .. code-tab:: csharp + + level.Text = Tr("LEVEL_5_NAME"); + status.Text = Tr($"GAME_STATUS_{statusIndex}"); + .. note:: If no text is displayed after changing the language, try to use a different @@ -105,7 +111,8 @@ allows translations to sound more natural. Named placeholders with the ``String.format()`` function should be used whenever possible, as they also allow translators to choose the *order* in which placeholders appear: -:: +.. tabs:: + .. code-tab:: gdscript # The placeholder's locations can be changed, but not their order. # This will probably not suffice for some target languages. @@ -125,7 +132,8 @@ optionally specify a *translation context* to resolve this ambiguity and allow target languages to use different strings, even though the source string is identical: -:: +.. tabs:: + .. code-tab:: gdscript # "Close", as in an action (to close something). button.set_text(tr("Close", "Actions")) @@ -133,6 +141,14 @@ identical: # "Close", as in a distance (opposite of "far"). distance_label.set_text(tr("Close", "Distance")) + .. code-tab:: csharp + + // "Close", as in an action (to close something). + GetNode