Compare commits

...

177 Commits

Author SHA1 Message Date
fc0b241c9b Bump version to 4.0.4-stable 2023-08-02 14:51:12 +02:00
e6a21778de CI: Extract godot-cpp testing into its own job
This ensures that the godot-cpp job has plenty of resources
to run its build and avoid being affected by the main build.

Additionally:
- Extract test tasks into dedicated actions.
- Upload artifacts as early as possible.
- Ensure that we check master cache before random cache.

(cherry picked from commit deb6025781)
2023-08-02 14:51:12 +02:00
1fe01a7741 CI: Free disk space on Linux runners
Removing the Android toolchain saves 14 GiB, which gives us more room
for growth and to avoid running into out-of-space errors in the Linux
sanitizers + debug symbols builds.

Related to #79919, though the caches were just one part of the problem,
the real issue is that our Linux sanitizers builds take 12 GiB, and
adding godot-cpp on top with 2 GiB leaves only a few GiB left for the
cache itself.

(cherry picked from commit 611123f7fd)
2023-08-02 14:51:12 +02:00
a0a5cbad57 Revert "Fix get_bone_pose_global_no_override()"
This reverts commit 9307d851a9.
2023-08-02 14:25:50 +02:00
cfedb0a7a6 Merge pull request #79708 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 3rd batch
2023-07-20 17:46:13 +02:00
c945ec71d3 Add changelog for 4.0.4 2023-07-20 14:58:02 +02:00
2120fcee1c [ENet] Update to upstream master.
(cherry picked from commit 35b70681e7)
2023-07-20 14:56:44 +02:00
96a480feac [Net] Explicitly handle buffer errors in send/recv
(cherry picked from commit 28001b9ef6)
2023-07-20 14:56:44 +02:00
07ec20b8fa Fix disabled slider highlighting
(cherry picked from commit 4394936392)
2023-07-20 13:46:46 +02:00
82ea4b4718 Fix a typo in the String.to_float description
(cherry picked from commit 9744657bb8)
2023-07-20 13:46:46 +02:00
b3c74b4874 Translate "No match" message in FindReplaceBar
(cherry picked from commit ac454ce2a7)
2023-07-20 13:46:46 +02:00
de57ac9227 Fix documentation for Mutex.try_lock
Documentation was not updated when return type was changed from `Error`
to `bool`

(cherry picked from commit 40e2168ac6)
2023-07-20 13:46:46 +02:00
e862643007 Fix function signature in EditorImportPlugin example
(cherry picked from commit cea00ebf58)
2023-07-20 13:46:45 +02:00
7a59ef60ee Fix crash with failed compatibility tiles
(cherry picked from commit 1a9739f591)
2023-07-20 13:46:45 +02:00
dd2907f9b7 Fix for Win+M crashing the editor
Fixes #77790
Adds missing 'break' statement to 'VulkanContext::prepare_buffers' function.
It was mistakenly removed in #72859

(cherry picked from commit bd786ce0d9)
2023-07-20 13:46:45 +02:00
52f583fdee Document ShaderInclude
(cherry picked from commit da84efc96d)
2023-07-20 13:46:45 +02:00
23c1eae8b6 fix(android): set pending intent flag to stop insta-crash
fix(android): add conditional check for minimum sdk version

fix(android): formatting

fix(android): formatting

fix(android): formatting

fix(android): formatting again

(cherry picked from commit ce7f648694)
2023-07-20 13:46:45 +02:00
627ddd412e Fix filesystem cache split error
(cherry picked from commit 7f18db9d9d)
2023-07-20 13:46:45 +02:00
22d3fa7292 Fix crash when opening a TileSet with invalid tiles
(cherry picked from commit 8b5d5dc2c4)
2023-07-20 13:44:15 +02:00
f9a0ac507c Avoid error spam when (un)pausing GPUParticles out of tree
(cherry picked from commit 991f4d5183)
2023-07-20 13:44:15 +02:00
5a82eadd2d Make sure script cache is created after reimport
(cherry picked from commit 680ed7f612)
2023-07-20 13:44:15 +02:00
31e582b970 Fix crash when selecting lines in text edit
(cherry picked from commit 6b7008b73b)
2023-07-20 13:44:15 +02:00
39f9c8cd29 Preserve selection when focusing SpinBox
(cherry picked from commit 968c5f6247)
2023-07-20 13:44:14 +02:00
fa8e3b200e Fix Range-derived nodes not redrawing
When using set_value_no_signal(), Range-derived nodes wouldn't redraw.

Also added a dedicated method to SpinBox to update its text.

(cherry picked from commit 9500f8e69a)
2023-07-20 13:44:14 +02:00
0f23679699 Skip error messages for buttons that don't exist
(cherry picked from commit ed02d515e0)
2023-07-20 13:38:12 +02:00
7f8de2df4c Correctly reset particle size and rotation in ParticlesProcessMaterial
Co-authored-by: clayjhn <claynjohn@gmail.com>
(cherry picked from commit 353a4e1e09)
2023-07-20 13:38:12 +02:00
131ce4acf6 Fix type check in AnimationTrackKeyEdit for methods
(cherry picked from commit ad769903b0)
2023-07-20 13:38:12 +02:00
c683fa9971 Fix trim when importing WAV
(cherry picked from commit ff127ba57e)
2023-07-20 13:38:12 +02:00
33618f25fd Fix SVG font rendering after ThorVG update.
(cherry picked from commit 35b0354577)
2023-07-20 13:38:12 +02:00
9acd4cfdfc Draw materials in tile atlas view
(cherry picked from commit 16ac217aa0)
2023-07-20 13:38:12 +02:00
ca65d85d6e Fix for SkeletonIK3D interpolation and bone roll
Fix bug in internal Basis::rotate_to_align function (also used with identity Basis in scene/resources/curve.cpp)
Use ChainItem children rather than local bone rest to determine IK bone roll to match Godot 3.x behavior

(cherry picked from commit 9aa46bf3f5)
2023-07-20 13:38:12 +02:00
96eb16a365 Avoid doubly mutating the same Skin in rest fixer
Fixes a regression from #77123 that was caused by removal of ibm_diffs variable.
This replaced idempotent code with code that applied an offset each time.
If the same Skin was visited multiple times, this caused an incorrect result.

(cherry picked from commit 5ae311e577)
2023-07-20 13:09:57 +02:00
a18fe83298 Adjust BoneAttachment3D children/meshes during rest fixer
Also simplifies equivalent matrix math which previously used ibm_diffs to calculate skinned mesh offsets.

(cherry picked from commit 7b71061b3e)
2023-07-20 13:09:57 +02:00
1fcf58d72e Make Node::get_children() public
(cherry picked from commit 8eb9986dc5)
2023-07-20 13:09:57 +02:00
db7406e6a7 Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
Fixes https://github.com/godotengine/godot/issues/73801

(cherry picked from commit 8ca14183f0)
2023-07-20 12:45:54 +02:00
2dfb108a6a Fix crash when changing node type from PopMenu to ItemList
(cherry picked from commit 999a1fffec)
2023-07-20 12:45:54 +02:00
31b1f98bba Merge pull request #79111 from akien-mga/4.0-fix-udev-fallback-with-use_sowrap-no
[4.0] Linux: Fix udev fallback logic with `use_sowrap=no`
2023-07-11 11:32:48 +02:00
4a747edb6f Linux: Fix udev fallback logic with use_sowrap=no 2023-07-06 17:10:58 +02:00
c8e0bd50c5 Merge pull request #78838 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 2nd batch
2023-06-30 13:44:09 +02:00
0164b293f0 Update codespell and add new exceptions 2023-06-29 16:22:29 +02:00
a3292d6891 C#: Always decode dotnet output as UTF-8
(cherry picked from commit e0efa3c357)
2023-06-29 16:03:22 +02:00
b11499edce Add missing stdint.h includes for GCC 13+
Fixes #77927.

(cherry picked from commit 10676e78e3)
2023-06-29 16:03:22 +02:00
d6e0170e94 Cancel tooltip when mouse leaves viewport
(cherry picked from commit 807431c49a)
2023-06-29 16:03:22 +02:00
d8caf0a726 Replace get_rendering_device() call to prevent crashes on OpenGL.
And make OpenGL video adapter info align with Vulkan.

(cherry picked from commit 2c5e2196bd)
2023-06-29 16:03:22 +02:00
101adc3853 Make system information for issue reports single-line
Additionally:
* for custom builds, add commit hash
* added a tooltip to help mitigate potential/understandable confusion whether the single-line output might be a bug
* prettify driver name

(cherry picked from commit ca1ee316b5)
2023-06-29 16:03:22 +02:00
78773b74f0 Copy system info to clipboard + Update bug_report.yml
plus minor static-related fixes
* linuxbsd: get_systemd_os_release_info_value() -> static breaks usage if used multiple times
* windows/linuxbsd: get_video_adapter_driver_info() writes info into static
* linuxbsd: get_distribution_name() + get_version() -> write bsd fallback into static variable
* windows/uwp/android: remove unnecessary use of static

(cherry picked from commit 9e5bf3d589)
2023-06-29 16:03:22 +02:00
07c4a32a84 Streamline and centralize bug reporting guides
Before this change, there was three different bug reporting guides:

- [“Filing an issue on GitHub”][1]
- [“Reporting bugs”][2]
- [The issue template][3]

This commit:

1. makes sure that [the issue template][3] contains all of the same
   information that [“Filing an issue on GitHub”][1] and
   [“Reporting bugs”][2] did and
2. makes [“Reporting bugs”][2] simply tell users to fill out the
   template.

The goal of this change is to make reporting bugs easier. This change
accomplishes that goal by presenting bug reporters with all of the
information they need to know on the bug reporting page itself.

This commit partially implements this proposal:
<https://github.com/godotengine/godot-proposals/discussions/4083>

[1]: https://docs.godotengine.org/en/stable/community/contributing/ways_to_contribute.html#filing-an-issue-on-github
[2]: ./CONTRIBUTING.md#reporting-bugs
[3]: ./.github/ISSUE_TEMPLATE/bug_report.yml

(cherry picked from commit a6dc35e5cf)
2023-06-29 16:03:22 +02:00
f05e3712d6 C#: Synchronize adding ScriptInstances
(cherry picked from commit 8fdebb85ef)
2023-06-29 16:03:22 +02:00
980d95a3ad Fix crash when using tile atlas merge with recreated alt tile
(cherry picked from commit 88d2ed433d)
2023-06-29 16:03:22 +02:00
a3951382cd prevent selecting unselectable EditorProperty with RMB
(cherry picked from commit 088435ab78)
2023-06-29 16:03:22 +02:00
8129d83ee9 Added override for window_get_vsync_mode in display_server_web.cpp
(cherry picked from commit a932c5e81d)
2023-06-29 16:03:22 +02:00
e7f7fcd145 Ignore "project_settings_override" in the editor
(cherry picked from commit e759129dd5)
2023-06-29 16:03:22 +02:00
cbdad97829 Don't disable Material and PlaceholderMaterial when disable_3d=yes
(cherry picked from commit 1f1be5fe9b)
2023-06-29 16:03:22 +02:00
bbfd9914c7 Fix spatial viewport multitouch detection support
Regression introduced by https://github.com/godotengine/godot/pull/77498

(cherry picked from commit 2c050cc17e)
2023-06-29 16:03:22 +02:00
d4dc9e4bda Improve touchpad and mouse support for the Android editor
- Fix issues with using a touchpad to click, drag, interact with the navigation controls, etc..
- Fix issues with panning with 2+ fingers
- Fix issues with using double-tap to magnify on the spatial editor

(cherry picked from commit 01ee00f710)
2023-06-29 16:03:22 +02:00
740d387a09 Fix theme of editor VCS dialogs
These dialogs were added to the plugin itself so theme can't be
propagated.

Also moved initialization of the VCS menu after the creation of
EditorInterface.

(cherry picked from commit b30a332009)
2023-06-29 16:03:22 +02:00
5fbf1c230f Reinstate NoiseTexture2D icon
(cherry picked from commit ac8a9df2bf)
2023-06-29 16:03:22 +02:00
bfd15886de [TextServer] Prevent duplicate line breaks on virtual spaces when line width is significantly smaller than character width.
(cherry picked from commit 8a4a883854)
2023-06-29 16:03:22 +02:00
b63db1e6fc Fix extraction of chained tr() calls
(cherry picked from commit 3e88c4cd5c)
2023-06-29 16:03:22 +02:00
bf8f9e28c8 Fix adding bones with the same name after calling Skeleton3D.clear_bones()
(cherry picked from commit ea80213eee)
2023-06-29 16:03:22 +02:00
0649c05756 Improve Skeleton3D::find_bone() performance
(cherry picked from commit f645eee62e)
2023-06-29 16:03:22 +02:00
05eeb8783c Take 3D resolution scaling into account for mesh LOD
(cherry picked from commit ac4ca89000)
2023-06-29 16:03:22 +02:00
88475cfba9 Use defined key mapping for closing popups and dialogs
As opposed to hardcoding the escape key. Also removed such hardcoding in a few other places as well as a hardcoded enter key in one of the affected input fields.

(cherry picked from commit 8ab2cf3d2d)
2023-06-29 16:03:22 +02:00
fcafb674af Ensure quotes are escaped when converting builtin scripts
(cherry picked from commit ef4422e3e1)
2023-06-29 16:03:22 +02:00
13a030de06 Fix AnimationPlayer cumulative speed_scale
(cherry picked from commit 87a6145135)
2023-06-29 16:03:21 +02:00
e4986ad4aa Don't create bones from empty scene
(cherry picked from commit e5b6b3e1e3)
2023-06-29 16:03:21 +02:00
d86aa32f8c Update the format for the app version code and name
(cherry picked from commit a041f96779)
2023-06-29 16:03:21 +02:00
531b22339a Build JoypadLinux sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.

(cherry picked from commit 51dfdfab96)
2023-06-29 16:03:21 +02:00
f7ee97d6d7 Update the gradle build tasks to generate play store builds.
Configure the gradle builds to sign and build the release version of the Godot Android Editor

(cherry picked from commit 0d569bea5d)
2023-06-29 16:03:21 +02:00
9cae00fae8 Fix Y-sort modulate for top-most Y-sorted CanvasItem
(cherry picked from commit bbb2a889d8)
2023-06-29 16:03:21 +02:00
bfc679b862 Fix modulation propagation for Y-sorted CanvasItems
(cherry picked from commit 5d8219b4fd)
2023-06-29 16:03:21 +02:00
bcb6154a3b Make tile atlas merge dialog use filter nearest mipmaps on both sides. To avoid blurry tiles.
(cherry picked from commit 855d78e458)
2023-06-29 16:03:21 +02:00
b7d741977c RenderingDeviceVulkan::buffer_get_data: Use draw command buffer instead of setup command buffer
(cherry picked from commit f52c151fcf)
2023-06-29 16:03:21 +02:00
d56e19b012 Fix typo in FinalAction switch statement in RenderingDevice
(cherry picked from commit dd53037f74)
2023-06-29 16:03:21 +02:00
5366970863 C#: Fix SendToScriptDebugger crash
(cherry picked from commit fa14b6d212)
2023-06-29 16:03:21 +02:00
c41ad0f74c Conditionally free GI and FOG resources, they may not have been created
(cherry picked from commit 57f343ab21)
2023-06-29 16:03:21 +02:00
7ac0f406aa Properly clear material slots on mesh instance when material is freed
(cherry picked from commit 1a128fcccd)
2023-06-29 16:03:21 +02:00
2900425eeb Adds a scale_gizmo_handles entry to the Touchscreen editor settings
When enabled, this scales the editor icons to improve usability on touchscreen devices.
In addition this commit fixes touch detection for the collision_shape_2d_editor_plugin so it scales with the icons size.

(cherry picked from commit 30824e9818)
2023-06-29 16:03:21 +02:00
73650d0fea Add scrolling to overwrite dialog
(cherry picked from commit ab787fe4d2)
2023-06-29 16:03:21 +02:00
f2738cbd41 Add support for DPAD Center key of Android TV remote controller
(cherry picked from commit 9dc84e3581)
2023-06-29 16:03:21 +02:00
2d49b669bb Avoid error spam on first opening of a not yet imported project
(cherry picked from commit ed9dc792df)
2023-06-29 16:03:21 +02:00
431bcf4880 fix Windowderived nodes being unselectable for ViewportTexture NodePath
(cherry picked from commit ace7620e55)
2023-06-29 16:03:21 +02:00
3a4551450c Replace magic num in editor_properties_array_dict
Quick update to editor/editor_properties_array_dict max size.
Currently, an array in the EditorInspector won't display a number higher than 1,000,000.
In place of the current magic number this sets the max to be the INT32_MAX.
This eludes the magic number in place and is sufficiently large.

Resolves #77190

(cherry picked from commit 4fb7aac651)
2023-06-29 16:03:21 +02:00
5ef5ff00a4 Fix calling TextureStorage::texture_3d_update() could cause a crash
(cherry picked from commit ebd2b9e299)
2023-06-29 16:03:21 +02:00
e75e104e2d Fix adding colors to swatches not updating in previous ColorPickers.
ColorPicker was only updating colors if its swatches were empty. It
should always update from the cache in case some other ColorPicker
updated the swatch cache.

(cherry picked from commit a132ed0ca4)
2023-06-29 16:03:21 +02:00
0b8fee56e2 [ItemList] Fix item text positions in RTL mode.
(cherry picked from commit 343c35e7b0)
2023-06-29 16:03:20 +02:00
4edc22ee6e Use nearest with mipmaps texture filter in SpriteFrames editor plugin
(cherry picked from commit 2edf1bd76a)
2023-06-29 16:03:20 +02:00
f745ef03a3 Fix AABB for unused bones
Fixes bug where bounding box of 1 unit was used in some skinned models and had wrong LODs.
(this could become very large if the mesh is scaled, such as FBX conversions)
Also fixes a mistake in calcualting bone index.

(cherry picked from commit 791d8001db)
2023-06-29 16:03:20 +02:00
52c8c8c174 check for null event in Viewport::push_input
(cherry picked from commit a5a1c3a03c)
2023-06-29 16:03:20 +02:00
14f1141abe Fix 2D audio in multiple viewports
(cherry picked from commit 8a41eefb97)
2023-06-29 16:03:20 +02:00
34b4cce2ff Merge pull request #78811 from RedworkDE/net-auto-version-defines-4.0
[4.0] C#: Automatically generate version defines
2023-06-29 06:55:14 +02:00
03ce3f5027 C#: Automatically generate version defines 2023-06-28 21:55:24 +02:00
98a47218a4 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
ajreckof, AThousandShips, bitsawer, hakro, mihe, nongvantinh

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 2930fbeecd)
2023-06-26 17:59:01 +02:00
5fdd5fa19d Merge pull request #77110 from smix8/fix_agent_avoidance_pos_4.0
[4.0] Fix agent avoidance position not updated when entering SceneTree
2023-06-22 21:00:50 +02:00
bce04919f4 Merge pull request #78340 from YuriSizov/4.0-cherrypicks
Cherry-picks for the 4.0 branch (future 4.0.4) - 1st batch
2023-06-20 13:27:35 +02:00
4eefe8a40e Merge pull request #78403 from AThousandShips/create_size_fix
[4.0] Fix saving size in `CreateDialog`
2023-06-19 16:48:18 +02:00
e22a71aa3c [4.0] Fix saving size in CreateDialog
Was fixed for 4.1 in godotengine/godot#75141, but as part of a larger
fix
2023-06-18 14:45:14 +02:00
09dc11bff5 Add missing script_type nullptr check
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
(cherry picked from commit 1236302388)
2023-06-16 20:55:24 +02:00
314c729d2c Fix issue 74259 by setting the sky cover property back to nil when it is reset in the editor.
(cherry picked from commit 74041e3705)
2023-06-16 20:55:23 +02:00
9307d851a9 Fix get_bone_pose_global_no_override()
(cherry picked from commit 565803ce3d)
2023-06-16 20:55:23 +02:00
4cf3aff7cc Stop dragging when a slider changes editability
(cherry picked from commit 7d6b44c5a4)
2023-06-16 20:55:23 +02:00
3f98539361 Do not translate node name when assigned to an exported field
(cherry picked from commit f2383b7c19)
2023-06-16 20:55:23 +02:00
b650ba820b Hide Animation Frames section when there are no animations and show message
(cherry picked from commit 9cf2d0f058)
2023-06-16 20:55:23 +02:00
c58bc21dba Turn off auto translate for some editor controls
* Scene tab
* Animation name list in Animation panel
* Feature profile name list in Editor Feature Profile dialog
* Layout names in editor layout menu
* Subresource list in Inspector dock
* Resource type shown in EditorResourcePicker
* Enum dropdowns in inspectors: We'll eventually allow auto translating
  these after implementing a way to opt-out auto translation on a
  property-by-property basis and a way to extract enumerators.

(cherry picked from commit 26553be424)
2023-06-16 20:55:23 +02:00
506734cae1 Link the right build property to REAL_T_IS_DOUBLE
(cherry picked from commit 178cd046bb)
2023-06-16 20:55:23 +02:00
67698b155f Correctly insert lightmap captures and geometries.
(cherry picked from commit 53903f07dc)
2023-06-16 20:55:23 +02:00
156862bddb Fix CSGPolygon3D in path mode disappearing at runtime.
(cherry picked from commit da7e54ec17)
2023-06-16 20:55:23 +02:00
dcf6f2b29f Fix Input Map key assignments missing after project conversion
Fixes #76336 (Input Map keys missing).
Moves the project.godot config_version stamping from the project manager
to the project converter. Now there's no difference between converting through
the project manager and the CLI tool.
Fixes being prompted to re-convert the project in the project manager after
having done so through the CLI tool.

(cherry picked from commit 0985019c28)
2023-06-16 20:55:23 +02:00
ce116e4708 Fix calculation bug with TextEdit::get_line_height()
When `get_line_height()` is less than `1`, there is no visible text.
So limit the return value of `get_line_height()` to **not less** than
`1` for calculation.

(cherry picked from commit 391bce44b7)
2023-06-16 20:55:23 +02:00
566ad9813e fix errors while reordering input maps
(cherry picked from commit c6ea376842)
2023-06-16 20:55:23 +02:00
2054141848 GDScript: Fix validate_call_arg() for unresolved datatype
(cherry picked from commit 7da3110e6b)
2023-06-16 20:55:23 +02:00
a26dd53faf Make SpriteFrames editor toolbar a FlowContainer
(cherry picked from commit d58e832062)
2023-06-16 20:55:23 +02:00
4cabfc1756 CI: Fix running the unit tests on windows
(cherry picked from commit adbb323163)
2023-06-16 20:55:23 +02:00
3af3e88d81 Fix AnimatedSprite3D autoplay warning
(cherry picked from commit d3d84d90de)
2023-06-16 20:55:23 +02:00
2bcad4c55b Exclude incorrect completion options for render_mode in shaders
(cherry picked from commit 719741b0eb)
2023-06-16 20:55:23 +02:00
ac1885925c Fixed width of CapsuleShape2D::get_rect + set center to center of shape
The width of the rect was only half of the width of the shape, and
the 0;0 coord was at the top left of the rect.
Now the width properly matches the width of the shape, and the 0;0
coord is at the center of the shape. It should match the behavior
of Godot 3.X.

(cherry picked from commit ab5462e386)
2023-06-16 20:55:23 +02:00
acd975a45a Fix HTTPClient _request using wrong size
This only affects HttpClient in GDScript.

(cherry picked from commit 1514376e46)
2023-06-16 20:55:23 +02:00
72d561c89f Fix C# glue generation for enums with negative values
(cherry picked from commit 45659ce2d9)
2023-06-16 20:55:23 +02:00
d00eb58381 GDScript: Fix warning ignoring for member variables
(cherry picked from commit c2fbb40e9a)
2023-06-16 20:55:20 +02:00
e46b14fd30 Move code to Windows Vulkan context initialization context
This workaround is not needed for rendering drivers other than Vulkan.

(cherry picked from commit 950c5b57e4)
2023-06-16 17:27:11 +02:00
30f079ecb5 Disable AMD switchable graphics on Windows with Vulkan to fix driver issue
This is a required workaround on setups with AMD integrated graphics
+ NVIDIA dedicated GPU to be able to start the engine with the Forward+
or Forward Mobile rendering methods.

While a AMD driver update can resolve this issue, it still gets reported
regularly and is likely to become a source of support headache for people
distributing projects made with Godot (as this also affects exported projects).

(cherry picked from commit 31a9345189)
2023-06-16 17:27:10 +02:00
d6d232a881 Update certs (2023.06 revision)
(cherry picked from commit 504e002224)
2023-06-16 17:22:13 +02:00
142e648000 msdfgen: Sync with upstream 1.10
(cherry picked from commit 3c25dfe0e4)
2023-06-16 17:22:13 +02:00
e027c44fe6 brotli: Sync with upstream commit ed1995b6b
ed1995b6bd
(cherry picked from commit 7770e4447d)
2023-06-16 17:19:16 +02:00
84b9202d87 recast: Update to upstream version 1.6.0
Release notes:
- https://github.com/recastnavigation/recastnavigation/releases/tag/v1.6.0

(cherry picked from commit 2058b63067)
2023-06-16 17:19:16 +02:00
d5d02b9a85 wslay: Sync with upstream 0e7d106ff
0e7d106ff8

Just a couple style fixes. Updating only so we know we don't have to review changes
since upstream development seems dormant.

(cherry picked from commit adfc46db4d)
2023-06-16 17:19:16 +02:00
b686a30a2c zstd: Update to upstream version 1.5.5
Release notes:
- https://github.com/facebook/zstd/releases/tag/v1.5.3
- https://github.com/facebook/zstd/releases/tag/v1.5.4
- https://github.com/facebook/zstd/releases/tag/v1.5.5

(cherry picked from commit 6100b4bd33)
2023-06-16 17:19:16 +02:00
5f60f4cdbf tinyexr: Sync with upstream 1.0.5
(cherry picked from commit 56d85149e5)
2023-06-16 17:19:15 +02:00
b845bf8adc tinyexr: Sync with upstream 1.0.4
(cherry picked from commit ca55c455ad)
2023-06-16 17:19:15 +02:00
3e2c9077dc tinyexr: Sync with upstream 1.0.2
Fixes a bunch of bugs, notably addressing fuzzer reports (crashes).
https://github.com/syoyo/tinyexr/releases/tag/v1.0.2

(cherry picked from commit c5834eb972)
2023-06-16 17:19:15 +02:00
e9ee7bdc9b Fix Node class in MSVC debugger for dev_build
(cherry picked from commit b3a83b7c4e)
2023-06-16 17:19:15 +02:00
3d61653e45 Document the InitialAction enum in RenderingDevice
This also improves the documentation for the FinalAction enum,
and fixes an incorrect comment in the RenderingDevice header.

(cherry picked from commit 0f82a0f569)
2023-06-16 16:37:38 +02:00
227de95dbb Remove inaccuracy about re-using Threads in its doc
(cherry picked from commit c1e5001cf6)
2023-06-16 16:37:38 +02:00
bb7e88e52a Fixing parameter order in the documentation of TLSOptions.server()
(cherry picked from commit 4965125fce)
2023-06-16 16:37:38 +02:00
2337d825c1 Clarify use of size flags in Control
(cherry picked from commit 6146c60cf8)
2023-06-16 16:37:38 +02:00
23dc7047ad Add Stretch Mode description to ProjectSettings.xml
Update doc/classes/ProjectSettings.xml

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
(cherry picked from commit 77a61084aa)
2023-06-16 16:34:20 +02:00
a07cfcc09e Fix outdated C# code example for class AnimationNodeOneShot
(cherry picked from commit 5142b5d23c)
2023-06-16 16:34:06 +02:00
d7e50811bc Document GI techniques ignoring VisualInstance3D and Camera3D layers
This also improves documentation for a few other properties in those classes.

(cherry picked from commit 40bf95ca8e)
2023-06-16 15:13:00 +02:00
53cb88554a Document the database for Input.get_joy_name() and Input.get_joy_guid()
(cherry picked from commit 922d2b7034)
2023-06-16 15:13:00 +02:00
c99f67105f C#: Fix dictionary key lookup documentation
The method to check if a key exists in the dictionary is called `ContainsKey`.

(cherry picked from commit 6723b4e8c3)
2023-06-16 15:13:00 +02:00
4c34531499 Update C# code example to fix an error
Update doc/classes/AnimationNodeStateMachinePlayback.xml

Co-authored-by: Raul Santos <raulsntos@gmail.com>
(cherry picked from commit cb7fdad3b4)
2023-06-16 15:13:00 +02:00
8df97cf368 Specify how to use the global animation library in gdscript
(cherry picked from commit bf7adc8670)
2023-06-16 15:13:00 +02:00
1a1095f986 Docs: Add FileAccess.close, remove dupl. example
(cherry picked from commit aaf43a260e)
2023-06-16 15:12:59 +02:00
62d7797cbf Update HTTPRequest Class Documentation
Reword the timeout member definition to indicate that example timeout values are suggestions.
Add definition for timeout constant.

Apply suggestions from code review

Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
(cherry picked from commit d185220b32)
2023-06-16 15:12:59 +02:00
0e697e102b Add more info on the nature of NAN
(cherry picked from commit 5e3c625e24)
2023-06-16 15:12:59 +02:00
a44409bf54 Clarify doc for Color.hex and C# Color()
The "alpha channel first" seems misleading to me. It doesn't match with
the examples, so remove it. Add a more detailed specification of the
expected number format in hex.

(cherry picked from commit 779ac20bb9)
2023-06-16 15:12:59 +02:00
484a39c34d Document seamless caveats on small textures in NoiseTexture2D and NoiseTexture3D
This also harmonizes "normal map" spelling across the class reference.

(cherry picked from commit 9e21647578)
2023-06-16 15:12:36 +02:00
e72e24b3cc Update outdated syntax in JavaScriptBridge doc
According to `JavaScriptBridge`, thus takes a Callable, not an object/string pair.

(cherry picked from commit 04480f196a)
2023-06-16 15:12:20 +02:00
3c2e30b319 Docs: Fix SurfaceTool example caps typo
(cherry picked from commit 6719fea8dc)
2023-06-16 15:12:20 +02:00
412d947dc3 Updated Object's class reference documentation for set_meta to indicate metadata's name must be a valid identifier
(cherry picked from commit cdc2e6d872)
2023-06-16 15:12:20 +02:00
b118d89eed Overhaul the top sections of the class reference (Core classes)
(cherry picked from commit 04562662d3)
2023-06-16 15:12:10 +02:00
2792b520a7 Overhaul the top sections of the class reference (GUI classes)
(cherry picked from commit 151a4ba6a5)
2023-06-16 14:56:34 +02:00
fd08e35cd3 Add instructions for configuring CheckBox as a radio button
(cherry picked from commit 3dc487b450)
2023-06-16 14:56:16 +02:00
465f363c77 Minor grammar fixes to documentation
(cherry picked from commit 17fb77223c)
2023-06-16 14:44:53 +02:00
605b6e568f Fix code tag typo in class reference
(cherry picked from commit 85f137912d)
2023-06-16 14:44:53 +02:00
c5c27e64ea Remove out-dated lines from class reference of Skeleton3D
(cherry picked from commit 26cc4bbd82)
2023-06-16 14:44:52 +02:00
a4e8ba9b5d Overhaul the top sections of the class reference (Animation classes)
(cherry picked from commit 4af3fc7e26)
2023-06-16 14:44:52 +02:00
0934545d23 Validate code tags in documentation for potential params
Adds a check to make_rst to look for matches
between the text inside of the [code][/code] tag
and known param identifiers.
Fixes most of what was revealed.

(cherry picked from commit 391eccca76)
2023-06-16 14:44:52 +02:00
3aea815a05 Fix typo in CS notification example of the Object class
(cherry picked from commit 41ac5a406e)
2023-06-16 14:37:53 +02:00
41b10f1222 Clarify range of various ID values are 32 bit
(cherry picked from commit 8cf98dda23)
2023-06-16 14:37:53 +02:00
a7ba5e9939 Fix incorrect Polygon2D description
(cherry picked from commit 7d9a0f1fe7)
2023-06-16 14:37:53 +02:00
d6e73cabad Replaced "mirror" by "repeat" in doc of ParallaxLayer::motion_mirroring
Also added a warning explaining that despite its name the texture isn't mirrored.

(cherry picked from commit 4e06f611b8)
2023-06-16 14:37:52 +02:00
3fbf460a9f Accurately document StringName comparisons
(cherry picked from commit 2f9121dea6)
2023-06-16 14:37:52 +02:00
dce1b9ce14 Fix StringName comparison
(cherry picked from commit d2ddd8b228)
2023-06-16 14:37:52 +02:00
4ba4ed6528 Merge pull request #78270 from RedworkDE/net-version-define-4.0
[4.0] C#: Add version defines to help users deal with breaking changes
2023-06-15 15:53:38 +02:00
6a4bf0a9ad C#: Add version defines to help users deal with breaking changes 2023-06-15 13:22:08 +02:00
11df2a8f22 Merge pull request #78137 from akien-mga/4.0-regex-nullptr-free
[4.0] regex: Add nullptr check in `_regex_free`, needed with PCRE2 10.42
2023-06-12 17:07:08 +02:00
290db4a0b6 regex: Add nullptr check in _regex_free, needed with PCRE2 10.42
Fixes #76174.
2023-06-12 15:19:55 +02:00
da3f725206 i18n: Sync translations with Weblate
Last 4.0 sync before switching Weblate to track 4.1 strings.
2023-06-12 14:35:33 +02:00
fd5dc25240 Merge pull request #77664 from RedworkDE/audiostream-preview-crash-4.0
[4.0] Fix crash in AudioStream preview
2023-06-02 12:21:33 +02:00
ebc3ac0934 Fix crash in AudioStream preview 2023-05-30 20:28:28 +02:00
70fa4d26d7 Merge pull request #77579 from dalexeev/gds-bitfield-as-int-4.0
[4.0] GDScript: Treat `BitField<Enum>` as `int` (not `Enum`)
2023-05-29 11:11:23 +02:00
74ac827ac7 [4.0] GDScript: Treat BitField<Enum> as int (not Enum) 2023-05-28 18:15:51 +03:00
75e5bf789d Small docs syntax fixes
(cherry picked from commit a521b85976)
2023-05-19 16:15:36 +02:00
d0c0d44cb5 Actually bump version to 4.0.4-rc :o) 2023-05-19 12:57:28 +02:00
97631f8aa9 Bump version to 4.0.4-rc
Error: Godot not found.
2023-05-19 09:39:54 +02:00
5296b91592 Fix agent avoidance position not updated when entering SceneTree
Fixes agent avoidance position not updated when entering SceneTree.
2023-05-15 22:27:37 +02:00
609 changed files with 15912 additions and 7406 deletions

View File

@ -5,18 +5,19 @@ body:
- type: markdown
attributes:
value: |
- Read our [CONTRIBUTING.md guide](https://github.com/godotengine/godot/blob/master/CONTRIBUTING.md#reporting-bugs) on reporting bugs.
- When reporting bugs, you'll make our life simpler (and the fix will come sooner) if you follow the guidelines in this template.
- Write a descriptive issue title above.
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported.
- The golden rule is to **always open *one* issue for *one* bug**. If you notice several bugs and want to report them, make sure to create one new issue for each of them.
- Search [open](https://github.com/godotengine/godot/issues) and [closed](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aclosed) issues to ensure it has not already been reported. If you don't find a relevant match or if you're unsure, don't hesitate to **open a new issue**. The bugsquad will handle it from there if it's a duplicate.
- Verify that you are using a [supported Godot version](https://docs.godotengine.org/en/stable/about/release_policy.html).
- type: input
attributes:
label: Godot version
description: >
Specify the Git commit hash if using a development or non-official build.
Specify the Godot version, including the Git commit hash if using a development or non-official build.
If you use a custom build, please test if your issue is reproducible in official builds too.
placeholder: 3.3.stable, 4.0.dev (3041becc6)
placeholder: 3.5.stable, 4.0.dev (3041becc6)
validations:
required: true
@ -24,9 +25,12 @@ body:
attributes:
label: System information
description: |
Specify the OS version, and when relevant hardware information.
For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
placeholder: Windows 10, GLES3, Intel HD Graphics 620 (27.20.100.9616)
- Specify the OS version, and when relevant hardware information.
- For issues that are likely OS-specific and/or graphics-related, please specify the CPU model and architecture.
- For graphics-related issues, specify the GPU model, driver version, and the rendering backend (GLES2, GLES3, Vulkan).
- **Bug reports not including the required information may be closed at the maintainers' discretion.** If in doubt, always include all the requested information; it's better to include too much information than not enough information.
- **Starting from Godot 4.1, you can copy this information to your clipboard by using *Help > Copy System Info* at the top of the editor window.**
placeholder: Windows 10 - Godot v4.0.3.stable - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 970 (nvidia, 510.85.02) - Intel Core i7-10700KF CPU @ 3.80GHz (16 Threads)
validations:
required: true
@ -52,8 +56,10 @@ body:
attributes:
label: Minimal reproduction project
description: |
A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
- A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`).
- Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field.
- Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.**
- **Note for C# users:** If your issue is *not* Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available.
- **If you've been asked by a maintainer to upload a minimal reproduction project, you *must* do so within 7 days.** Otherwise, your bug report will be closed as it'll be considered too difficult to diagnose.
validations:
required: true

View File

@ -0,0 +1,18 @@
name: Download Godot artifact
description: Download the Godot artifact.
inputs:
name:
description: The artifact name.
default: "${{ github.job }}"
path:
description: The path to download and extract to.
required: true
default: "./"
runs:
using: "composite"
steps:
- name: Download Godot Artifact
uses: actions/download-artifact@v3
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}

View File

@ -0,0 +1,24 @@
name: Dump Godot API
description: Dump Godot API for GDExtension
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
# Dump GDExtension interface and API
- name: Dump GDExtension interface and API for godot-cpp build
shell: sh
run: |
${{ inputs.bin }} --headless --dump-gdextension-interface --dump-extension-api
mkdir godot-api
cp -f gdextension_interface.h godot-api/
cp -f extension_api.json godot-api/
- name: Upload API dump
uses: ./.github/actions/upload-artifact
with:
name: 'godot-api-dump'
path: './godot-api/*'

View File

@ -16,7 +16,20 @@ runs:
with:
path: ${{inputs.scons-cache}}
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
# We try to match an existing cache to restore from it. Each potential key is checked against
# all existing caches as a prefix. E.g. 'linux-template-minimal' would match any cache that
# starts with "linux-template-minimal", such as "linux-template-minimal-master-refs/heads/master-6588a4a29af1621086feac0117d5d4d37af957fd".
#
# We check these prefixes in this order:
#
# 1. The exact match, including the base branch, the commit reference, and the SHA hash of the commit.
# 2. A partial match for the same base branch and the same commit reference.
# 3. A partial match for the same base branch and the base branch commit reference.
# 4. A partial match for the same base branch only (not ideal, matches any PR with the same base branch).
restore-keys: |
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-refs/heads/${{env.GODOT_BASE_BRANCH}}
${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}

View File

@ -0,0 +1,18 @@
name: Test Godot project converter
description: Test the Godot project converter.
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
- name: Test 3-to-4 conversion
shell: sh
run: |
mkdir converter_test
cd converter_test
touch project.godot
../${{ inputs.bin }} --headless --validate-conversion-3to4
cd ..
rm converter_test -rf

View File

@ -0,0 +1,37 @@
name: Test Godot project
description: Run the test Godot project.
inputs:
bin:
description: The path to the Godot executable
required: true
runs:
using: "composite"
steps:
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
- name: Download test project
shell: sh
run: |
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
unzip 4.0.zip
mv "regression-test-project-4.0" "test_project"
# Editor is quite complicated piece of software, so it is easy to introduce bug here.
- name: Open and close editor (Vulkan)
shell: sh
run: |
xvfb-run ${{ inputs.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
- name: Open and close editor (GLES3)
shell: sh
run: |
DRI_PRIME=0 xvfb-run ${{ inputs.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Run test project
- name: Run project
shell: sh
run: |
xvfb-run ${{ inputs.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt

54
.github/workflows/godot_cpp_test.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: 🪲 Godot CPP
on:
workflow_call:
# Global Settings
env:
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-cpp-tests
cancel-in-progress: true
jobs:
godot-cpp-tests:
runs-on: "ubuntu-20.04"
name: "Build and test Godot CPP"
steps:
- uses: actions/checkout@v3
- name: Setup python and scons
uses: ./.github/actions/godot-deps
# Checkout godot-cpp
- name: Checkout godot-cpp
uses: actions/checkout@v3
with:
repository: godotengine/godot-cpp
ref: ${{ env.GODOT_BASE_BRANCH }}
submodules: 'recursive'
path: 'godot-cpp'
# Download generated API dump
- name: Download GDExtension interface and API dump
uses: ./.github/actions/download-artifact
with:
name: 'godot-api-dump'
path: './godot-api'
# Extract and override existing files with generated files
- name: Extract GDExtension interface and API dump
run: |
cp -f godot-api/gdextension_interface.h godot-cpp/gdextension/
cp -f godot-api/extension_api.json godot-cpp/gdextension/
# TODO: Add caching to the scons build and store it for CI via the godot-cache
# action.
# Build godot-cpp test extension
- name: Build godot-cpp test extension
run: |
cd godot-cpp/test
scons target=template_debug dev_build=yes
cd ../..

View File

@ -4,7 +4,7 @@ on:
# Global Settings
env:
# Used for the cache key, and godot-cpp checkout. Add version suffix to force clean build.
# Used for the cache key. Add version suffix to force clean build.
GODOT_BASE_BRANCH: '4.0'
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
DOTNET_NOLOGO: true
@ -25,52 +25,51 @@ jobs:
- name: Editor w/ Mono (target=editor)
cache-name: linux-editor-mono
target: editor
tests: false # Disabled due freeze caused by mix Mono build and CI
sconsflags: module_mono_enabled=yes
doc-test: true
bin: "./bin/godot.linuxbsd.editor.x86_64.mono"
build-mono: true
tests: false # Disabled due freeze caused by mix Mono build and CI
doc-test: true
proj-conv: true
artifact: true
- name: Editor with doubles and GCC sanitizers (target=editor, tests=yes, dev_build=yes, precision=double, use_asan=yes, use_ubsan=yes, linker=gold)
cache-name: linux-editor-double-sanitizers
target: editor
tests: true
# Debug symbols disabled as they're huge on this build and we hit the 14 GB limit for runners.
sconsflags: dev_build=yes debug_symbols=no precision=double use_asan=yes use_ubsan=yes linker=gold
proj-test: true
# Can be turned off for PRs that intentionally break compat with godot-cpp,
# until both the upstream PR and the matching godot-cpp changes are merged.
godot-cpp-test: true
bin: "./bin/godot.linuxbsd.editor.dev.double.x86_64.san"
build-mono: false
tests: true
proj-test: true
# Generate an API dump for godot-cpp tests.
api-dump: true
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Editor with clang sanitizers (target=editor, tests=yes, dev_build=yes, use_asan=yes, use_ubsan=yes, use_llvm=yes, linker=lld)
cache-name: linux-editor-llvm-sanitizers
target: editor
tests: true
sconsflags: dev_build=yes use_asan=yes use_ubsan=yes use_llvm=yes linker=lld
bin: "./bin/godot.linuxbsd.editor.dev.x86_64.llvm.san"
build-mono: false
tests: true
# Skip 2GiB artifact speeding up action.
artifact: false
- name: Template w/ Mono (target=template_release)
cache-name: linux-template-mono
target: template_release
tests: false
sconsflags: module_mono_enabled=yes
build-mono: false
tests: false
artifact: true
- name: Minimal template (target=template_release, everything disabled)
cache-name: linux-template-minimal
target: template_release
tests: false
sconsflags: modules_enabled_by_default=no disable_3d=yes disable_advanced_gui=yes deprecated=no minizip=no
tests: false
artifact: true
steps:
@ -84,6 +83,12 @@ jobs:
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt-get install -qq mesa-vulkan-drivers
- name: Free disk space on runner
run: |
echo "Disk usage before:" && df -h
sudo rm -rf /usr/local/lib/android
echo "Disk usage after:" && df -h
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
with:
@ -120,6 +125,24 @@ jobs:
run: |
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
- name: Prepare artifact
if: ${{ matrix.artifact }}
run: |
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
if: ${{ matrix.artifact }}
with:
name: ${{ matrix.cache-name }}
- name: Dump Godot API
uses: ./.github/actions/godot-api-dump
if: ${{ matrix.api-dump }}
with:
bin: ${{ matrix.bin }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
@ -137,79 +160,16 @@ jobs:
${{ matrix.bin }} --doctool --headless 2>&1 > /dev/null || true
git diff --color --exit-code && ! git ls-files --others --exclude-standard | sed -e 's/^/New doc file missing in PR: /' | grep 'xml$'
# Test 3.x -> 4.x project converter
# Download and run the test project
- name: Test Godot project
uses: ./.github/actions/godot-project-test
if: ${{ matrix.proj-test }}
with:
bin: ${{ matrix.bin }}
# Test the project converter
- name: Test project converter
uses: ./.github/actions/godot-converter-test
if: ${{ matrix.proj-conv }}
run: |
mkdir converter_test
cd converter_test
touch project.godot
../${{ matrix.bin }} --headless --validate-conversion-3to4
cd ..
rm converter_test -rf
# Download and extract zip archive with project, folder is renamed to be able to easy change used project
- name: Download test project
if: ${{ matrix.proj-test }}
run: |
wget https://github.com/godotengine/regression-test-project/archive/4.0.zip
unzip 4.0.zip
mv "regression-test-project-4.0" "test_project"
# Editor is quite complicated piece of software, so it is easy to introduce bug here
- name: Open and close editor (Vulkan)
if: ${{ matrix.proj-test }}
run: |
xvfb-run ${{ matrix.bin }} --audio-driver Dummy --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
- name: Open and close editor (GLES3)
if: ${{ matrix.proj-test }}
run: |
DRI_PRIME=0 xvfb-run ${{ matrix.bin }} --audio-driver Dummy --rendering-driver opengl3 --editor --quit --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Run test project
- name: Run project
if: ${{ matrix.proj-test }}
run: |
xvfb-run ${{ matrix.bin }} 40 --audio-driver Dummy --path test_project 2>&1 | tee sanitizers_log.txt || true
misc/scripts/check_ci_log.py sanitizers_log.txt
# Checkout godot-cpp
- name: Checkout godot-cpp
if: ${{ matrix.godot-cpp-test }}
uses: actions/checkout@v3
with:
repository: godotengine/godot-cpp
ref: ${{ env.GODOT_BASE_BRANCH }}
submodules: 'recursive'
path: 'godot-cpp'
# Dump GDExtension interface and API
- name: Dump GDExtension interface and API for godot-cpp build
if: ${{ matrix.godot-cpp-test }}
run: |
${{ matrix.bin }} --headless --dump-gdextension-interface --dump-extension-api
cp -f gdextension_interface.h godot-cpp/gdextension/
cp -f extension_api.json godot-cpp/gdextension/
# Build godot-cpp test extension
- name: Build godot-cpp test extension
if: ${{ matrix.godot-cpp-test }}
run: |
cd godot-cpp/test
scons target=template_debug dev_build=yes
cd ../..
- name: Prepare artifact
if: ${{ matrix.artifact }}
run: |
strip bin/godot.*
chmod +x bin/godot.*
- name: Upload artifact
uses: ./.github/actions/upload-artifact
if: ${{ matrix.artifact }}
with:
name: ${{ matrix.cache-name }}
bin: ${{ matrix.bin }}

View File

@ -56,14 +56,6 @@ jobs:
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test
- name: Prepare artifact
run: |
strip bin/godot.*
@ -73,3 +65,11 @@ jobs:
uses: ./.github/actions/upload-artifact
with:
name: ${{ matrix.cache-name }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test

View File

@ -6,10 +6,14 @@ concurrency:
cancel-in-progress: true
jobs:
# First stage: Only static checks, fast and prevent expensive builds from running.
static-checks:
name: 📊 Static checks
uses: ./.github/workflows/static_checks.yml
# Second stage: Run all the builds and some of the tests.
android-build:
name: 🤖 Android
needs: static-checks
@ -39,3 +43,15 @@ jobs:
name: 🌐 Web
needs: static-checks
uses: ./.github/workflows/web_builds.yml
# Third stage: Run auxiliary tests using build artifacts from previous jobs.
# Can be turned off for PRs that intentionally break compat with godot-cpp,
# until both the upstream PR and the matching godot-cpp changes are merged.
godot-cpp-test:
name: 🪲 Godot CPP
# This can be changed to depend on another platform, if we decide to use it for
# godot-cpp instead. Make sure to move the .github/actions/godot-api-dump step
# appropriately.
needs: linux-build
uses: ./.github/workflows/godot_cpp_test.yml

View File

@ -103,8 +103,8 @@ jobs:
- name: Spell checks via codespell
if: github.event_name == 'pull_request' && env.CHANGED_FILES != ''
uses: codespell-project/actions-codespell@v1
uses: codespell-project/actions-codespell@v2
with:
skip: "./bin,./thirdparty,*.desktop,*.gen.*,*.po,*.pot,*.rc,./AUTHORS.md,./COPYRIGHT.txt,./DONORS.md,./core/input/gamecontrollerdb.txt,./core/string/locales.h,./editor/project_converter_3_to_4.cpp,./misc/scripts/codespell.sh,./platform/android/java/lib/src/com,./platform/web/node_modules,./platform/web/package-lock.json"
ignore_words_list: "curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,nd,numer,ot,te,vai"
ignore_words_list: "curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,mis,nd,numer,ot,te,vai"
path: ${{ env.CHANGED_FILES }}

View File

@ -28,7 +28,7 @@ jobs:
target: editor
tests: true
# Skip debug symbols, they're way too big with MSVC.
sconsflags: debug_symbols=no vsproj=yes
sconsflags: debug_symbols=no vsproj=yes windows_subsystem=console
bin: "./bin/godot.windows.editor.x86_64.exe"
- name: Template (target=template_release)
@ -60,14 +60,6 @@ jobs:
target: ${{ matrix.target }}
tests: ${{ matrix.tests }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test
- name: Prepare artifact
run: |
Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
@ -76,3 +68,11 @@ jobs:
uses: ./.github/actions/upload-artifact
with:
name: ${{ matrix.cache-name }}
# Execute unit tests for the editor
- name: Unit tests
if: ${{ matrix.tests }}
run: |
${{ matrix.bin }} --version
${{ matrix.bin }} --help
${{ matrix.bin }} --test

View File

@ -1,4 +1,5 @@
Aaron Record <aaronjrecord@gmail.com>
ajreckof <66184050+ajreckof@users.noreply.github.com> <tbonhoure@ymail.com>
Alexander Holland <alexander.holland@live.de>
Alexander Holland <alexander.holland@live.de> <alexander.holland@haw-hamburg.de>
Alexander Holland <alexander.holland@live.de> <AlexHolly>
@ -105,6 +106,7 @@ marynate <mary.w.nate@gmail.com> <marynate@github.com>
Mateo Kuruk Miccino <mateomiccino@gmail.com>
Max Hilbrunner <m.hilbrunner@gmail.com>
Max Hilbrunner <m.hilbrunner@gmail.com> <mhilbrunner@users.noreply.github.com>
MewPurPur <mew.pur.pur@abv.bg>
Michael Alexsander <michaelalexsander@protonmail.com>
Micky <micheledevita2@gmail.com> <66727710+Mickeon@users.noreply.github.com>
Nathan Franke <natfra@pm.me> <nathanwfranke@gmail.com>

View File

@ -45,12 +45,14 @@ name is available.
Anutrix
Aren Villanueva (kurikaesu)
Ariel Manzur (punto-)
AThousandShips
Bartłomiej T. Listwon (Listwon)
Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd)
Benjamin Larsson (Nallebeorn)
Bernhard Liebl (poke1024)
Bhuvan Vemula (Bhu1-V)
bitsawer
Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau)
@ -104,6 +106,7 @@ name is available.
Gilles Roudiere (groud)
Gordon MacPherson (RevoluPowered)
Guilherme Felipe de C. G. da Silva (guilhermefelipecgs)
Hakim Rouatbi (hakro)
Hanif Bin Ariffin (hbina)
Haoyu Qiu (timothyqiu)
Hein-Pieter van Braam-Stewart (hpvb)
@ -181,6 +184,7 @@ name is available.
Michał Iwańczuk (iwek7)
MichiRecRoom (LikeLakers2)
Micky (Mickeon)
Mikael Hermansson (mihe)
MinusKube
Morris "Tabor" Arroad (mortarroad)
mrezai
@ -193,6 +197,7 @@ name is available.
Nikita Lita (nikitalita)
Nils André-Chang (NilsIrl)
Noah Beard (TwistedTwigleg)
Nông Văn Tình (nongvantinh)
Nuno Donato (nunodonato)
ocean (they/them) (anvilfolk)
Omar El Sheikh (The-O-King)
@ -248,6 +253,7 @@ name is available.
thebestnom
Theo Hallenius (TheoXD)
Timo Schwarzer (timoschwarzer)
Timothé Bonhoure (ajreckof)
Timo (toger5)
Tomasz Chabora (KoBeWi)
trollodel

View File

@ -4,6 +4,206 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [4.0.4] - 2023-08-02
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-4) for details.
### Added
#### C#/.NET
- Add version defines to help users deal with breaking changes ([GH-78270](https://github.com/godotengine/godot/pull/78270)).
#### Documentation
- Document GI techniques ignoring VisualInstance3D and Camera3D layers ([GH-74688](https://github.com/godotengine/godot/pull/74688)).
- Document how to use the global animation library in GDScript ([GH-74894](https://github.com/godotengine/godot/pull/74894)).
- Add more info on the nature of NAN ([GH-75614](https://github.com/godotengine/godot/pull/75614)).
- Add Stretch Mode description to ProjectSettings.xml ([GH-76272](https://github.com/godotengine/godot/pull/76272)).
- Document seamless caveats on small textures in NoiseTexture2D and NoiseTexture3D ([GH-77017](https://github.com/godotengine/godot/pull/77017)).
- Document the database for `Input.get_joy_name()` and `Input.get_joy_guid()` ([GH-77768](https://github.com/godotengine/godot/pull/77768)).
- Document the InitialAction enum in RenderingDevice ([GH-77882](https://github.com/godotengine/godot/pull/77882)).
- Document ShaderInclude ([GH-78562](https://github.com/godotengine/godot/pull/78562)).
#### Editor
- Add an editor option to copy system info to clipboard ([GH-65902](https://github.com/godotengine/godot/pull/65902)).
#### Input
- Add support for DPAD Center key of Android TV remote controller ([GH-77115](https://github.com/godotengine/godot/pull/77115)).
### Changed
#### 2D
- Make tile atlas merge dialog use filter nearest on both sides ([GH-77385](https://github.com/godotengine/godot/pull/77385)).
- Don't create bones from empty scene ([GH-77473](https://github.com/godotengine/godot/pull/77473)).
- Don't disable `Material` and `PlaceholderMaterial` when `disable_3d=yes` ([GH-77654](https://github.com/godotengine/godot/pull/77654)).
- Draw materials in tile atlas view ([GH-77909](https://github.com/godotengine/godot/pull/77909)).
#### Animation
- Hide Animation Frames section when there are no animations ([GH-77221](https://github.com/godotengine/godot/pull/77221)).
- Improve `Skeleton3D::find_bone()` performance ([GH-77307](https://github.com/godotengine/godot/pull/77307)).
- Avoid mutating the same Skin multiple times ([GH-77505](https://github.com/godotengine/godot/pull/77505)).
#### C#/.NET
- Always decode `dotnet` output as UTF-8 ([GH-74065](https://github.com/godotengine/godot/pull/74065)).
- Link the right build property to REAL_T_IS_DOUBLE ([GH-77198](https://github.com/godotengine/godot/pull/77198)).
#### Editor
- Use nearest with mipmaps texture filter in SpriteFrames editor plugin ([GH-74341](https://github.com/godotengine/godot/pull/74341)).
- Make sure script cache is created after reimport ([GH-75798](https://github.com/godotengine/godot/pull/75798)).
- Make SpriteFrames editor toolbar a `FlowContainer` ([GH-77034](https://github.com/godotengine/godot/pull/77034)).
- Prevent selecting unselectable `EditorProperty` with RMB ([GH-77148](https://github.com/godotengine/godot/pull/77148)).
- Do not translate node name when assigned to an exported field ([GH-77217](https://github.com/godotengine/godot/pull/77217)).
- Allow up to INT32_MAX max size in Array/Dictionary editor ([GH-77225](https://github.com/godotengine/godot/pull/77225)).
- Avoid error spam on first opening of a not yet imported project ([GH-77276](https://github.com/godotengine/godot/pull/77276)).
- Ensure quotes are escaped when converting built-in scripts ([GH-77399](https://github.com/godotengine/godot/pull/77399)).
- Ignore the `project_settings_override` file when in editor ([GH-77459](https://github.com/godotengine/godot/pull/77459)).
#### GDScript
- Treat `BitField<Enum>` as `int` (not `Enum`) ([GH-77579](https://github.com/godotengine/godot/pull/77579)).
#### GUI
- Stop dragging when `Slider` changes editability ([GH-77242](https://github.com/godotengine/godot/pull/77242)).
- Use defined key mapping for closing popups and dialogs ([GH-77297](https://github.com/godotengine/godot/pull/77297)).
- TextServer: Prevent duplicate line breaks on virtual spaces when line width is significantly smaller than character width ([GH-77514](https://github.com/godotengine/godot/pull/77514)).
- Cancel tooltip when mouse leaves viewport ([GH-77933](https://github.com/godotengine/godot/pull/77933)).
- Preserve selection when focusing SpinBox ([GH-78092](https://github.com/godotengine/godot/pull/78092)).
#### Input
- Improve touchpad and mouse support for the Android editor ([GH-77498](https://github.com/godotengine/godot/pull/77498)).
- Skip error messages for buttons that don't exist ([GH-77748](https://github.com/godotengine/godot/pull/77748)).
#### Rendering
- Disable AMD switchable graphics on Windows with Vulkan to fix driver issue ([GH-73450](https://github.com/godotengine/godot/pull/73450)).
- Take 3D resolution scaling into account for mesh LOD ([GH-77294](https://github.com/godotengine/godot/pull/77294)).
#### Thirdparty
- brotli updated to version ed1995b6b.
- msdfgen updated to version 1.10.
- recast updated to version 1.6.0.
- tinyexr updated to version 1.0.5.
- wslay updated to version 0e7d106ff.
- zstd updated to version 1.5.5.
- CA root certificates updated to 2023-06-02 bundle from Mozilla.
### Fixed
#### 2D
- Fix crash when opening a TileSet with invalid tiles ([GH-78165](https://github.com/godotengine/godot/pull/78165)).
- Fix crash with failed compatibility tiles ([GH-78796](https://github.com/godotengine/godot/pull/78796)).
#### 3D
- Fix CSGPolygon3D in path mode disappearing at runtime ([GH-77118](https://github.com/godotengine/godot/pull/77118)).
#### Animation
- Fix type check in AnimationTrackKeyEdit for methods ([GH-74948](https://github.com/godotengine/godot/pull/74948)).
- Fix `AnimatedSprite3D` autoplay warning ([GH-77028](https://github.com/godotengine/godot/pull/77028)).
- Adjust BoneAttachment3D children/meshes during rest fixer ([GH-77123](https://github.com/godotengine/godot/pull/77123)).
- Fix for SkeletonIK3D interpolation and bone roll ([GH-77469](https://github.com/godotengine/godot/pull/77469)).
- Fix AnimationPlayer cumulative `speed_scale` ([GH-77500](https://github.com/godotengine/godot/pull/77500)).
- Fix adding bones with the same name after calling `Skeleton3D.clear_bones()` ([GH-77874](https://github.com/godotengine/godot/pull/77874)).
#### Audio
- Fix trim when importing WAV ([GH-75261](https://github.com/godotengine/godot/pull/75261)).
- Fix 2D audio in multiple viewports ([GH-76713](https://github.com/godotengine/godot/pull/76713)).
- Fix crash in AudioStream preview ([GH-77664](https://github.com/godotengine/godot/pull/77664)).
- Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone ([GH-77686](https://github.com/godotengine/godot/pull/77686)).
#### Buildsystem
- CI: Fix running the unit tests on windows ([GH-76887](https://github.com/godotengine/godot/pull/76887)).
- Linux: Fix udev fallback logic with `use_sowrap=no` ([GH-79111](https://github.com/godotengine/godot/pull/79111)).
#### C#/.NET
- Fix C# glue generation for enums with negative values ([GH-77018](https://github.com/godotengine/godot/pull/77018)).
- Fix `SendToScriptDebugger` crash ([GH-77377](https://github.com/godotengine/godot/pull/77377)).
#### Core
- Fix `StringName` comparison ([GH-77197](https://github.com/godotengine/godot/pull/77197)).
- Fix calling `TextureStorage::texture_3d_update()` could cause a crash ([GH-77266](https://github.com/godotengine/godot/pull/77266)).
#### Editor
- Fix theme of editor VCS dialogs ([GH-75983](https://github.com/godotengine/godot/pull/75983)).
- Fix calculation bug with `TextEdit::get_line_height()` ([GH-76605](https://github.com/godotengine/godot/pull/76605)).
- Fix Input Map key assignments missing after project conversion ([GH-77134](https://github.com/godotengine/godot/pull/77134)).
- Fix `Window` derived nodes being unselectable for `ViewportTexture` `NodePath` ([GH-77312](https://github.com/godotengine/godot/pull/77312)).
- Fix crash when using tile atlas merge with recreated alt tile ([GH-77382](https://github.com/godotengine/godot/pull/77382)).
- Fix filesystem cache split error ([GH-78324](https://github.com/godotengine/godot/pull/78324)).
- Fix saving size in `CreateDialog` ([GH-78403](https://github.com/godotengine/godot/pull/78403)).
- Shaders: Exclude incorrect completion options for `render_mode` in shaders ([GH-77086](https://github.com/godotengine/godot/pull/77086)).
#### GDScript
- Add missing `script_type` `nullptr` check ([GH-75943](https://github.com/godotengine/godot/pull/75943)).
- Fix warning ignoring for member variables ([GH-76203](https://github.com/godotengine/godot/pull/76203)).
- Fix `validate_call_arg()` for unresolved datatype ([GH-77091](https://github.com/godotengine/godot/pull/77091)).
- Fix extraction of chained `tr()` calls ([GH-77538](https://github.com/godotengine/godot/pull/77538)).
#### GUI
- Fix `Range`-derived nodes not redrawing after `set_value_no_signal` ([GH-70834](https://github.com/godotengine/godot/pull/70834)).
- Fix adding colors to swatches not updating in previous ColorPickers ([GH-76751](https://github.com/godotengine/godot/pull/76751)).
- Fix crash when changing node type from PopupMenu to ItemList ([GH-76854](https://github.com/godotengine/godot/pull/76854)).
- Fix `ItemList` item text positions in RTL mode ([GH-77166](https://github.com/godotengine/godot/pull/77166)).
- Fix crash when selecting lines in text edit ([GH-77667](https://github.com/godotengine/godot/pull/77667)).
- Fix SVG font rendering after ThorVG update ([GH-77942](https://github.com/godotengine/godot/pull/77942)).
- Fix disabled slider highlighting ([GH-78776](https://github.com/godotengine/godot/pull/78776)).
#### Input
- Fix errors that appear while reordering input map entries ([GH-77009](https://github.com/godotengine/godot/pull/77009)).
- Fix spatial viewport multitouch detection support ([GH-78083](https://github.com/godotengine/godot/pull/78083)).
#### Navigation
- Fix agent avoidance position not updated when entering SceneTree ([GH-77110](https://github.com/godotengine/godot/pull/77110)).
#### Networking
- Fix HTTPClient `_request` using wrong size ([GH-75867](https://github.com/godotengine/godot/pull/75867)).
- ENet: Better handle truncated socket messages ([GH-79699](https://github.com/godotengine/godot/pull/79699)).
#### Particles
- Correctly reset particle size and rotation in ParticlesProcessMaterial ([GH-78021](https://github.com/godotengine/godot/pull/78021)).
- Avoid error spam when (un)pausing GPUParticles out of tree ([GH-78143](https://github.com/godotengine/godot/pull/78143)).
#### Physics
- Fix width and center position of `CapsuleShape2D::get_rect` ([GH-77065](https://github.com/godotengine/godot/pull/77065)).
#### Porting
- Android: Set pending intent flag to stop insta-crash ([GH-78175](https://github.com/godotengine/godot/pull/78175)).
- Windows: Fix for Win+M crashing the editor ([GH-78235](https://github.com/godotengine/godot/pull/78235)).
#### Rendering
- Fix typo in FinalAction `switch` statement in RenderingDevice ([GH-75945](https://github.com/godotengine/godot/pull/75945)).
- Fix modulation propagation for Y-sorted CanvasItems ([GH-77079](https://github.com/godotengine/godot/pull/77079)).
- Fix LightmapGI dynamic object lighting ([GH-77089](https://github.com/godotengine/godot/pull/77089)).
- Fix calculation of skinned AABB for unused bones ([GH-77265](https://github.com/godotengine/godot/pull/77265)).
- Fix uninitialized Y-sort modulate for CanvasItems ([GH-78134](https://github.com/godotengine/godot/pull/78134)).
## [4.0.3] - 2023-05-19
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-4-0-3) for details.
@ -3106,6 +3306,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
[4.0.4]: https://github.com/godotengine/godot/compare/4.0.3-stable...4.0.4-stable
[4.0.3]: https://github.com/godotengine/godot/compare/4.0.2-stable...4.0.3-stable
[4.0.2]: https://github.com/godotengine/godot/compare/4.0.1-stable...4.0.2-stable
[4.0.1]: https://github.com/godotengine/godot/compare/4.0-stable...4.0.1-stable

View File

@ -8,87 +8,10 @@
- [Contributing to Godot's translation](#contributing-to-godots-translation)
- [Communicating with developers](#communicating-with-developers)
**Please read the first section before reporting a bug!**
## Reporting bugs
The golden rule is to **always open *one* issue for *one* bug**. If you notice
several bugs and want to report them, make sure to create one new issue for
each of them.
If you're reporting a new bug, you'll make our life simpler (and the
fix will come sooner) by following these guidelines:
### Search first in the existing database
Issues are often reported several times by various users. It's good practice to
**search first in the [issue tracker](https://github.com/godotengine/godot/issues)
before reporting your issue**. If you don't find a relevant match or if you're
unsure, don't hesitate to **open a new issue**. The bugsquad will handle it
from there if it's a duplicate.
### Specify the platform
Godot runs on a large variety of platforms and operating systems and devices.
**In your bug reports, please always specify:**
- Operating system and version (e.g. Windows 10, macOS 10.15, Ubuntu 19.10)
- Godot version (e.g. 3.2, 3.1.2, or the Git commit hash if you're using a development branch)
For bugs that are likely OS-specific and/or graphics-related, please also specify:
- Device (CPU model including architecture, e.g. x86_64, arm64, etc.)
- GPU model (and the driver version in use if you know it)
**Bug reports not including the required information may be closed at the
maintainers' discretion.** If in doubt, always include all the requested
information; it's better to include too much information than not enough
information.
### Specify steps to reproduce
Many bugs can't be reproduced unless specific steps are taken. Please **specify
the exact steps** that must be taken to reproduce the condition, and try to
keep them as minimal as possible. If you're describing a procedure to follow
in the editor, don't hesitate to include screenshots.
Making your bug report easy to reproduce will make it easier for contributors
to fix the bug.
### Provide a simple example project
Sometimes, unexpected behavior can happen in your project. In such case,
understand that:
- What happens to you may not happen to other users.
- We can't take the time to look at your project, understand how it is set up
and then figure out why it's failing.
- On the contributors' end, recreating a test project from scratch takes valuable
time that can be saved by uploading a *minimal* project.
To speed up our work, **please upload a minimal project** that isolates
and reproduces the issue. This is always the **best way for us to fix it**.
We recommend attaching a ZIP file with the minimal project directly to the bug report,
by drag and dropping the file in the GitHub edition field. This ensures the file
can remain available for a long period of time. Only use third-party file hosts
if your ZIP file isn't accepted by GitHub because it's too large.
We recommend always attaching a minimal reproduction project, even if the issue
may seem simple to reproduce manually.
**Note for C# users:** If your issue is *not* .NET-specific, please upload a
minimal reproduction project written in GDScript.
This will make it easier for contributors to reproduce the issue
locally as not everyone has a .NET setup available.
**If you've been asked by a maintainer to upload a minimal reproduction project,
you *must* do so within 7 days.** Otherwise, your bug report will be closed as
it'll be considered too difficult to diagnose.
Now that you've read the guidelines, click the link below to create a
bug report:
- **[Report a bug](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml)**
Report bugs [here](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml).
Please follow the instructions in the template when you do.
## Proposing features or improvements

View File

@ -390,7 +390,7 @@ License: BSD-2-clause
Files: ./thirdparty/msdfgen/
Comment: Multi-channel signed distance field generator
Copyright: 2016, Viktor Chlumsky
Copyright: 2016-2022, Viktor Chlumsky
License: MIT
Files: ./thirdparty/oidn/
@ -483,7 +483,7 @@ License: Zlib
Files: ./thirdparty/zstd/
Comment: Zstandard
Copyright: 2016-2021, Facebook, Inc.
Copyright: Meta Platforms, Inc. and affiliates.
License: BSD-3-clause

185
DONORS.md
View File

@ -23,20 +23,17 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver sponsors
Affray Interactive <https://scp.games/pandemic>
Delton Ding
Playful Studios <https://playfulstudios.com>
Robot Gentleman <http://robotgentleman.com>
Striked <https://striked.gg>
## Bronze sponsors
ASIFA-Hollywood <https://www.asifa-hollywood.org>
Basically Games
Bippinbits <https://bippinbits.com>
Brandon Lamb
Bri
Garry Newman
Gordon MacPherson
Hunter Dickson
Isaiah smith
Jb Evain
Keepsake Games <https://keepsake.games>
@ -45,7 +42,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Kyle Szklenski
Matthew Campbell
Maxim Karsten
Moonwards <https://www.moonwards.com>
Nik Rudenko
TrampolineTales <https://trampolinetales.com>
@ -56,17 +52,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Andres Hernandez
Andrew Dunai
anti666
Christian Baune
Christopher Montesano
Christopher Shifflett
Christoph Woinke
Daniel Edwards
Darrin Massena
David Mydlarz
Digital Grows
Edward Flick
Florian Neumann
GameDev.net
Hein-Pieter van Braam
Jonah Stich
Justin Arnold
@ -74,19 +65,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Justo Delgado Baudí
Kossi Selom Banybah
Lloyd Bond
Marcel Kräml
Marek Belski
Markus Ort
Matthieu Huvé
Michael
Mike King
Nassor Paulino da Silva
nate-wilkins
Nathan Warden
Neal Gompa (Conan Kudo)
Ninja_5tyl3
Nick Macholl
Patrick Horn
Patrick Schmidt
Rami
Ronnie Cheng
Ryan Heath
@ -94,18 +81,15 @@ generous deed immortalized in the next stable release of Godot Engine.
ShikadiGum
Slobodan Milnovic
Stephan Lanfermann
Steve
Tim Yuen
Violin Iliev
Vladimír Chvátil
## Gold donors
Acheron
Adam Brown
albinaask
Allen Pestaluky
Arisaka Mayuki
Asher Glick
Barugon
Benito
@ -115,39 +99,30 @@ generous deed immortalized in the next stable release of Godot Engine.
David Gehrig
David Hubber
David Snopek
Dima Paloskin
Ed Morley
Frank Kurka
Guilherme de Oliveira
Guy Kay Jay
Javier Roman
Joan Fons
Jonathan Wright
Jon Woodward
Karl Werf
Klavdij Voncina
Maciej Pendolski
Manuele Finocchiaro
Markus Wiesner
Mateo Navarrete
Matthew Hillier
Officine Pixel S.n.c.
Pedro Silva
Retro Village
Rob Messick
Roland Fredenhagen
Ronan Zeegers
Sarksus
Sean
Sergey
Sofox
Taylor Ritenour
Stephan Kessler
Tom Langwaldt
tukon
Vagabond Arcade
Victor
Xeno Coliseum
23BLUENINJA
Acheron
AdamRatai
Alexander Erlemann
Alexandre VALIN
@ -156,12 +131,10 @@ generous deed immortalized in the next stable release of Godot Engine.
Algebrute
alice gambrell
Alo Mis
Andrew Cunningham
Andrew Farr
Andriy
Antanas Paskauskas
Antoni Batchelli
Ari
Arisaka Mayuki
Arthur S. Muszynski
BasicIncomePlz
Brandon Hawkinson
@ -172,26 +145,23 @@ generous deed immortalized in the next stable release of Godot Engine.
Charlie Whitfield
Chris Petrich
Chris Serino
Collin Rapp
Craig Ostrin
Craig Scarborough
Craig Smith
CT
CzechBlueBear
CzłowiekImadło
Daniel Eichler
Daniel Grice
Daniel Reed
Daniel Tebbutt
Darrian Little
Dennis Belfrage
Donn Eddy
Emily A. Bellows
Eric Brand
Eugenio Hugo Salgüero Jáñez
Felix Winterhalter
flesk
Florencio Olsen
foxydevloper
Fransiska
Furroy
Gabrielius Vaiškūnas
Gary Hulst
Geoffroy Warin
@ -202,26 +172,18 @@ generous deed immortalized in the next stable release of Godot Engine.
Guillaume Pham Ngoc
Harry Tumber
Harvey Fong
Heath Hayes
Horváth-Lázár Péter
Hu Hund
illuxxium
Jaap Marsman
Jamal Bencharki
James Couzens
Jared White
Jason Yundt
Jennifer Wilcox
Jesús Chicharro
Jihun Moon
Joel Fivat
Johnathan Kupferer
John Stinson
Josef Stumpfegger
Joshie Sparks
Joshua Flores
Joshua Lesperance
Juan Velandia
Judd
Julian Todd
JUSTIN CARROLL
@ -230,15 +192,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Khora
kickmaniac
kinfox
Laszlo Kiss
leetNightshade
Leo Fidel R Liban
Liam Smyth
LoparPanda
Luca Junge
Lucaaa
Luca Vazzano
LyaaaaaGames
MadScientistCarl
Marcus Dobler
Marcus Richter
Mark Barrett
@ -246,63 +205,58 @@ generous deed immortalized in the next stable release of Godot Engine.
Martin Gulliksson
Martin Kotz
Martin Soucek
matt
Matt Greene
Matthew Dana
Max Kryschi
Matthieu Huvé
Michael Dürwald
Michael Policastro
MikadoSC
n00sh
nate etan
Nicola Cocchiaro
Nicolás Monner Sans
Nikita Blizniuk
Nikita Rotskov
Nikola Whallon
Oliver Dick
Otis Clark
Patrick Wuttke
Patryk Pluta (vrid)
Paul Hocker
Paul Von Zimmerman
Pete Goodwin
Petr Malac
Petrus Prinsloo
Philip Woods
RAMupgrade
Rebekah Farr
red1939
Reilt
Rene Tailleur
Rhodochrone
Rickard Hermanson
Rob
Rob McInroy
RodZilla
Romeo Disca
Ronan Zeegers
Ronnie Ashlock
Ronny Mühle
Russ
Ryan Breaker
Ryan Miller
Ryan Scott
"Sage Automatic Systems, LLC"
Samuel Hummerstone
Samuel Judd
schroedinger's possum
Shishir Tandale
Sing Chun Lee
SKison
Song Junwoo
spacechase0
SpicyCactuar
Stephan Hennion
Steven Landow
Stoned Xander
sus
Talii
Teslatech
Thomas Bjarnelöf
Thomas Kurz
Tim Nedvyga
Tobias Bocanegra
Tobias Raggl
Tom Glenn
Torbulous
toto bibi
Troy Kinsella
@ -319,12 +273,11 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver donors
Aaron Adriano
Aaron Mayfield
Aaron Oldenburg
Adam Brunnmeier
Adam Carr
Adam Long
Adam McCurdy
Adam N Webber
Adam Smeltzer
Adinimys
@ -333,17 +286,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Adrien de Pierres
Agustinus Arya
Aidan O'Flannagain
Aiguo Wang
ajaxcc
Aki Mimoto
Akio Yamazaki
Alan Beauchamp
Albert Gyulgazyan
Alberto Salazar Muñoz
Alberto Vilches
Alder Stefano
Alejandro Saucedo
AleMax
Alessandro Senese
Alex Clavelle
Alex de la Mare
alex raeside
@ -354,6 +305,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Andrew
Andrew Groot
andrew james morris
Andy Baird
Ano Nim
Anthony Avina
Anton Bouwer
@ -361,8 +313,8 @@ generous deed immortalized in the next stable release of Godot Engine.
Arda Erol
Arthur Brainville
Arturo Rosales
Ash K
Aubrey Falconer
Auré Franky
aurelien condomines
Austin Miller
Azar Gurbanov
@ -372,11 +324,9 @@ generous deed immortalized in the next stable release of Godot Engine.
Benedikt
Ben Vercammen
Ben Visness
Bernhard Werner
Bill Thibault
bitbrain
Bjarne Voigtländer
Black Block
Brady Goldsworthy
Bram
Brian
@ -388,7 +338,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Cameron Meyer
Carlos Rios
Carl van der Geest
Casey
Cesar Ruiz
Chad Steadman
Checkpoint Charlie
@ -397,13 +346,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Chris Jagusch
Chris Langford
Chris Ridenour
Christer Stenbrenden
Christian Alexander Bjørklund Bøhler
Christian Kaltenecker
Christian Mauduit
Christian Scholz
Christian Winter
Christoffer Dahlblom
Christoph Czurda
Christophe Gagnier
Ciyvius
Codex404
Cody Parker
Conall O
@ -413,11 +363,12 @@ generous deed immortalized in the next stable release of Godot Engine.
CrispyPin
cynwav
Dakota Watkins
Daniel H. Bahr
Daniel Hoffmann
Danielle
Daniel Ramos
Dare Looks
Daren Scot Wilson
Dave Jansen
Davesnothere
David Baker
David Bôle
@ -428,36 +379,33 @@ generous deed immortalized in the next stable release of Godot Engine.
Dimitri Roche
Dominik Wetzel
Donovan Hutcheon
Douglas Plumley
Doug Walker
Dragontrapper
dragoon
Dr Ewan Murray
Ducky
Duobix
Duodecimal
edisonlee55
Eduardo Teixeira
Edward Herbert
Edward Swartz
Egon Elbre
Elias Nykrem
Elgenzay
Elijah Anderson
Emerson MX
Ends
Ephemeral
Eric Stokes
Eric Walkingshaw
Eric Williams
Erkki Seppälä
Ewan Holmes
Faisal Alkubaisi
Fault Boy
fby
Felix Adam
Fer DC
Filip Lundby
Frank
fumangy
Frank Kurka
Frying☆Pan
Game Endeavor
Garrett Steffen
Gary Thomas
@ -473,23 +421,20 @@ generous deed immortalized in the next stable release of Godot Engine.
Guo Hongci
Hans Jorgensen
Haplo
Helge Maus
Helianthus Games
Heribert Hirth
Ian Richard Kunert
Ian Williams
Interstice
itsybitesyspider
iveks
Jacob D
Jaguar
Jake D
Jako Danar
James
James A F Manley
James Duran
James Gary
James Thomas
Jamie Massey
Janis Skuja
Jan Vetulani
JARKKO PARVIAINEN
Jason Evans
Jason Uechi
@ -498,8 +443,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jennifer Graves
Jesse Dubay
João Pedro Braz
Joe Hurdle
Joe Klemmer
John Barlex
John Bruce
John Palgut
@ -514,67 +457,69 @@ generous deed immortalized in the next stable release of Godot Engine.
Jonathan G
Jon Sully
Jordy Goodridge
Jose Francisco 'Yiro' Vera Girona
Joseph Catrambone
Josh Segall
Josh Taylor
Joshua Heidrich
Jozef Krcho
Juanfran
Juan Maggi
Juan Uys
Jueast
Julian le Roux
Julian Murgia
Julien Kaspar
Justin Hamilton
Justin Spedding
Justin Zander
J Vetulani
Kalydi Balázs
Katsuomi Kobayashi
Keedong Park
Keegan Scott
Keinan Powers
Keith Bradner
Kenji Kawabata
Ken Minardo
Kent Jofur
Kerotasma
Ketafuki
killaQueen
kimbring2
kindzadza
Kodera Software
Kostas Mouratidis
Krishna Nadoor
KsyTek Games
kycho
Kyle Burnett
Kyle Jacobs
Lasse le Dous
Laurent CHEA
Laurent Dethoor
Laxman Pradhan
Lech Rozanski
Leland Vakarian
Leonardo Baumle
Levi Berciu
Levi Lindsey
LF
Linus Lind Lundgren
Logan Apple
Lucas Coelho
Logan Bratton
Lonnie Cox
Ludovic DELVAL
Luigi Renna
Luis Ernesto Del Toro Peña
Luis Gaemperle
Luis Morao
Lukas Komischke
Luke Diasio
Luke Kasz
Major Haul
Malcolm
Mara Huldra
Marcell Simon
Marcos Heitor Carvalho
Markie Music
Mark Tyler
Markus Martin
Markus Michael Egger
Markus Strompen
Martin Fitzke
Martin Holas
Martin Linklater
Martin Liška
Martin Trbola
Martin Zabinski
@ -586,7 +531,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Maxime Blade
Maxwell
McStuffings
Melchor
Melissa Mears
Metal Demon 2000
Michael
@ -595,37 +539,29 @@ generous deed immortalized in the next stable release of Godot Engine.
Mikael Nordenberg
Mikail Freitas
Mikayla
Mike Birkhead
Mike Copley
Mike McRoberts
Miss
Mitchell J. Wagner
MJacred
ModularMind
Molinghu
Molly Jameson
MoltenGears
Moowool
Moritz Weissenberger
moulefrite
MrAZIE
Mrjemandem
Nathaniel
neguse
neighty
Neil Blakey-Milner
Neil Wang
Neofytos Chimonas
Nerdforge
Nerdyninja
Nicholas La Roux
Nick Eldrenkamp
Nick Macholl
Nico Greve
Nicolas Rosset
Nicolò Brigadoi Calamari
Nils Nordmark
Nobbele
Noel Billig
Noesis
obscuresteel
@ -639,23 +575,23 @@ generous deed immortalized in the next stable release of Godot Engine.
Patrick Indermühle
Patrickm
Patrick Nafarrete
Paul Black
Paul Gieske
Paul Hankins
Paul Mozet
Paweł Kowal
Paweł Łyczkowski
Pedro Henrique Martins Garcia
Peter Höglund
Philip Ludington (MrPhil)
Phoenix Jauregui
Pierre Caye
Pille
Pixel Archipel
pj
Point08
Portponky
Preethi Vaidyanathan
PsycHead
PsyCrab
Puntigames
pwab
Quincy Quincy
@ -665,9 +601,11 @@ generous deed immortalized in the next stable release of Godot Engine.
Ragnar Pettersson
Rainer Amler
Rammeow
Rebecca H
Relintai
Remi Rampin
Reneator
Richard Hayes
Richard Ivánek
Riley
Robin Ward
@ -680,21 +618,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Roland Rząsa
Roman Papush
Roy Scayged
Rudi
Russ
Russell Matney
Ryan Groom
Ryan Mueller
Rykk
Sacha Waked (Shaidak)
Sammy Fischer
Sangeeth Pavithran
Sasha Schwartz
Sean Dee
Sebastian Michailidis
Sekuta
SeongWan Kim
Sessamekesh
SeungJong k
Shaidak
Shane Lillie
Shane Spoor
Shaun Kohanowski
simdee
Simon Jonas Larsen
Simon Schoenenberger
@ -705,7 +643,6 @@ generous deed immortalized in the next stable release of Godot Engine.
SleepDepJoel1
smbe19
smo1704
Soheib El-Harrache
Solene Waked
Sophie Winter
Squidgy
@ -718,7 +655,6 @@ generous deed immortalized in the next stable release of Godot Engine.
SxP
tadashi endo
Tarch
Techwizz
Terry
TheVoiceInMyHead
Thibaut DECROMBECQUE
@ -732,7 +668,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Tim Erskine
Tim Gleason
Tim Klein
Tim Nedvyga
Timothy B. MacDonald
Tim Raveling
Tim Riley
@ -740,7 +675,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Tom Coxon
Tom Webster
Torsten Crass
travis f w
Trent Skinner
tril zerobyte
Tryggve Sollid
@ -757,22 +691,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Vincent Barkmann
Vincent Cloutier
Vincent Foulon
Vitaliy Sapronenko
Vladimir Savin
Vulinux
Wapiti .
Wiley Thompson
William Bodin
William Edwards
William F Siqueira
Wolfram
Woonki Moon
Wyatt Goodin
Xananax
Yan Shi
yin
Zekim
Zher Huei Lee
Zoee Silcock
Zyphery
ケルベロス
貴宏 小松
郝晨煜

View File

@ -640,7 +640,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards, bool p_ignore_override) {
Error err = _setup(p_path, p_main_pack, p_upwards, p_ignore_override);
if (err == OK) {
if (err == OK && !p_ignore_override) {
String custom_settings = GLOBAL_GET("application/config/project_settings_override");
if (!custom_settings.is_empty()) {
_load_settings_text(custom_settings);

View File

@ -1354,8 +1354,9 @@ void Input::parse_mapping(String p_mapping) {
String output = entry[idx].get_slice(":", 0).replace(" ", "");
String input = entry[idx].get_slice(":", 1).replace(" ", "");
ERR_CONTINUE_MSG(output.length() < 1 || input.length() < 2,
vformat("Invalid device mapping entry \"%s\" in mapping:\n%s", entry[idx], p_mapping));
if (output.length() < 1 || input.length() < 2) {
continue;
}
if (output == "platform" || output == "hint") {
continue;

View File

@ -63,8 +63,9 @@ Error HTTPClient::_request_raw(Method p_method, const String &p_url, const Vecto
}
Error HTTPClient::_request(Method p_method, const String &p_url, const Vector<String> &p_headers, const String &p_body) {
int size = p_body.length();
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)p_body.utf8().get_data() : nullptr, size);
CharString body_utf8 = p_body.utf8();
int size = body_utf8.length();
return request(p_method, p_url, p_headers, size > 0 ? (const uint8_t *)body_utf8.get_data() : nullptr, size);
}
String HTTPClient::query_string_from_dict(const Dictionary &p_dict) {

View File

@ -397,7 +397,7 @@ void Basis::rotate_to_align(Vector3 p_start_direction, Vector3 p_end_direction)
real_t dot = p_start_direction.dot(p_end_direction);
dot = CLAMP(dot, -1.0f, 1.0f);
const real_t angle_rads = Math::acos(dot);
set_axis_angle(axis, angle_rads);
*this = Basis(axis, angle_rads) * (*this);
}
}

View File

@ -117,6 +117,15 @@ public:
_FORCE_INLINE_ bool operator<(const StringName &p_name) const {
return _data < p_name._data;
}
_FORCE_INLINE_ bool operator<=(const StringName &p_name) const {
return _data <= p_name._data;
}
_FORCE_INLINE_ bool operator>(const StringName &p_name) const {
return _data > p_name._data;
}
_FORCE_INLINE_ bool operator>=(const StringName &p_name) const {
return _data >= p_name._data;
}
_FORCE_INLINE_ bool operator==(const StringName &p_name) const {
// the real magic of all this mess happens here.
// this is why path comparisons are very fast

View File

@ -829,7 +829,7 @@
Converts one or more arguments of any type to string in the best way possible and prints them to the console.
The following BBCode tags are supported: [code]b[/code], [code]i[/code], [code]u[/code], [code]s[/code], [code]indent[/code], [code]code[/code], [code]url[/code], [code]center[/code], [code]right[/code], [code]color[/code], [code]bgcolor[/code], [code]fgcolor[/code].
Color tags only support the following named colors: [code]black[/code], [code]red[/code], [code]green[/code], [code]yellow[/code], [code]blue[/code], [code]magenta[/code], [code]pink[/code], [code]purple[/code], [code]cyan[/code], [code]white[/code], [code]orange[/code], [code]gray[/code]. Hexadecimal color codes are not supported.
URL tags only support URLs wrapped by an URL tag, not URLs with a different title.
URL tags only support URLs wrapped by a URL tag, not URLs with a different title.
When printing to standard output, the supported subset of BBCode is converted to ANSI escape codes for the terminal emulator to display. Support for ANSI escape codes varies across terminal emulators, especially for italic and strikethrough. In standard output, [code]code[/code] is represented with faint text but without any font change. Unsupported tags are left as-is in standard output.
[codeblocks]
[gdscript]

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AABB" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Axis-Aligned Bounding Box.
A 3D axis-aligned bounding box.
</brief_description>
<description>
[AABB] consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AESContext" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Interface to low level AES encryption features.
Provides access to AES encryption/decryption of raw data.
</brief_description>
<description>
This class provides access to AES encryption/decryption of raw data. Both AES-ECB and AES-CBC mode are supported.
This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported.
[codeblocks]
[gdscript]
extends Node

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AcceptDialog" inherits="Window" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base dialog for user notification.
A base dialog used for user notification.
</brief_description>
<description>
This dialog is useful for small notifications to the user about an event. It can only be accepted or closed, with the same result.
The default use of [AcceptDialog] is to allow it to only be accepted or closed, with the same result. However, the [signal confirmed] and [signal canceled] signals allow to make the two actions different, and the [method add_button] method allows to add custom buttons and actions.
</description>
<tutorials>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Animation" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Contains data used to animate everything in the engine.
Holds data that can be used to animate anything in the engine.
</brief_description>
<description>
An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
This resource holds data that can be used to animate anything in the engine. Animations are divided into tracks and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
[codeblocks]
[gdscript]
# This creates an animation that makes the node "Enemy" move to the right by

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNode" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base resource for [AnimationTree] nodes.
Base class for [AnimationTree] nodes. Not related to scene nodes.
</brief_description>
<description>
Base resource for [AnimationTree] nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="_get_caption" qualifiers="virtual const">

View File

@ -7,6 +7,6 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -11,7 +11,7 @@
- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
</class>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeAnimation" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Input animation to use in an [AnimationNodeBlendTree].
An input animation for an [AnimationNodeBlendTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
A resource to add to an [AnimationNodeBlendTree]. Only has one output port using the [member animation] property. Used as an input for [AnimationNode]s that blend animations together.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -11,6 +11,6 @@
- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Blends linearly between two of any number of [AnimationNode] of any type placed on a virtual axis.
A set of [AnimationRootNode]s placed on a virtual axis, crossfading between the two adjacent ones. Used by [AnimationTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree].
This is a virtual axis on which you can add any type of [AnimationNode] using [method add_blend_point].
Outputs the linear blend of the two [AnimationNode]s closest to the node's current value.
You can set the extents of the axis using the [member min_space] and [member max_space].
A resource used by [AnimationNodeBlendTree].
[AnimationNodeBlendSpace1D] represents a virtual axis on which any type of [AnimationRootNode]s can be added using [method add_blend_point]. Outputs the linear blend of the two [AnimationRootNode]s adjacent to the current value.
You can set the extents of the axis with [member min_space] and [member max_space].
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_blend_point">

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Blends linearly between three [AnimationNode] of any type placed in a 2D space.
A set of [AnimationRootNode]s placed on 2D coordinates, crossfading between the three adjacent ones. Used by [AnimationTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree].
This node allows you to blend linearly between three animations using a [Vector2] weight.
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
A resource used by [AnimationNodeBlendTree].
[AnimationNodeBlendSpace1D] represents a virtual 2D space on which [AnimationRootNode]s are placed. Outputs the linear blend of the three adjacent animations using a [Vector2] weight. Adjacent in this context means the three [AnimationRootNode]s making up the triangle that contains the current value.
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to triangulate the blend space by hand.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
[AnimationTree] node resource that contains many blend type nodes.
A sub-tree of blend type [AnimationNode]s used for complex animations. Used by [AnimationTree].
</brief_description>
<description>
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used roots.
This node may contain a sub-tree of any other blend type nodes, such as [AnimationNodeTransition], [AnimationNodeBlend2], [AnimationNodeBlend3], [AnimationNodeOneShot], etc. This is one of the most commonly used animation node roots.
An [AnimationNodeOutput] node named [code]output[/code] is created by default.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeOneShot" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Plays an animation once in [AnimationNodeBlendTree].
Plays an animation once in an [AnimationNodeBlendTree].
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree]. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
@ -25,10 +25,10 @@
[/gdscript]
[csharp]
// Play child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE);
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
// Abort child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT);
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
// Get current state (read-only).
animationTree.Get("parameters/OneShot/active");
@ -36,7 +36,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<members>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeOutput" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Generic output node to be added to [AnimationNodeBlendTree].
The animation output node of an [AnimationNodeBlendTree].
</brief_description>
<description>
A node created automatically in an [AnimationNodeBlendTree] that outputs the final animation.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
State machine for control of animations.
A state machine with multiple [AnimationRootNode]s, used by [AnimationTree].
</brief_description>
<description>
Contains multiple nodes representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the [AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to control it programmatically.
Contains multiple [AnimationRootNode]s representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the [AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to control it programmatically.
[b]Example:[/b]
[codeblocks]
[gdscript]
@ -18,7 +18,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachinePlayback" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Playback control for [AnimationNodeStateMachine].
Provides playback control for an [AnimationNodeStateMachine].
</brief_description>
<description>
Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code].
@ -12,13 +12,13 @@
state_machine.travel("some_state")
[/gdscript]
[csharp]
var stateMachine = GetNode&lt;AnimationTree&gt;("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
var stateMachine = GetNode&lt;AnimationTree&gt;("AnimationTree").Get("parameters/playback").As&lt;AnimationNodeStateMachinePlayback&gt;();
stateMachine.Travel("some_state");
[/csharp]
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_current_length" qualifiers="const">

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeStateMachineTransition" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A resource to connect each node to make a path for [AnimationNodeStateMachine].
A transition within an [AnimationNodeStateMachine] connecting two [AnimationRootNode]s.
</brief_description>
<description>
The path generated when using [method AnimationNodeStateMachinePlayback.travel] is limited to the nodes connected by [AnimationNodeStateMachineTransition].
You can set the timing and conditions of the transition in detail.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<members>
<member name="advance_condition" type="StringName" setter="set_advance_condition" getter="get_advance_condition" default="&amp;&quot;&quot;">

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeSync" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
The base class for [AnimationNode] which has more than two input ports and needs to synchronize them.
Base class for [AnimationNode]s with more than two input ports that must be synchronized.
</brief_description>
<description>
An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an [AnimationTree].
</description>
<tutorials>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false">

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTimeScale" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A time-scaling animation node to be used with [AnimationTree].
A time-scaling animation node used in [AnimationTree].
</brief_description>
<description>
Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
Allows to scale the speed of the animation (or reverse it) in any children [AnimationNode]s. Setting it to [code]0.0[/code] will pause the animation.
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
</tutorials>
</class>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTimeSeek" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A time-seeking animation node to be used with [AnimationTree].
A time-seeking animation node used in [AnimationTree].
</brief_description>
<description>
This node can be used to cause a seek command to happen to any sub-children of the animation graph. Use this node type to play an [Animation] from the start or a certain playback position inside the [AnimationNodeBlendTree].
@ -28,6 +28,6 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNodeTransition" inherits="AnimationNodeSync" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A generic animation transition node for [AnimationTree].
A transition within an [AnimationTree] connecting two [AnimationNode]s.
</brief_description>
<description>
Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
@ -37,7 +37,7 @@
[/codeblocks]
</description>
<tutorials>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationPlayer" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Player of [Animation] resources.
A node used for animation playback.
</brief_description>
<description>
An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
An animation player is used for general-purpose playback of animations. It contains a dictionary of [AnimationLibrary] resources and custom blend times between animation transitions.
Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example [code]"movement/run"[/code]. If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library.
[AnimationPlayer] is more suited than [Tween] for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an [AnimationPlayer] node thanks to the animation tools provided by the editor. That particular example can also be implemented with a [Tween], but it requires doing everything by code.
Updating the target properties of animations occurs at process time.
[AnimationPlayer] is better-suited than [Tween] for more complex animations, for example ones with non-trivial timings. It can also be used over [Tween] if the animation track editor is more convenient than doing it in code.
Updating the target properties of animations occurs at the process frame.
</description>
<tutorials>
<link title="2D Sprite animation">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
@ -94,6 +94,7 @@
<param index="0" name="name" type="StringName" />
<description>
Returns the first [AnimationLibrary] with key [param name] or [code]null[/code] if not found.
To get the [AnimationPlayer]'s global animation library, use [code]get_animation_library("")[/code].
</description>
</method>
<method name="get_animation_library_list" qualifiers="const">

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationRootNode" inherits="AnimationNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
The [AnimationNode] which can be set as the root of an [AnimationTree].
Base class for [AnimationNode]s that hold one or multiple composite animations. Usually used for [member AnimationTree.tree_root].
</brief_description>
<description>
[AnimationRootNode] is a base class for [AnimationNode]s that hold a complete animation. A complete animation refers to the output of an [AnimationNodeOutput] in an [AnimationNodeBlendTree] or the output of another [AnimationRootNode]. Used for [member AnimationTree.tree_root] or in other [AnimationRootNode]s.
</description>
<tutorials>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
</class>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationTree" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A node to be used for advanced animation transitions in an [AnimationPlayer].
A node used for advanced animation transitions in an [AnimationPlayer].
</brief_description>
<description>
A node to be used for advanced animation transitions in an [AnimationPlayer].
A node used for advanced animation transitions in an [AnimationPlayer].
[b]Note:[/b] When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
</description>
<tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Array" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A generic array datatype.
A built-in data structure that holds a sequence of elements.
</brief_description>
<description>
A generic array that can contain several elements of any type, accessible by a numerical index starting at 0. Negative indices can be used to count from the back, like in Python (-1 is the last element, -2 is the second to last, etc.).
An array data structure that can contain a sequence of elements of any 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.).
[b]Example:[/b]
[codeblocks]
[gdscript]
@ -38,7 +38,6 @@
GD.Print(array1 + array2); // Prints [One, 2, 3, Four]
[/csharp]
[/codeblocks]
[b]Note:[/b] Concatenating with the [code]+=[/code] operator will create a new array, which has a cost. If you want to append another array to an existing array, [method append_array] is more efficient.
[b]Note:[/b] Arrays are always passed by reference. To get a copy of an array that can be modified independently of the original array, use [method duplicate].
[b]Note:[/b] Erasing elements while iterating over arrays is [b]not[/b] supported and will result in unpredictable behavior.
</description>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AspectRatioContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Container that preserves its child controls' aspect ratio.
A container that preserves the proportions of its child controls.
</brief_description>
<description>
Arranges child controls in a way to preserve their aspect ratio automatically whenever the container is resized. Solves the problem where the container size is dynamic and the contents' size needs to adjust accordingly without losing proportions.
A container type that arranges its child controls in a way that preserves their proportions automatically when the container is resized. Useful when a container has a dynamic size and the child nodes must adjust their sizes accordingly without losing their aspect ratios.
</description>
<tutorials>
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<members>
<member name="alignment_horizontal" type="int" setter="set_alignment_horizontal" getter="get_alignment_horizontal" enum="AspectRatioContainer.AlignmentMode" default="1">

View File

@ -24,7 +24,7 @@
<param index="3" name="pitch_scale" type="float" default="1.0" />
<description>
Play an [AudioStream] at a given offset, volume and pitch scale. Playback starts immediately.
The return value is an unique integer ID that is associated to this playback stream and which can be used to control it.
The return value is a unique integer ID that is associated to this playback stream and which can be used to control it.
This ID becomes invalid when the stream ends (if it does not loop), when the [AudioStreamPlaybackPolyphonic] is stopped, or when [method stop_stream] is called.
This function returns [constant INVALID_ID] if the amount of streams currently playing equals [member AudioStreamPolyphonic.polyphony]. If you need a higher amount of maximum polyphony, raise this value.
</description>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BaseButton" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base class for different kinds of buttons.
Abstract base class for GUI buttons.
</brief_description>
<description>
BaseButton is the abstract base class for buttons, so it shouldn't be used directly (it doesn't display anything). Other types of buttons inherit from it.
[BaseButton] is an abstract base class for GUI buttons. It doesn't display anything by itself.
</description>
<tutorials>
</tutorials>
@ -49,6 +49,7 @@
</member>
<member name="button_group" type="ButtonGroup" setter="set_button_group" getter="get_button_group">
The [ButtonGroup] associated with the button. Not to be confused with node groups.
[b]Note:[/b] The button will be configured as a radio button if a [ButtonGroup] is assigned to it.
</member>
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask" enum="MouseButtonMask" default="1">
Binary mask to choose which mouse buttons this button will respond to.

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Basis" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
3×3 matrix datatype.
A 3×3 matrix for representing 3D rotation and scale.
</brief_description>
<description>
3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a [Transform3D].
A 3×3 matrix used for representing 3D rotation and scale. Usually used as an orthogonal basis for a [Transform3D].
Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S).
Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling).
Basis can also be accessed as an array of 3D vectors. These vectors are usually orthogonal to each other, but are not necessarily normalized (due to scaling).
For more information, read the "Matrices and transforms" documentation article.
</description>
<tutorials>
@ -110,13 +110,13 @@
<return type="bool" />
<param index="0" name="b" type="Basis" />
<description>
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [code]is_equal_approx[/code] on each component.
Returns [code]true[/code] if this basis and [param b] are approximately equal, by calling [method @GlobalScope.is_equal_approx] on all vector components.
</description>
</method>
<method name="is_finite" qualifiers="const">
<return type="bool" />
<description>
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on each component.
Returns [code]true[/code] if this basis is finite, by calling [method @GlobalScope.is_finite] on all vector components.
</description>
</method>
<method name="looking_at" qualifiers="static">

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Bone2D" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Joint used with [Skeleton2D] to control and animate other nodes.
A joint used with [Skeleton2D] to control and animate other nodes.
</brief_description>
<description>
Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, and animate other [Node2D] nodes.
You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate 2D meshes created with the Polygon 2D UV editor.
A hierarchy of [Bone2D]s can be bound to a [Skeleton2D] to control and animate other [Node2D] nodes.
You can use [Bone2D] and [Skeleton2D] nodes to animate 2D meshes created with the [Polygon2D] UV editor.
Each bone has a [member rest] transform that you can reset to with [method apply_rest]. These rest poses are relative to the bone's parent.
If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.
</description>
@ -21,14 +21,14 @@
<method name="get_autocalculate_length_and_angle" qualifiers="const">
<return type="bool" />
<description>
Returns whether this [code]Bone2D[/code] node is going to autocalculate its length and bone angle using its first [code]Bone2D[/code] child node, if one exists. If there are no [code]Bone2D[/code] children, then it cannot autocalculate these values and will print a warning.
Returns whether this [Bone2D] is going to autocalculate its length and bone angle using its first [Bone2D] child node, if one exists. If there are no [Bone2D] children, then it cannot autocalculate these values and will print a warning.
</description>
</method>
<method name="get_bone_angle" qualifiers="const">
<return type="float" />
<description>
Returns the angle of the bone in the [code]Bone2D[/code] node.
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
Returns the angle of the bone in the [Bone2D].
[b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
</description>
</method>
<method name="get_index_in_skeleton" qualifiers="const">
@ -40,7 +40,7 @@
<method name="get_length" qualifiers="const">
<return type="float" />
<description>
Returns the length of the bone in the [code]Bone2D[/code] node.
Returns the length of the bone in the [Bone2D] node.
</description>
</method>
<method name="get_skeleton_rest" qualifiers="const">
@ -53,22 +53,22 @@
<return type="void" />
<param index="0" name="auto_calculate" type="bool" />
<description>
When set to [code]true[/code], the [code]Bone2D[/code] node will attempt to automatically calculate the bone angle and length using the first child [code]Bone2D[/code] node, if one exists. If none exist, the [code]Bone2D[/code] cannot automatically calculate these values and will print a warning.
When set to [code]true[/code], the [Bone2D] node will attempt to automatically calculate the bone angle and length using the first child [Bone2D] node, if one exists. If none exist, the [Bone2D] cannot automatically calculate these values and will print a warning.
</description>
</method>
<method name="set_bone_angle">
<return type="void" />
<param index="0" name="angle" type="float" />
<description>
Sets the bone angle for the [code]Bone2D[/code] node. This is typically set to the rotation from the [code]Bone2D[/code] node to a child [code]Bone2D[/code] node.
[b]Note:[/b] This is different from the [code]Bone2D[/code]'s rotation. The bone angle is the rotation of the bone shown by the [code]Bone2D[/code] gizmo, and because [code]Bone2D[/code] bones are based on positions, this can vary from the actual rotation of the [code]Bone2D[/code] node.
Sets the bone angle for the [Bone2D]. This is typically set to the rotation from the [Bone2D] to a child [Bone2D] node.
[b]Note:[/b] [b]Note:[/b] This is different from the [Bone2D]'s rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the [Bone2D]'s [member Node2D.transform].
</description>
</method>
<method name="set_length">
<return type="void" />
<param index="0" name="length" type="float" />
<description>
Sets the length of the bone in the [code]Bone2D[/code] node.
Sets the length of the bone in the [Bone2D].
</description>
</method>
</methods>

View File

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BoneAttachment3D" inherits="Node3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A node that will attach to a bone.
А node that dynamically copies or overrides the 3D transform of a bone in its parent [Skeleton3D].
</brief_description>
<description>
This node will allow you to select a bone for this node to attach to. The BoneAttachment3D node can copy the transform of the select bone, or can override the transform of the selected bone.
The BoneAttachment3D node must either be a child of a [Skeleton3D] node or be given an external [Skeleton3D] to use in order to function properly.
This node selects a bone in a [Skeleton3D] and attaches to it. This means that the [BoneAttachment3D] node will either dynamically copy or override the 3D transform of the selected bone.
</description>
<tutorials>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BoneMap" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Bone map for retargeting.
Describes a mapping of bone names for retargeting [Skeleton3D] into common names defined by a [SkeletonProfile].
</brief_description>
<description>
This class contains a hashmap that uses a list of bone names in [SkeletonProfile] as key names.
This class contains a dictionary that uses a list of bone names in [SkeletonProfile] as key names.
By assigning the actual [Skeleton3D] bone name as the key value, it maps the [Skeleton3D] to the [SkeletonProfile].
</description>
<tutorials>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BoxContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base class for box containers.
A container that arranges its child controls horizontally or vertically.
</brief_description>
<description>
Arranges child [Control] nodes vertically or horizontally, and rearranges them automatically when their minimum size changes.
A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes.
</description>
<tutorials>
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<methods>
<method name="add_spacer">

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Button" inherits="BaseButton" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Standard themed Button.
A themed button that can contain text and an icon.
</brief_description>
<description>
Button is the standard themed button. It can contain text and an icon, and will display them according to the current [Theme].
[Button] is the standard themed button. It can contain text and an icon, and it will display them according to the current [Theme].
[b]Example of creating a button and assigning an action when pressed by code:[/b]
[codeblocks]
[gdscript]
@ -32,9 +32,8 @@
}
[/csharp]
[/codeblocks]
Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.
See also [BaseButton] which contains common properties and methods associated with this node.
[b]Note:[/b] Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use [TouchScreenButton] for buttons that trigger gameplay movement or actions, as [TouchScreenButton] supports multitouch.
[b]Note:[/b] Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use [TouchScreenButton] for buttons that trigger gameplay movement or actions.
</description>
<tutorials>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ButtonGroup" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Group of Buttons.
A group of buttons that doesn't allow more than one button to be pressed at a time.
</brief_description>
<description>
Group of [BaseButton]. The members of this group are treated like radio buttons in the sense that only one button can be pressed at the same time.
Every member of the ButtonGroup should have [member BaseButton.toggle_mode] set to [code]true[/code].
A group of [BaseButton]-derived buttons. The buttons in a [ButtonGroup] are treated like radio buttons: No more than one button can be pressed at a time. Some types of buttons (such as [CheckBox]) may have a special appearance in this state.
Every member of a [ButtonGroup] should have [member BaseButton.toggle_mode] set to [code]true[/code].
</description>
<tutorials>
</tutorials>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Callable" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Built-in type representing a method in an object instance or a standalone function.
A built-in type representing a method or a standalone function.
</brief_description>
<description>
[Callable] is a built-in [Variant] type that represents a function. It can either be a method within an [Object] instance, or a standalone function not related to any object, like a lambda function. Like all [Variant] types, it can be stored in variables and passed to other functions. It is most commonly used for signal callbacks.

View File

@ -154,7 +154,10 @@
The [CameraAttributes] to use for this camera.
</member>
<member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="1048575">
The culling mask that describes which 3D render layers are rendered by this camera.
The culling mask that describes which [member VisualInstance3D.layers] are rendered by this camera. By default, all 20 user-visible layers are rendered.
[b]Note:[/b] Since the [member cull_mask] allows for 32 layers to be stored in total, there are an additional 12 layers that are only used internally by the engine and aren't exposed in the editor. Setting [member cull_mask] using a script allows you to toggle those reserved layers, which can be useful for editor plugins.
To adjust [member cull_mask] more easily using a script, use [method get_cull_mask_value] and [method set_cull_mask_value].
[b]Note:[/b] [VoxelGI], SDFGI and [LightmapGI] will always take all layers into account to determine what contributes to global illumination. If this is an issue, set [member GeometryInstance3D.gi_mode] to [constant GeometryInstance3D.GI_MODE_DISABLED] for meshes and [member Light3D.light_bake_mode] to [constant Light3D.BAKE_DISABLED] for lights to exclude them from global illumination.
</member>
<member name="current" type="bool" setter="set_current" getter="is_current" default="false">
If [code]true[/code], the ancestor [Viewport] is currently using this camera.
@ -167,7 +170,7 @@
The [Environment] to use for this camera.
</member>
<member name="far" type="float" setter="set_far" getter="get_far" default="4000.0">
The distance to the far culling boundary for this camera relative to its local Z axis.
The distance to the far culling boundary for this camera relative to its local Z axis. Higher values allow the camera to see further away, while decreasing [member far] can improve performance if it results in objects being partially or fully culled.
</member>
<member name="fov" type="float" setter="set_fov" getter="get_fov" default="75.0">
The camera's field of view angle (in degrees). Only applicable in perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/code] sets the other axis' field of view angle.
@ -188,7 +191,7 @@
The axis to lock during [member fov]/[member size] adjustments. Can be either [constant KEEP_WIDTH] or [constant KEEP_HEIGHT].
</member>
<member name="near" type="float" setter="set_near" getter="get_near" default="0.05">
The distance to the near culling boundary for this camera relative to its local Z axis.
The distance to the near culling boundary for this camera relative to its local Z axis. Lower values allow the camera to see objects more up close to its origin, at the cost of lower precision across the [i]entire[/i] range. Values lower than the default can lead to increased Z-fighting.
</member>
<member name="projection" type="int" setter="set_projection" getter="get_projection" enum="Camera3D.ProjectionType" default="0">
The camera's projection mode. In [constant PROJECTION_PERSPECTIVE] mode, objects' Z distance from the camera's local space scales their perceived size.

View File

@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CanvasItem" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base class of anything 2D.
Abstract base class for everything in 2D space.
</brief_description>
<description>
Base class of anything 2D. Canvas items are laid out in a tree; children inherit and extend their parent's transform. [CanvasItem] is extended by [Control] for anything GUI-related, and by [Node2D] for anything related to the 2D engine.
Any [CanvasItem] can draw. For this, [method queue_redraw] is called by the engine, then [constant NOTIFICATION_DRAW] will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the [CanvasItem] are provided (see [code]draw_*[/code] functions). However, they can only be used inside [method _draw], its corresponding [method Object._notification] or methods connected to the [signal draw] signal.
Canvas items are drawn in tree order. By default, children are on top of their parents so a root [CanvasItem] will be drawn behind everything. This behavior can be changed on a per-item basis.
A [CanvasItem] can also be hidden, which will also hide its children. It provides many ways to change parameters such as modulation (for itself and its children) and self modulation (only for itself), as well as its blend mode.
Ultimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.
[b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GlobalScope.deg_to_rad].
Abstract base class for everything in 2D space. Canvas items are laid out in a tree; children inherit and extend their parent's transform. [CanvasItem] is extended by [Control] for GUI-related nodes, and by [Node2D] for 2D game objects.
Any [CanvasItem] can draw. For this, [method queue_redraw] is called by the engine, then [constant NOTIFICATION_DRAW] will be received on idle time to request a redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the [CanvasItem] are provided (see [code]draw_*[/code] functions). However, they can only be used inside [method _draw], its corresponding [method Object._notification] or methods connected to the [signal draw] signal.
Canvas items are drawn in tree order. By default, children are on top of their parents, so a root [CanvasItem] will be drawn behind everything. This behavior can be changed on a per-item basis.
A [CanvasItem] can be hidden, which will also hide its children. By adjusting various other properties of a [CanvasItem], you can also modulate its color (via [member modulate] or [member self_modulate]), change its Z-index, blend mode, and more.
</description>
<tutorials>
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CanvasLayer" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Canvas drawing layer.
A node used for independent rendering of objects within a 2D scene.
</brief_description>
<description>
Canvas drawing layer. [CanvasItem] nodes that are direct or indirect children of a [CanvasLayer] will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).
Embedded [Window]s are placed in layer 1024. CanvasItems in layer 1025 or above appear in front of embedded windows, CanvasItems in layer 1023 or below appear behind embedded windows.
[CanvasItem]-derived nodes that are direct or indirect children of a [CanvasLayer] will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index [code]0[/code], so a [CanvasLayer] with index [code]-1[/code] will be drawn below, and a [CanvasLayer] with index [code]1[/code] will be drawn above. This order will hold regardless of the [member CanvasItem.z_index] of the nodes within each layer.
[CanvasLayer]s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers [code]1[/code] and higher) or backgrounds (on layers [code]-1[/code] and lower).
[b]Note:[/b] Embedded [Window]s are placed on layer [code]1024[/code]. [CanvasItem]s on layers [code]1025[/code] and higher appear in front of embedded windows.
</description>
<tutorials>
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CanvasModulate" inherits="Node2D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Tint the entire canvas.
A node that applies a color tint to a canvas.
</brief_description>
<description>
[CanvasModulate] tints the canvas elements using its assigned [member color].
[CanvasModulate] applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but [CanvasLayer]s can be used to render things independently.
</description>
<tutorials>
</tutorials>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CenterContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Keeps children controls centered.
A container that keeps child controls in its center.
</brief_description>
<description>
CenterContainer keeps children controls centered. This container keeps all children to their minimum size, in the center.
[CenterContainer] is a container that keeps all of its child controls in its center at their minimum size.
</description>
<tutorials>
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<members>
<member name="use_top_left" type="bool" setter="set_use_top_left" getter="is_using_top_left" default="false">

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CheckBox" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Binary choice user interface widget. See also [CheckButton].
A button that represents a binary choice.
</brief_description>
<description>
A checkbox allows the user to make a binary choice (choosing only one of two possible options). It's similar to [CheckButton] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has [b]no[/b] immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
[CheckBox] allows the user to choose one of only two possible options. It's similar to [CheckButton] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use [CheckBox] when toggling it has [b]no[/b] immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed.
See also [BaseButton] which contains common properties and methods associated with this node.
When [member BaseButton.button_group] specifies a [ButtonGroup], [CheckBox] changes its appearance to that of a radio button and uses the various [code]radio_*[/code] theme properties.
</description>
<tutorials>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CheckButton" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Checkable button. See also [CheckBox].
A button that represents a binary choice.
</brief_description>
<description>
CheckButton is a toggle button displayed as a check field. It's similar to [CheckBox] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an [b]immediate[/b] effect on something. For example, it could be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.
[CheckButton] is a toggle button displayed as a check field. It's similar to [CheckBox] in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use [CheckButton] when toggling it has an [b]immediate[/b] effect on something. For example, it can be used when pressing it shows or hides advanced settings, without asking the user to confirm this action.
See also [BaseButton] which contains common properties and methods associated with this node.
</description>
<tutorials>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ClassDB" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Class information repository.
A class information repository.
</brief_description>
<description>
Provides access to metadata stored for every available class.

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CodeEdit" inherits="TextEdit" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Multiline text control intended for editing code.
A multiline text editor designed for editing code.
</brief_description>
<description>
CodeEdit is a specialized [TextEdit] designed for editing plain text code files. It contains a bunch of features commonly found in code editors such as line numbers, line folding, code completion, indent management and string / comment management.
[b]Note:[/b] By default [CodeEdit] always use left-to-right text direction to correctly display source code.
CodeEdit is a specialized [TextEdit] designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management.
[b]Note:[/b] Regardless of locale, [CodeEdit] will by default always use left-to-right text direction to correctly display source code.
</description>
<tutorials>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CodeHighlighter" inherits="SyntaxHighlighter" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A syntax highlighter for code.
A syntax highlighter intended for code.
</brief_description>
<description>
A syntax highlighter for code.
By adjusting various properties of this resource, you can change the colors of strings, comments, numbers, and other text patterns inside a [TextEdit] control.
</description>
<tutorials>
</tutorials>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Color" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Color built-in type, in RGBA format.
A color represented in RGBA format.
</brief_description>
<description>
A color represented in RGBA format by red ([member r]), green ([member g]), blue ([member b]), and alpha ([member a]) components. Each component is a 16-bit floating-point value, usually ranging from 0 to 1. Some properties (such as [member CanvasItem.modulate]) may support values greater than 1, for overbright or High Dynamic Range colors. If you want to supply values in a range of 0 to 255, you should use [method @GDScript.Color8].
Colors can also be created by name from a set of standardized colors, through the [String] constructor, [method from_string], or by directly fetching the color constants documented here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url], with the addition of [constant TRANSPARENT].
[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
A color represented in RGBA format by a red ([member r]), green ([member g]), blue ([member b]), and alpha ([member a]) component. Each component is a 16-bit floating-point value, usually ranging from [code]0.0[/code] to [code]1.0[/code]. Some properties (such as [member CanvasItem.modulate]) may support values greater than [code]1.0[/code], for overbright or HDR (High Dynamic Range) colors.
Colors can be created in various ways: By the various [Color] constructors, by static methods such as [method from_hsv], and by using a name from the set of standardized colors based on [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url] with the addition of [constant TRANSPARENT]. GDScript also provides [method @GDScript.Color8], which uses integers from [code]0[/code] to [code]255[/code] and doesn't support overbright colors.
[b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it is equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code].
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/color_constants.png]Color constants cheatsheet[/url]
</description>
<tutorials>
@ -203,8 +203,8 @@
<return type="Color" />
<param index="0" name="hex" type="int" />
<description>
Returns the [Color] associated with the provided [param hex] integer in 32-bit RGBA format (8 bits per channel, alpha channel first).
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix).
Returns the [Color] associated with the provided [param hex] integer in 32-bit RGBA format (8 bits per channel).
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix, making it [code]"0xRRGGBBAA"[/code]).
[codeblocks]
[gdscript]
var red = Color.hex(0xff0000ff)
@ -223,8 +223,8 @@
<return type="Color" />
<param index="0" name="hex" type="int" />
<description>
Returns the [Color] associated with the provided [param hex] integer in 64-bit RGBA format (16 bits per channel, alpha channel first).
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix).
Returns the [Color] associated with the provided [param hex] integer in 64-bit RGBA format (16 bits per channel).
In GDScript and C#, the [int] is best visualized with hexadecimal notation ([code]"0x"[/code] prefix, making it [code]"0xRRRRGGGGBBBBAAAA"[/code]).
</description>
</method>
<method name="html" qualifiers="static">

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ColorPicker" inherits="VBoxContainer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Color picker control.
A widget that provides an interface for selecting or modifying a color.
</brief_description>
<description>
Displays a color picker widget. Useful for selecting a color from an RGB/RGBA colorspace.
[b]Note:[/b] This control is the color picker widget itself. You can use a [ColorPickerButton] instead if you need a button that brings up a [ColorPicker] in a pop-up.
A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets.
[b]Note:[/b] This control is the color picker widget itself. You can use a [ColorPickerButton] instead if you need a button that brings up a [ColorPicker] in a popup.
</description>
<tutorials>
<link title="Tween Demo">https://godotengine.org/asset-library/asset/146</link>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ColorPickerButton" inherits="Button" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Button that pops out a [ColorPicker].
A button that brings up a [ColorPicker] when pressed.
</brief_description>
<description>
Encapsulates a [ColorPicker] making it accessible by pressing a button. Pressing the button will toggle the [ColorPicker] visibility.
Encapsulates a [ColorPicker], making it accessible by pressing a button. Pressing the button will toggle the [ColorPicker]'s visibility.
See also [BaseButton] which contains common properties and methods associated with this node.
[b]Note:[/b] By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set [member Control.custom_minimum_size] to a big enough value to give the button enough space.
</description>

View File

@ -1,25 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ColorRect" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Colored rectangle.
A control that displays a solid color rectangle.
</brief_description>
<description>
Displays a rectangle filled with a solid [member color]. If you need to display the border alone, consider using [ReferenceRect] instead.
Displays a rectangle filled with a solid [member color]. If you need to display the border alone, consider using a [Panel] instead.
</description>
<tutorials>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
</tutorials>
<members>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)">
The fill color.
[codeblocks]
[gdscript]
$ColorRect.color = Color(1, 0, 0, 1) # Set ColorRect's color to red.
[/gdscript]
[csharp]
GetNode&lt;ColorRect&gt;("ColorRect").Color = new Color(1, 0, 0, 1); // Set ColorRect's color to red.
[/csharp]
[/codeblocks]
The fill color of the rectangle.
</member>
</members>
</class>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ConfirmationDialog" inherits="AcceptDialog" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Dialog for confirmation of actions.
A dialog used for confirmation of actions.
</brief_description>
<description>
Dialog for confirmation of actions. This dialog inherits from [AcceptDialog], but has by default an OK and Cancel button (in host OS order).
A dialog used for confirmation of actions. This window is similar to [AcceptDialog], but pressing its Cancel button can have a different outcome from pressing the OK button. The order of the two buttons varies depending on the host OS.
To get cancel action, you can use:
[codeblocks]
[gdscript]

View File

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Container" inherits="Control" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base node for containers.
Base class for all GUI containers.
</brief_description>
<description>
Base node for containers. A [Container] contains other controls and automatically arranges them in a certain way.
A Control can inherit this to create custom container classes.
Base class for all GUI containers. A [Container] automatically arranges its child controls in a certain way. This class can be inherited to make custom container types.
</description>
<tutorials>
<link title="GUI containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<methods>
<method name="_get_allowed_size_flags_horizontal" qualifiers="virtual const">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Control" inherits="CanvasItem" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
All user interface nodes inherit from Control. A control's anchors and offsets adapt its position and size relative to its parent.
Base class for all GUI controls. Adapts its position and size based on its parent control.
</brief_description>
<description>
Base class for all UI-related nodes. [Control] features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and offsets relative to the anchor. The offsets update automatically when the node, any of its parents, or the screen size change.
@ -41,7 +41,7 @@
{
// Check position if it is relevant to you
// Otherwise, just check data
return data.VariantType == Variant.Type.Dictionary &amp;&amp; data.AsGodotDictionary().Contains("expected");
return data.VariantType == Variant.Type.Dictionary &amp;&amp; data.AsGodotDictionary().ContainsKey("expected");
}
[/csharp]
[/codeblocks]
@ -64,7 +64,7 @@
[csharp]
public override bool _CanDropData(Vector2 atPosition, Variant data)
{
return data.VariantType == Variant.Type.Dictionary &amp;&amp; dict.AsGodotDictionary().Contains("color");
return data.VariantType == Variant.Type.Dictionary &amp;&amp; dict.AsGodotDictionary().ContainsKey("color");
}
public override void _DropData(Vector2 atPosition, Variant data)
@ -1020,13 +1020,13 @@
The size of the node's bounding rectangle, in the node's coordinate system. [Container] nodes update this property automatically.
</member>
<member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags" enum="Control.SizeFlags" default="1">
Tells the parent [Container] nodes how they should resize and place the node on the X axis. Use one of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
Tells the parent [Container] nodes how they should resize and place the node on the X axis. Use a combination of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
</member>
<member name="size_flags_stretch_ratio" type="float" setter="set_stretch_ratio" getter="get_stretch_ratio" default="1.0">
If the node and at least one of its neighbors uses the [constant SIZE_EXPAND] size flag, the parent [Container] will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbor a ratio of 1, this node will take two thirds of the available space.
</member>
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" enum="Control.SizeFlags" default="1">
Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use one of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use a combination of the [enum SizeFlags] constants to change the flags. See the constants to learn what each does.
</member>
<member name="theme" type="Theme" setter="set_theme" getter="get_theme">
The [Theme] resource this node and all its [Control] and [Window] children use. If a child node has its own [Theme] resource set, theme items are merged with child's definitions having higher priority.

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Crypto" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Access to advanced cryptographic functionalities.
Provides access to advanced cryptographic functionalities.
</brief_description>
<description>
The Crypto class allows you to access some more advanced cryptographic functionalities in Godot.
For now, this includes generating cryptographically secure random bytes, RSA keys and self-signed X509 certificates generation, asymmetric key encryption/decryption, and signing/verification.
The Crypto class provides access to advanced cryptographic functionalities.
Currently, this includes asymmetric key encryption/decryption, signing/verification, and generating cryptographically secure random bytes, RSA keys, HMAC digests, and self-signed [X509Certificate]s.
[codeblocks]
[gdscript]
extends Node

View File

@ -78,7 +78,7 @@
<return type="void" />
<param index="0" name="index" type="int" />
<description>
Removes the point at [code]index[/code] from the curve.
Removes the point at [param index] from the curve.
</description>
</method>
<method name="sample" qualifiers="const">

View File

@ -80,7 +80,7 @@
<return type="void" />
<param index="0" name="idx" type="int" />
<description>
Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
Deletes the point [param idx] from the curve. Sends an error to the console if [param idx] is out of bounds.
</description>
</method>
<method name="sample" qualifiers="const">

View File

@ -100,7 +100,7 @@
<return type="void" />
<param index="0" name="idx" type="int" />
<description>
Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
Deletes the point [param idx] from the curve. Sends an error to the console if [param idx] is out of bounds.
</description>
</method>
<method name="sample" qualifiers="const">

View File

@ -1,12 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Dictionary" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Dictionary type.
A built-in data structure that holds key-value pairs.
</brief_description>
<description>
Dictionary type. Associative container, which contains values referenced by unique keys. Dictionaries are composed of pairs of keys (which must be unique) and values. Dictionaries will preserve the insertion order when adding new entries. In other programming languages, this data structure is sometimes referred to as a hash map or associative array.
You can define a dictionary by placing a comma-separated list of [code]key: value[/code] pairs in curly braces [code]{}[/code].
[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a dictionary which can be modified independently of the original dictionary, use [method duplicate].
Dictionaries are associative containers that contain values referenced by unique keys. Dictionaries will preserve the insertion order when adding new entries. In other programming languages, this data structure is often referred to as a hash map or an associative array.
You can define a dictionary by placing a comma-separated list of [code]key: value[/code] pairs inside curly braces [code]{}[/code].
Creating a dictionary:
[codeblocks]
[gdscript]
@ -134,6 +133,7 @@
}
[/csharp]
[/codeblocks]
[b]Note:[/b] Dictionaries are always passed by reference. To get a copy of a dictionary which can be modified independently of the original dictionary, use [method duplicate].
[b]Note:[/b] Erasing elements while iterating over dictionaries is [b]not[/b] supported and will result in unpredictable behavior.
</description>
<tutorials>
@ -217,9 +217,9 @@
{ 210, default },
};
GD.Print(myDict.Contains("Godot")); // Prints true
GD.Print(myDict.Contains(210)); // Prints true
GD.Print(myDict.Contains(4)); // Prints false
GD.Print(myDict.ContainsKey("Godot")); // Prints true
GD.Print(myDict.ContainsKey(210)); // Prints true
GD.Print(myDict.ContainsKey(4)); // Prints false
[/csharp]
[/codeblocks]
In GDScript, this is equivalent to the [code]in[/code] operator:

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="DirAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Type used to handle the filesystem.
Provides methods for managing directories and their content.
</brief_description>
<description>
Directory type. It is used to manage directories and their content (not restricted to the project folder).
This class is used to manage directories and their content, even outside of the project folder.
[DirAccess] can't be instantiated directly. Instead it is created with a static method that takes a path for which it will be opened.
Most of the methods have a static alternative that can be used without creating a [DirAccess]. Static methods only support absolute paths (including [code]res://[/code] and [code]user://[/code]).
[codeblock]
@ -173,7 +173,7 @@
<description>
Returns a [PackedStringArray] containing filenames of the directory contents, excluding directories. The array is sorted alphabetically.
Affected by [member include_hidden].
[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level [code].godot/[/code] folder, only paths to [code]*.gd[/code] and [code]*.import[/code] files are returned (plus a few files such as [code]project.godot[/code] or [code]project.binary[code] and the project icon). In an exported project, the list of returned files will also vary depending on whether [member ProjectSettings.editor/export/convert_text_resources_to_binary] is [code]true[/code].
[b]Note:[/b] When used on a [code]res://[/code] path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level [code].godot/[/code] folder, only paths to [code]*.gd[/code] and [code]*.import[/code] files are returned (plus a few files such as [code]project.godot[/code] or [code]project.binary[/code] and the project icon). In an exported project, the list of returned files will also vary depending on whether [member ProjectSettings.editor/export/convert_text_resources_to_binary] is [code]true[/code].
</description>
</method>
<method name="get_files_at" qualifiers="static">

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="DisplayServer" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Singleton for window management functions.
A server interface for low-level window management.
</brief_description>
<description>
[DisplayServer] handles everything related to window management. This is separated from [OS] as a single operating system may support multiple display servers.
[DisplayServer] handles everything related to window management. It is separated from [OS] as a single operating system may support multiple display servers.
[b]Headless mode:[/b] Starting the engine with the [code]--headless[/code] [url=$DOCS_URL/tutorials/editor/command_line_tutorial.html]command line argument[/url] disables all rendering and window management functions. Most functions from [DisplayServer] will return dummy values in this case.
</description>
<tutorials>
@ -1624,7 +1624,7 @@
I-beam cursor shape. This is used by default when hovering a control that accepts text input, such as [LineEdit] or [TextEdit].
</constant>
<constant name="CURSOR_POINTING_HAND" value="2" enum="CursorShape">
Pointing hand cursor shape. This is used by default when hovering a [LinkButton] or an URL tag in a [RichTextLabel].
Pointing hand cursor shape. This is used by default when hovering a [LinkButton] or a URL tag in a [RichTextLabel].
</constant>
<constant name="CURSOR_CROSS" value="3" enum="CursorShape">
Crosshair cursor. This is intended to be displayed when the user needs precise aim over an element, such as a rectangle selection tool or a color picker.

View File

@ -4,7 +4,7 @@
A modified version of [FileDialog] used by the editor.
</brief_description>
<description>
[EditorFileDialog] is an enhanced version of [FileDialog] available only to editor plugins. Additional features include list of favorited/recent files and ability to see files as thumbnails grid instead of list.
[EditorFileDialog] is an enhanced version of [FileDialog] available only to editor plugins. Additional features include list of favorited/recent files and the ability to see files as thumbnails grid instead of list.
</description>
<tutorials>
</tutorials>

View File

@ -30,10 +30,10 @@
func _get_preset_count():
return 1
func _get_preset_name(i):
func _get_preset_name(preset_index):
return "Default"
func _get_import_options(i):
func _get_import_options(path, preset_index):
return [{"name": "my_option", "default_value": false}]
func _import(source_file, save_path, options, platform_variants, gen_files):
@ -93,7 +93,7 @@
new Godot.Collections.Dictionary
{
{ "name", "myOption" },
{ "defaultValue", false },
{ "default_value", false },
}
};
}
@ -157,12 +157,12 @@
return true
[/gdscript]
[csharp]
public void GetOptionVisibility(string option, Godot.Collections.Dictionary options)
public void _GetOptionVisibility(string option, Godot.Collections.Dictionary options)
{
// Only show the lossy quality setting if the compression mode is set to "Lossy".
if (option == "compress/lossyQuality" &amp;&amp; options.Contains("compress/mode"))
if (option == "compress/lossy_quality" &amp;&amp; options.ContainsKey("compress/mode"))
{
return (int)options["compress/mode"] == COMPRESS_LOSSY; // This is a constant you set
return (int)options["compress/mode"] == CompressLossy; // This is a constant you set
}
return true;

View File

@ -4,7 +4,7 @@
Godot editor's interface.
</brief_description>
<description>
EditorInterface gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to [EditorSettings], [EditorFileSystem], [EditorResourcePreview], [ScriptEditor], the editor viewport, and information about scenes.
[EditorInterface] gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to [EditorSettings], [EditorFileSystem], [EditorResourcePreview], [ScriptEditor], the editor viewport, and information about scenes.
[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorPlugin.get_editor_interface].
</description>
<tutorials>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorNode3DGizmoPlugin" inherits="Resource" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Used by the editor to define Node3D gizmo types.
A class used by the editor to define Node3D gizmo types.
</brief_description>
<description>
[EditorNode3DGizmoPlugin] allows you to define a new type of Gizmo. There are two main ways to do so: extending [EditorNode3DGizmoPlugin] for the simpler gizmos, or creating a new [EditorNode3DGizmo] type. See the tutorial in the documentation for more info.

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorProperty" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Custom control to edit properties for adding into the inspector.
Custom control for editing properties that can be added to the [EditorInspector].
</brief_description>
<description>
This control allows property editing for one or multiple properties into [EditorInspector]. It is added via [EditorInspectorPlugin].
A custom control for editing properties that can be added to the [EditorInspector]. It is added via [EditorInspectorPlugin].
</description>
<tutorials>
</tutorials>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorResourcePreview" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Helper to generate previews of resources or files.
A node used to generate previews of resources or files.
</brief_description>
<description>
This object is used to generate previews for resources of files.
This node is used to generate previews for resources of files.
[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_resource_previewer].
</description>
<tutorials>

View File

@ -635,6 +635,10 @@
If [code]true[/code], increases the scrollbar touch area to improve usability on touchscreen devices.
[b]Note:[/b] Defaults to [code]true[/code] on touchscreen devices.
</member>
<member name="interface/touchscreen/scale_gizmo_handles" type="float" setter="" getter="">
Specify the multiplier to apply to the scale for the editor gizmo handles to improve usability on touchscreen devices.
[b]Note:[/b] Defaults to [code]1[/code] on non-touchscreen devices.
</member>
<member name="network/debug/remote_host" type="String" setter="" getter="">
The address to listen to when starting the remote debugger. This can be set to [code]0.0.0.0[/code] to allow external clients to connect to the remote debugger (instead of restricting the remote debugger to connections from [code]localhost[/code]).
</member>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorSyntaxHighlighter" inherits="SyntaxHighlighter" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base Syntax highlighter resource for the [ScriptEditor].
Base class for [SyntaxHighlighter] used by the [ScriptEditor].
</brief_description>
<description>
Base syntax highlighter resource all editor syntax highlighters extend from, it is used in the [ScriptEditor].
Base class that all [SyntaxHighlighter]s used by the [ScriptEditor] extend from.
Add a syntax highlighter to an individual script by calling [method ScriptEditorBase.add_syntax_highlighter]. To apply to all scripts on open, call [method ScriptEditor.register_syntax_highlighter]
</description>
<tutorials>

View File

@ -13,21 +13,21 @@
<return type="bool" />
<param index="0" name="branch_name" type="String" />
<description>
Checks out a [code]branch_name[/code] in the VCS.
Checks out a [param branch_name] in the VCS.
</description>
</method>
<method name="_commit" qualifiers="virtual">
<return type="void" />
<param index="0" name="msg" type="String" />
<description>
Commits the currently staged changes and applies the commit [code]msg[/code] to the resulting commit.
Commits the currently staged changes and applies the commit [param msg] to the resulting commit.
</description>
</method>
<method name="_create_branch" qualifiers="virtual">
<return type="void" />
<param index="0" name="branch_name" type="String" />
<description>
Creates a new branch named [code]branch_name[/code] in the VCS.
Creates a new branch named [param branch_name] in the VCS.
</description>
</method>
<method name="_create_remote" qualifiers="virtual">
@ -35,21 +35,21 @@
<param index="0" name="remote_name" type="String" />
<param index="1" name="remote_url" type="String" />
<description>
Creates a new remote destination with name [code]remote_name[/code] and points it to [code]remote_url[/code]. This can be an HTTPS remote or an SSH remote.
Creates a new remote destination with name [param remote_name] and points it to [param remote_url]. This can be an HTTPS remote or an SSH remote.
</description>
</method>
<method name="_discard_file" qualifiers="virtual">
<return type="void" />
<param index="0" name="file_path" type="String" />
<description>
Discards the changes made in a file present at [code]file_path[/code].
Discards the changes made in a file present at [param file_path].
</description>
</method>
<method name="_fetch" qualifiers="virtual">
<return type="void" />
<param index="0" name="remote" type="String" />
<description>
Fetches new changes from the remote, but doesn't write changes to the current working directory. Equivalent to [code]git fetch[/code].
Fetches new changes from the [param remote], but doesn't write changes to the current working directory. Equivalent to [code]git fetch[/code].
</description>
</method>
<method name="_get_branch_list" qualifiers="virtual">
@ -69,7 +69,7 @@
<param index="0" name="identifier" type="String" />
<param index="1" name="area" type="int" />
<description>
Returns an array of [Dictionary] items (see [method create_diff_file], [method create_diff_hunk], [method create_diff_line], [method add_line_diffs_into_diff_hunk] and [method add_diff_hunks_into_diff_file]), each containing information about a diff. If [code]identifier[/code] is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
Returns an array of [Dictionary] items (see [method create_diff_file], [method create_diff_hunk], [method create_diff_line], [method add_line_diffs_into_diff_hunk] and [method add_diff_hunks_into_diff_file]), each containing information about a diff. If [param identifier] is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
</description>
</method>
<method name="_get_line_diff" qualifiers="virtual">
@ -77,7 +77,7 @@
<param index="0" name="file_path" type="String" />
<param index="1" name="text" type="String" />
<description>
Returns an [Array] of [Dictionary] items (see [method create_diff_hunk]), each containing a line diff between a file at [code]file_path[/code] and the [code]text[/code] which is passed in.
Returns an [Array] of [Dictionary] items (see [method create_diff_hunk]), each containing a line diff between a file at [param file_path] and the [param text] which is passed in.
</description>
</method>
<method name="_get_modified_files_data" qualifiers="virtual">
@ -109,7 +109,7 @@
<return type="bool" />
<param index="0" name="project_path" type="String" />
<description>
Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at [code]project_path[/code].
Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at [param project_path].
</description>
</method>
<method name="_pull" qualifiers="virtual">
@ -149,7 +149,7 @@
<param index="3" name="ssh_private_key_path" type="String" />
<param index="4" name="ssh_passphrase" type="String" />
<description>
Set user credentials in the underlying VCS. [code]username[/code] and [code]password[/code] are used only during HTTPS authentication unless not already mentioned in the remote URL. [code]ssh_public_key_path[/code], [code]ssh_private_key_path[/code], and [code]ssh_passphrase[/code] are only used during SSH authentication.
Set user credentials in the underlying VCS. [param username] and [param password] are used only during HTTPS authentication unless not already mentioned in the remote URL. [param ssh_public_key_path], [param ssh_private_key_path], and [param ssh_passphrase] are only used during SSH authentication.
</description>
</method>
<method name="_shut_down" qualifiers="virtual">
@ -162,14 +162,14 @@
<return type="void" />
<param index="0" name="file_path" type="String" />
<description>
Stages the file present at [code]file_path[/code] to the staged area.
Stages the file present at [param file_path] to the staged area.
</description>
</method>
<method name="_unstage_file" qualifiers="virtual">
<return type="void" />
<param index="0" name="file_path" type="String" />
<description>
Unstages the file present at [code]file_path[/code] from the staged area to the unstaged area.
Unstages the file present at [param file_path] from the staged area to the unstaged area.
</description>
</method>
<method name="add_diff_hunks_into_diff_file">
@ -177,7 +177,7 @@
<param index="0" name="diff_file" type="Dictionary" />
<param index="1" name="diff_hunks" type="Dictionary[]" />
<description>
Helper function to add an array of [code]diff_hunks[/code] into a [code]diff_file[/code].
Helper function to add an array of [param diff_hunks] into a [param diff_file].
</description>
</method>
<method name="add_line_diffs_into_diff_hunk">
@ -185,7 +185,7 @@
<param index="0" name="diff_hunk" type="Dictionary" />
<param index="1" name="line_diffs" type="Dictionary[]" />
<description>
Helper function to add an array of [code]line_diffs[/code] into a [code]diff_hunk[/code].
Helper function to add an array of [param line_diffs] into a [param diff_hunk].
</description>
</method>
<method name="create_commit">
@ -196,7 +196,7 @@
<param index="3" name="unix_timestamp" type="int" />
<param index="4" name="offset_minutes" type="int" />
<description>
Helper function to create a commit [Dictionary] item. [code]msg[/code] is the commit message of the commit. [code]author[/code] is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. [code]id[/code] is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. [code]unix_timestamp[/code] is the UTC Unix timestamp of when the commit was created. [code]offset_minutes[/code] is the timezone offset in minutes, recorded from the system timezone where the commit was created.
Helper function to create a commit [Dictionary] item. [param msg] is the commit message of the commit. [param author] is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. [param id] is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. [param unix_timestamp] is the UTC Unix timestamp of when the commit was created. [param offset_minutes] is the timezone offset in minutes, recorded from the system timezone where the commit was created.
</description>
</method>
<method name="create_diff_file">
@ -204,7 +204,7 @@
<param index="0" name="new_file" type="String" />
<param index="1" name="old_file" type="String" />
<description>
Helper function to create a [code]Dictionary[/code] for storing old and new diff file paths.
Helper function to create a [Dictionary] for storing old and new diff file paths.
</description>
</method>
<method name="create_diff_hunk">
@ -214,7 +214,7 @@
<param index="2" name="old_lines" type="int" />
<param index="3" name="new_lines" type="int" />
<description>
Helper function to create a [code]Dictionary[/code] for storing diff hunk data. [code]old_start[/code] is the starting line number in old file. [code]new_start[/code] is the starting line number in new file. [code]old_lines[/code] is the number of lines in the old file. [code]new_lines[/code] is the number of lines in the new file.
Helper function to create a [Dictionary] for storing diff hunk data. [param old_start] is the starting line number in old file. [param new_start] is the starting line number in new file. [param old_lines] is the number of lines in the old file. [param new_lines] is the number of lines in the new file.
</description>
</method>
<method name="create_diff_line">
@ -224,7 +224,7 @@
<param index="2" name="content" type="String" />
<param index="3" name="status" type="String" />
<description>
Helper function to create a [code]Dictionary[/code] for storing a line diff. [code]new_line_no[/code] is the line number in the new file (can be [code]-1[/code] if the line is deleted). [code]old_line_no[/code] is the line number in the old file (can be [code]-1[/code] if the line is added). [code]content[/code] is the diff text. [code]status[/code] is a single character string which stores the line origin.
Helper function to create a [Dictionary] for storing a line diff. [param new_line_no] is the line number in the new file (can be [code]-1[/code] if the line is deleted). [param old_line_no] is the line number in the old file (can be [code]-1[/code] if the line is added). [param content] is the diff text. [param status] is a single character string which stores the line origin.
</description>
</method>
<method name="create_status_file">
@ -233,7 +233,7 @@
<param index="1" name="change_type" type="int" enum="EditorVCSInterface.ChangeType" />
<param index="2" name="area" type="int" enum="EditorVCSInterface.TreeArea" />
<description>
Helper function to create a [code]Dictionary[/code] used by editor to read the status of a file.
Helper function to create a [Dictionary] used by editor to read the status of a file.
</description>
</method>
<method name="popup_error">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Engine" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Access to engine properties.
Provides access to engine properties.
</brief_description>
<description>
The [Engine] singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.

View File

@ -50,7 +50,7 @@
<param index="1" name="enable" type="bool" />
<param index="2" name="arguments" type="Array" default="[]" />
<description>
Calls the [code]toggle[/code] callable of the profiler with given [param name] and [param arguments]. Enables/Disables the same profiler depending on [code]enable[/code] argument.
Calls the [code]toggle[/code] callable of the profiler with given [param name] and [param arguments]. Enables/Disables the same profiler depending on [param enable] argument.
</description>
</method>
<method name="register_message_capture">

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="FileAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Type to handle file reading and writing operations.
Provides methods for file reading and writing operations.
</brief_description>
<description>
File type. This is used to permanently store data into the user device's file system and to read from it. This can be used to store game save data or player configuration files, for example.
This class can be used to permanently store data in the user device's file system and to read from it. This is useful for store game save data or player configuration files.
Here's a sample on how to write and read from a file:
[codeblocks]
[gdscript]
@ -33,18 +33,8 @@
[/csharp]
[/codeblocks]
In the example above, the file will be saved in the user data folder as specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] documentation.
[FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. In C# the reference must be disposed after we are done using it, this can be done with the [code]using[/code] statement or calling the [code]Dispose[/code] method directly.
[codeblocks]
[gdscript]
var file = FileAccess.open("res://something") # File is opened and locked for use.
file = null # File is closed.
[/gdscript]
[csharp]
using var file = FileAccess.Open("res://something"); // File is opened and locked for use.
// The using statement calls Dispose when going out of scope.
[/csharp]
[/codeblocks]
[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [FileAccess] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
[FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code]. [method close] can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with the [code]using[/code] statement or by calling the [code]Dispose[/code] method directly.
[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of [FileAccess], as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
[b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling [method flush] at regular intervals.
</description>
<tutorials>
@ -204,7 +194,7 @@
<return type="int" />
<param index="0" name="file" type="String" />
<description>
Returns the last time the [param file] was modified in Unix timestamp format or returns a [String] "ERROR IN [code]file[/code]". This Unix timestamp can be converted to another format using the [Time] singleton.
Returns the last time the [param file] was modified in Unix timestamp format or returns a [String] "ERROR IN [param file]". This Unix timestamp can be converted to another format using the [Time] singleton.
</description>
</method>
<method name="get_open_error" qualifiers="static">

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="FileDialog" inherits="ConfirmationDialog" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Dialog for selecting files or directories in the filesystem.
A dialog for selecting files or directories in the filesystem.
</brief_description>
<description>
FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. The FileDialog automatically sets its window title according to the [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].
[FileDialog] is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. [FileDialog] automatically sets its window title according to the [member file_mode]. If you want to use a custom title, disable this by setting [member mode_overrides_title] to [code]false[/code].
</description>
<tutorials>
</tutorials>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="FileSystemDock" inherits="VBoxContainer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Editor dock for managing files in the project.
Godot editor's dock for managing files in the project.
</brief_description>
<description>
This class is available only in [EditorPlugin]s and can't be instantiated. You can access it using [method EditorInterface.get_file_system_dock].
While FileSystemDock doesn't expose any methods for file manipulation, you can listen for various file-related signals.
While [FileSystemDock] doesn't expose any methods for file manipulation, it can listen for various file-related signals.
</description>
<tutorials>
</tutorials>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="FlowContainer" inherits="Container" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Base class for flow containers.
A container that arranges its child controls horizontally or vertically and wraps them around at the borders.
</brief_description>
<description>
Arranges child [Control] nodes vertically or horizontally in a left-to-right or top-to-bottom flow.
A line is filled with [Control] nodes until no more fit on the same line, similar to text in an autowrapped label.
A container that arranges its child controls horizontally or vertically and wraps them around at the borders. This is similar to how text in a book wraps around when no more words can fit on a line.
</description>
<tutorials>
<link title="Using Containers">$DOCS_URL/tutorials/ui/gui_containers.html</link>
</tutorials>
<methods>
<method name="get_line_count" qualifiers="const">

Some files were not shown because too many files have changed in this diff Show More