Commit Graph

6235 Commits

Author SHA1 Message Date
Yuri Sizov 26fb911f79
Merge pull request #72095 from anvilfolk/gd-docs
Improve GDScript documentation generation & behavior
2023-04-26 16:54:25 +02:00
Rémi Verschelde 51951a59d6
Merge pull request #76467 from RandomShaper/doc_cache_peace_of_mind
Add peace-of-mind checks to API hash caching
2023-04-26 11:36:09 +02:00
Rémi Verschelde cc0edf810f
Merge pull request #74106 from dalexeev/astar-grid-2d-negative-coords
Allow negative coordinates in `AStarGrid2D`
2023-04-26 11:35:55 +02:00
Pedro J. Estébanez a79e71ad58 Add peace-of-mind checks to API hash caching 2023-04-26 10:44:52 +02:00
Danil Alexeev 76ee3d4f31
Allow negative coordinates in `AStarGrid2D` 2023-04-26 09:29:33 +03:00
Rémi Verschelde e0e93ce094
Merge pull request #72421 from myaaaaaaaaa/signal-hashmap
Store Object signals in a HashMap rather than a VMap
2023-04-25 19:26:35 +02:00
Rémi Verschelde efb42c3101
Merge pull request #75447 from bruvzg/brotli_packedarray
Expose brotli decompression to the scripting API.
2023-04-25 16:16:56 +02:00
Rémi Verschelde aa622dae53
Merge pull request #76431 from RandomShaper/fix_doc_help_cache
Improve reliability of editor docs cache
2023-04-25 14:44:17 +02:00
Rémi Verschelde 53191928e5
Merge pull request #76345 from reduz/fix-thread-ids
Fix thread IDs.
2023-04-25 13:20:46 +02:00
Pedro J. Estébanez e1ce0340b7 Improve reliability of editor docs cache 2023-04-25 11:40:56 +02:00
Rémi Verschelde 15d952147c
Merge pull request #74101 from RandomShaper/fix_gds_obj_temps
Fix edge cases of object lifetime when signals involved
2023-04-25 09:58:17 +02:00
Rémi Verschelde 76d33d187f
Merge pull request #69698 from Daylily-Zeleen/daylily-zeleen/show_in_explorer
Implement and expose OS::shell_show_in_file_manager()
2023-04-25 09:57:27 +02:00
Daylily-Zeleen b12ced0a26 Implement and expose OS::shell_show_in_file_manager() 2023-04-25 11:29:32 +08:00
Rémi Verschelde 14c582bca8
Merge pull request #76403 from bitsawer/reduce_hashmap_size
Optimize HashMap size
2023-04-24 16:49:12 +02:00
Rémi Verschelde f64544a960
Merge pull request #76311 from aaronfranke/t2d-basis-det
Expose `determinant` in Transform2D, rename internal method
2023-04-24 16:46:24 +02:00
bitsawer 723f2f342f Optimize HashMap size 2023-04-24 16:18:58 +03:00
Juan Linietsky a37c30dfc9 Fix thread IDs.
On Linux, thread IDs were not properly assigned with the current approach.
The line:
`std::thread new_thread(&Thread::callback, _thread_id_hash(thread.get_id()), p_settings, p_callback, p_user);`
does not work because the thread ID is not assigned until the thread starts.

This PR changes the behavior to use manually generated thread IDs. Additionally, if a thread is (or may have been created) outside Godot, the method `Thread::attach_external_thread` was added.
2023-04-24 15:13:58 +02:00
bruvzg 628f3b2f79
[OS] Implement and expose to scripting APIs `get_memory_info` method instead of old `get_free_static_memory`. 2023-04-24 14:08:55 +03:00
Aaron Franke 290b09b36c
Expose `determinant` in Transform2D, rename internal method 2023-04-22 13:44:14 -05:00
ocean (they/them) 6783ff69c0 Improve and fix GDScript documentation generation & behavior
Removes documentation generation (docgen) from the GDScript compiler to
its own file. Adds support for GDScript enums and signal parameters and
quite a few other assorted fixes and improvements.
2023-04-21 10:17:30 -04:00
Paweł 899da22002 Fix lerp error message 2023-04-21 10:01:59 +02:00
Rémi Verschelde e83d3060a8
Merge pull request #76259 from kleonc/callable-error-text-expected-arg-count-fix
Fix expected argument count in Callable call error text
2023-04-20 12:43:42 +02:00
kleonc 7a871212ed Fix expected argument count in Callable call error text 2023-04-19 16:06:00 +02:00
bruvzg 520a8d8ed2
Add project manager / editor initial screen settings, implement DisplayServer.get_keyboard_focus_screen method. 2023-04-19 08:54:53 +03:00
Danil Alexeev 36bedd341a
Fix misuses of error macros 2023-04-18 10:20:48 +03:00
Haoyu Qiu 6cd8e706fa Unify descriptions of vector methods
* is_equal_approx
* normalize
* length_squared
* posmod
* posmodv
2023-04-14 23:31:33 +08:00
Pedro J. Estébanez f5602869da Cache classes editor help 2023-04-13 12:16:47 +02:00
Rémi Verschelde 68b8156fe3
Merge pull request #76014 from AThousandShips/image_astc
Expose more compression formats in Image and fix compress check
2023-04-13 09:57:53 +02:00
Rémi Verschelde 1a90031f3c
Merge pull request #76001 from pkowal1982/version
Fix Windows StringFileInfo structure
2023-04-13 09:56:17 +02:00
Ninni Pipping cf64e2fa47 Expose more compression formats in Image and fix compress check
Check for compressing ASTC checked if the function for BPTC was present
2023-04-13 09:39:03 +02:00
Paweł e15a086bb9 Fix Windows StringFileInfo structure 2023-04-12 22:08:49 +02:00
Pedro J. Estébanez 33f674d0f7 Complete support of callables of static methods 2023-04-12 18:12:19 +02:00
Juan Linietsky 6055e4424a Redo of Message Queue
* Functionality moved to a base class CallQueue, which will be used for inter-thread communication within the scene.
* MessageQueue now uses growing pages, starts from a single 4k page.
* Limit still exists, but because its not allocated by default, it can be much higher.
2023-04-12 16:31:23 +02:00
Rémi Verschelde 6fedcfab3e
Merge pull request #75805 from MewPurPur/optimize-delaunay
Optimize 2D Delaunay and make it more readable
2023-04-11 19:40:32 +02:00
Rémi Verschelde 5722d6e3cc
Merge pull request #75451 from bruvzg/web_mac_keys
[Web] Detect host OS and use macOS keys on mac hosts.
2023-04-11 19:40:16 +02:00
Rémi Verschelde 347a8e20ae
Merge pull request #69324 from RedMser/advanced-settings-errors
Make it easier to solve warnings/errors referring to project settings
2023-04-11 19:39:53 +02:00
Pedro J. Estébanez 2f4168daeb Fix edge cases of object lifetime when signals involved 2023-04-11 17:27:39 +02:00
bruvzg a5009f4d3c
[Web] Detect host OS and use macOS keys on mac hosts. 2023-04-11 10:58:54 +03:00
tefusion 1514376e46 Fix HTTPClient _request using wrong size
This only affects HttpClient in GDScript.
2023-04-10 11:45:41 +02:00
VolTer 846f9e106c Optimize 2D Delaunay and make it more readable
Co-authored-by: Dimitri Tabatadze <tabatadzedima@protonmail.com>
2023-04-09 00:52:15 +02:00
Juan Linietsky 8950943356 Optimize Object::get_class_name
* Run the static function once per class instead of one per instance.
* Saves some memory in Object derived classes.
2023-04-08 19:25:50 +02:00
Juan Linietsky 223ce4fcb9 Optimize Node::add_child validation
Adding 10k nodes is almost twice as fast.
2023-04-07 13:18:47 +02:00
bendn ca0feabbb0
add `hex_decode()` to `String` 2023-04-05 19:44:00 +07:00
Bartłomiej T. Listwon bff0c71e2e Fix moving position indicator out of bounds in FileAccessMemory 2023-04-04 10:10:25 +02:00
Rémi Verschelde cef3587427
Merge pull request #74120 from RandomShaper/res_loader_teardown
Clear resource load tasks at exit
2023-04-03 15:59:51 +02:00
Rémi Verschelde 7aa224291b
Merge pull request #73200 from 0xafbf/fix-guide-button-win
Fix guide button detection with XInput and Xbox Series controllers
2023-04-03 15:58:36 +02:00
Yuri Sizov ee2cc347c6 Add support for icons in GDExtension classes
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-03-31 21:39:02 +02:00
bruvzg 0e4bd964cc
Expose brotli decompression to the scripting API. 2023-03-29 22:43:36 +03:00
Ron B. Yeh 40ae917db8 Fix typo on "autoremapping".
Update warning strings to be consistent with the rest of the code base, which uses "Command or Control".
2023-03-28 16:48:18 -07:00
RedMser ed960453b7 Make solving project setting errors easier
Show full project setting path in error messages.
Force filtering for advanced settings if filter is not empty.
2023-03-27 08:10:35 +02:00
Yuri Sizov e4e63f976a
Merge pull request #73225 from bruvzg/wchar_to_from
Add GDScript `to_wchar_buffer` and `get_string_from_wchar` functions.
2023-03-25 15:05:59 +01:00
kobewi 8f8178bda6 Fix auto-translations in editor 2023-03-22 23:57:12 +01:00
bruvzg d72b563250
Add GDScript `to_wchar_buffer` and `get_string_from_wchar` functions. 2023-03-21 15:39:54 +02:00
bruvzg 09465f3fe6
Remove (or make verbose only) various debug prints. 2023-03-20 08:14:18 +02:00
Yuri Sizov 3596443de1
Merge pull request #74727 from AThousandShips/project_settings
Exposing more project settings for documentation
2023-03-15 15:59:10 +01:00
Ninni Pipping bd30847e59 Exposing more project settings for documentation 2023-03-15 14:25:40 +01:00
Yuri Sizov 6f4646c6bf
Merge pull request #74909 from AThousandShips/array_slice
Fix `Array.slice()` rounding for `abs(step) != 1`
2023-03-15 14:25:16 +01:00
Ninni Pipping 10f385fb79 Fix `Array.slice()` rounding for `abs(step) != 1` 2023-03-14 15:46:45 +01:00
Felipe Jorge 999f3e2c13 use the unicode replacement char on error
update tests

also fix utf8 and ascii parse functions to use the replacement char

created a _replacement_char const inside the string
2023-03-12 11:46:56 -03:00
Ninni Pipping c8c43997c7 Fix type check for max/min 2023-03-11 15:08:34 +01:00
Mario Liebisch 4e72e09343
Added the missing second case for string keys 2023-03-11 01:08:23 +01:00
George Marques a1e3ef919c
Add operator NOT for all Variant types 2023-03-10 15:58:55 -03:00
Mario Liebisch 46e5311d5a
Fixed read-only dictionaries adding missing keys
When querying a non-existing key on a read-only
dictionary, the key was still added (albeit never set).

This fixes #74726.
2023-03-10 17:26:34 +01:00
Ninni Pipping 3de5332fcb Document `editor/naming/scene_name_casing` setting
Moved definitions of editor related project settings to `editor/register_editor_types.cpp` to make documentation work.
2023-03-09 21:17:49 +01:00
Ninni Pipping e6a9e0cdec Fix Variant hashing for floats
Incorrectly hashed floats as single precision
2023-03-08 12:52:50 +01:00
Haoyu Qiu 49400e0c1c Fix crash when dumping extension API in a non-writable directory 2023-03-08 15:05:44 +08:00
Rémi Verschelde d665455a23
Merge pull request #74361 from bitsawer/fix_clang_tidy_warnings
Fix several clang-tidy bool literal conversion warnings
2023-03-07 10:33:30 +01:00
Rémi Verschelde 281a5c9e35
Merge pull request #74213 from timothyqiu/friendly-pot
Improve POT Generation dialog
2023-03-07 10:33:06 +01:00
Jakub Mateusz Marcowski 0a55a32085
Modify JSON.stringify so that it doesn't create unnecessary empty lines from empty arrays 2023-03-07 10:30:28 +01:00
Rémi Verschelde e80ab423ef
Merge pull request #73793 from myaaaaaaaaa/init-race
Fix some race conditions that happen during initialization
2023-03-06 19:57:38 +01:00
myaaaaaaaaa d337ed1c64 Fix data races in startup/teardown 2023-03-06 11:47:12 -05:00
Rémi Verschelde 0b98b470cc
Merge pull request #73716 from bruvzg/improve_locale_selection
Improve layout direction/locale automatic selection.
2023-03-06 10:57:56 +01:00
Rémi Verschelde 2832ef434d
Merge pull request #74248 from Chaosus/randfn_fix
Fix randfn to prevent generating of nan values
2023-03-05 13:24:20 +01:00
bitsawer 1736137bc9 Fix several clang-tidy bool literal conversion warnings 2023-03-04 16:38:35 +02:00
Yuri Rubinsky d11bb866ff Fix randfn to prevent generating of nan values 2023-03-03 16:43:48 +03:00
Haoyu Qiu 584136271c Improve POT Generation dialog
* Avoid "property not found" warnings when adding a file for the first
  time.
* When no file is added, disable the Generate POT button instead of
  printing a warning.
2023-03-03 18:18:58 +08:00
Rémi Verschelde c329acafed
Merge pull request #74226 from timothyqiu/privacy-please
Hide internal settings from the classref
2023-03-03 11:08:16 +01:00
Rémi Verschelde bdb3738023
Merge pull request #74166 from RandomShaper/fix_res_loader_read_freed
Fix crash in resource load
2023-03-03 11:06:15 +01:00
Rémi Verschelde d76c1c4f45
Merge pull request #73651 from hakro/editor-freelook-physical-shortcuts
Use physical shortcuts for freelook navigation in the editor
2023-03-03 11:02:53 +01:00
Rémi Verschelde 4fceabc30c
Merge pull request #73862 from RandomShaper/fix_subthreaded_res_load
Lift restriction that resource load thread requester has to be the initiator
2023-03-02 11:26:54 +01:00
Haoyu Qiu 1e0b8d6240 Hide internal settings from the classref
Default actions are no longer internal since we want to document them.
They are still hidden from the Project Setting dialog because we hid the
whole `input/` group manually.
2023-03-02 17:52:37 +08:00
Pedro J. Estébanez 047671df0f Fix crash in resource load 2023-03-01 18:30:16 +01:00
Pedro J. Estébanez b8b6a05c17 Clear resource load tasks at exit 2023-02-28 18:56:21 +01:00
Rémi Verschelde 491ded1898
Minor typo and docs URL fixes 2023-02-28 13:38:01 +01:00
Rémi Verschelde 20d6a698c7
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@436c7e3d54
2023-02-27 15:59:50 +01:00
voidedWarranties bd5ab9f9b4 Remove unused `ScriptLanguage` methods 2023-02-26 22:30:56 -08:00
Pedro J. Estébanez b60197d1c6 Fix deadlock in cyclic resource load 2023-02-26 17:19:48 +01:00
myaaaaaaaaa 1ec5381c16 Store Object signals in a HashMap rather than a VMap 2023-02-25 18:44:09 -05:00
Rémi Verschelde 3863199ab9
Merge pull request #73881 from vnen/max-min-only-for-numbers
Make max() and min() global functions only accept numbers
2023-02-25 01:36:19 +01:00
Dmitrii Maganov c5f7a89b0f Core: Identity compare objects by id, not by pointers 2023-02-24 23:33:29 +02:00
George Marques ed81b165eb
Make max() and min() global functions only accept numbers
The behavior for those are not well defined for non-numeric arguments.
To avoid confusion the other types are forbidden.
2023-02-24 14:06:11 -03:00
Pedro J. Estébanez c51229491d Lift restriction that resource load thread requester has to be the initiator 2023-02-24 13:19:31 +01:00
Rémi Verschelde b87f9f679e
Merge pull request #73647 from RandomShaper/fix_threaded_load
Fix threading issues in resource loading
2023-02-23 11:04:55 +01:00
mashumafi 2a12213c31 Fix: Typed arrays aren't working with + 2023-02-22 18:42:26 -05:00
bruvzg 82d7923c65
Improve layout direction/locale automatic selection. 2023-02-22 08:37:14 +02:00
bitsawer c56058fe9a Fix FileAccess last open error flag update 2023-02-21 17:02:21 +02:00
Rémi Verschelde 6acc7f03ed
Merge pull request #73595 from KoBeWi/missingno
Fix missing directories when exporting from cmd
2023-02-21 11:14:34 +01:00
Hakim 52de40310a Use physical shortcuts for freelook navigation in the editor 2023-02-21 10:56:14 +01:00
Rémi Verschelde e693a3debb
Merge pull request #73422 from bruvzg/no_alt
[macOS] Replace all `Alt/Option+Letter/Number` default shortcuts to avoid conflicts with special character input.
2023-02-20 22:31:11 +01:00
Pedro J. Estébanez b862fc8c9b Fix cases of resource load tasks not being awaitable 2023-02-20 21:20:05 +01:00
Pedro J. Estébanez 618bb173ba Fix race condition in resource loader when a load task is reused 2023-02-20 21:20:05 +01:00
bruvzg b3c64675cc
[macOS] Replace all `Alt/Option+Letter/Number` default shortcuts to avoid conflicts with special character input. 2023-02-20 22:02:47 +02:00
Pedro J. Estébanez daa29d1007 Implement ConditionVariable 2023-02-20 20:43:31 +01:00
kobewi ff42cb0d1e Fix missing directories when exporting from cmd 2023-02-20 17:39:38 +01:00
lawnjelly f42a837e92 BVH - fix lockguards for multithread mode
Due to a lack of variable name, the BVH lock guards lifetimes previously did not cover the whole function call.

This is fixed, and the warning message for contention is removed as multithread mode seems to be desired in production in 4.x.
2023-02-20 15:15:18 +00:00
Rémi Verschelde 2057d7344e
Merge pull request #73590 from vnen/gdscript-global-scope-enums
Make global scope enums accessible as types in GDScript
2023-02-20 15:41:45 +01:00
Rémi Verschelde 32a29977fb
Merge pull request #73616 from voidedWarranties/resourcecache_thread_safe
Make `ResourceCache::get_cached_resources` thread-safe
2023-02-20 11:29:08 +01:00
voidedWarranties c586835541 Make `ResourceCache::get_cached_resources` thread-safe 2023-02-20 01:02:08 -08:00
Michael Alexsander 9a25d56ed9 Revert `Input.get_vector()` back to checking raw strength 2023-02-19 22:52:35 -03:00
George Marques 75f16b8167
Make global scope enums accessible as types in GDScript
Add functions to CoreConstant so enums can be properly deduced. Also add
the enums in release builds to make consistent with ClassDB enums and
avoid differences in script compilation between debug and release.
2023-02-19 13:00:07 -03:00
Rémi Verschelde be3e5c5b8c
Merge pull request #73254 from j8r/fix-standard-gamepad-triggers
Fix Standard Gamepad Mapping triggers
2023-02-19 01:01:52 +01:00
Rémi Verschelde e80e21b5e8
Merge pull request #73460 from myaaaaaaaaa/merge-unordered
Fix PagedArray.merge_unordered() sometimes dropping pages
2023-02-17 13:42:01 +01:00
Rémi Verschelde b2584629c8
Merge pull request #73195 from timothyqiu/weblate-comments
Improvements and fixes based on Weblate comments
2023-02-17 09:55:39 +01:00
myaaaaaaaaa 6b0f253a45 Fix PagedArray.merge_unordered() dropping pages 2023-02-16 19:58:27 -05:00
bruvzg bc95b0b171
Restore FileAccess.close method. 2023-02-16 15:34:20 +02:00
voidedWarranties 0a58025e40 Add missing virtual bind for `ScriptExtension::_get_global_name` 2023-02-15 19:48:01 -08:00
Andrés Botero f249a9ce19 Added guide button to controller db, changed to use secret XInput function. 2023-02-15 01:01:09 -05:00
Rémi Verschelde 570b04dec4
Merge pull request #73265 from clayjohn/tangent-oct
Bias octahedral tangent y axis to avoid errors around 0
2023-02-14 11:05:52 +01:00
clayjohn 5a800e68f1 Bias octahedral tangent y axis to avoid errors around 0 2023-02-13 19:24:14 -08:00
Julien Reichardt 0cec4fcc65
Fix Standard Gamepad Mapping triggers 2023-02-13 23:44:43 +01:00
Dmitrii Maganov 9cb2da89d6 GDScript: Fix usage of ints with typed array of floats 2023-02-13 22:06:38 +02:00
Ricardo Subtil e841f13cdc Change message of unknown joypad property from error to warning 2023-02-13 14:30:57 +00:00
Rémi Verschelde 4a2c2170b4
Merge pull request #62921 from cdemirer/fix-variant-in
Fix `Variant::in()` error on invalid `evaluate`
2023-02-13 12:59:02 +01:00
Rémi Verschelde edc2686687
Merge pull request #49469 from groud/remove_variant_operator
Make sure Variant is not implicitely cast when using operator[]
2023-02-13 12:57:04 +01:00
cdemirer 44b2747dfd
Fix `Variant::in()` error on invalid `evaluate` 2023-02-13 12:37:41 +01:00
Gilles Roudière a825f955ab Make sure Variant is not implicitely cast when using operator[]
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2023-02-13 10:50:22 +01:00
Haoyu Qiu 84aee17901 Improvements and fixes based on Weblate comments
* Description of `ui_text_submit` action should be "Submit Text" instead of "Text Submitted".
* Spell out "Animation" instead of using "Anim.".
* Treat "Max" as regular word instead of writing "Max.".
* Use generic "Set %s" for action name instead of a dedicated "Set target_position".
* Add translator comment for:
    * "Inclusive" and "Self" in the profiler.
    * Places where it needs the context about being an editor progress label.
    * "Duplicated Animation Name" since it's refering to the new name of a duplicated animation.
    * Disambiguation of "View Plane Transform", "Paste Selects" and "Display Normal".
* Fix wrong undo action name for renaming an input action.
* Fix missing end quote in a shader error message.
* In class reference:
    * Fix duplicated "if" in the description of `signf()`.
    * Fix mismatched example output in `String.operator %()`.
    * Fix typo in the description of `Decal.texture_emission`.
    * Unify description of `String.match()` and `StringName.match()`.
2023-02-13 15:22:18 +08:00
Rémi Verschelde 27b2260460
Merge pull request #73179 from akien-mga/sync-gamecontrollerdb
Sync controller mappings DB with SDL2 community repo
2023-02-12 22:35:27 +01:00
Rémi Verschelde 99ae2d5212
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@2e7bc45a45
2023-02-12 22:28:03 +01:00
Julien Reichardt e926e1bb34
Add PS3 controller guide button 2023-02-12 16:46:11 +01:00
AndreaCatania 02f2107620
Improve error reporting when the Message Queue is out of Memory.
The function `statistics()`, called when the MessageQueue is out of memory,
will still use the MessageQueue so it crashes.
Moving the error above will improve the behavior since the developer will
find the crash reasons and the instruction on how to fix it.
2023-02-11 22:45:14 +01:00
Rémi Verschelde 8f46656ae4
Merge pull request #72316 from 0xafbf/component-wise-minmax
Added component-wise `min` and `max` functions for vectors
2023-02-11 22:05:12 +01:00
Andrés Botero a90e151b2a Added component-wise `min` and `max` functions for vectors 2023-02-11 15:03:11 -05:00
Rémi Verschelde f011d8ca9c
Math: Prevent division by zero in posmod
Fixes #43932.

Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
2023-02-11 20:44:45 +01:00
Rémi Verschelde 532381562e
Merge pull request #72654 from RandomShaper/ptrcall_ret_raw_obj
Avoid losing references to objects in the native-scripting boundary
2023-02-11 15:35:01 +01:00
Rémi Verschelde 5c5f1452db
Merge pull request #73075 from timothyqiu/ttrn-single
Don't warn when using `TTRN()` in a language without plurals
2023-02-11 14:35:03 +01:00
Haoyu Qiu 52b4014362 Don't warn when using TTRN() in a language without plurals 2023-02-11 13:21:57 +08:00
Emmanuel Leblond 58f4139164
Add Engine::unregister_script_language and make Engine::register_script_language returns a Error 2023-02-10 19:50:24 +01:00
Haoyu Qiu 26581ca574 Add some missing translatable editor strings 2023-02-10 16:55:50 +08:00
Rémi Verschelde 91409fe0c8
Merge pull request #72964 from AThousandShips/input_early_exit
Perform early exit in Input::is_anything_pressed
2023-02-09 23:42:12 +01:00
Rémi Verschelde ab4a7b2b77
Merge pull request #72547 from MewPurPur/string-split-fix
Fix String.split() with empty string and delimeter
2023-02-09 16:12:57 +01:00
Ninni Pipping 29031700ba Perform early exit in Input::is_anything_pressed 2023-02-09 11:43:23 +01:00
Jan Haller 45e6abde1d GDExtension: array_set_typed() accepts enum instead of uint32_t 2023-02-08 23:24:56 +01:00
Rémi Verschelde 9f859a111c
Merge pull request #72866 from Sauermann/fix-release-button-mask
Fix mouse-button-mask on button release in unit test
2023-02-08 09:45:11 +01:00
Haoyu Qiu d8d5cb1198 Use GDExtensionBool in GDExtension interface 2023-02-08 14:57:07 +08:00
Markus Sauermann 39d79ce217 Fix mouse-button-mask on button release in unit test
On mouse-button release, the mask is 0.
2023-02-08 01:17:40 +01:00
Haoyu Qiu 5d7e003b29
Prepare for moving editor and classref translations to godot-editor-l10n repo
- Separate editor interface and property translations.
- Add property translation in TranslationServer.
- The split and merge of the POT/PO/Makefiles and extract scripts is done
  directly in godot-editor-l10n, the files will be removed in the next commit.
- Remove the hardcoded "to_include" lists from the SCsub, we'll only commit the
  files which are ready to inclue.
2023-02-07 14:20:40 +01:00
Mikael Hermansson 99dba702f5
Expose `_err_print_error` with message parameter to GDExtension 2023-02-07 14:02:18 +01:00
Rémi Verschelde cd0f1e9b10
Merge pull request #72740 from Sauermann/fix-event-device-id
Fix mouse/drag/touch InputEvents having no device id
2023-02-06 23:51:26 +01:00
Markus Sauermann 8748f4dcaa Fix mouse/drag/touch InputEvents having no device id
Some internally created emulated/instantiated events didn't have a
device id. This PR sets for these cases a device id.

Also rename `DEVICE_ID_TOUCH_MOUSE` to the more generic
`DEVICE_ID_EMULATION`.
2023-02-06 22:49:42 +01:00
Rémi Verschelde 632911ea1d
Merge pull request #72786 from timothyqiu/no-libc
Remove unnecessary `stdio.h` from gdextension interface
2023-02-06 22:47:14 +01:00
Yuri Sizov 945207885b
Merge pull request #72546 from vonagam/fix-typed-array-can-reference
GDScript: Fix can_reference check for typed arrays
2023-02-06 23:32:47 +03:00
Dmitrii Maganov 8400308ab3 GDScript: Fix can_reference check for typed arrays 2023-02-06 22:00:16 +02:00
Marcel Admiraal 84199757a4 Fix OS.find_keycode_from_string not working with modifiers 2023-02-07 08:25:02 +13:00
Rémi Verschelde 112f8faf5c
Merge pull request #72703 from lyuma/stringname_constructor_mistake
StringName: fix returning dangling data from char constructor.
2023-02-06 17:47:27 +01:00
Lyuma 82c52eab6c StringName: fix returning dangling data from char constructor.
Fixes a copy paste mistake in the `StringName(const char *,bool)` constructor,
to match the same form as the other two constrcutors.
This fixes a case where this constructor can return a dangling pointer and cause use-after-free.
2023-02-06 07:16:55 -08:00
Haoyu Qiu f4ffa87a35 Remove unnecessary stdio.h from gdextension interface 2023-02-06 16:11:50 +08:00
bitsawer d1521933bb Expose and document ProjectSettings.get_global_class_list() 2023-02-04 23:22:27 +02:00
Rémi Verschelde bbff9fd7a4
Merge pull request #71786 from raulsntos/dotnet/array
Sync C# Array with Core
2023-02-04 00:24:06 +01:00
Pedro J. Estébanez 0bcc7bb5c7 Avoid losing references to objects in the native-scripting boundary 2023-02-03 17:48:41 +01:00
Silc Renew 1459b9c24c Fix scaled_orthogonal() & subgizmo global scaling 2023-02-04 00:46:04 +09:00
kobewi c1cc8fd87f Remove unused has_global_classes() 2023-02-03 15:43:56 +01:00
George Marques 5fc7918594
GDScript: Improve usability of setter chains
- Consider PackedArrays non-shared since they are copied on C++/script
  boundaries.
- Add error messages in the analyzer when assigning to read-only
  properties.
- Add specific error message at runtime when assignment fails because
  the property is read-only.
2023-02-02 10:20:35 -03:00
VolTer 57e39d0ce9 Fix String.split() with empty string and delimeter 2023-02-02 01:34:11 +01:00
Aaron Franke 0fcdf48f83
Remove unused `has_slashes` from NodePath 2023-02-01 11:32:39 -06:00
Rémi Verschelde e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
Rémi Verschelde 394bb0ee2b
Fix various typos with codespell
Finally do the childs -> children rename too.
2023-02-01 08:45:41 +01:00
Rémi Verschelde 68299e0f94
Merge pull request #72492 from maiself/fix-binary-res-typed-array
Fix loading of binary resources with typed arrays
2023-02-01 08:02:28 +01:00
Rémi Verschelde e8240031e7
Merge pull request #71479 from raulsntos/virtual-return-type
Use enum instead of int in virtual methods return type
2023-02-01 07:45:28 +01:00
Rémi Verschelde 27fdb06fed
Merge pull request #71322 from EricEzaM/55856-proj-settings-initial-array-dict-shared-instance
Fix Project Settings array/dicts initial value being shared instances of the current value.
2023-02-01 07:29:44 +01:00
Mai Lavelle 87e6885f5e Fix loading of binary resources with typed arrays 2023-02-01 01:22:43 -05:00
Raul Santos 9e9eac4676
Use enum instead of int in virtual methods return type 2023-01-31 19:06:49 +01:00
Rémi Verschelde 8612c12be6
Merge pull request #72452 from akien-mga/global_class_always_create
Always create global class list, even if empty
2023-01-31 16:00:12 +01:00
Rémi Verschelde 534369d267
Merge pull request #64423 from RandomShaper/safe_input_synth
Warn users about unsafe usage of `InputEvent`
2023-01-31 15:56:43 +01:00
Rémi Verschelde 38a806e13f
Always create global class list, even if empty
Fixes #72451.
2023-01-31 15:28:53 +01:00
Pedro J. Estébanez a2af839a59 Warn users about unsafe usage of InputEvent 2023-01-31 14:39:51 +01:00
Rémi Verschelde e1648b3327
Merge pull request #72445 from reduz/restore-script-class-cache-if-removed
Restore script class cache if removed
2023-01-31 13:20:04 +01:00
Juan Linietsky 79897dd5bc Restore script class cache if removed
I have no idea why anyone would do this, but this fixes it.

Fixes #72154. Depends on #72444 being merged to function properly.
2023-01-31 11:28:21 +01:00
Dmitrii Maganov 5909f9f075 GDScript: Fix issues with typed arrays 2023-01-31 11:54:41 +02:00
Juan Linietsky 28f51ba547 Refactor high quality texture import
* Only two texture import modes for low/high quality now:
  * S3TC/BPTC
  * ETC2/ASTC
* Makes sense given this is the general preferred and most compatible combination in most platforms.
* Removed lossy_quality from VRAM texture compression options. It was unused everywhere.
* Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA).
* Changed MacOS export settings so required texture formats depend on the architecture selected.

This solves the following problems:

* Makes it simpler to import textures as high quality, without having to worry about the specific format used.
* As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
2023-01-30 15:53:23 +01:00
Rémi Verschelde 6d6d6592c9
Merge pull request #71989 from bruvzg/set_typed_move
Move Array:set_typed to internal GDExtension structure and unexposed it.
2023-01-30 13:28:40 +01:00
Rémi Verschelde bde3310f02
Merge pull request #71995 from Faless/net/4.x_tls_verify
[NET] Refactor TLS configuration.
2023-01-30 13:28:31 +01:00
bruvzg 5aa87ccc03
Move Array:set_typed to internal GDExtension structure and unexposed it. 2023-01-30 14:23:31 +02:00
Raul Santos 54f8fb010c
Sync C# Array with Core
- Add `AddRange` method.
- Add `Fill` method.
- Add `Max` and `Min` methods.
- Add `PickRandom` method.
- Add `Reverse` method.
- Add `RecursiveEqual` method.
- Add `Sort` method.
- Add `Slice` and `GetSliceRange` methods.
- Add `IndexOf` overload that takes an index parameter.
- Add `LastIndexOf` method.
- Add `BinarySearch` method.
- Add/update documentation.
2023-01-30 05:41:53 +01:00
Rémi Verschelde d01ac9c736
Merge pull request #72287 from aaronfranke/tr2d-interp
Add support for interpolating skewed Transform2Ds
2023-01-29 14:13:02 +01:00
Adam Scott bfffb8f254 Fix `Resource::duplicate()` missing packed arrays 2023-01-28 23:06:44 -05:00
Aaron Franke 5f3d3722b2
Add support for interpolating skewed transforms 2023-01-28 18:28:42 -06:00
Fabio Alessandrelli 7cd80e6a6d [Net] Remove StreamPeerTLS.blocking_handshake option.
Which was unused internally, and can be replaced by:

```
while tls.get_status() == tls.STATUS_HANDSHAKING:
  tls.poll()
```
2023-01-28 11:08:02 +01:00
Fabio Alessandrelli adba870534 [NET] Refactor TLS configuration.
Use a TLSOptions configuration object which is created via static
functions.

- "TLSOptions.client": uses the standard CA and common name verification.
- "TLSOptions.client_unsafe": uses optional CA verification (i.e. if specified)
- "TLSOptions.server": is the standard server configuration (chain + key)

This will allow us to expand the TLS configuration options to include
e.g. mutual authentication without bloating the classes that uses
StreamPeerTLS and PacketPeerDTLS as underlying peers.
2023-01-28 11:08:02 +01:00
Pedro J. Estébanez 1de616d8dc Fix code style and consistency of RWLock and Semaphore 2023-01-27 18:45:25 +01:00
Yuri Rubinsky 0f8f0ab126
Merge pull request #72170 from Chaosus/astar_fix 2023-01-27 18:52:22 +03:00
Rémi Verschelde 2b55ac445b
Merge pull request #72111 from raulsntos/method-info-metadata
Add `GodotTypeInfo::Metadata` to `MethodInfo`
2023-01-27 15:41:38 +01:00
Rémi Verschelde f0e3c3f4c3
Merge pull request #72168 from RandomShaper/sensible_lock_return
Booleanize various sync primitives' wait & locking methods
2023-01-27 15:40:43 +01:00
Yuri Rubinsky cc0a243ce0 Enchance the performance of AStar by using a LocalVector(2) 2023-01-27 16:28:11 +03:00
Rémi Verschelde 9d555f5c68
Merge pull request #62499 from fire/gltf-binary-img-compression
Handle gltf binary images
2023-01-27 11:35:55 +01:00
Pedro J. Estébanez f630940591 Booleanize various sync primitives' wait & locking methods 2023-01-27 11:15:30 +01:00
K. S. Ernest (iFire) Lee 39922d7167 Handle gltf binary
[ Ignore and Warn | Extract Textures (default) | Optimize Loading Embedded as Basisu ]

Enable compressed mip maps from Basis Universal for faster compressions.

Increase the quality of Basis to avoid corruption.

To keep compatibility use the first mip of the previous internal Godot format.

Because texture names may have invalid filename characters, adds String::validate_filename to sanitize filenames for import pipeline use.
2023-01-27 02:02:02 -08:00
Rémi Verschelde e92393d295
Merge pull request #67783 from EricEzaM/67715-input-event-action-as-text
Make InputEventAction as_text() return the text of the first valid event for the action.
2023-01-27 10:30:00 +01:00
Dmitrii Maganov abe6d67232 GDScript: Fix test for read-only state of constants 2023-01-27 05:28:08 +02:00
Raul Santos cac7a784d6
Add `GodotTypeInfo::Metadata` to `MethodInfo` 2023-01-26 15:51:34 +01:00
Rémi Verschelde 31496c296a
Merge pull request #72078 from bitsawer/fix_optimize_vertices
Fix range loop iteration regressions
2023-01-26 01:11:25 +01:00
Rémi Verschelde 42424d3b8e
Merge pull request #71758 from adamscott/is_equal_ref
Add `@GlobalScope` `is_same(a, b)` and `Variant::identity_compare()`
2023-01-26 01:07:24 +01:00
bitsawer 8c25bcdb84 Fix range loop iteration regressions 2023-01-26 00:14:39 +02:00
Adam Scott 37248d7c87 Add `@GlobalScope` `is_same(a, b)` and `Variant::identity_compare()` 2023-01-25 10:46:21 -05:00
bruvzg 6def1dfdd5
Remove unused SUPER_L/R constants. 2023-01-25 14:22:28 +02:00
Rémi Verschelde b9bf12e99a
Merge pull request #71142 from aaronfranke/never-duplicate-script
Add `PROPERTY_USAGE_NEVER_DUPLICATE` flag and use for script
2023-01-25 09:18:18 +01:00
Rémi Verschelde 93c650c10d
Merge pull request #69028 from YeldhamDev/its_raw_you_donkey
Make `Input.get_vector()` check for plain `strength` instead of the raw one
2023-01-25 09:15:45 +01:00
Rémi Verschelde 5df9a84128
Merge pull request #71968 from bruvzg/def_keys_no_label
[Input] Do not add key labels to the default actions, to display it correctly in the UI.
2023-01-25 09:15:13 +01:00
Aaron Franke 2a65f6812b
Add PROPERTY_USAGE_NEVER_DUPLICATE flag and use for script
Co-authored-by: Yakov Borevich <j.borevich@gmail.com>
2023-01-24 16:37:50 -06:00
Aaron Franke 2bc0bcbd26
PropertyUsage: Rename "DO_NOT_SHARE_ON_DUPLICATE" to "ALWAYS_DUPLICATE" 2023-01-24 16:05:07 -06:00
Yuri Sizov fab9926a95
Merge pull request #65137 from dalexeev/editor-naming
Rearrange `editor/naming/*` project settings
2023-01-24 22:26:03 +03:00
bruvzg 57b5d112f7
[Input] Do not add key labels to the default actions, to display it correctly in the UI. 2023-01-24 14:49:11 +02:00
Jan Haller 15686ca786 Fix bind " convergence_dist" containing space 2023-01-23 20:07:59 +01:00
bruvzg daad4aed62
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
Rémi Verschelde 5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Rémi Verschelde 5726bf578d
Merge pull request #71676 from vnen/gdscript-unicode-identifiers
Add support for Unicode identifiers in GDScript and Expression
2023-01-23 10:24:33 +01:00
Rémi Verschelde 56fdef281e
Merge pull request #71851 from mihe/error-macros
Fix incorrect index error macros
2023-01-22 16:08:34 +01:00
Rémi Verschelde c9243c37dc
Merge pull request #71846 from Chaosus/astar_local_vector
Enchance the performance of `AStar` by using a `LocalVector`
2023-01-22 16:06:45 +01:00
Mikael Hermansson 22c1785826 Fix incorrect index error macros 2023-01-22 12:23:56 +01:00
Rémi Verschelde cd031fd31a
Merge pull request #71663 from bruvzg/init_pos_x
Reorganize main and sub-window initial position properties.
2023-01-22 11:25:58 +01:00
Yuri Rubinsky 078600a3c4 Enchance the performance of `AStar` by using a `LocalVector` 2023-01-22 12:04:41 +03:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
kobewi 277d5361df Add range iterator to LocalVector 2023-01-21 18:42:04 +01:00
George Marques 86ee5f39c4
Add support for Unicode identifiers in Expression class 2023-01-21 13:39:42 -03:00
Rémi Verschelde ebd0b40f6e
Merge pull request #71687 from reduz/support-script-class-name-in-efs
Support script global resource name in EditorFileSystem
2023-01-21 16:54:23 +01:00
Juan Linietsky dddd8d43f6 Support script global resource name in EditorFileSystem
* Works for binary and text files.
* Makes EditorQuickOpen work with custom resources again.
* Information is cached and easily accessible.

Properly fixes #66179. Supersedes #66215 and supersedes #62417

**WARNING**: This required breaking backwards binary compatibility (.res and .scn files). Files saved after this PR is merged will no longer open in any earlier versions of Godot.
2023-01-21 14:19:27 +01:00
Rémi Verschelde c02572d3d0
Merge pull request #71683 from reduz/fast-script-class-inheritance-check
Implement a quick script inheritance check
2023-01-21 11:31:05 +01:00
Rémi Verschelde a3c8ba6cd5
Merge pull request #71396 from reduz/fix-broken-userdir
Fix cases of broken user:// paths.
2023-01-21 11:30:37 +01:00
Rémi Verschelde 2435eef617
Merge pull request #71390 from reduz/fix-json-as-resource
Fixes to JSON as resource
2023-01-21 11:30:08 +01:00
Jan Haller b8c4ae28b7 Fix use of `bool` in extension header 2023-01-19 22:21:19 +01:00
Rémi Verschelde ab5c75b9ad
Merge pull request #71649 from raulsntos/array-indexer
Add property usage to array indexer
2023-01-19 19:33:05 +01:00
Rémi Verschelde 4ca6a9809d
Merge pull request #44596 from KoBeWi/🧹🧹🧹
Cleanup unused engine code v2
2023-01-19 19:32:51 +01:00
Juan Linietsky 3dcf380161 Implement a quick script inheritance check
Optimizes, simplifies and fixes EditorResourcePicker (was not refreshing custom clases).
2023-01-19 16:47:01 +01:00
Raul Santos 97610c8bfc
Add property usage to array indexer
This makes the `Array` indexer show as returning `Variant` instead of `void` in the documentation.
2023-01-19 14:22:11 +01:00
kobewi c0083e431b Cleanup unused engine code v2 2023-01-19 13:02:18 +01:00
bruvzg aade5abd4f
Reorganize main and sub-window initial position properties. 2023-01-19 13:44:06 +02:00
bruvzg db7d8c2d87
[GDExtension] Expose some low level functions and String operators. 2023-01-19 12:50:49 +02:00
Rémi Verschelde 4679f8724a
Merge pull request #71628 from reduz/fixup-editor-file-system-script-parsing
Clean up EditorFileSystem script parsing
2023-01-19 10:09:55 +01:00
Juan Linietsky 5bdc0d97d3 Clean up EditorFileSystem script parsing
* Optimize only update modified/added/removed files.
* Clean up documentation parsing.
2023-01-18 20:56:45 +01:00
Pedro J. Estébanez 6616b0619d Revert "Make MessageQueue::push_callable(p) work with bound arguments"
This reverts commit 81b1ebddef.
2023-01-18 19:20:40 +01:00
Rémi Verschelde b5f3ac522e
Merge pull request #71400 from touilleMan/gdextension-dump-global_enum-is_bitfield-field
Add missing is_bitfield field for global enum in extension_api_dump
2023-01-18 17:47:58 +01:00
Rémi Verschelde b516d05245
Merge pull request #71622 from RandomShaper/mq_bound
Make MessageQueue::push_callable(p) work with bound arguments
2023-01-18 17:33:34 +01:00
Pedro J. Estébanez 81b1ebddef Make MessageQueue::push_callable(p) work with bound arguments 2023-01-18 14:54:17 +01:00
Rémi Verschelde 6da836bbb4
Merge pull request #71514 from akien-mga/os-unset_environment
OS: Add `unset_environment`, better validate input
2023-01-18 08:35:43 +01:00
Rémi Verschelde 4005fc4b8d
Merge pull request #71279 from vonagam/fix-iterator-number-type
GDScript: Fix typing of iterator in for loop
2023-01-16 22:21:26 +01:00
Rémi Verschelde 91a54cdbc1
Linux/BSD: Add LINUXBSD_ENABLED define for non X11-related checks 2023-01-16 17:01:35 +01:00
Rémi Verschelde 818a9e99a4
OS: Add `unset_environment`, better validate input
Instead of returning an undocumented boolean error code, we do the
validation checks that should ensure a successful result.

Based on:
- https://linux.die.net/man/3/setenv
- https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setenvironmentvariable
2023-01-16 16:39:44 +01:00
Rémi Verschelde 5ca6c1f9db
Merge pull request #70557 from KoBeWi/class_yeet
Move global script class cache to separate file
2023-01-16 12:49:08 +01:00
Rémi Verschelde d94a46ab95
Merge pull request #64021 from ajreckof/change-shortcut-for-rect-tool-tilemap
Add `Key::CTRL_OR_CMD` and use it to fix shortcut for tilemap painting tools on macOS
2023-01-16 12:47:07 +01:00
kobewi 6444c7d127 Move global script class cache to separate file 2023-01-16 10:16:30 +01:00