Compare commits

...

170 Commits

Author SHA1 Message Date
f9ac000d5d Bump version to 3.4.5-stable 2022-08-01 22:07:44 +02:00
b56d1abc47 Fix crash when executing AnimationTreePlayer.are_nodes_connected
(cherry picked from commit 9d923764c9)
2022-08-01 22:07:04 +02:00
73e8a773b3 Add changelog for Godot 3.4.5 2022-08-01 17:07:32 +02:00
e0214a14f3 SCons: Fix creating VS solution with SCons 4.4.0
Fixes #63709.

Co-authored-by: 19PHOBOSS98 <37253663+19PHOBOSS98@users.noreply.github.com>
(cherry picked from commit 89847dc6e3)
2022-08-01 10:54:58 +02:00
60d34604d5 [3.x] Fix Translated method in C# affecting the original transform
(cherry picked from commit 4d6c609e50)
2022-08-01 10:54:44 +02:00
514073b367 Fix typo in MeshInstance.xml
(cherry picked from commit eb7ce02239)
2022-08-01 10:54:19 +02:00
ee7a704387 updated scenetree docs to include information on passing in null
(cherry picked from commit 359205f7d7)
2022-08-01 10:54:06 +02:00
a68344681b Fixup BVH debugging statements
(cherry picked from commit 90725964a4)
2022-08-01 10:53:42 +02:00
3151ebbd68 [macOS, Mono] Fix "Wdeprecated-declarations" build error.
(cherry picked from commit 5d54c015b2)
2022-08-01 10:53:18 +02:00
7d98a5e069 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
Rindbee, Vitika9

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit ce959dc753)
2022-07-25 16:43:11 +02:00
909a9b77c7 SCons: Prevent using vsproj option outside Windows
Fixes #63305.

(cherry picked from commit 4e56f96396)
2022-07-25 16:42:18 +02:00
4f98488d82 Use the right memory ordering in SafeNumeric operations
(cherry picked from commit 02a584d8e6)
2022-07-25 16:42:07 +02:00
5f89f1a9ff Flush buffered input events on UWP
(cherry picked from commit b53d032fb8)
2022-07-25 16:41:50 +02:00
86d8bd77f4 Flush accumulated input events on iOS
(cherry picked from commit 0348fa2640)
2022-07-25 16:41:33 +02:00
375d9905b5 Apply S3TC Android/iOS fix to GLES3
(cherry picked from commit 4abe07c811)
2022-07-19 12:31:40 +02:00
a4ca649d52 Bump mbedtls to 2.18.1 (headers).
(cherry picked from commit baa261cdc8)
2022-07-18 18:55:37 +02:00
623a5499da Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@880abd09c9

(cherry picked from commit b70e4fc0f3)
2022-07-18 16:06:16 +02:00
07c3e3e41b Bump mbedtls to version 2.18.1, update LICENSE.
Keep applying windows entropy patch.

Update thirdparty/README with correct version information.

(cherry picked from commit 9403a68853)
2022-07-18 15:40:40 +02:00
956ab70733 Bump mbedTLS version to 2.28.0 (new LTS).
Keep applying the windows entropy patch (UWP support).
Remove no longer needed padlock patch.
Update thirdparty README to reflect changes, and new source inclusion
criteria.

(cherry picked from commit e375cbd094)
2022-07-18 15:39:43 +02:00
e0fe0c3d82 GDScript: Fix autocompletetion showing class names with an underscore
Fixes #35469.

(cherry picked from commit 00c6cdd793)
2022-07-07 14:16:17 +02:00
373ec9a8a2 Input: Document that accumulated input is disabled by default
This was actually disabled by mistake in 3.4 causing a regression, but since
this issue survived the whole 3.4.x series and it's now very close to 3.5,
it's too late to change it again.

We might consider it for 3.6 after some beta testing.

Fixes #55037.

(cherry picked from commit 7de45b6203)
2022-07-07 14:15:50 +02:00
aad1c39098 Fix gltf texture filename decoding
(cherry picked from commit f66200ed3c)
2022-07-07 14:13:09 +02:00
8d066d25dd SCons: Properly track codegen script dependency for generated GLES headers
(cherry picked from commit 772d071863)
2022-07-07 14:12:55 +02:00
720b3a40ce Properly check for fullscreen toggle made through the Window Manager
(cherry picked from commit cf38b6f187)
2022-07-07 14:12:34 +02:00
5fcdbfb2be Clarify that MeshInstance surface methods only apply to override materials
(cherry picked from commit 22881a6923)
2022-07-07 14:11:35 +02:00
4df1a2f7e3 Fix CPUParticles2D.emission_shape enum hint
(cherry picked from commit e55ba60da1)
2022-07-07 14:11:17 +02:00
d8f8ae0ce1 Fix set_window_size crash when using NaN
Fixes #60466.

(cherry picked from commit b3f822eaae)
2022-07-07 14:11:01 +02:00
fd799e459f Increase AnimationPlayer position SpinBox to fit more decimals
Fixed UI bug where it appeared that pushing the up or down incrementing
arrows did not increment the SpinBox value appropriately. Just needed
to increase the size of the box horizontally, to display four decimal
points consistently.

(cherry picked from commit 09658f7e3b)
2022-07-07 14:10:46 +02:00
81fa4a4268 Fix scene tree dock focus after using "Add Child Node" button
(cherry picked from commit 512b70858c)
2022-07-07 14:10:21 +02:00
d52681085e Fix String.http_escape on Windows
(cherry picked from commit 1a7e3b3ab6)
2022-07-07 14:10:10 +02:00
4a83c2944c Fix LineEdit clear button for asymmetric stylebox
(cherry picked from commit 1e6747d185)
2022-07-07 14:09:50 +02:00
6cb32b696e Portals - force full check on adding moving object
Moving objects being added during instance_moving_create() were incorrectly not forcing a full check to find which room they were within. This could result in moving objects being re-added not correctly identifying their current room, and thus culling incorrectly. This PR forces a full check on calling instance_moving_create.

(cherry picked from commit e7a73579e3)
2022-07-07 14:09:39 +02:00
31
8cb4593eed C#: Fix debugger options missing from Project Settings
(cherry picked from commit 826415ad2f)
2022-07-07 14:09:21 +02:00
a215d29857 Fixed the missing DLL's issue
(cherry picked from commit 432e752028)
2022-07-07 14:08:49 +02:00
5fa879bd62 EditorPropertyArray Fix crash when drag-reordering elements in the inspector
(cherry picked from commit 33b2970492)
2022-07-07 14:08:34 +02:00
d23e6b8f00 Fix incorrect encoding used in _error_handler functions
Co-authored-by: Haoyu Qiu <timothyqiu32@gmail.com>
(cherry picked from commit b5d5515a2b)
2022-07-07 14:07:31 +02:00
4a00561556 Unbind vertex buffer before calculating blend shapes
(cherry picked from commit b0b1e44bc1)
2022-07-07 14:07:05 +02:00
29fc16d4b6 Unpack blend shape arrays when necessary
Blend shapes need to be unpacked if the vertex array is being unpacked

(cherry picked from commit 33d825c50b)
2022-07-07 14:07:05 +02:00
afa669dbd3 certs: Sync with Mozilla bundle as of Mar 31, 2022
39c6ac0550
(cherry picked from commit be6db612a1)
2022-07-07 14:07:05 +02:00
b0822d4054 fix gridmap cursor showing the wrong mesh
(cherry picked from commit 726614ff4b)
2022-07-07 14:07:05 +02:00
d506718736 Fix crash when editing pinned StyleBox
(cherry picked from commit 4b013a9c96)
2022-07-07 14:07:05 +02:00
45e55d51de Fix invalid memory usage when using Image.convert
(cherry picked from commit 34c1a2beaa)
2022-07-07 14:07:05 +02:00
d700434b7d AnimationTrackEditor Fix signal connection on root exiting the tree
(cherry picked from commit 2ede2bac0b)
2022-07-07 14:07:05 +02:00
59ae873e50 Merge pull request #62609 from akien-mga/3.4-android-preset-target-sdk-warning 2022-07-03 18:47:54 +02:00
7a87fd232b Fix return type for the exposed EditorResourcePicker method
(cherry picked from commit d9bf3e5e35)
2022-07-03 18:30:41 +02:00
431558d419 Android: Only warn when Target SDK is non default
The validation logic for Min Sdk and Target Sdk was flawed as it triggers
errors for users not using Custom Build even if they never modified the
values themselves.

The default values for those settings get saved in `export_presets.cfg` and
thus the error gets triggered when moving from 3.4.4 or earlier to 3.4.5, as
the target SDK changed from 30 to 31.

So instead we just show a warning to make users aware of this non-default
Min Sdk or mostly Target Sdk that might be in their preset.

We also warn when they do use Custom Build as the target SDK 30 would likely
still be an upgrade issue and not an intentional choice, especially given
that Google Play will now require SDK 31.

The export info dialog is now exclusive so that when it doesn't auto-close,
i.e. when it errors, you don't close it by mistake by clicking outside.

The valid range for both options is no longer limited to Godot's own default
target SDK, but can accept higher values (they are not guaranteed to work,
but they might).

To be able to display warning, the relevant code is backported from 30ee208bd.

Fixes #62465 without breaking compatibility for 3.4.5.
2022-07-03 17:44:34 +02:00
0328664bb5 Mono: Update Newtonsoft.Json to 13.0.1
See https://github.com/advisories/GHSA-5crp-9r3c-p9vr

(cherry picked from commit 870c02143b)
2022-06-24 11:19:38 +02:00
ef701d6c27 Update android:targetSdkVersion from 30 to 31
Starting in August 2022, new apps will need to target API level 31 (Android 12) or higher and adjust for behavioral changes.

Read more here: https://developer.android.com/google/play/requirements/target-sdk

(cherry picked from commit ec6d5d6cba)
2022-06-23 16:00:07 +02:00
716e4e0c2e Handle CLI arguments without a value in OS.get_cmdline_args() example
Command lines such as `--host --address 127.0.0.1` are now parsed as
`{"host": "", "address": "127.0.0.1"}`.

(cherry picked from commit 99d9228a2e)
2022-06-19 14:14:43 +02:00
49fc84da4a Improve CurveTexture documentation
(cherry picked from commit 87f22083af)
2022-06-19 14:14:01 +02:00
8f59e837a8 Remove extra codeblock tag from ProximityGroup classref
(cherry picked from commit c197e11363)
2022-06-19 14:13:06 +02:00
5446443504 added info on microphone sample format
(cherry picked from commit eb5a42d0bc)
2022-06-19 14:12:53 +02:00
230a047d5f draw_circle() draws a filled circle
(cherry picked from commit adccb9fd60)
2022-06-19 14:12:36 +02:00
da0ade279b Fix rigid body damp description (3.x)
(cherry picked from commit c0ecbeaf6f)
2022-06-19 14:12:07 +02:00
bccc403823 Change instances of "returns an empty Variant" to "returns null" in docs
While "returns an empty Variant" technically valid (it's constructed
as `Variant()` in C++), "returns null" is more intuitive to users.

(cherry picked from commit 109f968171)
2022-06-19 14:11:56 +02:00
05a48a189a Fix class name : change "string" to "String"
Change case of "s" letter : "string" does not compile but "String" does (for gdScript)

(cherry picked from commit 55b63eceaa)
2022-06-19 14:11:39 +02:00
dda6066c33 Improve documentation of rand_range
(cherry picked from commit 84cc0c9c47)
2022-06-19 14:11:10 +02:00
49282b59d6 Document Shape2D's collide_and_get_contacts() and collide_with_motion_and_get_contacts()
Expand on the format of the output array for collide_and_get_contacts and collide_with_motion_and_get_contacts, and describe how the contact point pairs can be used to calculate collision normals and depths.

(cherry picked from commit bdf086c781)
2022-06-19 14:10:29 +02:00
cde4ed1d21 Improve documentation for Camera3D.project_ray_{normal,origin}
This mentions that internally, the inverse camera projection is used
to perform projections.

(cherry picked from commit fbec10179a)
2022-06-19 14:09:45 +02:00
afe8492241 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-06-19 14:06:55 +02:00
8d287957f9 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
ConteZero, fire-forge, IgorKordiukiewicz, iwek7, klowner,
pfertyk, smix8

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit f8d3388d9b)
2022-06-16 20:56:24 +02:00
c02325ffda Merge pull request #60793 from akien-mga/3.4-cherrypicks 2022-05-05 16:56:06 +02:00
3993510fc6 Tree::get_edited Fix in docs example code
(cherry picked from commit b0bcbcc094)
2022-05-05 15:47:02 +02:00
4c5d2159f5 Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@b7d126eb71

(cherry picked from commit 30fbb8964d)
2022-05-05 15:47:02 +02:00
d519a97104 [JS] Add flag to disable weak symbols in ZSTD.
Weak symbols are currently broken in upstream emscripten.

(cherry picked from commit 070bd87aaa)
2022-05-05 15:47:02 +02:00
80d46acf5d Added missing signature.
(cherry picked from commit a4c3e915be)
2022-05-05 15:47:01 +02:00
33bcf1c5d1 Clarify InputMap.action_get_events() in the editor
(cherry picked from commit 5235584066)
2022-05-05 15:47:01 +02:00
38c23419d9 Fix simulatenous touches for different touch types
(cherry picked from commit a6f06d57dc)
2022-05-05 15:47:01 +02:00
62c48a0cf9 Change 'throws an error' to 'prints an error' in classref
(cherry picked from commit a89b3f872d)
2022-05-05 15:47:01 +02:00
54808aa460 Check for null when retrieving clip data item text on Android
(cherry picked from commit 5924e2b90e)
2022-05-05 15:47:01 +02:00
0b60e924d9 Replaced loops_current with end_loop
(cherry picked from commit c526ee6683)
2022-05-05 15:47:01 +02:00
01ba2e5e81 Expose tile_texture property
(cherry picked from commit 0b5289cadf)
2022-05-05 15:47:01 +02:00
40c9d01cb5 Relax version warning in clang-format precommit hook
Closes #60778.

(cherry picked from commit 9e66a947e4)
2022-05-05 15:39:59 +02:00
e55e56b5fc SCons: Don't enable any -Werror=return-type outside werror=yes
We shouldn't presume that future compilers will not have false positives or
find new occurrences of this warning, which would break compiling old versions
of the engine without passing custom `CXXFLAGS`.

Follow-up to #60652.

(cherry picked from commit e55d30768a)
2022-05-05 15:18:56 +02:00
916f3d7c3c SCons: Disable -Werror=return-type for GCC 12+ due to regression
Works around and thus closes #58747.
Supersedes #60613.

(cherry picked from commit 01f8f17b67)
2022-05-05 15:18:49 +02:00
f7930560c3 SpaceBullet::recover_from_penetration: skip compound shapes without child shapes
Before, this case would incorrectly get caught as an error, causing an
early return, in particular skipping other possibly relevant shapes.

(cherry picked from commit 887a5cd4f9)
2022-05-05 15:18:30 +02:00
dba3a8d2aa Document workarounds for 2D line and polygon antialiasing
(cherry picked from commit 1bdcba2d76)
2022-05-05 15:18:18 +02:00
290e10fdf9 Update Meta hand tracking version
https://developer.oculus.com/blog/presence-platforms-hand-tracking-api-gets-an-upgrade/
(cherry picked from commit 32ace78a3e)
2022-05-05 15:18:03 +02:00
a3f91b9fdc Fix left aligned integer sign in string formatting
(cherry picked from commit 767134fd8d)
2022-05-05 15:17:52 +02:00
698dc5cae8 Document the ProximityGroup class
Co-authored-by: MJacred <loesch.benny92@gmx.de>
(cherry picked from commit fb345a924d)
2022-05-05 15:17:42 +02:00
9fec145ebe Improve documentation for tonemapping operators
(cherry picked from commit 035cb7fcb0)
2022-05-05 15:17:29 +02:00
62b3855ce7 Fixed implementation of RTL remove_line()
Co-authored-by: Eric M <itsjusteza@gmail.com>
(cherry picked from commit ff381f6e84)
2022-05-05 15:16:27 +02:00
twi
06ac7dc21f Update link to vector2_angle_to_point.png
(cherry picked from commit 718533552c)
2022-05-05 15:16:08 +02:00
a3d032eea3 Fix UndoRedo in Gradient editor
(cherry picked from commit a384031326)
2022-05-05 15:15:36 +02:00
694aef9ae5 Linux: Use pkg-config for alsa, libudev and GL too
It's not needed on most distros as those are found in standard lib
and include paths, but on NixOS they're all in non-standard prefixes,
so we need to rely on information provided by pkg-config.

Fixes #59913.

Co-authored-by: David Lewis <davidalewis00@gmail.com>
(cherry picked from commit 07ad066420)
2022-05-05 15:15:10 +02:00
5ca5e7d0c0 Fix custom class icon when it inherits from a script
(cherry picked from commit 42448d7587)
2022-05-05 15:14:42 +02:00
bfe54e4d44 Document that glTF classes are only usable in editor builds
Run-time glTF saving/loading is only available in Godot 4.0,
not Godot 3.x.

(cherry picked from commit 3a8104289d)
2022-05-05 15:13:11 +02:00
72498a3ced mesh_surface_get_format_offset and mesh_surface_get_format_stride will now provide an error with an invalid array index
(cherry picked from commit 8e57aae57d)
2022-05-05 15:13:00 +02:00
467c2c5d4b Fixes the copy paste issue in the visual script editor.
Moves copy and paste in their own functions so copy_nodes_request and paste_nodes_request are able to work.
Applies paste offset to the last mouse clicked position.

(cherry picked from commit fb7c23f30b)
2022-05-05 15:12:44 +02:00
d9ad611639 Fix EditorProperty text and icon overlap bugs
(cherry picked from commit dbc380af59)
2022-05-05 15:12:24 +02:00
db5bfa398a Fixed #59985 leading spaces autowrap boundary problem
Bug problem:
No condition for when the first character of the label is a space character

Fix:
Added an IF condition for when the first character is a space character
The autowrap boundary treat this space character as another dummy word in the WordCache linked list and proceed to function normally, by detecting when line width is 0

(cherry picked from commit c0513268bd)
2022-05-05 15:11:49 +02:00
355c73de32 Fix undo history for function name autocompletion
(cherry picked from commit 19a0145742)
2022-05-05 15:11:26 +02:00
5816a26c04 Merge pull request #60205 from akien-mga/3.4-cherrypicks 2022-04-13 15:51:01 +02:00
1a95a0e999 Fix popup dialog UI in AnimationTreePlayer editor
(cherry picked from commit 65aac2cfae)
2022-04-13 12:18:45 +02:00
60184f08f4 Add a note about collisions in different canvases.
(cherry picked from commit b9c91d620e)
2022-04-13 12:18:45 +02:00
12ca7fbfe3 Fix Visual Script's jump to function relative to zoom
When double-clicking on a function name the graph will now correctly jump to the function relative to the zoom ratio.

(cherry picked from commit e8a326a08f)
2022-04-13 12:18:45 +02:00
f0b0a244b0 Fix GraphEdit's valid connections being reversed
(cherry picked from commit b29aff8dac)
2022-04-13 12:18:45 +02:00
3d4af8117d Fix toggling GraphEdit's minimap with minimap_enabled
Fixes #53831.

(cherry picked from commit b1441bbcfc)
2022-04-13 12:18:45 +02:00
5b098bf41b Clarify Array.erase for nonexistant element.
The docs specify that Array.remove does nothing if the index does not
exist. Array.erase does not have a similar phrase, so it's unclear if
erase will print an error, or silently do nothing.

(cherry picked from commit f84e2db35e)
2022-04-13 12:18:45 +02:00
52f6ec2ea7 Fix TouchScreenButton error spam
(cherry picked from commit db19cc60fb)
2022-04-13 12:18:45 +02:00
6a788fe7a3 Fixing some of my own typos...
(and a little improvement to wording that was bugging me)

(cherry picked from commit 05718796db)
2022-04-13 12:18:45 +02:00
6432d53f10 Fix capitalization of boolean output in classref
(cherry picked from commit 94a5f9edb0)
2022-04-13 12:18:45 +02:00
fcd8ff1ad4 zlib/minizip: Update to version 1.2.12
Security update, fixes CVE-2018-25032 in zlib.

Preliminary assessment doesn't show Godot as affected since we don't
seem to call `deflate` with the problematic parameters, but the extent
of the vulnerability is not fully clear upstream yet.

(cherry picked from commit 420d0d50bc)
2022-04-13 12:18:45 +02:00
4ac1a79514 Cleanup and reorder .gitignore
Group things better in categories, and remove a ton of VS junk.
Some of it might still be needed and could need to be re-added.

(cherry picked from commits 1f1edaa1b5
and b0df742cbe)
2022-04-13 12:18:45 +02:00
4640071104 Clip animation track keyframe rects
(cherry picked from commit c7e06e2202)
2022-04-13 12:18:45 +02:00
3850d6db76 BulletPhysicsServer::area_get_space: null check
This is now the same as e.g. body_get_space.

(cherry picked from commit 79317f9cb1)
2022-04-13 12:18:45 +02:00
b95221fb0a fix unable to change directory in user access mode
(cherry picked from commit c69689ab5a)
2022-04-13 12:18:45 +02:00
3680cfde86 Fix crash when passing null to AudioStreamPlayer::set_stream()
(cherry picked from commit 9e2d5120c1)
2022-04-13 12:18:45 +02:00
661da8f9dd Fix crash in AudioServer when switching audio devices with different audio channels count (connecting PS5 controller, bluetooth 5.1 headphones etc.)
(cherry picked from commit df39e0f472)
2022-04-13 12:18:45 +02:00
d87f9ad419 Fix X11 is_window_maximized
(cherry picked from commit 59fb6c9ef0)
2022-04-13 12:18:45 +02:00
95252110c5 Improve documentation related to 3D material vertex lighting
(cherry picked from commit 4e6dfac969)
2022-04-13 12:18:45 +02:00
152c4c7434 Clarify what set_as_toplevel() does in CanvasItem
(cherry picked from commit 196c4fff13)
2022-04-13 12:18:45 +02:00
8b8bafbd53 Fix crash when using Camera2D::set_custom_viewport()
(cherry picked from commit b89befe173)
2022-04-13 12:18:45 +02:00
883c3dc413 [3.x] instance audio streams before AudioServer::lock call
(cherry picked from commit 027546ee8a)
2022-04-13 12:18:45 +02:00
64d3520faf doc: Fix String.rsplit code example
Fixes #36898.
Supersedes and closes #36951.

(cherry picked from commit e7fd0ec31f)
2022-04-13 12:18:45 +02:00
91c7c40d50 Document how to specify explicit value for PROPERTY_HINT_ENUM names
(cherry picked from commit 405bc96a1e)
2022-04-13 12:18:45 +02:00
3a16557642 Avoid modifying csproj globbing includes on remove
Check if the found globbing include already matches the given path on
removing scripts to avoid modifying users' csproj files.

(cherry picked from commit 3086d7c035)
2022-04-13 12:18:44 +02:00
a7ccdfcc53 Bump version to 3.4.5-rc 2022-04-13 12:18:18 +02:00
419e713a29 Bump version to 3.4.4-stable 2022-03-22 10:47:22 +01:00
f9a67aaae4 Add changelog for Godot 3.4.4 2022-03-22 10:46:43 +01:00
0335369e48 Update AUTHORS and DONORS list
New contributor added to AUTHORS:
rburing

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit a4b075596f)
2022-03-22 10:30:10 +01:00
d298cceeaa update _init() description
Specify details regarding required parameters.

(cherry picked from commit 21fc3cbe81)
2022-03-22 09:29:33 +01:00
91ba6f7895 Document that PhysicsServer's get_process_info is implemented only for Godot Physics
(cherry picked from commit 812d45ea7c)
2022-03-22 08:57:28 +01:00
4ae0adbf2c Fix inversed ADD_GROUP parameters in AnimationNodeOneShot
(cherry picked from commit 6a3bf65657)
2022-03-22 08:57:18 +01:00
b5ff9fd7c4 Mention that Node's owner must be set for persistence to work
This is already done in `Node.add_child()` documentation, but
this copies the note in `Node.owner` for good measure.

(cherry picked from commit be1acf3b92)
2022-03-22 08:56:36 +01:00
b86b4e5004 Fix DST Error on Windows
(cherry picked from commit 4802f15231)
2022-03-17 13:36:19 +01:00
451d3d378c Setup logic to publish the Godot Android library to MavenCentral
(cherry picked from commit a2bf47de2b)
2022-03-17 13:06:34 +01:00
5d1858dcea Document Range's value_changed signal is also emitted with code changes
This also mentions that the signal is potentially emitted every frame,
which can have performance implications.

(cherry picked from commit cdbb31adc9)
2022-03-17 13:06:15 +01:00
9029e5d66f Include platform_config.h in thread.cpp and thread.h
(cherry picked from commit 6c6291b84f)
2022-03-17 13:05:47 +01:00
776bca2488 Fix crash on get index for non-existing string
As _buttons and _axes have both valid string and nullptr.
When iterating over them, if given key exists it will work correctly.
But if given key does not exist, it will end up with
String::operator=(nullptr). As String constructor from nullptr exists, I
use it.

(cherry picked from commit c77b710035)
2022-03-17 13:05:35 +01:00
1a5b379a68 Update documentation for Control rect_pivot_offset to include rotation
(cherry picked from commit d2c0ee700a)
2022-03-17 13:05:17 +01:00
69e9e8f87d Merge pull request #59159 from RandomShaper/fix_blend_shapes_3.4 2022-03-15 11:22:18 +01:00
d780a0c8db Fix broken normals in meshes with blend shapes 2022-03-15 10:25:09 +01:00
c3d7c4d41c Revert "Fix detected leaks/heap-use-after-free by AddressSanitizer at startup"
This reverts commit 0ae6150d8e.

It broke `detect_prime`'s main purpose which is to detect GPUs and use
the best one available.
2022-03-15 09:33:11 +01:00
0ae6150d8e Fix detected leaks/heap-use-after-free by AddressSanitizer at startup
(cherry picked from commit 3f94ea6271)
2022-03-13 18:14:54 +01:00
c594e1c0cc Fix crash when is-operator right-hand-side is null
(cherry picked from commit 871a73341b)
2022-03-13 18:14:53 +01:00
1f4dda2138 Merge pull request #59109 from akien-mga/3.4-cherrypicks 2022-03-13 17:19:05 +01:00
7adead25ea Fix RichTextLabel shadow color when text has transparency
(cherry picked from commit 7d219b6793)
2022-03-13 16:09:29 +01:00
496d2843c4 Hide smart snapping line when guideline dragging ends
(cherry picked from commit b255efba7c)
2022-03-13 15:35:46 +01:00
5c64f0d7bf Prevent non-smoothed face normals to participate to smoothed face normals
(cherry picked from commit ec2984f7c7)
2022-03-13 15:35:33 +01:00
d57b7cb0e5 Clarify the position of points in Curve{2D,3D}.add_point()
(cherry picked from commit 35c8d332b5)
2022-03-13 15:35:05 +01:00
69c3abedf0 Correct docs for Environment background keep mode
The docs incorrectly stated that KEEP was the fastest mode. This is not the case with modern hardware.

(cherry picked from commit bc924d4b41)
2022-03-13 15:34:45 +01:00
e7d9a40a8b Fix documentation about depth and width of Height map
(cherry picked from commit 2cafaf3adb)
2022-03-13 15:34:33 +01:00
bd47f7aebb Fix normals computation at the 'seam' of smoothed torus shape
(cherry picked from commit 8bcbaff411)
2022-03-13 15:34:19 +01:00
36aa94502c Fix alpha scissor support
(cherry picked from commit 2fb998bfbc)
2022-03-13 15:32:49 +01:00
4594c96dae Revert #52647
(cherry picked from commit 9c312c486c)
2022-03-13 15:32:01 +01:00
cf3497ce78 Fix deleting of directories on Linux
Trailing slash of directories was mishandled, and incorrect derived paths
were formed. Stripping the slash fixes this.

(cherry picked from commit 2c00b90613)
2022-03-12 15:07:17 +01:00
6c3cfc72e2 Fix incorrect buffer upload size in GLES2 draw_gui_primitive
The buffer upload size appears to have been incorrect for quite some time, which causes uploading from undefined memory.

(cherry picked from commit 3dc0e97d05)
2022-03-11 16:33:33 +01:00
ecac71ff5e Fix text color of TileMap editor info overlay
(cherry picked from commit 86bcac5a5e)
2022-03-10 15:59:08 +01:00
6b4d7d20a4 Revert "[HTML5] Fetch API now passes credentials."
(cherry picked from commit 63df46c238)
2022-03-07 14:40:42 +01:00
fd21478f43 Revert "Fix ProjectSettings has_setting() when used on a overriden setting with feature tags"
(cherry picked from commit 78bf9926f8)
2022-03-07 14:40:34 +01:00
cb66b672d7 GLES2: Fix VersionKey comparison in ShaderGLES2::bind()
This was comparing arrays, GCC 12 raises a warning for it:

```
drivers/gles2/shader_gles2.cpp: In member function 'bool ShaderGLES2::bind()':
drivers/gles2/shader_gles2.cpp:80:71: error: comparison between two arrays [-Werror=array-compare]
   80 |         if (active != this || !version || new_conditional_version.key != conditional_version.key) {
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gles2/shader_gles2.cpp:80:71: note: use unary '+' which decays operands to pointers or '&'component_ref' not supported by dump_decl<declaration error>[0] != &'component_ref' not supported by dump_decl<declaration error>[0]' to compare the addresses
```

(cherry picked from commit 76df26b110)
2022-03-07 14:39:46 +01:00
5bd75bccae Fix normals computation at the 'seam' of smoothed sphere and cylinder shapes
(cherry picked from commit 509e03c821)
2022-03-07 14:39:30 +01:00
2c88a947c1 Fixed issue where Extend Script option would show up even without script attached to the node
(cherry picked from commit dc361d3201)
2022-03-07 08:33:41 +01:00
56d3abdbcc GLES2 Compression on Blend Shapes Fix
When compressed vertex positions are used in a blend shapes mesh, we
need to make sure we set the w-component of the position vector to 1.0

When octahedral compression is used on normals/tangents, they need to be
converted to cartesian floats to be used for blend shapes

This conversion also changes the number of components of that vertex
attribute, which caused issues because previously there was an
assumption that you had the same number of components in the blend shape
buffer as you did in the original mesh's buffer (which is not true for
oct norm/tang)

(cherry picked from commit 733a84f7a4)
2022-03-07 08:31:24 +01:00
fb9aa26b9d Fix shader state caching when blend shapes used
Previously, conditionals set on the shader would change outside of the
_render_list function when blend shapes were used

This is an issue because the function keeps track of the previous shader
state to try to minimize state changes

Now we keep all this shader state change within the _render_list
function to ensure the saved previous state is correct

(cherry picked from commit 9988739332)
2022-03-07 08:31:08 +01:00
5e83677408 fix cubic interpolate when looping 3.x
Co-authored-by: robfram <robfram@gmail.com>
(cherry picked from commit 7b9a912ff6)
2022-03-07 08:30:45 +01:00
4b1ee744c7 Merge pull request #58682 from akien-mga/3.4-cherrypicks 2022-03-02 17:59:03 +01:00
855a079664 Portals - fix duplication of instanced scenes during conversion
During room conversion, if a prefixed Spatial is converted to a Room / RoomGroup etc, when using instanced scenes the owner was incorrectly set, resulting in the instanced scene objects being duplicated.

This PR corrects this.

(cherry picked from commit 4ec4b5a60d)
2022-03-02 12:07:54 +01:00
a57dc1881b Joint2D and Joint: make set_exclude_nodes_from_collision respect signals
(cherry picked from commit 322e3a9567)
2022-03-02 12:07:26 +01:00
fb6394f58c Joint2D and Joint: update joint on NOTIFICATION_POST_ENTER_TREE
This allows reparenting, etc.

(cherry picked from commit f197e5eebb)
2022-03-02 12:07:21 +01:00
fbd74ae941 Make string inside TTR() single-line
(cherry picked from commit 1348f868c9)
2022-03-02 12:07:01 +01:00
8e5a3a3019 AreaSW and Area2DSW: fix premature return in call_queries
(cherry picked from commit 89ce63a84f)
2022-03-02 12:06:42 +01:00
93efa57823 Revert "PitchShift effect quality and performance tweaks for different pitch scale values"
(cherry picked from commit dae0135ae5)
2022-03-02 12:03:06 +01:00
719f4cd5e5 Fix UndoRedo::create_action() invalid memory usage
(cherry picked from commit b00b7f9b7c)
2022-03-02 12:03:06 +01:00
0cb1d17d22 [iOS] Fix multitouch not working correctly
(cherry picked from commit 15ef056997)
2022-03-01 11:05:03 +01:00
22f50490c2 Print every file exported with PCKPacker.flush()s verbose parameter
Previously, only one line per 100 files was printed.

This also refactors the print statement to use Godot methods and
make it more informative overall.

(cherry picked from commit 8e57e5dc6a)
2022-03-01 11:02:59 +01:00
d35d49171f Added or improved documentation to a few more String methods
(cherry picked from commit f159e7e5ab)
2022-03-01 10:56:09 +01:00
77ba87be88 Update doc for match: empty argument doesn't match anything
(cherry picked from commit 70ae6c21de)
2022-03-01 10:53:01 +01:00
7a8b728043 Bump version to 3.4.4-rc 2022-03-01 10:50:58 +01:00
439 changed files with 41840 additions and 20808 deletions

634
.gitignore vendored
View File

@ -1,54 +1,165 @@
# Godot auto generated files
*.gen.*
.import/
# Godot .gitignore config
#
# Aims to encompass the most commonly found files that we don't want committed
# to Git, such as compilation output, IDE specific files, etc.
#
# It doesn't cover *all* thirdparty IDE extensions under the sun so if you have
# specific needs covered here, you can add them to:
# .git/info/exclude
#
# Or contribute them to this file if they're common enough that a good number of
# users would benefit from the shared rules.
#
# This file is organized by sections, with subsections ordered alphabetically.
# - Build configuration
# - Godot generated files
# - General build output
# - IDE and tool specific
# - Visual Studio specific
# - OS specific
# Documentation generated by doxygen or from classes.xml
###########################
### Build configuration ###
###########################
/custom.py
#############################
### Godot generated files ###
#############################
# Buildsystem
bin/
*.gen.*
compile_commands.json
platform/windows/godot_res.res
# Generated by Godot binary
.import/
extension_api.json
logs/
# Generated by unit tests
tests/data/*.translation
############################
### General build output ###
############################
# C/C++ generated
*.a
*.ax
*.d
*.dll
*.lib
*.lo
*.o
*.os
*.ox
*.Plo
*.so
# Binutils tmp linker output of the form "stXXXXXX" where "X" is alphanumeric
st[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]
# Python generated
__pycache__/
*.pyc
# Documentation
doc/_build/
# Javascript specific
# Android
.gradle/
local.properties
*.iml
.gradletasknamecache
project.properties
platform/android/java/*/.cxx/
platform/android/java/*/build/
platform/android/java/*/libs/
# iOS
*.dSYM
# Javascript
*.bc
# Misc
*.debug
#############################
### IDE and tool specific ###
#############################
# Automake
.deps/*
.dirstamp
# ccls
.ccls-cache/
# clangd
.clangd/
.cache/
# CLion
cmake-build-debug
# Android specific
.gradle
local.properties
*.iml
.idea
.gradletasknamecache
project.properties
platform/android/java/app/libs/*
platform/android/java/libs/*
platform/android/java/lib/.cxx/
platform/android/java/nativeSrcsConfigs/.cxx/
# Code::Blocks
*.cbp
*.layout
*.depend
# General c++ generated files
*.lib
*.o
*.ox
*.a
*.ax
*.d
*.so
*.os
*.Plo
*.lo
# Binutils tmp linker output of the form "stXXXXXX" where "X" is alphanumeric
st[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]
# CodeLite
*.project
*.workspace
.codelite/
# Libs generated files
.deps/*
.dirstamp
# Cppcheck
*.cppcheck
cppcheck-cppcheck-build-dir/
# Gprof output
# Eclipse CDT
.cproject
.settings/
*.pydevproject
*.launch
# Gcov and Lcov code coverage
*.gcno
*.gcda
*.gcov.html
*.func.html
*.func-sort-c.html
*index-sort-f.html
*index-sort-l.html
*index.html
godot.info
amber.png
emerald.png
glass.png
ruby.png
snow.png
updown.png
gcov.css
# Geany
*.geany
.geanyprj
# Gprof
gmon.out
# Vim temp files
*.swo
*.swp
# Jetbrains IDEs
.idea/
# Qt project files
# Kate
*.kate-swp
# Kdevelop
*.kdev4
# Qt Creator
*.config
*.creator
*.creator.*
@ -57,272 +168,16 @@ gmon.out
*.cflags
*.cxxflags
# Code::Blocks files
*.cbp
*.layout
*.depend
# Eclipse CDT files
.cproject
.settings/
*.pydevproject
*.launch
# Geany/geany-plugins files
*.geany
.geanyprj
# Jetbrains IDEs
.idea/
# Misc
.DS_Store
__MACOSX
logs/
# for projects that use SCons for building: http://http://www.scons.org/
# SCons
.sconf_temp
.sconsign*.dblite
*.pyc
.scons_env.json
.scons_node_count
# https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
*.sln
*.vcxproj*
# Custom SCons configuration override
/custom.py
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
*.debug
*.dSYM
# Visual Studio cache/options directory
.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# Hints for improving IntelliSense, created together with VS project
cpp.hint
#NUNIT
*.VisualState.xml
TestResult.xml
*.o
*.a
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.bak
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
*.nib
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.opendb
*.VC.VC.opendb
enc_temp_folder/
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# CodeLite project files
*.project
*.workspace
.codelite/
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/*
## TODO: If the tool you use requires repositories.config, also uncomment the next line
#!packages/repositories.config
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
!packages/build/
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
__pycache__/
# KDE
.directory
# Kdevelop project files
*.kdev4
# Kate swap files
*.kate-swp
# Xcode
xcuserdata/
*.xcscmblueprint
*.xccheckout
*.xcodeproj/*
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# =========================
# Windows detritus
# =========================
# Windows image file caches
[Tt]humbs.db
[Tt]humbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Windows stackdumps
*.stackdump
# Windows shortcuts
*.lnk
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
logo.h
*.autosave
# Sourcetrail
*.srctrl*
# Tags
# https://github.com/github/gitignore/blob/master/Global/Tags.gitignore
# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
TAGS
@ -338,33 +193,172 @@ cscope.files
cscope.out
cscope.in.out
cscope.po.out
godot.creator.*
projects/
platform/windows/godot_res.res
# Vim
*.swo
*.swp
# Visual Studio 2017 and Visual Studio Code workspace folder
/.vs
/.vscode
# Visual Studio Code workspace file
# Visual Studio Code
.vscode/
*.code-workspace
.history/
# Scons construction environment dump
.scons_env.json
# Xcode
xcuserdata/
*.xcscmblueprint
*.xccheckout
*.xcodeproj/*
# Scons progress indicator
.scons_node_count
##############################
### Visual Studio specific ###
##############################
# ccls cache (https://github.com/MaskRay/ccls)
.ccls-cache/
# https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# Ignore Visual Studio temporary files, build results, and
# files generated by popular Visual Studio add-ons.
# compile commands (https://clang.llvm.org/docs/JSONCompilationDatabase.html)
compile_commands.json
# Actual VS project files we don't use
*.sln
*.vcxproj*
# Cppcheck
*.cppcheck
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# https://clangd.llvm.org/ cache folder
.clangd/
.cache/
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Visual Studio 2017 auto generated files
Generated\ Files/
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# Others
ClientBin/
~$*
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# Hint file for IntelliSense
cpp.hint
###################
### OS specific ###
###################
# Linux
*~
.directory
# macOS
.DS_Store
__MACOSX
# Windows
# https://github.com/github/gitignore/blob/main/Global/Windows.gitignore
[Tt]humbs.db
[Tt]humbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

View File

@ -36,9 +36,11 @@ Eveline Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com>
Fabian <supagu@gmail.com>
Ferenc Arn <tagcup@yahoo.com>
Ferenc Arn <tagcup@yahoo.com> <tagcup@users.noreply.github.com>
FireForge <67974470+fire-forge@users.noreply.github.com> <isaacr.7.2005@gmail.com>
foxydevloper <12120644+foxydevloper@users.noreply.github.com>
Fredia Huya-Kouadio <fhuyakou@gmail.com>
Fredia Huya-Kouadio <fhuyakou@gmail.com> <fhuya@google.com>
Fredia Huya-Kouadio <fhuyakou@gmail.com> <fhuya@fb.com>
Geequlim <geequlim@gmail.com>
Gilles Roudiere <gilles.roudiere@gmail.com>
Gilles Roudiere <gilles.roudiere@gmail.com> <gilles.roudiere@laas.fr>
@ -56,6 +58,7 @@ Ignacio Etcheverry <ignalfonsore@gmail.com> <neikeq@users.noreply.github.com>
Ilaria Cislaghi <cislaghi.ilaria@gmail.com>
Ilaria Cislaghi <cislaghi.ilaria@gmail.com> <ilaria.cislaghi@simedis.com>
Indah Sylvia <ISylvox@yahoo.com>
iwek <miwanczuk7@gmail.com>
J08nY <johny@neuromancer.sk> <jancar.jj@gmail.com>
J08nY <johny@neuromancer.sk> <J08nY@users.noreply.github.com>
Jake Young <young9003@gmail.com>
@ -126,6 +129,7 @@ RaphaelHunter <raphael10241024@gmail.com> <raphael20141024@gmail.com>
Rémi Verschelde <rverschelde@gmail.com> <remi@verschelde.fr>
Rhody Lugo <rhodylugo@gmail.com> <rhodylugo@me.com>
Ricardo Subtil <ricasubtil@gmail.com>
Rindbee <idleman@yeah.net>
Robin Hübner <profan@prfn.se> <robinhubner@gmail.com>
romulox_x <romulox_x@yahoo.com>
Ruslan Mustakov <r.mustakov@gmail.com> <ruslan.mustakov@xored.com>
@ -137,12 +141,14 @@ Swarnim Arun <swarnimarun11@gmail.com>
Theo Hallenius <redsymbzone@hotmail.com>
Tomasz Chabora <kobewi4e@gmail.com>
Twarit <wtwarit@gmail.com>
Vitika9 <vitika.program@gmail.com>
V.VamsiKrishna <vk@bsb.in> <vamsikrishna.v@gmail.com>
Wilhem Barbier <nounoursheureux@openmailbox.org> <wilhem.b@free.fr>
Wilhem Barbier <nounoursheureux@openmailbox.org> <schtroumps31@gmail.com>
Will Nations <willnationsdev@gmail.com>
yg2f <yoann@terminajones.com>
Yuri Sizov <yuris@humnom.net> <pycbouh@users.noreply.github.com>
Yuri Sizov <yuris@humnom.net> <yaschik4ilicha@gmail.com>
Zae <zaevi@live.com>
Zak Stam <zakscomputers@hotmail.com>
Zher Huei Lee <lee.zh.92@gmail.com>

View File

@ -52,7 +52,6 @@ name is available.
Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau)
Bruno Lourenço (MadEqua)
bruvzg
Cameron Reikes (creikey)
Camille Mohr-Daurat (pouleyKetchoupp)
Caner Demirer (cdemirer)
@ -60,11 +59,12 @@ name is available.
Carter Anderson (cart)
Chris Bradfield (cbscribe)
Clay John (clayjohn)
ConteZero
Dana Olson (adolson)
Daniel J. Ramirez (djrm)
Daniel Rakos (aqnuep)
dankan1890
Danil Alexeev (dalexeev)
dankan1890
David Cambré (Gallilus)
David Sichma (DavidSichma)
David Snopek (dsnopek)
@ -84,8 +84,9 @@ name is available.
Eveline Jarosz (Marqin)
Fabian Mathews (supagu)
Fabio Alessandrelli (Faless)
fabriceci
Fabrice Cipolla (fabriceci)
Ferenc Arn (tagcup)
FireForge (fire-forge)
follower
foxydevloper
François Belair (Razoric480)
@ -109,6 +110,7 @@ name is available.
Ian Bishop (ianb96)
Ibrahn Sahir (ibrahn)
Ignacio Etcheverry (neikeq)
Igor Kordiukiewicz (IgorKordiukiewicz)
Ilaria Cislaghi (QbieShay)
Indah Sylvia (ISylvox)
J08nY
@ -119,8 +121,8 @@ name is available.
Jérôme Gully (Nutriz)
Jia Jun Chai (SkyLucilfer)
Joan Fons Sanchez (JFonS)
Johannes Witt (HaSa1002)
Johan Manuel (29jm)
Johannes Witt (HaSa1002)
Jordan Schidlowsky (winterpixelgames)
Joshua Grams (JoshuaGrams)
Juan Linietsky (reduz)
@ -150,6 +152,7 @@ name is available.
Mariano Javier Suligoy (MarianoGnu)
Mario Schlack (hurikhan)
Marios Staikopoulos (marstaik)
Mark Riedesel (klowner)
Markus Sauermann (Sauermann)
Martin Capitanio (capnm)
Martin Liška (marxin)
@ -163,6 +166,7 @@ name is available.
merumelu
Meru Patel (Janglee123)
Michael Alexsander (YeldhamDev)
Michał Iwańczuk (iwek7)
MichiRecRoom (LikeLakers2)
Morris "Tabor" Arroad (mortarroad)
mrezai
@ -182,6 +186,8 @@ name is available.
Paul Batty (Paulb23)
Paul Joannon (paulloz)
Paul Trojahn (ptrojahn)
Pāvels Nadtočajevs (bruvzg)
Paweł Fertyk (pfertyk)
Pawel Kowal (pkowal1982)
Pawel Lampe (Scony)
Pedro J. Estébanez (RandomShaper)
@ -197,6 +203,7 @@ name is available.
Ray Koopa (RayKoopa)
Rémi Verschelde (akien-mga)
Rhody Lugo (rraallvv)
Ricardo Buring (rburing)
Ricardo Subtil (Ev1lbl0w)
Roberto F. Arroyo (robfram)
Robin Hübner (profan)
@ -211,6 +218,7 @@ name is available.
Shiqing (kawa-yoiko)
Silc 'Tokage' Renew (TokageItLab)
Simon Wenner (swenner)
smix8
Stijn Hinlopen (hinlopen)
Swarnim Arun (minraws)
TC (floppyhammer)
@ -224,6 +232,7 @@ name is available.
Twarit Waikar (IronicallySerious)
Umang Kalra (theoway)
Vinzenz Feenstra (vinzenz)
Vitika Soni (Vitika9)
박한얼 (volzhs)
V. Vamsi Krishna (vkbsb)
Wilhem Barbier (nounoursheureux)
@ -232,9 +241,10 @@ name is available.
Wilson E. Alvarez (Rubonnek)
Xavier Cho (mysticfall)
yg2f (SuperUserNameMan)
Yuri Roubinsky (Chaosus)
Yuri Sizov (pycbouh)
Yuri Rubinsky (Chaosus)
Yuri Sizov (YuriSizov)
Zae Chao (zaevi)
Zak Stam (zaksnet)
Zher Huei Lee (leezh)
ZuBsPaCe
风青山 (Rindbee)

View File

@ -4,9 +4,192 @@ 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/).
## [3.4.5] - 2022-08-02
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-5) for details.
### Added
#### 2D
- Expose `tile_texture` property in TilesetEditorContext ([GH-60770](https://github.com/godotengine/godot/pull/60770)).
### Changed
#### Porting
- Android: Update target SDK version to API level 31 (Android 12) ([GH-62297](https://github.com/godotengine/godot/pull/62297)).
* This fulfills [Google Play requirements for August 2022](https://developer.android.com/google/play/requirements/target-sdk).
* When upgrading to 3.4.5 for projects using Android custom builds, you have to manually set the "Target Sdk" option to 31 in your export preset. For new presets, this is the new default value.
#### Rendering
- GLES3: Ignore support for S3TC texture compression on Android and iOS devices ([GH-62909](https://github.com/godotengine/godot/pull/62909)).
* Few devices support this compression while they all support ETC2. Godot exports ETC2 by default and doesn't take into account that mobile devices could need S3TC.
#### Thirdparty
- zlib/minizip updated to 1.2.12.
- mbedTLS updated to 2.28.1.
- CA certificates updated to 2022-03-31.
- SDL GameControllerDB updated to 2022-07-15.
#### XR
- XR: Update Meta hand tracking version ([GH-60639](https://github.com/godotengine/godot/pull/60639)).
### Fixed
#### Audio
- Instance audio streams before `AudioServer::lock()` call ([GH-59413](https://github.com/godotengine/godot/pull/59413)).
- Fix crash in AudioServer when switching audio devices with different audio channels count ([GH-59778](https://github.com/godotengine/godot/pull/59778)).
#### Animation
- Fix looping issue in AnimationNodeStateMachinePlayback with "At End" switch mode ([GH-60247](https://github.com/godotengine/godot/pull/60247)).
#### Buildsystem
- Fix creating VS solutions with SCons 4.4.0 ([GH-63722](https://github.com/godotengine/godot/pull/63722)).
#### Core
- Fix left aligned integer sign in string formatting ([GH-60679](https://github.com/godotengine/godot/pull/60679)).
#### Editor
- Fix popup dialog UI in AnimationTreePlayer editor ([GH-60200](https://github.com/godotengine/godot/pull/60200)).
- Fix EditorProperty icon overlapping text with checkbox ([GH-58125](https://github.com/godotengine/godot/pull/58125)).
- Fix custom class icon when it inherits from a script ([GH-60536](https://github.com/godotengine/godot/pull/60536)).
- Fix UndoRedo in Gradient editor ([GH-60401](https://github.com/godotengine/godot/pull/60401)).
- Fix crash when editing pinned StyleBox ([GH-61071](https://github.com/godotengine/godot/pull/61071)).
- Fix GridMap cursor showing the wrong mesh ([GH-58624](https://github.com/godotengine/godot/pull/58624)).
- Fix incorrect encoding used in error handling functions ([GH-61277](https://github.com/godotengine/godot/pull/61277)).
- Fix crash when drag-reordering array elements in the inspector ([GH-61282](https://github.com/godotengine/godot/pull/61282)).
- Fix scene tree dock focus after using "Add Child Node" button ([GH-61964](https://github.com/godotengine/godot/pull/61964)).
#### GDScript
- Fix editor undo history for function name autocompletion ([GH-60231](https://github.com/godotengine/godot/pull/60231)).
- Fix autocompletetion showing class names with an underscore ([GH-62731](https://github.com/godotengine/godot/pull/62731)).
#### GUI
- FileDialog: Fix support for changing directory in `user://` and `res://` modes ([GH-59838](https://github.com/godotengine/godot/pull/59838)).
- GraphEdit: Fix toggling minimap using the `minimap_enabled` property ([GH-57239](https://github.com/godotengine/godot/pull/57239)).
- GraphEdit: Fix valid connections types being reversed ([GH-60124](https://github.com/godotengine/godot/pull/60124)).
- Label: Fixed leading spaces pushing text outside autowrap boundary ([GH-60233](https://github.com/godotengine/godot/pull/60233)).
- LineEdit: Fix clear button position for asymmetric StyleBox ([GH-61496](https://github.com/godotengine/godot/pull/61496)).
- RichTextLabel: Fix implementation of `remove_line()` ([GH-60618](https://github.com/godotengine/godot/pull/60618)).
#### Import
- Fix glTF texture filename decoding ([GH-57685](https://github.com/godotengine/godot/pull/57685)).
#### Input
- Document that accumulated input is disabled by default ([GH-62664](https://github.com/godotengine/godot/pull/62664)).
* This is actually due to a regression in 3.4. It's kept disabled in this release for compatibility, but will be enabled by default in 3.5.
#### Mono (C#)
- Avoid modifying csproj globbing includes on remove ([GH-59521](https://github.com/godotengine/godot/pull/59521)).
- Fix `Transform.Translated` method affecting the original transform ([GH-63685](https://github.com/godotengine/godot/pull/63685)).
#### Physics
- Skip compound shapes without child shapes in `SpaceBullet::recover_from_penetration()` ([GH-59864](https://github.com/godotengine/godot/pull/59864)).
#### Porting
- Android: Fix crash when trying to paste non-text data from clipboard ([GH-60563](https://github.com/godotengine/godot/pull/60563)).
- iOS: Fix simultaneous touches for different touch types ([GH-60224](https://github.com/godotengine/godot/pull/60224)).
- iOS: Flush accumulated input events ([GH-62842](https://github.com/godotengine/godot/pull/62842)).
- Linux: Fix X11 `OS.is_window_maximized()` ([GH-59767](https://github.com/godotengine/godot/pull/59767)).
- Linux: Properly check for fullscreen toggle made through the Window Manager ([GH-62543](https://github.com/godotengine/godot/pull/62543)).
- UWP: Fix GDNative DLLs not being included on export ([GH-61262](https://github.com/godotengine/godot/pull/61262)).
- UWP: Flush accumulated input events ([GH-63341](https://github.com/godotengine/godot/pull/63341)).
- Windows: Fix `String.http_escape()` non-standard behavior with MinGW ([GH-61655](https://github.com/godotengine/godot/pull/61655)).
#### Rendering
- GLES2: Unpack blend shape arrays when necessary ([GH-60829](https://github.com/godotengine/godot/pull/60829)).
- GLES3: Unbind vertex buffer before calculating blend shapes ([GH-60832](https://github.com/godotengine/godot/pull/60832)).
- Portals: Force full check on adding moving object ([GH-61523](https://github.com/godotengine/godot/pull/61523)).
#### VisualScript
- Fix copy paste issue in the editor ([GH-54629](https://github.com/godotengine/godot/pull/54629)).
- Fix zoom handling in editor when jumping to functions ([GH-60016](https://github.com/godotengine/godot/pull/60016)).
## [3.4.4] - 2022-03-22
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-4) for details.
### Fixed
#### 3D
- CSG: Fix visible seam on smoothed sphere, cylinder, and torus shapes ([GH-58208](https://github.com/godotengine/godot/pull/58208), [GH-59002](https://github.com/godotengine/godot/pull/59002)).
- CSG: Fix mixed smoothed and non-smoothed face normals computation for CSG shapes ([GH-59039](https://github.com/godotengine/godot/pull/59039)).
- Portals: Fix duplication of instanced scenes during conversion ([GH-58650](https://github.com/godotengine/godot/pull/58650)).
#### Animation
- Fix cubic interpolate when looping ([GH-58651](https://github.com/godotengine/godot/pull/58651)).
#### Audio
- Revert "PitchShift effect quality and performance tweaks for different pitch scale values" ([GH-58668](https://github.com/godotengine/godot/pull/58668)) **[regression fix]**.
#### Core
- Print every file exported with `PCKPacker.flush()`'s verbose parameter ([GH-58520](https://github.com/godotengine/godot/pull/58520)).
- Fix `UndoRedo::create_action()` invalid memory usage ([GH-58652](https://github.com/godotengine/godot/pull/58652)).
- Revert "Fix ProjectSettings `has_setting()` when used on a overridden setting with feature tags" ([GH-58859](https://github.com/godotengine/godot/pull/58859)).
- Fix crash on `Input.get_joy_button_index_from_string` and `Input.get_joy_axis_index_from_string` for non-existing key ([GH-59195](https://github.com/godotengine/godot/pull/59195)).
#### GUI
- RichTextLabel: Fix shadow color when text has transparency ([GH-59054](https://github.com/godotengine/godot/pull/59054)).
#### Editor
- Fix showing Extend Script option without script attached to the node ([GH-58821](https://github.com/godotengine/godot/pull/58821)).
#### Physics
- Fix premature return in GodotPhysics Area `call_queries` ([GH-58531](https://github.com/godotengine/godot/pull/58531)).
- Update joints on `NOTIFICATION_POST_ENTER_TREE` ([GH-58642](https://github.com/godotengine/godot/pull/58642)).
#### Porting
- HTML5: Revert "[HTML5] Fetch API now passes credentials." ([GH-58862](https://github.com/godotengine/godot/pull/58862)) **[regression fix]**.
* This turned out not to be a good option with the current state of the web standard.
- iOS: Fix multitouch not working correctly ([GH-58586](https://github.com/godotengine/godot/pull/58586)) **[regression fix]**.
- Windows: Fix reporting of DST in `OS.get_datetime()` ([GH-59223](https://github.com/godotengine/godot/pull/59223)).
#### Rendering
- GLES2: Fix compression on blend shapes ([GH-58838](https://github.com/godotengine/godot/pull/58838)) **[regression fix]**.
- GLES2: Fix `VersionKey` comparison in shader binding ([GH-58855](https://github.com/godotengine/godot/pull/58855)).
- GLES2: Fix incorrect buffer upload size in `draw_gui_primitive` ([GH-58150](https://github.com/godotengine/godot/pull/58150)).
- GLES3: Fix shader state caching when blend shapes used ([GH-58808](https://github.com/godotengine/godot/pull/58808)) **[regression fix]**.
- GLES3: Fix broken normals in meshes with blend shapes ([GH-59159](https://github.com/godotengine/godot/pull/59159)) **[regression fix]**.
- Rendering: Fix alpha scissor support with `depth_draw_opaque` ([GH-58959](https://github.com/godotengine/godot/pull/58959)).
### Added
#### Porting
- Android: Setup logic to publish the Godot Android library to MavenCentral ([GH-59146](https://github.com/godotengine/godot/pull/59146)).
## [3.4.3] - 2022-02-25
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-2) for details.
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-3) for details.
### Fixed
@ -30,6 +213,8 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Replicate load-as-placeholder state on node duplication ([GH-56831](https://github.com/godotengine/godot/pull/56831)).
- Add hexadecimal and binary literals support to `Expression` parser, fix parsing of exponent literals ([GH-57571](https://github.com/godotengine/godot/pull/57571), [GH-57620](https://github.com/godotengine/godot/pull/57620)).
- Fix `ProjectSettings.has_setting()` to handle feature overrides like `get_setting()` ([GH-57972](https://github.com/godotengine/godot/pull/57972)).
- Fix decompression functions not returning error codes ([GH-58278](https://github.com/godotengine/godot/pull/58278)).
- Only store `_edit_use_anchors_` metadata if value is not the default ([GH-58254](https://github.com/godotengine/godot/pull/58254)).
#### Editor
@ -79,6 +264,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
#### Physics
- Fix RayCast `clear_exceptions` clearing the parent node exception despite `exclude_parent` ([GH-57792](https://github.com/godotengine/godot/pull/57792)).
- In final phase of `test_body_motion`, move and cull AABB for body once instead of for every shape ([GH-58391](https://github.com/godotengine/godot/pull/58391)).
#### Porting
@ -129,6 +315,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Allow configuring Mono debugger agent with command line arguments ([GH-56835](https://github.com/godotengine/godot/pull/56835)).
- Add support for opening Visual Studio 2022 as external editor ([GH-57609](https://github.com/godotengine/godot/pull/57609)).
## [3.4.2] - 2021-12-21
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-2) for details.
@ -166,6 +353,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Fix size issue for ARVR managed viewport ([GH-56072](https://github.com/godotengine/godot/pull/56072)).
## [3.4.1] - 2021-12-17
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-4-1) for details.
@ -312,6 +500,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Fix occasional dangling OmniLight RID ([GH-41360](https://github.com/godotengine/godot/issues/41360)).
- GLES3: Fix incompatible addition in auto exposure shader ([GH-55983](https://github.com/godotengine/godot/pull/55983)).
## [3.4] - 2021-11-05
See the [release announcement](https://godotengine.org/article/godot-3-4-is-released) for details.
@ -802,6 +991,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-4-is-rele
- Add half frame to `floor()` for animated particles UV to compensate precision errors ([GH-53233](https://github.com/godotengine/godot/pull/53233)).
- Prevent shaders from generating code before the constructor finishes ([GH-52475](https://github.com/godotengine/godot/pull/52475)).
## [3.3] - 2021-04-21
See the [release announcement](https://godotengine.org/article/godot-3-3-has-arrived) for details.
@ -1142,6 +1332,7 @@ See the [release announcement](https://godotengine.org/article/godot-3-3-has-arr
- [Fade screen-space reflections towards the inner margin in GLES3](https://github.com/godotengine/godot/pull/41892).
- [Ensure Reinhard tonemapping values are positive in GLES3](https://github.com/godotengine/godot/pull/42056).
## [3.2.3] - 2020-09-17
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-3) for details.
@ -1214,6 +1405,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Windows: DirectInput: Use correct joypad ID
- Thirdparty library updates: mbedtls 2.16.8, stb_vorbis 1.20, wslay 1.1.1
## [3.2.2] - 2020-06-26
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-2) for details.
@ -1299,6 +1491,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Windows: Do not probe joypads if `DirectInput` cannot be initializer
- Windows: Fix overflow condition with QueryPerformanceCounter
## [3.2.1] - 2020-03-10
See the [release announcement](https://godotengine.org/article/maintenance-release-godot-3-2-1) for details.
@ -1327,6 +1520,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Windows: Fix UPNP regression after upstream update
- Windows: Disable NetSocket address reuse
## [3.2] - 2020-01-29
### Added
@ -2053,6 +2247,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- **X11:** `OS.set_window_maximized()` now gives up after 0.5 seconds.
- This makes the editor no longer freeze on startup when using fvwm.
## [3.1] - 2019-03-13
### Added
@ -2312,6 +2507,7 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- Fixed a security issue relating to deserializing Variants.
## [3.0] - 2018-01-29
### Added
@ -2445,6 +2641,10 @@ See the [release announcement](https://godotengine.org/article/maintenance-relea
- HTML5 export using asm.js.
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
---
[3.4.5]: https://downloads.tuxfamily.org/godotengine/3.4.5/Godot_v3.4.5-stable_changelog_chrono.txt
[3.4.4]: https://downloads.tuxfamily.org/godotengine/3.4.4/Godot_v3.4.4-stable_changelog_chrono.txt
[3.4.3]: https://downloads.tuxfamily.org/godotengine/3.4.3/Godot_v3.4.3-stable_changelog_chrono.txt
[3.4.2]: https://downloads.tuxfamily.org/godotengine/3.4.2/Godot_v3.4.2-stable_changelog_chrono.txt
[3.4.1]: https://downloads.tuxfamily.org/godotengine/3.4.1/Godot_v3.4.1-stable_changelog_chrono.txt

324
DONORS.md
View File

@ -21,56 +21,57 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver sponsors
Affray Interactive <https://scp.games/pandemic>
ASIFA-Hollywood <https://www.asifa-hollywood.org>
LITSLINK <https://litslink.com>
ORE System <https://ore-system.com>
Playful Studios <https://playfulstudios.com>
Robot Gentleman <http://robotgentleman.com>
## Bronze sponsors
Ben Nolan
Basically Games
Brandon Lamb
Bri
Daniel Kaplan
Garry Newman
Gordon MacPherson
Hunter Dickson
Isaiah smith
Kenney <https://kenney.nl>
Kitcat490
Kyle Szklenski
Maxim Karsten
Moonwards <https://www.moonwards.com>
TrampolineTales <http://trampolinetales.com>
Nik Rudenko
TrampolineTales <https://trampolinetales.com>
## Mini sponsors
AD Ford
Albin Lundahl
Andres Hernandez
Andrew Bowen
Andrew Dunai
anti666
Chris Bolton
Christian Baune
Christopher Montesano
Christopher Shifflett
CodeLikeCammy
Daniel Edwards
Darrin Massena
David Mydlarz
Digital Grows
Dov Zimring
Edward Flick
Florian Neumann
Gamechuck
GameDev.net
Hein-Pieter van Braam
Jasper Brooks
Jeffery Chiu
John G Gentzel
Jonah Stich
Justin Arnold
Justo Delgado Baudí
Kossi Selom Banybah
Marcel Kräml
Marek Belski
Markus Ort
Matthieu Huvé
Maxim Karsten
Michael
Mike King
Nassor Paulino da Silva
@ -80,8 +81,10 @@ generous deed immortalized in the next stable release of Godot Engine.
Patrick Horn
Patrick Schmidt
Rami
Relintai
René Habermann
Ronnie Cheng
Ryan Heath
Samantha
ShikadiGum
Slobodan Milnovic
Stephan Lanfermann
@ -106,16 +109,14 @@ generous deed immortalized in the next stable release of Godot Engine.
David Snopek
Ed Morley
First Last
Florian Rämisch
Frank Kurka
Hunter Jones
Jacobus Dens
Jakub Grzesik
Javier Roman
Joan Fons
Jonathan Wright
Jon Woodward
Karl Werf
Kevin Vu
Klavdij Voncina
Maciej Pendolski
Manuele Finocchiaro
@ -124,16 +125,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Mathieu
Matthew Hillier
Officine Pixel S.n.c.
Patrick Brock
Pedro Silva
Retro Village
Rob Messick
Roland Fredenhagen
Ronan Zeegers
Sarksus
Scott B
Sean
Sergey
Sergio Airaldi
Sofox
Stephan Kessler
Stephen Molyneaux
@ -145,14 +145,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Victor
Xeno Coliseum
Adam Mill
Adam Nakonieczny
Adam Nelson
Adam Stankiewicz
Adrian Adamiak
Alexander Erlemann
Alexander J Maynard
Alex Khayrullin
alice gambrell
Amar Šahinović
Alo Mis
Andrew Cunningham
Andrew Farr
Andriy
@ -160,83 +161,78 @@ generous deed immortalized in the next stable release of Godot Engine.
Antoni Batchelli
Arch Henderson III
Arthur S. Muszynski
BasicIncomePlz
Brandon Hawkinson
BrizzleBrip
c64cosmin
Cameron Connolly
Carl Kryschi
Charles Gray
Charlie Whitfield
Chase Taranto
Chris Petrich
Chris Serino
Cow
Craig Ostrin
Collin Rapp
Craig Scarborough
Craig Smith
Cristopher
CzechBlueBear
D
DagobertDick
dan didenko
Daniel
Daniel Hernández Alcojor
Daniel Tebbutt
Darrian Little
David Thomason
Daylon J Williams
Dennis Belfrage
Dev To be curious
Dima Fedotov
Dimitri Nüscheler
Dmitriy Khudorozhkov
Donn Eddy
Douglas Hammond
Eric Brand
Eric Churches
Eugenio Hugo Salgüero Jáñez
EXUREI
Felix Winterhalter
flesk
foxydevloper
Fransiska
Freeman
Gabrielius Vaiškūnas
Gary Hulst
gavlig
General Chicken
Geoffroy Warin
GGGames.org
George Venizelos
gisora
GlassBrick
GrayDwarf
Guilherme Felipe de C. G. da Silva
Harry Tumber
Harvey Fong
Heath Hayes
Horváth Péter
Horváth-Lázár Péter
Hu Hund
Hunter Barabas
HurrieCrane
Jaap Marsman
Jamal Bencharki
James Couzens
Jan Sælid
Jared
Jared White
Jean-Sébastien Ross
Jennifer Wilcox
Jeremi Biernacki
Jesús Chicharro
Joel Fivat
Johnathan Kupferer
John Duplechain
John Stinson
Josef Stumpfegger
Jose Malheiro
Jose Manuel Muñoz Perez
Joshie Sparks
Joshua Flores
Joshua Lesperance
Juan Velandia
Judd
Julián Absatz
Julian Todd
Juraj Móza
JUSTIN CARROLL
Justin Palmer
Kelteseth
Kevan
Khora
kickmaniac
kinfox
Kos
Lakshaya Goel
Laszlo Kiss
leetNightshade
@ -244,7 +240,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Liam Smyth
LoparPanda
Luca Vazzano
Luke
MadScientistCarl
Marcus Dobler
Marcus Richter
@ -255,89 +250,78 @@ generous deed immortalized in the next stable release of Godot Engine.
Martin Soucek
matt
Matt Greene
Matthew Hall
medecau
Matthew Dana
Max Kryschi
Michael Dürwald
Michael Policastro
Michael Seawell
MikadoSC
Mike Barbee
nate etan
Nick Abousselam
Nicola Cocchiaro
Nicolás Carrasco
Nicole Barovic
Nikita Blizniuk
Oliver Dick
Oscar Campos
Paul Hocker
Paul Von Zimmerman
Pavel Kotlyar
Pedro
Pete Goodwin
Peter Richmond
Petr Malac
PhaineOfCatz
Rafał Michno
Raymond Harris
Petrus Prinsloo
Philip Woods
R
RaiRu
RAMupgrade
Reilt
Rene Tailleur
Rhodochrone
Rickard Hermanson
Rob
Robert McDermott
Robert Willes
Rob McInroy
Rocknight Studios
RodZilla
Romeo Disca
Ronnie Ashlock
Ronny Mühle
Russ
Ryan Breaker
Ryan Heath
Ryan Miller
Ryan Scott
Samuel Hummerstone
Samuel Judd
Sean Morgan
Sebastian Hutter
schroedinger's possum
Serban Serafimescu
Sergey Fonaryov
Sergey Minakov
Shishir Tandale
Sing Chun Lee
Skides
SKison
Song Junwoo
spacechase0
Stephan Hennion
Stephen Brown
Steven Landow
Stoned Xander
Super Izzo
Sven F.
Sven Carstensen
Teslatech
Thomas Bjarnelöf
Thomas Kurz
Tim Howard
Timothy van der Valk
Tobias Bocanegra
Tobias Raggl
Todd Smith
Tom Wor
Tom Glenn
Torbulous
toto bibi
Troy Kinsella
Turntsnaco
Valryia
Vincent Cloutier
Vlad Ceru Opran
VoidPointer
Winston
Wojciech Chojnacki
xzibiting
Yifan Lai
Yuancheng Zhang
Артём Равбецкий
## Silver donors
1D_Inc
Aaron Oldenburg
A. B.
Adam Brunnmeier
@ -346,28 +330,30 @@ generous deed immortalized in the next stable release of Godot Engine.
Adam McCurdy
Adam N Webber
Adam Smeltzer
Adam Szymański
Adisibio
Adriano Orioli
Adrien de Pierres
Agustinus Arya
Aidan O'Flannagain
Aki Mimoto
Akio Yamazaki
Alaksandr Suša
Alan Beauchamp
Albert Gyulgazyan
Alberto Salazar Muñoz
Alberto Vilches
Alder Stefano
Alejandro Saucedo
AleMax
Ales Jelovcan
Alessandro Senese
Alexander Ravenheart
Alex Chan
Alex Clavelle
alex raeside
Alex (Well Done Games)
Allan Davis
Allen Schade
Amar Šahinović
Andre Altmueller
Andrei Pufu
Andre Stackhouse
Andrew Groot
andrew james morris
@ -376,23 +362,22 @@ generous deed immortalized in the next stable release of Godot Engine.
Ano Nim
Anthony Avina
Anton Bouwer
Antti Vesanen
Arch Toasty
Arda Erol
Arseniy M
Arthur Brainville
Arturo Rosales
Ashley Claymore
Aubrey Falconer
Auré Franky
aurelien condomines
Austin Finlinson
Austin Miller
Azar Gurbanov
AzulCrescent
b110110
Balázs Batári
Bálint Horváth
Beau Seymour
Behzad Ghaffari
Benedikt
Benoit Jauvin-Girard
Ben Ridley
Ben Vercammen
Bernd Jänichen
@ -401,45 +386,46 @@ generous deed immortalized in the next stable release of Godot Engine.
bitbrain
Bjarne Voigtländer
Black Block
Blair Allen
Blunderjack
Bobby CC Wong
Brad Harms
BoiLudens
Bram
Brandon
Brian Klein
Brodie Fairhall
Brian
Brian Ford
Bronson Zgeb
Burney Waring
c64cosmin
Caleb Gartner
Caleb Makela
Caliburn
Cameron Meyer
Carlos Rios
Carl van der Geest
Casey
Cassidy James
Chad Steadman
Checkpoint Charlie
Chris Chapin
Chris Jagusch
Chris Langford
Chris Ridenour
Christian Kaltenecker
Christian Mauduit
Christian Scholz
Christian Winter
Christoffer Dahlblom
Christophe Gagnier
Christopher Chin
Christoph Woinke
Codex404
Cody Parker
CoffeeFingers
Conall O
Conner Lane
Corchari
Craig Maloney
Corey W
Craig Post
CT
Cullen Canejo
cynwav
Dakota Watkins
damucz
Daniel Cheney
Daniel H. Bahr
Danielle Cheney
Dare Looks
Daren Scot Wilson
Dave Walker
David Baker
@ -448,25 +434,25 @@ generous deed immortalized in the next stable release of Godot Engine.
David Maziarka
David Rapisarda
Devin Carraway
Diego Pereira
Devin R
Dimitri Roche
Dmitry Fisher (Raccoon path)
Dmytro Korchynskyi
Dominik Wetzel
Don B
Douglas Plumley
Dragontrapper
Dr Ewan Murray
Ducky
Duobix
Duodecimal
Eduardo Teixeira
Edward Herbert
Edward L
Edward Swartz
Egon Elbre
Elgenzay
Elias Nykrem
Elijah Anderson
Emerson MX
Ends
Ephemeral
Eric Stokes
Eric Walkingshaw
@ -482,54 +468,42 @@ generous deed immortalized in the next stable release of Godot Engine.
Felix Bohmann
Fer DC
Filip Lundby
Francisco Garcia Florez
Frank
freakazoid
FrostMarble
Game Endeavor
Garett Bass
Gary Thomas
gebba
George Marques
Gon Shibayama
Green Fox
Greg Lincoln
Greg Olson
Greyson Richey
Grid
Grok Games
Grominet
Guillaume Pham Ngoc
Guldoman
gurehamu
Hal A
Guo Hongci
Haplo
Hayden Foley
Heribert Hirth
Hinken
Houdini Blueprints
Ian ORourke
Hylian Ensemble
Ian Richard Kunert
Ian Williams
Idilio Alfaro
IndustrialRobot
Ivan Nikolaev
Inki Crow
iveks
izzy neuhaus
Jackson Harmer
Jacob D
Jaguar
Jake D
Jake Huxell
Jako Danar
James
James A F Manley
James Allen
James Gary
James Guardino
James Quincy
James Thomas
Jamie Massey
Janis Skuja
Jan Vetulani
Japortie
JARKKO PARVIAINEN
Jason Bolton
Jason Evans
@ -538,13 +512,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Jeff Hungerford
Jeffrey Berube
Jennifer Graves
Jeramie
Jesse Dubay
Jim Engstrand
João Pedro Braz
Joe Hurdle
Joe Klemmer
Joel Höglund
John Anders Stav
John Bruce
John Gabriel
Johnny Deepman
Jonas
Jonas Arndt
Jonas Bernemann
@ -555,33 +530,32 @@ generous deed immortalized in the next stable release of Godot Engine.
Jonathan Ellis
Jonathan G
Jonathan Turner
Jon Bonazza
Jon Oakes
Jon Sully
Jordan West
Jordy Goodridge
Jorge Antunes
Jorge Araya Navarro
Jose Francisco 'Yiro' Vera Girona
José Gabriel González
Joseph Catrambone
Josh P
Josh Taylor
Joshua Heidrich
jromkjrom
Joshua Segall
Juanfran
Juan Maggi
Juan Uys
Jueast
Julian le Roux
Julian Murgia
June Little
Justin Hamilton
Justin Hurst
Justin Oaksford
Justin Spedding
KaDokta
Kalydi Balázs
Karol Wojtasiuk (Drakonter)
Katsuomi Kobayashi
Keedong Park
keeganstoybox
Keegan Scott
Keinan Powers
Keith Bradner
Kenji Kawabata
@ -589,74 +563,72 @@ generous deed immortalized in the next stable release of Godot Engine.
Kent Jofur
Kerotasma
Ketafuki
Kiri Jolly
killaQueen
Kodera Software
Kolandrious
Kquona
Krishna Nadoor
Kristian Nygaard Jensen
KR McGinley
Kronarq
KsyTek Games
kycho
Kyle Burnett
Kyle Jacobs
Kyuppin
La diagonale du poulpe
Lasse le Dous
Laurent CHEA
Laurent Dethoor
Laxman Pradhan
Lech Rozanski
Leland Vakarian
Lemin
LEMMiNO
Leonardo Dimano
Leonardo Baumle
Levi Lindsey
LF
Linus Lind Lundgren
Logan Apple
Luca Poli
Ludovic DELVAL
Luigi Renna
Luis Gaemperle
Luis M
Luke Kasz
LunaticInAHat
Major Haul
Malcolm
Marco Lardelli
Marcos Heitor Carvalho
Markie Music
Mark Jad
Mark Malone
Mark Tyler
Markus Martin
Markus Michael Egger
Markus Ort
Markus Strompen
Martin FIbik
Martin Holas
Martin Linklater
Martin Liška
Martin Trbola
Martin Zabinski
Mathieu Meissonnier
Matt Edwards
Matthew Booe
Matt Sylvia
Maverick
Max Fiedler
Maxime Blade
Maxime Santerre
Maxwell
McStuffings
Melissa Mears
Merlyn Morgan-Graham
Mert Kasar
Metal Demon 2000
mhilbrunner
Michael
Michael Bruce-Lockhart
Michael Haney
Michael Morrison
Michael Toporkov
Michał Skwarek
Mikael Nordenberg
Mikail Freitas
Mikayla
Mike
Mike Birkhead
Mike Copley
Mitchell
Miss
Mitchell J. Wagner
Mitchell White
MJacred
ModularMind
Molinghu
@ -666,7 +638,6 @@ generous deed immortalized in the next stable release of Godot Engine.
moulefrite
MrAZIE
Mrjemandem
Nathan Fish
Nathaniel
neighty
Neil Blakey-Milner
@ -677,83 +648,78 @@ generous deed immortalized in the next stable release of Godot Engine.
Nicholas Orlowski
Nick Eldrenkamp
Nick Macholl
Niclas Eriksen
Nico Greve
Nicolas Goll-Perrier
Nicolas Rosset
Nicolò Brigadoi Calamari
Nils Nordmark
Nima Farid
Noel Billig
oceoh
Noesis
obscuresteel
Okatima
Oleg Reva
Oliver Ambrose
Oriol Muñoz Princep
oscar1000108
Oscar Domingo
p
Panagiotis Xynos
Pascal
Patrick Indermühle
Patrickm
Patrick Nafarrete
Patrick Wuttke
Paul E Hansen
Paul Gieske
Paweł Kowal
Paweł Łyczkowski
Peter Höglund
Philip Cohoe
Philip Ludington (MrPhil)
Pierre Caye
pingudroid
Pixel Archipel
pj
Point08
Preethi Vaidyanathan
PsycHead
Puntigames
pwab
RabidTunes
RackBar Dingum
Rafa Laguna
Raffaele Aramo
Ragnar Pettersson
Rainer Amler
Rami Hanano
Rammeow
RAMupgrade
red1939
Relintai
Remi Rampin
Remtaine
Reneator
René Habermann
Riccardo Marini
Richard Hayes
Richard Ivánek
Richard Néveri
Riley
Robin Ward
RobotCritter
Rob Ruana
Rodrigo Loli
Roger Smith
Roglozor
Roka
Roland Rząsa
Roman Papush
Ronald Ho Hip (CrimsonZA)
Ronan
Roy Scayged
Russ
Ryan Groom
Sam Caulfield
Sam Edson
Ryan Mueller
Rykk
Sammy Fischer
Sangeeth Pavithran
schroedinger's possum
Scott Longley
Sean Wall
Sean Dee
Sebastian Michailidis
SeongWan Kim
Sessamekesh
Seth Drebitko
SeungJong k
Shaidak
Shane
Shane Abraham
Shane Sicienski
Shane Spoor
Silver1063
simdee
@ -766,14 +732,16 @@ generous deed immortalized in the next stable release of Godot Engine.
slavfox
smbe19
smo1704
Snippytorque
Soheib El-Harrache
Solene Waked
Sophie Winter
Spencer Everhart
Space Hedgehog
Sparky
Squidgy
Squirrel
Stéphane Roussel
Stephen Rice
Steve Cloete
Steven Drovie
summerblind
Sung soo Choi
@ -781,10 +749,12 @@ generous deed immortalized in the next stable release of Godot Engine.
SxP
tadashi endo
Tarch
Techwizz
Terry
The Domis4
Theodore Lindsey
TheVoiceInMyHead
TheWint
Thibaut DECROMBECQUE
thomas
Thomas Bechtold
@ -797,9 +767,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Tim Gleason
Tim Klein
Timothy B. MacDonald
tinyBigGAMES LLC
Title Plinsut
TMoney
Tim Riley
Toadile
Tobias Bradtke
Tom Coxon
@ -810,11 +778,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Travis O'Brien
Trent Skinner
tril zerobyte
Troy Bonneau
Tryggve Sollid
Turgut Temucin
tweedle
Tycho
Tyler Stafos
Ukko K.
UltyX
Uther
v01tech
@ -825,21 +794,20 @@ generous deed immortalized in the next stable release of Godot Engine.
Vitaliy Sapronenko
Vi Watch
Vladimir Savin
Vuli Nux
Wapiti .
Watchinofoye
Wiley Thompson
William Bodin
William Edwards
William F Siqueira
William Hogben
Windvis
Woonki Moon
Wyatt Goodin
xenomat
yakcyll
Xananax
Yan Shi
Yegor Smirnov
yust
Zach H.
Zak Stephens
Zekim
Zher Huei Lee
蕭惟允
貴宏 小松

View File

@ -482,8 +482,8 @@ if selected_platform in platform_list:
if env["werror"]:
env.Append(CCFLAGS=["-Werror"])
else: # always enable those errors
env.Append(CCFLAGS=["-Werror=return-type"])
if methods.using_gcc(env) and version[0] >= 12: # False positives in our error macros, see GH-58747.
env.Append(CCFLAGS=["-Wno-error=return-type"])
if hasattr(detect, "get_program_suffix"):
suffix = "." + detect.get_program_suffix()
@ -665,6 +665,9 @@ if selected_platform in platform_list:
# Microsoft Visual Studio Project Generation
if env["vsproj"]:
if os.name != "nt":
print("Error: The `vsproj` option is only usable on Windows with Visual Studio.")
Exit(255)
env["CPPPATH"] = [Dir(path) for path in env["CPPPATH"]]
methods.generate_vs_project(env, GetOption("num_jobs"))
methods.generate_cpp_hint_file("cpp.hint")

View File

@ -299,7 +299,7 @@ class CommandQueueMT {
DECL_CMD(0)
SPACE_SEP_LIST(DECL_CMD, 13)
/* comands that return */
/* commands that return */
DECL_CMD_RET(0)
SPACE_SEP_LIST(DECL_CMD_RET, 13)

View File

@ -38,7 +38,7 @@ class PHashTranslation : public Translation {
//this translation uses a sort of modified perfect hash algorithm
//it requires hashing strings twice and then does a binary search,
//so it's slower, but at the same time it has an extreemly high chance
//so it's slower, but at the same time it has an extremely high chance
//of catching untranslated strings
//load/store friendly types

View File

@ -30,6 +30,7 @@ if not has_module:
thirdparty_mbedtls_sources = [
"aes.c",
"base64.c",
"constant_time.c",
"md5.c",
"sha1.c",
"sha256.c",

View File

@ -376,7 +376,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p
const uint8_t *rofs = &p_src[((y * p_width) + x) * (read_bytes + (read_alpha ? 1 : 0))];
uint8_t *wofs = &p_dst[((y * p_width) + x) * (write_bytes + (write_alpha ? 1 : 0))];
uint8_t rgba[4];
uint8_t rgba[4] = { 0, 0, 0, 255 };
if (read_gray) {
rgba[0] = rofs[0];
@ -394,7 +394,7 @@ static void _convert(int p_width, int p_height, const uint8_t *p_src, uint8_t *p
if (write_gray) {
//TODO: not correct grayscale, should use fixed point version of actual weights
wofs[0] = uint8_t((uint16_t(rofs[0]) + uint16_t(rofs[1]) + uint16_t(rofs[2])) / 3);
wofs[0] = uint8_t((uint16_t(rgba[0]) + uint16_t(rgba[1]) + uint16_t(rgba[2])) / 3);
} else {
for (uint32_t i = 0; i < write_bytes; i++) {
wofs[i] = rgba[i];

View File

@ -765,7 +765,7 @@ static void _encode_string(const String &p_string, uint8_t *&buf, int &r_len) {
}
Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bool p_full_objects, int p_depth) {
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential inifite recursion detected. Bailing.");
ERR_FAIL_COND_V_MSG(p_depth > Variant::MAX_RECURSION_DEPTH, ERR_OUT_OF_MEMORY, "Potential infinite recursion detected. Bailing.");
uint8_t *buf = r_buffer;
r_len = 0;

View File

@ -154,13 +154,11 @@ Error PCKPacker::flush(bool p_verbose) {
src->close();
memdelete(src);
count += 1;
if (p_verbose && files.size() > 0) {
if (count % 100 == 0) {
printf("%i/%i (%.2f)\r", count, files.size(), float(count) / files.size() * 100);
fflush(stdout);
};
};
};
const int file_num = files.size();
if (p_verbose && (file_num > 0)) {
print_line(vformat("[%d/%d - %d%%] PCKPacker flush: %s -> %s", count, file_num, float(count) / file_num * 100, files[i].src_path, files[i].path));
}
}
if (p_verbose) {
printf("\n");

View File

@ -301,7 +301,7 @@ public:
tree.update();
_check_for_collisions();
#ifdef BVH_INTEGRITY_CHECKS
tree.integrity_check_all();
tree._integrity_check_all();
#endif
}
@ -477,13 +477,6 @@ private:
continue;
}
#ifdef BVH_CHECKS
// if neither are pairable, they should ignore each other
// THIS SHOULD NEVER HAPPEN .. now we only test the pairable tree
// if the changed item is not pairable
CRASH_COND(params.test_pairable_only && !tree._extra[ref_id].pairable);
#endif
// checkmasks is already done in the cull routine.
BVHHandle h_collidee;
h_collidee.set_id(ref_id);

View File

@ -2,7 +2,7 @@ public:
BVHHandle item_add(T *p_userdata, bool p_active, const BOUNDS &p_aabb, int32_t p_subindex, bool p_pairable, uint32_t p_pairable_type, uint32_t p_pairable_mask, bool p_invisible = false) {
#ifdef BVH_VERBOSE_TREE
VERBOSE_PRINT("\nitem_add BEFORE");
_debug_recursive_print_tree(0);
_debug_recursive_print_tree(p_tree_id);
VERBOSE_PRINT("\n");
#endif
@ -90,8 +90,8 @@ BVHHandle item_add(T *p_userdata, bool p_active, const BOUNDS &p_aabb, int32_t p
mem += _nodes.estimate_memory_use();
String sz = _debug_aabb_to_string(abb);
VERBOSE_PRINT("\titem_add [" + itos(ref_id) + "] " + itos(_refs.size()) + " refs,\t" + itos(_nodes.size()) + " nodes " + sz);
VERBOSE_PRINT("mem use : " + itos(mem) + ", num nodes : " + itos(_nodes.size()));
VERBOSE_PRINT("\titem_add [" + itos(ref_id) + "] " + itos(_refs.used_size()) + " refs,\t" + itos(_nodes.used_size()) + " nodes " + sz);
VERBOSE_PRINT("mem use : " + itos(mem) + ", num nodes reserved : " + itos(_nodes.reserved_size()));
#endif

View File

@ -50,8 +50,8 @@ public:
/**
*
* @param p_plane plane used to split the face
* @param p_res array of at least 3 faces, amount used in functio return
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in functio return
* @param p_res array of at least 3 faces, amount used in function return
* @param p_is_point_over array of at least 3 booleans, determining which face is over the plane, amount used in function return
* @param _epsilon constant used for numerical error rounding, to add "thickness" to the plane (so coplanar points can happen)
* @return amount of faces generated by the split, either 0 (means no split possible), 2 or 3
*/

View File

@ -249,6 +249,12 @@ DirAccess *DirAccess::create(AccessType p_access) {
DirAccess *da = create_func[p_access] ? create_func[p_access]() : nullptr;
if (da) {
da->_access_type = p_access;
if (p_access == ACCESS_RESOURCES) {
da->change_dir("res://");
} else if (p_access == ACCESS_USERDATA) {
da->change_dir("user://");
}
}
return da;

View File

@ -28,6 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "platform_config.h"
#ifndef PLATFORM_THREAD_OVERRIDE // See details in thread.h
#include "thread.h"

View File

@ -28,6 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "platform_config.h"
// Define PLATFORM_THREAD_OVERRIDE in your platform's `platform_config.h`
// to use a custom Thread implementation defined in `platform/[your_platform]/platform_thread.h`
// Overriding the platform implementation is required in some proprietary platforms

View File

@ -37,7 +37,7 @@
@author Juan Linietsky <reduzio@gmail.com>
* Generic Pool Allocator.
* This is a generic memory pool allocator, with locking, compacting and alignment. (@TODO alignment)
* It used as a standard way to manage alloction in a specific region of memory, such as texture memory,
* It used as a standard way to manage allocation in a specific region of memory, such as texture memory,
* audio sample memory, or just any kind of memory overall.
* (@TODO) abstraction should be greater, because in many platforms, you need to manage a nonreachable memory.
*/

View File

@ -509,11 +509,7 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bo
bool ProjectSettings::has_setting(String p_var) const {
_THREAD_SAFE_METHOD_
StringName name = p_var;
if (!disable_feature_overrides && feature_overrides.has(name)) {
name = feature_overrides[name];
}
return props.has(name);
return props.has(p_var);
}
void ProjectSettings::set_registering_order(bool p_enable) {

View File

@ -113,7 +113,7 @@ public:
if (tmp >= p_value) {
return tmp; // already greater, or equal
}
if (value.compare_exchange_weak(tmp, p_value, std::memory_order_release)) {
if (value.compare_exchange_weak(tmp, p_value, std::memory_order_acq_rel)) {
return p_value;
}
}
@ -125,7 +125,7 @@ public:
if (c == 0) {
return 0;
}
if (value.compare_exchange_weak(c, c + 1, std::memory_order_release)) {
if (value.compare_exchange_weak(c, c + 1, std::memory_order_acq_rel)) {
return c + 1;
}
}

View File

@ -33,6 +33,20 @@
#include "core/os/os.h"
#include "core/resource.h"
void UndoRedo::Operation::delete_reference() {
if (type != Operation::TYPE_REFERENCE) {
return;
}
if (ref.is_valid()) {
ref.unref();
} else {
Object *obj = ObjectDB::get_instance(object);
if (obj) {
memdelete(obj);
}
}
}
void UndoRedo::_discard_redo() {
if (current_action == actions.size() - 1) {
return;
@ -40,16 +54,7 @@ void UndoRedo::_discard_redo() {
for (int i = current_action + 1; i < actions.size(); i++) {
for (List<Operation>::Element *E = actions.write[i].do_ops.front(); E; E = E->next()) {
if (E->get().type == Operation::TYPE_REFERENCE) {
if (E->get().ref.is_valid()) {
E->get().ref.unref();
} else {
Object *obj = ObjectDB::get_instance(E->get().object);
if (obj) {
memdelete(obj);
}
}
}
E->get().delete_reference();
}
//ERASE do data
}
@ -72,14 +77,7 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode) {
List<Operation>::Element *E = actions.write[current_action + 1].do_ops.front();
while (E) {
if (E->get().type == Operation::TYPE_REFERENCE) {
Object *obj = ObjectDB::get_instance(E->get().object);
if (obj) {
memdelete(obj);
}
}
E->get().delete_reference();
E = E->next();
actions.write[current_action + 1].do_ops.pop_front();
}
@ -224,16 +222,7 @@ void UndoRedo::_pop_history_tail() {
}
for (List<Operation>::Element *E = actions.write[0].undo_ops.front(); E; E = E->next()) {
if (E->get().type == Operation::TYPE_REFERENCE) {
if (E->get().ref.is_valid()) {
E->get().ref.unref();
} else {
Object *obj = ObjectDB::get_instance(E->get().object);
if (obj) {
memdelete(obj);
}
}
}
E->get().delete_reference();
}
actions.remove(0);

View File

@ -64,6 +64,8 @@ private:
ObjectID object;
String name;
Variant args[VARIANT_ARG_MAX];
void delete_reference();
};
struct Action {

View File

@ -3426,21 +3426,19 @@ String String::http_escape() const {
const CharString temp = utf8();
String res;
for (int i = 0; i < temp.length(); ++i) {
char ord = temp[i];
uint8_t ord = temp[i];
if (ord == '.' || ord == '-' || ord == '_' || ord == '~' ||
(ord >= 'a' && ord <= 'z') ||
(ord >= 'A' && ord <= 'Z') ||
(ord >= '0' && ord <= '9')) {
res += ord;
} else {
char h_Val[3];
#if defined(__GNUC__) || defined(_MSC_VER)
snprintf(h_Val, 3, "%02hhX", ord);
#else
sprintf(h_Val, "%02hhX", ord);
#endif
res += "%";
res += h_Val;
char p[4] = { '%', 0, 0, 0 };
static const char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
p[1] = hex[ord >> 4];
p[2] = hex[ord & 0xF];
res += p;
}
}
return res;
@ -4201,7 +4199,7 @@ String String::sprintf(const Array &values, bool *error) const {
int min_chars = 0;
int min_decimals = 0;
bool in_decimals = false;
bool pad_with_zeroes = false;
bool pad_with_zeros = false;
bool left_justified = false;
bool show_sign = false;
@ -4252,7 +4250,7 @@ String String::sprintf(const Array &values, bool *error) const {
// Padding.
int pad_chars_count = (value < 0 || show_sign) ? min_chars - 1 : min_chars;
String pad_char = pad_with_zeroes ? String("0") : String(" ");
String pad_char = pad_with_zeros ? String("0") : String(" ");
if (left_justified) {
str = str.rpad(pad_chars_count, pad_char);
} else {
@ -4260,10 +4258,13 @@ String String::sprintf(const Array &values, bool *error) const {
}
// Sign.
if (show_sign && value >= 0) {
str = str.insert(pad_with_zeroes ? 0 : str.length() - number_len, "+");
} else if (value < 0) {
str = str.insert(pad_with_zeroes ? 0 : str.length() - number_len, "-");
if (show_sign || value < 0) {
String sign_char = value < 0 ? "-" : "+";
if (left_justified) {
str = str.insert(0, sign_char);
} else {
str = str.insert(pad_with_zeros ? 0 : str.length() - number_len, sign_char);
}
}
formatted += str;
@ -4292,13 +4293,9 @@ String String::sprintf(const Array &values, bool *error) const {
// Padding. Leave room for sign later if required.
int pad_chars_count = (is_negative || show_sign) ? min_chars - 1 : min_chars;
String pad_char = pad_with_zeroes ? String("0") : String(" ");
String pad_char = pad_with_zeros ? String("0") : String(" ");
if (left_justified) {
if (pad_with_zeroes) {
return "left justification cannot be used with zeros as the padding";
} else {
str = str.rpad(pad_chars_count, pad_char);
}
str = str.rpad(pad_chars_count, pad_char);
} else {
str = str.lpad(pad_chars_count, pad_char);
}
@ -4309,7 +4306,7 @@ String String::sprintf(const Array &values, bool *error) const {
if (left_justified) {
str = str.insert(0, sign_char);
} else {
str = str.insert(pad_with_zeroes ? 0 : str.length() - initial_len, sign_char);
str = str.insert(pad_with_zeros ? 0 : str.length() - initial_len, sign_char);
}
}
@ -4396,7 +4393,11 @@ String String::sprintf(const Array &values, bool *error) const {
min_decimals += n;
} else {
if (c == '0' && min_chars == 0) {
pad_with_zeroes = true;
if (left_justified) {
WARN_PRINT("'0' flag ignored with '-' flag in string format");
} else {
pad_with_zeros = true;
}
} else {
min_chars *= 10;
min_chars += n;
@ -4445,7 +4446,7 @@ String String::sprintf(const Array &values, bool *error) const {
// Back to defaults:
min_chars = 0;
min_decimals = 6;
pad_with_zeroes = false;
pad_with_zeros = false;
left_justified = false;
show_sign = false;
in_decimals = false;

View File

@ -1376,7 +1376,8 @@
Hints that a float property should be within an exponential range specified via the hint string [code]"min,max"[/code] or [code]"min,max,step"[/code]. The hint string can optionally include [code]"or_greater"[/code] and/or [code]"or_lesser"[/code] to allow manual input going respectively above the max or below the min values. Example: [code]"0.01,100,0.01,or_greater"[/code].
</constant>
<constant name="PROPERTY_HINT_ENUM" value="3" enum="PropertyHint">
Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string such as [code]"Hello,Something,Else"[/code].
Hints that an integer, float or string property is an enumerated value to pick in a list specified via a hint string.
The hint string is a comma separated list of names such as [code]"Hello,Something,Else"[/code]. For integer and float properties, the first name in the list has value 0, the next 1, and so on. Explicit values can also be specified by appending [code]:integer[/code] to the name, e.g. [code]"Zero,One,Three:3,Four,Six:6"[/code].
</constant>
<constant name="PROPERTY_HINT_EXP_EASING" value="4" enum="PropertyHint">
Hints that a float property should be edited via an exponential easing function. The hint string can include [code]"attenuation"[/code] to flip the curve horizontally and/or [code]"inout"[/code] to also include in/out easing.

View File

@ -172,7 +172,7 @@
<method name="erase">
<argument index="0" name="value" type="Variant" />
<description>
Removes the first occurrence of a value from the array. To remove an element by index, use [method remove] instead.
Removes the first occurrence of a value from the array. If the value does not exist in the array, nothing happens. To remove an element by index, use [method remove] instead.
[b]Note:[/b] This method acts in-place and doesn't return a value.
[b]Note:[/b] On large arrays, this method will be slower if the removed element is close to the beginning of the array (index 0). This is because all elements placed after the removed element have to be reindexed.
</description>

View File

@ -5,7 +5,7 @@
</brief_description>
<description>
AudioEffectCapture is an AudioEffect which copies all audio frames from the attached audio effect bus into its internal ring buffer.
Application code should consume these audio frames from this ring buffer using [method get_buffer] and process it as needed, for example to capture data from a microphone, implement application defined effects, or to transmit audio over the network.
Application code should consume these audio frames from this ring buffer using [method get_buffer] and process it as needed, for example to capture data from a microphone, implement application defined effects, or to transmit audio over the network. When capturing audio data from a microphone, the format of the samples will be stereo 32-bit floating point PCM.
</description>
<tutorials>
</tutorials>

View File

@ -81,7 +81,7 @@
The calculated light data.
</member>
<member name="quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality" default="1">
Determines the amount of samples per texel used in indrect light baking. The amount of samples for each quality level can be configured in the project settings.
Determines the amount of samples per texel used in indirect light baking. The amount of samples for each quality level can be configured in the project settings.
</member>
<member name="use_color" type="bool" setter="set_use_color" getter="is_using_color" default="true">
Store full color values in the lightmap textures. When disabled, lightmap textures will store a single brightness channel. Can be disabled to reduce disk usage if the scene contains only white lights or you don't mind losing color information in indirect lighting.

View File

@ -75,14 +75,14 @@
<return type="Vector3" />
<argument index="0" name="screen_point" type="Vector2" />
<description>
Returns a normal vector in world space, that is the result of projecting a point on the [Viewport] rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
Returns a normal vector in world space, that is the result of projecting a point on the [Viewport] rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
</description>
</method>
<method name="project_ray_origin" qualifiers="const">
<return type="Vector3" />
<argument index="0" name="screen_point" type="Vector2" />
<description>
Returns a 3D position in world space, that is the result of projecting a point on the [Viewport] rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
Returns a 3D position in world space, that is the result of projecting a point on the [Viewport] rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
</description>
</method>
<method name="set_cull_mask_bit">

View File

@ -35,6 +35,8 @@
<argument index="7" name="antialiased" type="bool" default="false" />
<description>
Draws a unfilled arc between the given angles. The larger the value of [code]point_count[/code], the smoother the curve. See also [method draw_circle].
[b]Note:[/b] Line drawing is not accelerated by batching if [code]antialiased[/code] is [code]true[/code].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
</description>
</method>
<method name="draw_char">
@ -54,7 +56,8 @@
<argument index="1" name="radius" type="float" />
<argument index="2" name="color" type="Color" />
<description>
Draws a colored, unfilled circle. See also [method draw_arc], [method draw_polyline] and [method draw_polygon].
Draws a colored, filled circle. See also [method draw_arc], [method draw_polyline] and [method draw_polygon].
[b]Note:[/b] Built-in antialiasing is not provided for [method draw_circle]. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_colored_polygon">
@ -67,6 +70,7 @@
<argument index="5" name="antialiased" type="bool" default="false" />
<description>
Draws a colored polygon of any amount of points, convex or concave. Unlike [method draw_polygon], a single color must be specified for the whole polygon.
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_line">
@ -78,6 +82,8 @@
<argument index="4" name="antialiased" type="bool" default="false" />
<description>
Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also [method draw_multiline] and [method draw_polyline].
[b]Note:[/b] Line drawing is not accelerated by batching if [code]antialiased[/code] is [code]true[/code].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
</description>
</method>
<method name="draw_mesh">
@ -99,7 +105,7 @@
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
Draws multiple disconnected lines with a uniform [code]color[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline] instead.
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect.
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
</description>
</method>
<method name="draw_multiline_colors">
@ -110,7 +116,7 @@
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
Draws multiple disconnected lines with a uniform [code]width[/code] and segment-by-segment coloring. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw interconnected lines, use [method draw_polyline_colors] instead.
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect.
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
</description>
</method>
<method name="draw_multimesh">
@ -132,6 +138,7 @@
<argument index="5" name="antialiased" type="bool" default="false" />
<description>
Draws a solid polygon of any amount of points, convex or concave. Unlike [method draw_colored_polygon], each point's color can be changed individually. See also [method draw_polyline] and [method draw_polyline_colors].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_polyline">
@ -142,6 +149,7 @@
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
Draws interconnected line segments with a uniform [code]color[/code] and [code]width[/code] and optional antialiasing. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline] instead. See also [method draw_polygon].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_polyline_colors">
@ -152,6 +160,7 @@
<argument index="3" name="antialiased" type="bool" default="false" />
<description>
Draws interconnected line segments with a uniform [code]width[/code] and segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between [code]points[/code] and [code]colors[/code]. When drawing large amounts of lines, this is faster than using individual [method draw_line] calls. To draw disconnected lines, use [method draw_multiline_colors] instead. See also [method draw_polygon].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_primitive">
@ -174,8 +183,9 @@
<argument index="3" name="width" type="float" default="1.0" />
<argument index="4" name="antialiased" type="bool" default="false" />
<description>
Draws a rectangle. If [code]filled[/code] is [code]true[/code], the rectangle will be filled with the [code]color[/code] specified. If [code]filled[/code] is [code]false[/code], the rectangle will be drawn as a stroke with the [code]color[/code] and [code]width[/code] specified. If [code]antialiased[/code] is [code]true[/code], the lines will be antialiased.
Draws a rectangle. If [code]filled[/code] is [code]true[/code], the rectangle will be filled with the [code]color[/code] specified. If [code]filled[/code] is [code]false[/code], the rectangle will be drawn as a stroke with the [code]color[/code] and [code]width[/code] specified. If [code]antialiased[/code] is [code]true[/code], the lines will attempt to perform antialiasing using OpenGL line smoothing.
[b]Note:[/b] [code]width[/code] and [code]antialiased[/code] are only effective if [code]filled[/code] is [code]false[/code].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</description>
</method>
<method name="draw_set_transform">
@ -377,7 +387,7 @@
<return type="void" />
<argument index="0" name="enable" type="bool" />
<description>
If [code]enable[/code] is [code]true[/code], the node won't inherit its transform from parent canvas items.
If [code]enable[/code] is [code]true[/code], this [CanvasItem] will [i]not[/i] inherit its transform from parent [CanvasItem]s. Its draw order will also be changed to make it draw on top of other [CanvasItem]s that are not set as top-level. The [CanvasItem] will effectively act as if it was placed as a child of a bare [Node]. See also [method is_set_as_toplevel].
</description>
</method>
<method name="set_notify_local_transform">

View File

@ -5,6 +5,7 @@
</brief_description>
<description>
CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision [Shape2D]s. Each shape must be assigned to a [i]shape owner[/i]. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the [code]shape_owner_*[/code] methods.
[b]Note:[/b] Only collisions between objects within the same canvas ([Viewport] canvas or [CanvasLayer]) are supported. The behavior of collisions between objects in different canvases is undefined.
</description>
<tutorials>
</tutorials>

View File

@ -780,7 +780,7 @@
The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size, even if its content is smaller. If it's set to (0, 0), the node sizes automatically to fit its content, be it a texture or child nodes.
</member>
<member name="rect_pivot_offset" type="Vector2" setter="set_pivot_offset" getter="get_pivot_offset" default="Vector2( 0, 0 )">
By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle.
By default, the node's pivot is its top-left corner. When you change its [member rect_rotation] or [member rect_scale], it will rotate or scale around this pivot. Set this property to [member rect_size] / 2 to pivot around the Control's center.
</member>
<member name="rect_position" type="Vector2" setter="_set_position" getter="get_position" default="Vector2( 0, 0 )">
The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset].

View File

@ -17,7 +17,7 @@
<argument index="2" name="out" type="Vector2" default="Vector2( 0, 0 )" />
<argument index="3" name="at_position" type="int" default="-1" />
<description>
Adds a point to a curve at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
Adds a point to a curve at [code]position[/code] relative to the [Curve2D]'s position, with control points [code]in[/code] and [code]out[/code].
If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt;0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
</description>
</method>

View File

@ -17,7 +17,7 @@
<argument index="2" name="out" type="Vector3" default="Vector3( 0, 0, 0 )" />
<argument index="3" name="at_position" type="int" default="-1" />
<description>
Adds a point to a curve at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
Adds a point to a curve at [code]position[/code] relative to the [Curve3D]'s position, with control points [code]in[/code] and [code]out[/code].
If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt;0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
</description>
</method>

View File

@ -12,10 +12,10 @@
</methods>
<members>
<member name="curve" type="Curve" setter="set_curve" getter="get_curve">
The [code]curve[/code] rendered onto the texture.
The [Curve] that is rendered onto the texture.
</member>
<member name="width" type="int" setter="set_width" getter="get_width" default="2048">
The width of the texture.
The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage.
</member>
</members>
<constants>

View File

@ -31,7 +31,7 @@
[/codeblock]
You can access a dictionary's values by referencing the appropriate key. In the above example, [code]points_dict["White"][/code] will return [code]50[/code]. You can also write [code]points_dict.White[/code], which is equivalent. However, you'll have to use the bracket syntax if the key you're accessing the dictionary with isn't a fixed string (such as a number or variable).
[codeblock]
export(string, "White", "Yellow", "Orange") var my_color
export(String, "White", "Yellow", "Orange") var my_color
var points_dict = {"White": 50, "Yellow": 75, "Orange": 100}
func _ready():
# We can't use dot syntax here as `my_color` is a variable.

View File

@ -40,7 +40,7 @@
</description>
</method>
<method name="handle_menu_selected" qualifiers="virtual">
<return type="void" />
<return type="bool" />
<argument index="0" name="id" type="int" />
<description>
This virtual method can be implemented to handle context menu items not handled by default. See [method set_create_options].

View File

@ -302,7 +302,8 @@
</members>
<constants>
<constant name="BG_KEEP" value="5" enum="BGMode">
Keeps on screen every pixel drawn in the background. This is the fastest background mode, but it can only be safely used in fully-interior scenes (no visible sky or sky reflections). If enabled in a scene where the background is visible, "ghost trail" artifacts will be visible when moving the camera.
Keeps on screen every pixel drawn in the background. Only select this mode if you really need to keep the old data. On modern GPUs it will generally not be faster than clearing the background, and can be significantly slower, particularly on mobile.
It can only be safely used in fully-interior scenes (no visible sky or sky reflections). If enabled in a scene where the background is visible, "ghost trail" artifacts will be visible when moving the camera.
</constant>
<constant name="BG_CLEAR_COLOR" value="0" enum="BGMode">
Clears the background using the clear color defined in [member ProjectSettings.rendering/environment/default_clear_color].
@ -338,19 +339,20 @@
Replace glow blending mode. Replaces all pixels' color by the glow value. This can be used to simulate a full-screen blur effect by tweaking the glow parameters to match the original image's brightness.
</constant>
<constant name="TONE_MAPPER_LINEAR" value="0" enum="ToneMapper">
Linear tonemapper operator. Reads the linear data and passes it on unmodified.
Linear tonemapper operator. Reads the linear data and passes it on unmodified. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.
</constant>
<constant name="TONE_MAPPER_REINHARDT" value="1" enum="ToneMapper">
Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code].
Reinhardt tonemapper operator. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.
</constant>
<constant name="TONE_MAPPER_FILMIC" value="2" enum="ToneMapper">
Filmic tonemapper operator.
Filmic tonemapper operator. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant TONE_MAPPER_REINHARDT].
</constant>
<constant name="TONE_MAPPER_ACES" value="3" enum="ToneMapper">
Academy Color Encoding System tonemapper operator. Performs an approximation of the ACES tonemapping curve.
Use the legacy Godot version of the Academy Color Encoding System tonemapper. Unlike [constant TONE_MAPPER_ACES_FITTED], this version of ACES does not handle bright lighting in a physically accurate way. ACES typically has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and [constant TONE_MAPPER_FILMIC].
[b]Note:[/b] This tonemapping operator will be removed in Godot 4.0 in favor of the more accurate [constant TONE_MAPPER_ACES_FITTED].
</constant>
<constant name="TONE_MAPPER_ACES_FITTED" value="4" enum="ToneMapper">
High quality Academy Color Encoding System tonemapper operator that matches the industry standard. Performs a more physically accurate curve fit which better simulates how light works in the real world. The color of lights and emissive materials will become lighter as the emissive energy increases, and will eventually become white if the light is bright enough to saturate the camera sensor.
Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant TONE_MAPPER_REINHARDT] and [constant TONE_MAPPER_FILMIC].
</constant>
<constant name="DOF_BLUR_QUALITY_LOW" value="0" enum="DOFBlurQuality">
Low depth-of-field blur quality (fastest).

View File

@ -189,7 +189,7 @@
<argument index="2" name="from_b" type="Vector2" />
<argument index="3" name="dir_b" type="Vector2" />
<description>
Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and ([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns an empty [Variant].
Checks if the two lines ([code]from_a[/code], [code]dir_a[/code]) and ([code]from_b[/code], [code]dir_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns [code]null[/code].
[b]Note:[/b] The lines are specified using direction vectors, not end points.
</description>
</method>
@ -297,7 +297,7 @@
<argument index="2" name="from_b" type="Vector2" />
<argument index="3" name="to_b" type="Vector2" />
<description>
Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and ([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns an empty [Variant].
Checks if the two segments ([code]from_a[/code], [code]to_a[/code]) and ([code]from_b[/code], [code]to_b[/code]) intersect. If yes, return the point of intersection as [Vector2]. If no intersection takes place, returns [code]null[/code].
</description>
</method>
<method name="segment_intersects_sphere">

View File

@ -4,7 +4,7 @@
Gradient-filled texture.
</brief_description>
<description>
GradientTexture uses a [Gradient] to fill the texture data. The gradient will be filled from left to right using colors obtained from the gradient. This means the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [member width]).
GradientTexture uses a [Gradient] to fill the texture data. The gradient will be filled from left to right using colors obtained from the gradient. This means the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [member width]). See also [CurveTexture].
</description>
<tutorials>
</tutorials>

View File

@ -15,10 +15,10 @@
Height map data, pool array must be of [member map_width] * [member map_depth] size.
</member>
<member name="map_depth" type="int" setter="set_map_depth" getter="get_map_depth" default="2">
Depth of the height map data. Changing this will resize the [member map_data].
Number of vertices in the depth of the height map. Changing this will resize the [member map_data].
</member>
<member name="map_width" type="int" setter="set_map_width" getter="get_map_width" default="2">
Width of the height map data. Changing this will resize the [member map_data].
Number of vertices in the width of the height map. Changing this will resize the [member map_data].
</member>
</members>
<constants>

View File

@ -375,7 +375,8 @@
<argument index="0" name="enable" type="bool" />
<description>
Enables or disables the accumulation of similar input events sent by the operating system. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS.
Input accumulation is enabled by default. It can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input.
[b]Note:[/b] Input accumulation is [i]disabled[/i] by default for backward compatibility reasons. It is however recommended to enable it for games which don't require very reactive input, as this will decrease CPU usage.
</description>
</method>
<method name="start_joy_vibration">

View File

@ -19,7 +19,7 @@
If [code]true[/code], the button's state is pressed. If [code]false[/code], the button's state is released.
</member>
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure" default="0.0">
Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
Represents the pressure the user puts on the button with their finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
</member>
</members>
<constants>

View File

@ -5,7 +5,8 @@
</brief_description>
<description>
Contains mouse and pen motion information. Supports relative, absolute positions and speed. See [method Node._input].
[b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call [method Input.set_use_accumulated_input] with [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
[b]Note:[/b] By default, this event can be emitted multiple times per frame rendered, allowing for precise input reporting, at the expense of CPU usage. You can call [method Input.set_use_accumulated_input] with [code]true[/code] to let multiple events merge into a single emitted event per frame.
[b]Note:[/b] If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
</description>
<tutorials>
<link title="Mouse and input coordinates">https://docs.godotengine.org/en/3.4/tutorials/inputs/mouse_and_input_coordinates.html</link>

View File

@ -87,6 +87,7 @@
<argument index="0" name="action" type="String" />
<description>
Returns an array of [InputEvent]s associated with a given action.
[b]Note:[/b] When used in the editor (e.g. a tool script or [EditorPlugin]), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the [code]input/*[/code] settings from [ProjectSettings].
</description>
</method>
<method name="get_actions">

View File

@ -4,7 +4,7 @@
A 2D line.
</brief_description>
<description>
A line through several points in 2D space.
A line through several points in 2D space. Supports varying width and color over the line's length, texturing, and several cap/joint types.
[b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase [member ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and [member ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb].
</description>
<tutorials>
@ -58,8 +58,9 @@
</methods>
<members>
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
If [code]true[/code], the line's border will be anti-aliased.
[b]Note:[/b] Line2D is not accelerated by batching when being anti-aliased.
If [code]true[/code], the line's border will attempt to perform antialiasing by drawing thin OpenGL smooth lines on the line's edges.
[b]Note:[/b] Line2D is not accelerated by batching if [member antialiased] is [code]true[/code].
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
</member>
<member name="begin_cap_mode" type="int" setter="set_begin_cap_mode" getter="get_begin_cap_mode" enum="Line2D.LineCapMode" default="0">
Controls the style of the line's first point. Use [enum LineCapMode] constants.

View File

@ -4,7 +4,7 @@
Node that instances meshes into a scenario.
</brief_description>
<description>
MeshInstance is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single [Mesh] in many places. This allows to reuse geometry and save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
MeshInstance is a node that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single [Mesh] in many places. This allows reusing geometry, which can save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
</description>
<tutorials>
<link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link>
@ -52,13 +52,14 @@
<return type="Material" />
<argument index="0" name="surface" type="int" />
<description>
Returns the [Material] for a surface of the [Mesh] resource.
Returns the override [Material] for a surface of the [Mesh] resource.
[b]Note:[/b] This function only returns [i]override[/i] materials associated with this [MeshInstance]. Consider using [method get_active_material] or [method Mesh.surface_get_material] to get materials associated with the [Mesh] resource.
</description>
</method>
<method name="get_surface_material_count" qualifiers="const">
<return type="int" />
<description>
Returns the number of surface materials.
Returns the number of surface override materials.
</description>
</method>
<method name="set_surface_material">
@ -66,7 +67,7 @@
<argument index="0" name="surface" type="int" />
<argument index="1" name="material" type="Material" />
<description>
Sets the [Material] for a surface of the [Mesh] resource.
Sets the override [Material] for the specified surface of the [Mesh] resource. This material is associated with this [MeshInstance] rather than with the [Mesh] resource.
</description>
</method>
</methods>

View File

@ -118,7 +118,7 @@
child_node.get_parent().remove_child(child_node)
add_child(child_node)
[/codeblock]
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://godot.readthedocs.io/en/3.2/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://docs.godotengine.org/en/3.4/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
</description>
</method>
<method name="add_child_below_node">
@ -534,7 +534,7 @@
<return type="Variant" />
<argument index="0" name="method" type="String" />
<description>
Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns an empty [Variant].
Sends a remote procedure call request for the given [code]method[/code] to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns [code]null[/code].
[b]Note:[/b] You can only safely use RPCs on clients after you received the [code]connected_to_server[/code] signal from the [SceneTree]. You also need to keep track of the connection state, either by the [SceneTree] signals like [code]server_disconnected[/code] or by checking [code]SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED[/code].
</description>
</method>
@ -551,14 +551,14 @@
<argument index="0" name="peer_id" type="int" />
<argument index="1" name="method" type="String" />
<description>
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant].
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns [code]null[/code].
</description>
</method>
<method name="rpc_unreliable" qualifiers="vararg">
<return type="Variant" />
<argument index="0" name="method" type="String" />
<description>
Sends a [method rpc] using an unreliable protocol. Returns an empty [Variant].
Sends a [method rpc] using an unreliable protocol. Returns [code]null[/code].
</description>
</method>
<method name="rpc_unreliable_id" qualifiers="vararg">
@ -566,7 +566,7 @@
<argument index="0" name="peer_id" type="int" />
<argument index="1" name="method" type="String" />
<description>
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant].
Sends a [method rpc] to a specific peer identified by [code]peer_id[/code] using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns [code]null[/code].
</description>
</method>
<method name="rset">
@ -708,6 +708,7 @@
</member>
<member name="owner" type="Node" setter="set_owner" getter="get_owner">
The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using [PackedScene]), all the nodes it owns will be saved with it. This allows for the creation of complex [SceneTree]s, with instancing and subinstancing.
[b]Note:[/b] If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://docs.godotengine.org/en/3.4/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.
</member>
<member name="pause_mode" type="int" setter="set_pause_mode" getter="get_pause_mode" enum="Node.PauseMode" default="0">
Pause mode. How the node will behave if the [SceneTree] is paused.

View File

@ -152,6 +152,10 @@
if argument.find("=") &gt; -1:
var key_value = argument.split("=")
arguments[key_value[0].lstrip("--")] = key_value[1]
else:
# Options without an argument will be present in the dictionary,
# with the value set to an empty string.
arguments[argument.lstrip("--")] = ""
[/codeblock]
</description>
</method>

View File

@ -44,7 +44,8 @@
<method name="_init" qualifiers="virtual">
<return type="void" />
<description>
Called when the object is initialized.
Called when the object is initialized in memory. Can be defined to take in parameters, that are passed in when constructing.
[b]Note:[/b] If [method _init] is defined with required parameters, then explicit construction is the only valid means of creating an Object of the class. If any other means (such as [method PackedScene.instance]) is used, then initialization will fail.
</description>
</method>
<method name="_notification" qualifiers="virtual">
@ -126,7 +127,7 @@
<argument index="4" name="flags" type="int" default="0" />
<description>
Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call as an [Array] of parameters. These parameters will be passed to the method after any parameter used in the call to [method emit_signal]. Use [code]flags[/code] to set deferred or one-shot connections. See [enum ConnectFlags] constants.
A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected, unless the signal was connected with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method is_connected] to check for existing connections.
A [code]signal[/code] can only be connected once to a [code]method[/code]. It will print an error if already connected, unless the signal was connected with [constant CONNECT_REFERENCE_COUNTED]. To avoid this, first, use [method is_connected] to check for existing connections.
If the [code]target[/code] is destroyed in the game's lifecycle, the connection will be lost.
Examples:
[codeblock]
@ -150,7 +151,7 @@
<argument index="2" name="method" type="String" />
<description>
Disconnects a [code]signal[/code] from a [code]method[/code] on the given [code]target[/code].
If you try to disconnect a connection that does not exist, the method will throw an error. Use [method is_connected] to ensure that the connection exists.
If you try to disconnect a connection that does not exist, the method will print an error. Use [method is_connected] to ensure that the connection exists.
</description>
</method>
<method name="emit_signal" qualifiers="vararg">

View File

@ -673,7 +673,7 @@
<return type="int" />
<argument index="0" name="process_info" type="int" enum="PhysicsServer.ProcessInfo" />
<description>
Returns an Info defined by the [enum ProcessInfo] input given.
Returns information about the current state of the 3D physics engine. See [enum ProcessInfo] for a list of available states. Only implemented for Godot Physics.
</description>
</method>
<method name="hinge_joint_get_flag" qualifiers="const">

View File

@ -70,7 +70,8 @@
</methods>
<members>
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased" default="false">
If [code]true[/code], polygon edges will be anti-aliased.
If [code]true[/code], attempts to perform antialiasing for polygon edges by drawing a thin OpenGL smooth line on the edges.
[b]Note:[/b] Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the [url=https://github.com/godot-extended-libraries/godot-antialiased-line2d]Antialiased Line2D[/url] add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.
</member>
<member name="bones" type="Array" setter="_set_bones" getter="_get_bones" default="[ ]">
</member>

View File

@ -1397,10 +1397,12 @@
Lower-end override for [member rendering/quality/shading/force_lambert_over_burley] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shading/force_vertex_shading" type="bool" setter="" getter="" default="false">
If [code]true[/code], forces vertex shading for all rendering. This can increase performance a lot, but also reduces quality immensely. Can be used to optimize performance on low-end mobile devices.
If [code]true[/code], forces vertex shading for all 3D [SpatialMaterial] and [ShaderMaterial] rendering. This can be used to improve performance on low-end mobile devices. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
See also [member SpatialMaterial.flags_vertex_lighting] which can be used to enable vertex shading on specific materials only.
[b]Note:[/b] This setting does not affect unshaded materials.
</member>
<member name="rendering/quality/shading/force_vertex_shading.mobile" type="bool" setter="" getter="" default="true">
Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support.
Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support. If lighting looks broken after exporting the project to a mobile platform, try disabling this setting.
</member>
<member name="rendering/quality/shading/use_physical_light_attenuation" type="bool" setter="" getter="" default="false">
If [code]true[/code], enables new physical light attenuation for [OmniLight]s and [SpotLight]s. This results in more realistic lighting appearance with a very small performance cost. When physical light attenuation is enabled, lights will appear to be darker as a result of the new attenuation formula. This can be compensated by adjusting the lights' energy or attenuation values.

View File

@ -1,10 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ProximityGroup" inherits="Spatial" version="3.4">
<brief_description>
General-purpose proximity detection node.
General-purpose 3D proximity detection node.
</brief_description>
<description>
General-purpose proximity detection node.
General-purpose proximity detection node. [ProximityGroup] can be used for [i]approximate[/i] distance checks, which are faster than exact distance checks using [method Vector3.distance_to] or [method Vector3.distance_squared_to].
[ProximityGroup] nodes are automatically grouped together, as long as they share the same [member group_name] and intersect with each other. By calling the [method broadcast], you can invoke a specified method with various parameters to all intersecting members.
[ProximityGroup] is cuboid-shaped and consists of a cluster of [Vector3] coordinates. The coordinates are automatically calculated by calling [member grid_radius]. To allow [ProximityGroup] to find its peers (and perform automatic grouping), you need to define its [member group_name] to a non-empty [String]. As soon as this object's shape intersects with another [ProximityGroup] object' shape, and both share the same [member group_name], they will belong together for as long as they intersect.
Since [ProximityGroup] doesn't rely the physics engine, you don't need to add any other node as a child (unlike [PhysicsBody]).
The [ProximityGroup] uses the [SceneTree] groups in the background by calling the method [method Node.add_to_group] internally. The [SceneTree] group names are constructed by combining the [member group_name] with its coordinates, which are calculated using the [member grid_radius] you defined beforehand.
[b]Example:[/b] A [ProximityGroup] node named [code]"PlanetEarth"[/code] at position [code]Vector3(6, 6, 6)[/code] with a [member group_name] set to [code]"planets"[/code] and a [member grid_radius] of [code]Vector3(1, 2, 3)[/code] will create the following [SceneTree] group names:
[codeblock]
- "planets|5|4|3"
- "planets|5|4|4"
- "planets|5|4|5"
- "planets|5|4|6"
- "planets|5|4|7"
- "planets|5|4|8"
- "planets|5|4|9"
- ...
[/codeblock]
If there is another [ProximityGroup] named [code]"PlanetMars"[/code] with group name [code]"planets"[/code], and one of its coordinates is [code]Vector3(5, 4, 7)[/code], it would normally create the [SceneTree] group called [code]"planets|5|4|7"[/code]. However, since this group name already exists, this [ProximityGroup] object will be [i]added[/i] to the existing one. [code]"PlanetEarth"[/code] is already in this group. As long as both nodes don't change their transform and stop intersecting (or exit the scene tree), they are grouped together. As long as this intersection exists, any call to [method broadcast] will affect [i]both[/i] [ProximityGroup] nodes.
There are 3 caveats to keep in mind when using [ProximityGroup]:
- The larger the grid radius, the more coordinates and the more [SceneTree] groups are created. This can have a performance impact if too many groups are created.
- If the [ProximityGroup] node is transformed in any way (or is removed from the scene tree), the groupings will have to be recalculated. This can also have a performance impact.
- If your [member grid_radius] is smaller than [code]Vector3(1, 1, 1)[/code], it will be rounded up to [code]Vector3(1, 1, 1)[/code]. Therefore, small grid radius values may lead to unwanted groupings.
[b]Note:[/b] [ProximityGroup] will be removed in Godot 4.0 in favor of more effective and faster [VisibilityNotifier] functionality. For most use cases, [method Vector3.distance_to] or [method Vector3.distance_squared_to] are fast enough too, especially if you call them less often using a [Timer] node.
</description>
<tutorials>
</tutorials>
@ -14,15 +35,21 @@
<argument index="0" name="method" type="String" />
<argument index="1" name="parameters" type="Variant" />
<description>
Calls on all intersecting [ProximityGroup] the given method and parameters.
If the [member dispatch_mode] is set to [constant MODE_PROXY] (the default), all calls are delegated to their respective parent [Node].
</description>
</method>
</methods>
<members>
<member name="dispatch_mode" type="int" setter="set_dispatch_mode" getter="get_dispatch_mode" enum="ProximityGroup.DispatchMode" default="0">
Specifies which node gets contacted on a call of method [method broadcast].
</member>
<member name="grid_radius" type="Vector3" setter="set_grid_radius" getter="get_grid_radius" default="Vector3( 1, 1, 1 )">
The size of the space in 3D units. This also sets the amount of coordinates required to calculate whether two [ProximityGroup] nodes are intersecting or not. Smaller [member grid_radius] values can be used for more precise proximity checks at the cost of performance, since more groups will be created.
</member>
<member name="group_name" type="String" setter="set_group_name" getter="get_group_name" default="&quot;&quot;">
Specify the common group name, to let other [ProximityGroup] nodes know, if they should be auto-grouped with this node in case they intersect with each other.
For example, if you have a [ProximityGroup] node named [code]"Earth"[/code] and another called [code]"Mars"[/code], with both nodes having [code]"planet"[/code] as their [member group_name]. Give both planets a significantly larger [member grid_radius] than their actual radius, position them close enough and they'll be automatically grouped.
</member>
</members>
<signals>
@ -30,13 +57,18 @@
<argument index="0" name="method" type="String" />
<argument index="1" name="parameters" type="Array" />
<description>
Emitted when the user calls the [method broadcast] method and has set [member dispatch_mode] to [constant MODE_SIGNAL].
The given method and its parameters are passed on to the listeners who connected to this signal of this object, as well as any [ProximityGroup] node this node is grouped together with.
[b]Note:[/b] This signal is [i]not[/i] emitted by default, as the default [member dispatch_mode] is [constant MODE_PROXY].
</description>
</signal>
</signals>
<constants>
<constant name="MODE_PROXY" value="0" enum="DispatchMode">
This [ProximityGroup]'s parent will be target of [method broadcast].
</constant>
<constant name="MODE_SIGNAL" value="1" enum="DispatchMode">
This [ProximityGroup] will emit the [signal broadcast] [i]signal[/i] when calling the [method broadcast] [i]method[/i].
</constant>
</constants>
</class>

View File

@ -13,13 +13,13 @@
<return type="void" />
<argument index="0" name="with" type="Node" />
<description>
Binds two ranges together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.
Binds two [Range]s together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group.
</description>
</method>
<method name="unshare">
<return type="void" />
<description>
Stops range from sharing its member variables with any other.
Stops the [Range] from sharing its member variables with any other.
</description>
</method>
</methods>
@ -64,7 +64,8 @@
<signal name="value_changed">
<argument index="0" name="value" type="float" />
<description>
Emitted when [member value] changes.
Emitted when [member value] changes. When used on a [Slider], this is called continuously while dragging (potentially every frame). If you are performing an expensive operation in a function connected to [signal value_changed], consider using a [i]debouncing[/i] [Timer] to call the function less often.
[b]Note:[/b] Unlike signals such as [signal LineEdit.text_changed], [signal value_changed] is also emitted when [code]value[/code] is set directly via code.
</description>
</signal>
</signals>

View File

@ -108,7 +108,7 @@
</methods>
<members>
<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0">
Damps RigidBody's rotational forces.
Damps RigidBody's rotational forces. If this value is different from -1.0 it will be added to any linear damp derived from the world or areas.
See [member ProjectSettings.physics/3d/default_angular_damp] for more details about damping.
</member>
<member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity" default="Vector3( 0, 0, 0 )">
@ -162,7 +162,7 @@
This is multiplied by the global 3D gravity setting found in [b]Project &gt; Project Settings &gt; Physics &gt; 3d[/b] to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.
</member>
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="-1.0">
The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden.
The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0 it will be added to any linear damp derived from the world or areas.
See [member ProjectSettings.physics/3d/default_linear_damp] for more details about damping.
</member>
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3( 0, 0, 0 )">

View File

@ -94,7 +94,7 @@
</methods>
<members>
<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="-1.0">
Damps the body's [member angular_velocity]. If [code]-1[/code], the body will use the [b]Default Angular Damp[/b] defined in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b].
Damps the body's [member angular_velocity]. If [code]-1[/code], the body will use the [b]Default Angular Damp[/b] defined in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b]. If greater than [code]-1[/code] it will be added to the default project value.
See [member ProjectSettings.physics/2d/default_angular_damp] for more details about damping.
</member>
<member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity" default="0.0">
@ -139,7 +139,7 @@
The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this function allows you to set a custom value. Set 0 inertia to return to automatically computing it.
</member>
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="-1.0">
Damps the body's [member linear_velocity]. If [code]-1[/code], the body will use the [b]Default Linear Damp[/b] in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b].
Damps the body's [member linear_velocity]. If [code]-1[/code], the body will use the [b]Default Linear Damp[/b] in [b]Project &gt; Project Settings &gt; Physics &gt; 2d[/b]. If greater than [code]-1[/code] it will be added to the default project value.
See [member ProjectSettings.physics/2d/default_linear_damp] for more details about damping.
</member>
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector2( 0, 0 )">

View File

@ -55,6 +55,7 @@
Changes the running scene to a new instance of the given [PackedScene].
Returns [constant OK] on success or [constant ERR_CANT_CREATE] if the scene cannot be instantiated.
[b]Note:[/b] The scene change is deferred, which means that the new scene node is added on the next idle frame. You won't be able to access it immediately after the [method change_scene_to] call.
[b]Note:[/b] Passing a value of [code]null[/code] into the method will unload the current scene without loading a new one.
</description>
</method>
<method name="create_timer">

View File

@ -26,7 +26,9 @@
<argument index="1" name="with_shape" type="Shape2D" />
<argument index="2" name="shape_xform" type="Transform2D" />
<description>
Returns a list of the points where this shape touches another. If there are no collisions the list is empty.
Returns a list of contact point pairs where this shape touches another.
If there are no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of [code]with_shape[/code].
A collision pair A, B can be used to calculate the collision normal with [code](B - A).normalized()[/code], and the collision depth with [code](B - A).length()[/code]. This information is typically used to separate shapes, particularly in collision solvers.
This method needs the transformation matrix for this shape ([code]local_xform[/code]), the shape to check collisions with ([code]with_shape[/code]), and the transformation matrix of that shape ([code]shape_xform[/code]).
</description>
</method>
@ -50,7 +52,9 @@
<argument index="3" name="shape_xform" type="Transform2D" />
<argument index="4" name="shape_motion" type="Vector2" />
<description>
Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty.
Returns a list of contact point pairs where this shape would touch another, if a given movement was applied.
If there would be no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of [code]with_shape[/code].
A collision pair A, B can be used to calculate the collision normal with [code](B - A).normalized()[/code], and the collision depth with [code](B - A).length()[/code]. This information is typically used to separate shapes, particularly in collision solvers.
This method needs the transformation matrix for this shape ([code]local_xform[/code]), the movement to test on this shape ([code]local_motion[/code]), the shape to check collisions with ([code]with_shape[/code]), the transformation matrix of that shape ([code]shape_xform[/code]), and the movement to test onto the other object ([code]shape_motion[/code]).
</description>
</method>

View File

@ -208,7 +208,10 @@
If [code]true[/code], enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR.
</member>
<member name="flags_vertex_lighting" type="bool" setter="set_flag" getter="get_flag" default="false">
If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices.
If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices, especially for meshes with a lower polygon count. The downside is that shading becomes much less accurate, with visible linear interpolation between vertices that are joined together. This can be compensated by ensuring meshes have a sufficient level of subdivision (but not too much, to avoid reducing performance). Some material features are also not supported when vertex shading is enabled.
See also [member ProjectSettings.rendering/quality/shading/force_vertex_shading] which can globally enable vertex shading on all materials.
[b]Note:[/b] By default, vertex shading is enforced on mobile platforms by [member ProjectSettings.rendering/quality/shading/force_vertex_shading]'s [code]mobile[/code] override.
[b]Note:[/b] [member flags_vertex_lighting] has no effect if [member flags_unshaded] is [code]true[/code].
</member>
<member name="flags_world_triplanar" type="bool" setter="set_flag" getter="get_flag" default="false">
If [code]true[/code], triplanar mapping is calculated in world space rather than object local space. See also [member uv1_triplanar].

View File

@ -188,7 +188,10 @@
<method name="bigrams">
<return type="PoolStringArray" />
<description>
Returns the bigrams (pairs of consecutive letters) of this string.
Returns an array containing the bigrams (pairs of consecutive letters) of this string.
[codeblock]
print("Bigrams".bigrams()) # Prints "[Bi, ig, gr, ra, am, ms]"
[/codeblock]
</description>
</method>
<method name="c_escape">
@ -434,7 +437,13 @@
<method name="is_valid_float">
<return type="bool" />
<description>
Returns [code]true[/code] if this string contains a valid float.
Returns [code]true[/code] if this string contains a valid float. This is inclusive of integers, and also supports exponents:
[codeblock]
print("1.7".is_valid_float()) # Prints "True"
print("24".is_valid_float()) # Prints "True"
print("7e3".is_valid_float()) # Prints "True"
print("Hello".is_valid_float()) # Prints "False"
[/codeblock]
</description>
</method>
<method name="is_valid_hex_number">
@ -454,12 +463,24 @@
<return type="bool" />
<description>
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
[codeblock]
print("good_ident_1".is_valid_identifier()) # Prints "True"
print("1st_bad_ident".is_valid_identifier()) # Prints "False"
print("bad_ident_#2".is_valid_identifier()) # Prints "False"
[/codeblock]
</description>
</method>
<method name="is_valid_integer">
<return type="bool" />
<description>
Returns [code]true[/code] if this string contains a valid integer.
[codeblock]
print("7".is_valid_int()) # Prints "True"
print("14.6".is_valid_int()) # Prints "False"
print("L".is_valid_int()) # Prints "False"
print("+3".is_valid_int()) # Prints "True"
print("-12".is_valid_int()) # Prints "True"
[/codeblock]
</description>
</method>
<method name="is_valid_ip_address">
@ -499,14 +520,14 @@
<return type="bool" />
<argument index="0" name="expr" type="String" />
<description>
Does a simple case-sensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]).
Does a simple case-sensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]). An empty string or empty expression always evaluates to [code]false[/code].
</description>
</method>
<method name="matchn">
<return type="bool" />
<argument index="0" name="expr" type="String" />
<description>
Does a simple case-insensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]).
Does a simple case-insensitive expression match, where [code]"*"[/code] matches zero or more arbitrary characters and [code]"?"[/code] matches any single character except a period ([code]"."[/code]). An empty string or empty expression always evaluates to [code]false[/code].
</description>
</method>
<method name="md5_buffer">
@ -642,8 +663,8 @@
var some_string = "One,Two,Three,Four"
var some_array = some_string.rsplit(",", true, 1)
print(some_array.size()) # Prints 2
print(some_array[0]) # Prints "Four"
print(some_array[1]) # Prints "Three,Two,One"
print(some_array[0]) # Prints "One,Two,Three"
print(some_array[1]) # Prints "Four"
[/codeblock]
</description>
</method>
@ -683,7 +704,13 @@
<return type="float" />
<argument index="0" name="text" type="String" />
<description>
Returns the similarity index of the text compared to this string. 1 means totally similar and 0 means totally dissimilar.
Returns the similarity index ([url=https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient]Sorensen-Dice coefficient[/url]) of this string compared to another. A result of 1.0 means totally similar, while 0.0 means totally dissimilar.
[codeblock]
print("ABC123".similarity("ABC123")) # Prints "1"
print("ABC123".similarity("XYZ456")) # Prints "0"
print("ABC123".similarity("123ABC")) # Prints "0.8"
print("ABC123".similarity("abc123")) # Prints "0.4"
[/codeblock]
</description>
</method>
<method name="simplify_path">

View File

@ -99,7 +99,7 @@
Returns the currently edited item. Can be used with [signal item_edited] to get the item that was modified.
[codeblock]
func _ready():
$Tree.item_edited.connect(on_Tree_item_edited)
$Tree.connect("item_edited", self, "on_Tree_item_edited")
func on_Tree_item_edited():
print($Tree.get_edited()) # This item just got edited (e.g. checked).

View File

@ -52,7 +52,7 @@
<argument index="0" name="to" type="Vector2" />
<description>
Returns the angle between the line connecting the two points and the X axis, in radians.
[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/vector2_angle_to_point.png]Illustration of the returned angle.[/url]
[url=https://raw.githubusercontent.com/godotengine/godot-docs/3.4/img/vector2_angle_to_point.png]Illustration of the returned angle.[/url]
</description>
</method>
<method name="aspect">

View File

@ -1751,7 +1751,7 @@
<argument index="0" name="material" type="RID" />
<argument index="1" name="parameter" type="String" />
<description>
Returns the default value for the param if available. Otherwise returns an empty [Variant].
Returns the default value for the param if available. Returns [code]null[/code] otherwise.
</description>
</method>
<method name="material_get_shader" qualifiers="const">
@ -3789,19 +3789,20 @@
Shows the glow effect by itself without the underlying scene.
</constant>
<constant name="ENV_TONE_MAPPER_LINEAR" value="0" enum="EnvironmentToneMapper">
Output color as they came in.
Output color as they came in. This can cause bright lighting to look blown out, with noticeable clipping in the output colors.
</constant>
<constant name="ENV_TONE_MAPPER_REINHARD" value="1" enum="EnvironmentToneMapper">
Use the Reinhard tonemapper.
Use the Reinhard tonemapper. Performs a variation on rendered pixels' colors by this formula: [code]color = color / (1 + color)[/code]. This avoids clipping bright highlights, but the resulting image can look a bit dull.
</constant>
<constant name="ENV_TONE_MAPPER_FILMIC" value="2" enum="EnvironmentToneMapper">
Use the filmic tonemapper.
Use the filmic tonemapper. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than [constant ENV_TONE_MAPPER_REINHARD].
</constant>
<constant name="ENV_TONE_MAPPER_ACES" value="3" enum="EnvironmentToneMapper">
Use the ACES tonemapper.
Use the legacy Godot version of the Academy Color Encoding System tonemapper. Unlike [constant ENV_TONE_MAPPER_ACES_FITTED], this version of ACES does not handle bright lighting in a physically accurate way. ACES typically has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] and [constant ENV_TONE_MAPPER_FILMIC].
[b]Note:[/b] This tonemapping operator will be removed in Godot 4.0 in favor of the more accurate [constant ENV_TONE_MAPPER_ACES_FITTED].
</constant>
<constant name="ENV_TONE_MAPPER_ACES_FITTED" value="4" enum="EnvironmentToneMapper">
Use the ACES Fitted tonemapper.
Use the Academy Color Encoding System tonemapper. ACES is slightly more expensive than other options, but it handles bright lighting in a more realistic fashion by desaturating it as it becomes brighter. ACES typically has a more contrasted output compared to [constant ENV_TONE_MAPPER_REINHARD] and [constant ENV_TONE_MAPPER_FILMIC].
</constant>
<constant name="ENV_SSAO_QUALITY_LOW" value="0" enum="EnvironmentSSAOQuality">
Lowest quality of screen space ambient occlusion.

View File

@ -29095,7 +29095,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29042,7 +29042,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28862,7 +28862,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29533,7 +29533,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -31228,7 +31228,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29017,7 +29017,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -38638,7 +38638,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""
"Representa la presión que el usuario ejerce sobre el botón con su dedo, si "

View File

@ -29436,7 +29436,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29020,7 +29020,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28997,7 +28997,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -31229,7 +31229,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28869,7 +28869,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28867,7 +28867,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28884,7 +28884,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29203,7 +29203,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28868,7 +28868,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29860,7 +29860,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -31896,7 +31896,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29235,7 +29235,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29011,7 +29011,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28867,7 +28867,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28877,7 +28877,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29045,7 +29045,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29485,7 +29485,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28907,7 +28907,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -30037,7 +30037,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29010,7 +29010,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -30780,7 +30780,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28998,7 +28998,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29008,7 +29008,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28869,7 +28869,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29111,7 +29111,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -28941,7 +28941,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29800,7 +29800,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29149,7 +29149,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

View File

@ -29338,7 +29338,7 @@ msgstr ""
#: doc/classes/InputEventJoypadButton.xml
msgid ""
"Represents the pressure the user puts on the button with his finger, if the "
"Represents the pressure the user puts on the button with their finger, if the "
"controller supports it. Ranges from [code]0[/code] to [code]1[/code]."
msgstr ""

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