Commit Graph

7049 Commits

Author SHA1 Message Date
smix8 0c4d99f4fd Implement NavigationMesh bake area
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
2022-06-23 14:55:21 +02:00
reduz dd8c0522a6 Implement varargs in Methodinfo
Variadic templates are an awful thing. Implements #62233 using them in MethodInfo so less changes are required.
2022-06-23 14:50:38 +02:00
Rémi Verschelde e3fb066cb0
Merge pull request #62317 from Black-Cat/release-return-fix 2022-06-23 14:37:33 +02:00
Rémi Verschelde d1dac8427a
Merge pull request #55846 from ellenhp/fix_ogg_edge_cases
Fix ogg edge cases
2022-06-22 23:33:51 +02:00
Black Cat 5c365713ca Do not reset return value in release build 2022-06-22 20:55:09 +04:00
smix8 c0fed1d4e8 Add Navigation function to get all navigation maps
Added new function that returns all created navigation map RIDs from the NavigationServer. The function returns both 2D and 3D created navigation maps as technically there is no distinction between them.
2022-06-22 15:33:40 +02:00
reduz e772b65d92 Remake resource thread safety and API
* Ensures thread safety when resources are destroyed.
* Simplified API by always forcing `ResourceCache::get_ref`, which needs less hacks and is fully thread safe.
* Removed RWLock for resources because its not possible to use for the new logic. Should not be a problem.

Supersedes #57533
2022-06-22 13:46:46 +02:00
smix8 24bb0af4a9 Disable thread-unsafe EditorProgress for navmesh baking
Disables navmesh baking EditorProgress for now until fixed as EditorProgress is not thread-safe and uses hacks and Main::iteration() for steps which can result in random crashes when baking navmesh.
2022-06-22 10:47:00 +02:00
Aaron Franke 8f05bd97b5
Add support for saving WebP images 2022-06-21 08:27:51 -05:00
Rémi Verschelde 40c360b870
Merge pull request #62122 from reduz/implement-movie-writer
Implement a Movie Maker mode
2022-06-21 14:24:14 +02:00
reduz 5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
Rémi Verschelde 21b0c7fc22
Merge pull request #62214 from smix8/navigation_layer_bitmask_helpers_4.x 2022-06-20 15:13:33 +02:00
Rémi Verschelde 77be20ede8
Merge pull request #58921 from BastiaanOlij/htc_vive_trackers 2022-06-20 14:17:30 +02:00
reduz 141c375581 Clean up Hash Functions
Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934
* Clean up usage of murmur3
* Fixed usages of binary murmur3 on floats (this is invalid)
* Changed DJB2 to use xor (which seems to be better)
2022-06-20 12:54:19 +02:00
Marcus Elg 46bbbd9770 Allow autocompletion of "noslider" in export_range 2022-06-19 17:11:49 +02:00
smix8 55923ade68 Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
2022-06-19 13:47:19 +02:00
Rémi Verschelde dd93ae63fa
Merge pull request #61991 from bruvzg/property_shortcut
Make enum/constant binds 64-bit.
2022-06-17 21:05:51 +02:00
Rémi Verschelde c8e17b5a30
Merge pull request #62069 from iamjsk10/master
Typo: Changed "forech" into "foreach" in string_utils.cpp
2022-06-17 18:36:08 +02:00
bruvzg 860e24683f
Make enum/constant binds 64-bit. 2022-06-17 16:36:26 +03:00
iamjsk10 d3a839f4b1 Mono: Fix typo to `foreach` C# keyword 2022-06-17 13:03:32 +02:00
Rémi Verschelde 78944fef82
Merge pull request #61510 from Calinou/script-tweak-stack-overflow-message 2022-06-17 13:03:05 +02:00
Rémi Verschelde 4df25f23f8
Merge pull request #62114 from raulsntos/EditorScenePostImport_templates
Fix EditorScenePostImport templates for C#
2022-06-16 19:58:14 +02:00
Raul Santos 525b5e0e16
Fix EditorScenePostImport templates for C# 2022-06-16 19:29:59 +02:00
bruvzg b5c96df277
Move duplicate AutoWrap, Overrun and VisibleChar behavior enums to the TextServer. 2022-06-16 16:49:37 +03:00
Rémi Verschelde ef6511fbb4
Merge pull request #62104 from paulloz/dotnet-lerp-rangelerp 2022-06-16 14:32:28 +02:00
Paul Joannon ee95a1cb28
Fix Lerp documentation and implement RangeLerp 2022-06-16 13:56:32 +02:00
K. S. Ernest (iFire) Lee 67052af918 Print NavMap error only once for invalid NavMesh. 2022-06-16 13:56:16 +02:00
Johannes Witt 8c7d4996c9
Document how to load Images and MP3 files at run-time 2022-06-16 13:18:36 +02:00
Bastiaan Olij 95f75b232f Adding HTC tracker support 2022-06-16 16:52:13 +10:00
Rémi Verschelde d82c227e2b
Merge pull request #61486 from jtnicholl/import_script_templates
Add script templates for EditorScenePostImport
2022-06-15 21:07:42 +02:00
Jonathan Nicholl 912d8e23ca Add script templates for EditorScenePostImport 2022-06-15 12:41:37 -04:00
Yuri Rubinsky c9ad370f20 Add a null checking to `GDScript::_super_implicit_constructor` 2022-06-15 17:28:40 +03:00
Hugo Locurcio cceeb671db
Improve stack overflow error message in GDScript and VisualScript
Stack overflow errors are generally the result of infinite recursion
within a script.
2022-06-15 16:20:01 +02:00
George Marques 68b86220c8
Merge pull request #57513 from trollodel/gdscript_get_propertyinfo_classname
Allow setting the PropertyInfo class_name from GDScript custom properties
2022-06-15 10:48:01 -03:00
George Marques 1aa6e33bf5
Merge pull request #59358 from strank/debug-inner-classes 2022-06-15 10:37:18 -03:00
Rémi Verschelde 9839761e24
Merge pull request #59482 from kurtlachmann/lsp_better_parentheses 2022-06-15 15:31:35 +02:00
George Marques 67156aa4c2
Merge pull request #61666 from nathanfranke/fix-match-bind
gdscript: use correct error for unused bind match, suppress with underscore
2022-06-15 10:21:34 -03:00
Rémi Verschelde 36ff7292bc
Merge pull request #62033 from V-Sekai/openxr-angular-velocity
Expose XRPose's get angular velocity.
2022-06-15 07:41:58 +02:00
Rémi Verschelde 632b933a03
Merge pull request #61934 from Geometror/hashfuncs
Hash function improvements
2022-06-15 07:34:43 +02:00
George Marques 15740c37a3
Merge pull request #57151 from cdemirer/fix-match-array-dict-pattern-logic-error
Fix logic errors in match-statement Array & Dictionary patterns
2022-06-14 21:30:05 -03:00
Hendrik Brucker 8c61470fa9 Hash function improvements 2022-06-15 00:32:10 +02:00
smix8 245da150e7 Streamline Navigation layer function names.
Streamline Navigation layer function names.
2022-06-15 00:18:48 +02:00
K. S. Ernest (iFire) Lee 10131eb6f2 Expose XRPose's get angular velocity. 2022-06-14 07:33:22 -07:00
Rémi Verschelde becfe93092
Merge pull request #62025 from smix8/navigation_cb_invalid_obj_4.x 2022-06-14 15:25:11 +02:00
smix8 bc38ebe4f0 Fix crash of navigation agents callback when object is invalid
Fix crash of navigation agents callback when object is invalid.
2022-06-14 13:04:02 +02:00
Rémi Verschelde 133d29102a
Merge pull request #61839 from Faless/webrtc/4.x_extension_static_default 2022-06-13 17:19:17 +02:00
Rémi Verschelde 136f84fc35
Merge pull request #61772 from bruvzg/ft_ot_collect 2022-06-13 11:13:05 +02:00
bruvzg b667469bbf
[TextServer] Add missing font mutex lock. 2022-06-13 10:33:36 +03:00
strank 2079e19899 Extend test_compiler to also disassemble inner classes 2022-06-12 16:30:04 -04:00
Rémi Verschelde 296c8b74f2
Merge pull request #60128 from jiq4449/master
Added documentation comments to the .NET library
2022-06-12 12:49:33 +02:00
Joshua Quinones 003ad31ed5
Added documentation comments to the .NET library
Comments have been added for the following:
modules/mono/glue/GodotSharp/GodotSharp/Core/GodotTaskScheduler.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/GodotSynchronizationContext.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/AssemblyHasScriptsAttribute.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/DisableGodotGeneratorsAttribute.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/ExportAttribute.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/GodotMethodAttribute.cs
modules/mono/glue/GodotSharp/GodotSharp/Core/Attributes/ScriptPathAttribute.cs
2022-06-11 21:37:40 -05:00
FireForge 4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
Fabio Alessandrelli 31d7e22466 [WebRTC] Static extension registration. 2022-06-09 07:19:00 +02:00
Rémi Verschelde 4e3b0e176b
Merge pull request #61682 from smix8/navigation_bake_config_precision_4.x 2022-06-08 16:06:00 +02:00
Rémi Verschelde e4994e2817
Merge pull request #61739 from smix8/navigation_region_cost_4.x 2022-06-08 16:05:38 +02:00
Rémi Verschelde 07029e94f4
Merge pull request #61662 from smix8/navigation_map_cell_defaults_4.x 2022-06-08 15:56:22 +02:00
Rémi Verschelde 7e6f26c582
Merge pull request #61800 from smix8/navigation_gridmap_transform_debug_4.x 2022-06-08 15:40:09 +02:00
smix8 cb8d95c271 Fix GridMap Navigation transforms and debug
Fix GridMap navigation transforms and debug.
2022-06-08 14:19:16 +02:00
Rémi Verschelde c8ce7e34e2 i18n: Misc fixes translation strings
Adds some translator comments to solve some questions raised on Weblate.
2022-06-08 12:57:54 +02:00
Rémi Verschelde 43f05bd6a0
Merge pull request #61797 from smix8/navigation_gridmap_region_xform_4.x
Fix GridMap applying wrong NavigationRegion transform
2022-06-08 07:25:09 +02:00
smix8 cc0b525300 Fix GridMap applying wrong NavigationRegion transform
Fix GridMap applying wrong NavigationRegion transform.
2022-06-08 03:30:19 +02:00
Rémi Verschelde b33660228b
Merge pull request #61784 from Geometror/visualeditors_editorsettings_propagation
Fix visual editor settings change propagation
2022-06-07 21:03:13 +02:00
Hendrik Brucker e4ba3b64f0 Fix visual editor settings change propagation 2022-06-07 19:17:47 +02:00
bruvzg 6e4cdad3ac
[TextServer] Adds support for TrueType / OpenType collection files (*.TTC, *.OTC). 2022-06-07 11:35:59 +03:00
smix8 cfdfd304f1 Add NavigationRegion costs for pathfinding
Add NavigationRegion costs for pathfinding.
2022-06-06 15:25:06 +02:00
bruvzg b3bbf3db47
[GDExtension] Expose Variant, NodePath and StringName hash functions. 2022-06-06 12:19:56 +03:00
smix8 df9919ec33 Add warnings when NavigationMesh bake settings result in precision loss
Add warnings when NavigationMesh bake settings result in precision loss.
2022-06-04 11:31:52 +02:00
Nathan Franke 3d61246bc4
use correct error for unused bind match, suppress with underscore 2022-06-03 13:28:33 -05:00
smix8 3066091780 Match NavMap and ProjectSettings with NavigationMesh defaults
Match NavMap and ProjectSettings with NavigationMesh defaults since the NavMap edge merging requires a matching cell_size with the NavigationMesh to create connections without issues.
2022-06-03 19:17:49 +02:00
Rémi Verschelde c0bf18e923
Merge pull request #57824 from raulsntos/csharp-typed-arrays 2022-06-03 17:32:41 +02:00
Raul Santos 329818f20b
Support explicit values in flag properties, add C# flags support
- Add support for explicit values in properties using `PROPERTY_HINT_FLAGS`
that works the same way it does for enums.
- Fix enums and flags in VisualScriptEditor (it wasn't considering the
explicit value).
- Use `PROPERTY_HINT_FLAGS` for C# enums with the FlagsAttribute instead
of `PROPERTY_HINT_ENUM`.
2022-06-03 05:19:01 +02:00
Raul Santos 8dec74f22f
Generate typed array parameters in C# bindings
Adds support for generating C# bindings that use the generic `Array<T>`
type instead of the non-generic `Array` type when the registered ClassDB
method specifies the array element type.
2022-06-03 05:17:53 +02:00
Haoyu Qiu ffcb2a4702 Fix build error when FreeType is disabled 2022-06-02 22:46:50 +08:00
Rémi Verschelde 6cd730ea98
Merge pull request #61339 from lyuma/streampeerssl_get_stream 2022-06-02 00:27:07 +02:00
Rémi Verschelde 532e253a7c
Merge pull request #61455 from fire-forge/tab
Add color contrast to TabContainer backgrounds in the editor
2022-05-31 12:52:03 +02:00
Rémi Verschelde c881f607a9
Merge pull request #61463 from vnen/gdscript-await-stack
GDScript: Fix stack overflow when using multiple `await`
2022-05-31 12:44:50 +02:00
Rémi Verschelde 68bf4eb100
Merge pull request #61440 from vnen/gdscript-scene-unique-nodes
GDScript: Support `%` in shorthand for `get_node`
2022-05-31 12:36:37 +02:00
Clay John c89d2b8aac
Merge pull request #61475 from smix8/navigation_fix_multimesh_bake_crash_4.x
Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is empty
2022-05-30 15:44:28 -07:00
Hendrik Brucker 70c234f3e3 Improve Graphedit connection lines 2022-05-30 17:33:01 +02:00
FireForge 7f7244f04a Use consistent casing in editor filter/search bars 2022-05-28 18:43:16 -05:00
smix8 caceceab08 Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is empty
Fix MultiMeshInstance crash in navmesh baking when MultiMesh Resource is empty
2022-05-27 19:35:00 +02:00
George Marques eba3e0a9fc
GDScript: Support `%` in shorthand for `get_node`
The `%` is used in scene unique nodes. Now `%` can also be used instead
of `$` for the shorthand, besides being allowed generally anywhere in
the path as the prefix for a node name.
2022-05-27 13:46:18 -03:00
George Marques 328aadc0ef
GDScript: Fix stack overflow when using multiple `await` 2022-05-27 09:31:37 -03:00
FireForge eb573da2b5 Use "odd" style for TabContainers on base BG color
- Use the "odd" style for TabContainers that are on a background with the same color as the default TabContainer background color to add contrast
2022-05-26 21:19:15 -05:00
Rémi Verschelde f2a7bb6b51
Merge pull request #59943 from jordigcs/gdscript_warning_enums
Add enum values (Ignore, Warn, Error) to GDScript warnings
2022-05-26 00:52:01 +02:00
Lyuma 7e28385948 Add StreamPeerSSL.get_stream() accessor. 2022-05-25 12:43:19 -07:00
Nathan Franke 77c8f271e7
use ERR_FAIL_INDEX when preferred 2022-05-25 13:36:45 -05:00
Rémi Verschelde 410b6b5f7d
Merge pull request #55099 from dalexeev/desc-by-blank-line
Use blank line instead of `@desc:` for doc comments
2022-05-25 19:14:43 +02:00
Rémi Verschelde e465b72b9b
Merge pull request #61389 from snailrhymer/lookup-fix 2022-05-25 18:38:29 +02:00
Danil Alexeev 320cf5d84c
Use blank line instead of `@desc:` for doc comments 2022-05-25 19:01:41 +03:00
SnailRhymer 3a87d1acae Make Lookup Symbol recognize assert and preload in the script editor 2022-05-25 16:41:10 +01:00
Rémi Verschelde 6369e495fd
Merge pull request #61279 from Trioct/fix-typed-array-assignment 2022-05-25 17:28:22 +02:00
Trioct bcbfa641ec Fix const typed array assignment 2022-05-25 09:02:11 -05:00
SnailRhymer 688a62d841 Fix lookup_code to properly handle symbols at start of assignments 2022-05-25 11:45:57 +01:00
Rémi Verschelde 7da1c1b9fa
Merge pull request #61377 from smix8/navigation_gridmap_custom_mesh_offsets_4.x 2022-05-24 23:31:12 +02:00
smix8 ae4b2597a1 Fix GridMap not adding custom mesh offsets to NavigationMesh generation
Fix GridMap not adding custom mesh offsets to NavigationMesh generation
2022-05-24 19:50:57 +02:00
George Marques 24bcbe971a
GDScript: Don't show redundant await warning on unknown types
Also avoid it when the type is known to be a signal.
2022-05-24 14:37:50 -03:00
Rémi Verschelde 65dd1bf023
Merge pull request #47665 from trollodel/tree_more_buttons_signals 2022-05-24 10:50:55 +02:00
Rémi Verschelde db5a86339b
Merge pull request #61345 from vnen/gdscript-lambda-issues
GDScript: A few fixes for lambda issues
2022-05-24 08:14:48 +02:00
George Marques 1b76a9d705
GDScript: Fix lambda captures in default argument values 2022-05-23 21:38:31 -03:00
George Marques 969f1980d2
GDScript: Fix `if` after lambda being seen as ternary 2022-05-23 21:13:25 -03:00
Rémi Verschelde 9923851370 Fix typos with codespell
Using codespell 2.2-dev from current git.
2022-05-23 21:32:19 +02:00
George Marques 0a28b4cd94
GDScript: Do not allow standalone lambdas
They cannot be accessed in this case, so an error is shown to avoid
misleading the uses, especially in case of named lambdas.
2022-05-23 12:25:03 -03:00
Rémi Verschelde 7b8c574401
Merge pull request #61017 from derammo/derammo_58121
display of large help text in visual script
2022-05-22 01:26:33 +02:00
derammo 5a481bd340 display of large help text in visual script
implemented vertical scroller for help text in popup
disabled broken positioning code
2022-05-21 18:38:40 -04:00
trollodel 307427af89 Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
Rémi Verschelde 410893ad0f
Merge pull request #57660 from V-Sekai/gltf-extension-fixes 2022-05-20 18:50:53 +02:00
K. S. Ernest (iFire) Lee d600e0bc00 Improve gltf extension GLTFDocument api. 2022-05-20 06:58:48 -07:00
Rémi Verschelde 03218889d0
Merge pull request #61213 from timothyqiu/csg-crash
Fix editor crash when opening scene with CSGMesh
2022-05-20 07:57:10 +02:00
Haoyu Qiu de93286b1d Fix editor crash when opening scene with CSGMesh 2022-05-20 10:47:29 +08:00
Aaron Franke 5dc3bfb80e
Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
Rémi Verschelde ce069fbe99
Merge pull request #61128 from smix8/navigation_agent_process_mode_4.x 2022-05-19 15:24:34 +02:00
Rémi Verschelde b9bb3de6a1
Merge pull request #61142 from bruvzg/rtl_threaded 2022-05-19 14:27:48 +02:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
bruvzg cfcdfc38e2
[RTL] Add support for shaping in background thread. 2022-05-19 09:34:44 +03:00
Haoyu Qiu fc3b845c07 Add dedicated macros for property name extraction
* Replace case-by-case extraction with PNAME & GNAME
* Fix group handling when group hint begins with property name
* Exclude properties that are PROPERTY_USAGE_NO_EDITOR
* Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-19 14:08:47 +08:00
Hendrik Brucker 1654800ed7 Fix noise offset not affecting domain warp
- also added domain warp to get_noise_1d
2022-05-18 22:10:57 +02:00
Rémi Verschelde cdc5da7460
Merge pull request #61025 from Chaosus/gds_fix_extend_crash 2022-05-18 16:17:18 +02:00
Rémi Verschelde 4155d555e3
Merge pull request #61151 from akien-mga/rvo2-document-changes 2022-05-18 16:16:55 +02:00
Rémi Verschelde e22255edaf
Merge pull request #55201 from Scony/fix-unreachable-code-false-positive 2022-05-18 16:04:12 +02:00
Yuri Rubinsky 5d95a5a024 Fix crash when extending inner class in GDScript 2022-05-18 16:53:24 +03:00
Rémi Verschelde 86cdf1f2cf rvo2: Sync with upstream commit bfc0486
bfc048670a
2022-05-18 14:53:52 +02:00
Saenoe 95ef3bafcd fix OpenXRAPI::is_extension_supported returning opposite result 2022-05-18 00:33:22 +02:00
smix8 6b51ab66d8 Make Navigation Agents and Obstacles respect parent process mode
Temporarily removes agent from navigation map when parent node cannot process due to SceneTree pause and process_mode property. Normal process_mode does not work as other agents would still avoid the paused agents because they were still active on the navigation map and the rvo world. Also fixes potential crash when region_get_map or agent_get_map is called while no map is set.
2022-05-17 20:08:39 +02:00
bruvzg 93fba7ead3
Update HarfBuzz, ICU and FreeType.
HarfBuzz: Update to version 4.2.1
FreeType: Update to version 2.12.1
ICU: Update to version 71.1
2022-05-17 18:39:31 +03:00
Rémi Verschelde 5b02415fd0
Merge pull request #55134 from KoBeWi/script_pillow_or_something
Always soft-reload scripts
2022-05-17 15:09:09 +02:00
Hendrik Brucker 1684459a3a Fix domain warp fractal type defaulting to the wrong value (and refactor enum conversion) 2022-05-16 18:21:42 +02:00
Rémi Verschelde dc8c906b64
Merge pull request #58624 from dzil123/fix_update_gridmap_cursor 2022-05-16 15:31:11 +02:00
Rémi Verschelde eaa4e86433
Merge pull request #61061 from smix8/navigation_mesh_sample_distance_range_4.x 2022-05-16 15:05:17 +02:00
smix8 e33fa9d833 Clamp NavigationMesh sample_distance above zero
While default ReCast library has support for 0.0 'sample_distance' the Godot implementation does not an crashes.
Previously Godot would set all sample_distance values below 0.9 to 0 which causes the crashes.

This limits the sample_distance range selection to 0.1 - 16.0 and also clamps sample_distance that are below 0.1 before ReCast receives them.
2022-05-16 14:25:20 +02:00
Rémi Verschelde c41f62c3df
Merge pull request #61003 from vnen/gdscript-await-stack-fix 2022-05-16 14:10:29 +02:00
Rémi Verschelde b154f445d5
Merge pull request #60507 from bruvzg/textmesh
Implement TextMesh.
2022-05-16 13:52:57 +02:00
Rémi Verschelde df2de05c5f
Merge pull request #60463 from Geometror/improve-vs-1 2022-05-16 13:50:42 +02:00
Rémi Verschelde 54ee0520b5
Merge pull request #61010 from derammo/visual_script_selector_paths 2022-05-16 13:49:31 +02:00
Rémi Verschelde f3c0e75fba
Merge pull request #60958 from smix8/navigation_server_rid_utility_4.x 2022-05-16 13:46:49 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
derammo 4e155b5579 fixed path calculations in visual script selector
incorrect usage of lstrip was mangling file names
2022-05-13 19:26:27 -04:00
George Marques 102c312497
GDScript: Fix stack manipulation for `await`
The stack now contains three special addresses that should no be copied
to the state, since it contains references that creates cycles. They can
be recreated when the function is resumed.

This commit also removes the clearing of stack from the
GDScriptFunctionState destructor, since it should be cleared when the
function exits. The state stack should only be cleared manually if the
instance is freed before the state resumes (which is already being
done). Otherwise this would destruct the stack twice, causing crashes.
2022-05-13 20:15:34 -03:00
Rémi Verschelde 9ed56be82d
Merge pull request #60989 from Jojox/fix_gdscript_parser_enum 2022-05-13 14:55:55 +02:00
bruvzg 05963674a7
Implement TextMesh resource.
Apply simulated slant and embolden to the TextServer `gont_get_glyph_contours` results.
2022-05-13 08:20:22 +03:00
JoJoX 8870e1c75d Fix first value update 2022-05-12 19:11:33 -04:00
Rémi Verschelde 947a1fa090
Merge pull request #60956 from macjuul/hide-mono-cmd-prompt
Prevent blank command prompts from spawning when building a mono project
2022-05-12 21:23:00 +02:00
smix8 371054e3e5 Add NavigationServer2D/3D API functions to find missing RID info
Utility functions for NavigationServer2D/3D to find missing RID information when working with Server API directly. e.g. from map to regions and agents, from agent or region to map, from region to map and agents and so on ....

Requirement to work with NavigationServer API exklusive without SceneTree nodes and when juggling agents and regions between multiple navigation maps.
2022-05-12 20:23:19 +02:00
Yuri Rubinsky a439832035 Fix signal completion in GDScript editor 2022-05-12 16:10:48 +03:00
Julian Mills d606a8eded Fix blank command prompts spawning
prevent certain mono actions from displaying empty command prompts.
2022-05-12 13:49:37 +02:00
bruvzg 6783d55ce4
Use new HashMap implementation in the TextServer, and Font. 2022-05-12 13:42:25 +03:00
reduz 8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
Yuri Rubinsky be8eb6625e Fix incorrect precedence of pow operator in GDScript 2022-05-12 10:09:51 +03:00
Rémi Verschelde 516ec892b4
Merge pull request #60945 from smix8/navmesh_bake_size_warning_4.x
Add Warning to NavigationMesh bake when source geometry is suspiciously big
2022-05-11 23:17:12 +02:00
smix8 79511af7c9 Add Warning to NavigationMesh bake when source geometry is suspiciously big
Adds Warning when users try to bake a NavigationMesh with suspiciously big source geometry and small cellsizes as this baking process will likely fail or result in a NavigationMesh that will create serious pathfinding performance issues.
2022-05-11 22:06:54 +02:00
Rémi Verschelde 9c746b3213
Merge pull request #60949 from derammo/derammo_openxr_wrong_conditional 2022-05-11 20:05:54 +02:00
Rémi Verschelde ae8dacba1c
Merge pull request #60617 from BastiaanOlij/split_bokeh_effect 2022-05-11 20:05:21 +02:00
derammo 0571148a4b corrected conditional compile of OpenXR with/without opengl3 driver 2022-05-11 11:25:55 -04:00
Yuri Roubinsky dbd7a31507 Implement exponential operator (**) to GDScript/Expressions 2022-05-11 16:30:37 +03:00
Rémi Verschelde 9963ae3553
Merge pull request #59863 from cdemirer/fix-match-multiple-bind-single-pattern
Fix issues with multiple bind patterns in match statement
2022-05-11 14:18:02 +02:00
Rémi Verschelde c171f675c8
Merge pull request #60229 from Dorodri/improve-gdscript-range-description 2022-05-11 14:17:39 +02:00
Rémi Verschelde 505e15c523
Merge pull request #60732 from CalebJohn/matching_signature_regression_test 2022-05-11 14:15:48 +02:00
Bastiaan Olij 9939cfc4c4 Split out bokeh_dof and copy effects 2022-05-11 11:08:56 +10:00
bruvzg ffe61e0895
[macOS / iOS] Fix text-to-speech build with older macOS / iOS SDK.
Add __has_include check for AVFAudio include.
Add some explicit casts to avoid conflicts.
Change all `include`s to `import`s for consistency.
2022-05-10 21:11:34 +03:00
Rémi Verschelde edf61c077c
Merge pull request #60917 from akien-mga/ci-emscripten-3.1.10 2022-05-10 15:08:32 +02:00
Rémi Verschelde d8935b27a9 Fix warnings found by Emscripten 3.1.10
Fix `-Wunused-but-set-variable`, `-Wunqualified-std-cast-call`, and
`-Wliteral-range` warnings.
2022-05-10 13:03:13 +02:00
bruvzg 68304bec47 [TextServer] Fix incorrect oversampled font scaling. 2022-05-10 13:57:18 +03:00
hoontee b869ec7262
Rename `CSGPrimitive3D.invert_faces` to `flip_faces` 2022-05-06 20:51:46 -05:00
kobewi 7b101c6fe7 Fix VisualScript export variables 2022-05-06 16:00:30 +02:00
Rémi Verschelde 61517b6d39
Merge pull request #59720 from Vitika9/itemlist-signals 2022-05-06 10:46:47 +02:00
Vitika9 aef3b5681d Changed signals of ItemList 2022-05-06 13:09:04 +05:30
Rémi Verschelde f4ece7e736
Merge pull request #60609 from nathanfranke/string-quotes 2022-05-06 08:59:08 +02:00
kobewi 1dc7bcc83c Cleanup metadata usage 2022-05-06 00:27:10 +02:00
Rémi Verschelde e7a58a7eb6 Core: Rename math 'phi' arguments to 'angle' 2022-05-05 14:17:39 +02:00
Fabio Alessandrelli 09a48e1055 [WebSocket] Fix WSLClient connection status.
Note, this keeps the old behaviour of reporting CONNECTION_CONNECTED
while disconnecting.
We should change this before 4.0, but needs further refactoring of the
WebSocket classes.
2022-05-04 20:13:32 +02:00
Rémi Verschelde 84f64ddde9
Merge pull request #60723 from reduz/refactor-module-initialization 2022-05-04 19:08:43 +02:00
reduz de0ca3b999 Refactor module initialization
* Changed to use the same stages as extensions.
* Makes the initialization more coherent, helping solve problems due to lack of stages.
* Makes it easier to port between module and extension.
* removed the DRIVER initialization level (no longer needed).
2022-05-04 17:34:51 +02:00
CalebJohn 06a2d83e30 Add regression test for gdscript valid function signature
Previously, there was an issue where the gdscript analyzer incorrectly
riased a validation error for code that had a default Dictionary, Array,
or custom type.
2022-05-03 12:46:09 -07:00
Nathan Franke 58fcad20ef
quote strings inside arrays and dictionaries 2022-05-03 13:37:13 -05:00
Aaron Franke fa7a7795f0
Rename Basis get_axis to get_column, remove redundant methods 2022-05-03 09:37:47 -05:00
Rémi Verschelde 8aa791d166
Merge pull request #59321 from Calinou/primitive-meshes-csg-tweak-default-sizes
Decrease default sizes of some primitive and CSG meshes for consistency
2022-05-03 15:19:30 +02:00
Rémi Verschelde 931838b330
Merge pull request #60627 from aaronfranke/rename-elements
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03 14:40:01 +02:00
Rémi Verschelde 297241f368
Merge pull request #60714 from Calinou/typedef-remove-ref
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
2022-05-03 14:28:18 +02:00
Rémi Verschelde 262018df1e
Merge pull request #60689 from trollodel/use_collisionobject3d_in_navmeshgen 2022-05-03 11:21:08 +02:00
Fabio Alessandrelli 0275d60c1b
Merge pull request #60444 from snailrhymer/expand-websocketclient-error-messages
Add detail to some error messages in wsl_client
2022-05-03 06:07:09 +02:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
trollodel 72c37c4bcd Use CollisionObject3D API when baking the navmesh with static colliders, instead of collecting CollisionShape3D nodes 2022-05-02 08:41:33 +02:00
Haoyu Qiu 3012b76ec5 Validate image size for Noise get image methods 2022-05-01 15:53:27 +08:00
Eduardo Rodrigues b2841ce194 Improve description for GDScript built-in range
Rewrites the definition of how the function works.
Reworks the style of the examples and adds a negative range example.
Changes the while loop to a range loop in the array backwards example.
2022-04-30 15:17:17 -03:00
Hendrik Brucker 6d876baf60 Improve the VisualShader/VisualScript editor UI 2022-04-30 03:56:57 +02:00
Aaron Franke 1bf94dff3a
Rename Basis "elements" to "rows" 2022-04-29 08:02:56 -05:00
Aaron Franke b831fb0a54
Rename Transform2D "elements" to "columns" 2022-04-29 08:02:39 -05:00
bruvzg 6ab672d1ef Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and Windows.
Implement TextServer word break method.
2022-04-28 14:35:41 +03:00
Markus Sauermann a793960a10 Fix cppcheck const parameters
Convert method signature parameters to const where it is possible

# Conflicts:
#	drivers/gles3/rasterizer_canvas_gles3.cpp
#	drivers/gles3/rasterizer_canvas_gles3.h
#	editor/plugins/animation_state_machine_editor.cpp
#	editor/plugins/animation_state_machine_editor.h
2022-04-28 11:35:39 +02:00
Hugo Locurcio 53b8899be9
Decrease default sizes of some primitive and CSG meshes for consistency 2022-04-27 22:45:38 +02:00
Rémi Verschelde 6e6fe2b025
Merge pull request #59582 from Faless/net/4.x_tcp_explicit_poll 2022-04-27 13:56:58 +02:00
Rémi Verschelde f626e8ef91
Merge pull request #60396 from vnen/gdscript-self-lambda 2022-04-27 13:11:24 +02:00
Rémi Verschelde e2f29a4312
Merge pull request #59381 from gaudecker/fix-csg-gizmos 2022-04-27 12:54:29 +02:00
Rémi Verschelde 3dd550e1ca
Merge pull request #59613 from PastMoments/dict-arr-const-fix 2022-04-27 12:45:30 +02:00
Rémi Verschelde f05ec69158
Merge pull request #60384 from timothyqiu/noise-skirt 2022-04-27 12:44:06 +02:00
Rémi Verschelde d22850234c
Merge pull request #59393 from techiepriyansh/move-gltf-export-under-scene-menu 2022-04-27 11:51:49 +02:00
Rémi Verschelde 523a7ecef3
Merge pull request #60481 from V-Sekai/animation-library-gltf 2022-04-27 11:07:22 +02:00
Rémi Verschelde b3f4a81a9e
Merge pull request #60385 from timothyqiu/openxr-set-array 2022-04-27 10:14:42 +02:00
Rémi Verschelde 8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2 2022-04-27 10:08:26 +02:00
Rémi Verschelde 3541890f4d
Merge pull request #60312 from Geometror/improve-noise-2
Restructure and refine the noise module
2022-04-27 08:00:38 +02:00
bruvzg 40f0b23482
Create NavMap thread pool only when it's used, to prevent creating excessive amount of running threads. 2022-04-26 15:00:00 +03:00
Rémi Verschelde c45202a89b
Merge pull request #60359 from adamscott/nav-map-thread-work-pool 2022-04-26 11:51:02 +02:00
Rémi Verschelde cb5f3a39b9
Merge pull request #60418 from ShimmyShaman/master 2022-04-26 11:11:08 +02:00
Rémi Verschelde bc520e443d
Merge pull request #60436 from Scony/fix-map-get-path-crash
Fix crash in `GodotNavigationServer::map_get_path`
2022-04-25 23:13:59 +02:00
Rémi Verschelde bef00b2b0d
Merge pull request #60445 from nathanfranke/minor-changes
small changes: improve OS.get_name classref, misc/scripts fixes, remove trailing quote
2022-04-25 23:10:48 +02:00
Rémi Verschelde faddbcfc0c
Merge pull request #60394 from Chaosus/fix_range_doc 2022-04-25 17:20:45 +02:00
Rémi Verschelde 02bb8e948f
Merge pull request #60261 from fire-forge/theme-prop-renames 2022-04-25 16:20:19 +02:00
Rémi Verschelde 63a052d96b
Merge pull request #60386 from bruvzg/label3d 2022-04-25 15:51:31 +02:00
George Marques 01d13ab2c1
GDScript: Allow using self in lambdas 2022-04-24 21:49:02 -03:00
K. S. Ernest (iFire) Lee 6184c6a338
Merge pull request #59763 from Gallilus/Improve-VisualScript-search-and-instancing-of-nodes
Improve VisualScript search and instancing of nodes
2022-04-24 06:21:57 -07:00
K. S. Ernest (iFire) Lee 44b6ee001e Discard images from gltf import for the animation library.
This is an optimization.
2022-04-23 17:41:34 -07:00
FireForge 3073b85de9 Rename theme properties to include underscores
- check_vadjust -> check_v_adjust
- close_h_ofs -> close_h_offset
- close_v_ofs -> close_v_offset
- commentfocus -> comment_focus
- hseparation -> h_separation
- ofs -> offset
- selectedframe -> selected_frame
- state_machine_selectedframe -> state_machine_selected_frame
- table_hseparation -> table_h_separation
- table_vseparation -> table_v_separation
- vseparation -> v_separation
2022-04-23 11:16:18 -05:00
Nathan Franke 1304d72fc1
improve OS.get_name classref, misc/scripts fixes, remove trailing quote 2022-04-22 17:13:08 -05:00
SnailRhymer da8bfbf278 Add detail to some error messages in wsl_client
Add messages, and add expected and actual values to other messages in _verify_headers for easier troubleshooting.
2022-04-22 22:00:06 +01:00
Pawel Lampe 66856d5fb0 Fix crash in `GodotNavigationServer::map_get_path` 2022-04-22 18:49:45 +02:00
bruvzg be611c1c05
Implement Label3D node.
Add "generate_mipmap" font import option.
Add some missing features to the Sprite3D.
Move BiDi override code from Control to TextServer.
Add functions to access TextServer font cache textures.
Add MSDF related flags and shader to the standard material.
Change standard material cache to use HashMap instead of Vector.
2022-04-22 12:08:46 +03:00
ShimmyShaman b3922a42e9 improved error msg for gdscript load_source_code 2022-04-22 16:10:48 +12:00
Yuri Roubinsky 540fca147d Fix typo in `GDScript::range` doc 2022-04-20 19:38:49 +03:00
bruvzg de4c97758a
Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
Haoyu Qiu 925e8c8f3e Validate input in OpenXR array setter 2022-04-20 11:00:58 +08:00
Haoyu Qiu 0e5c41857c Validate input in NoiseTexture::set_seamless_blend_skirt() 2022-04-20 10:47:28 +08:00
Adam Scott 732102cbc5 Use ThreadWorkPool instead of thread_process_array in NavMap 2022-04-19 18:35:15 -04:00
Hendrik Brucker bde6fc9c82 Restructure and refine the noise module 2022-04-19 19:49:48 +02:00
PastMoments b3704e664d Fixes GDScript define nested dictionary and array as constants #50285 2022-04-19 08:57:23 -04:00
Clay John 1d2177938d
Merge pull request #59984 from BastiaanOlij/more_storage_20220407
More work on splitting up RendererStorage
2022-04-18 21:27:46 -07:00
Ellen Poe afd2bbaa5f Fix ogg edge cases 2022-04-17 14:21:35 -07:00
David Cambré 8d4b2b0c30 Improve VisualScript search and instancing of nodes
Constructors are more accessible.
Basic type methods are now based on ClassDB and not registerd_node_names.
Selecting search_classes now automatically changes the scope.
2022-04-17 15:21:26 +02:00
FireForge 6fac7158d6 Add spaces to FastNoiseLite enum hint names 2022-04-16 23:51:23 -05:00
Bastiaan Olij 6b28d94e77 Merge canvas and decal into TextureStorage and add render target 2022-04-17 12:59:50 +10:00
Rémi Verschelde 7032b111ce
Merge pull request #60007 from aaronfranke/gds-op-adj-tr3d
GDScript: Rename OPCODE_TYPE_ADJUST_TRANSFORM to have a 3D suffix
2022-04-15 08:17:27 +02:00
kleonc 9ab69b89f8 NavMap::get_path Fix not resetting least_cost_id 2022-04-14 17:13:53 +02:00
Rémi Verschelde 970debed93
Merge pull request #60177 from reduz/animation-library-import
Import scenes as AnimationLibrary
2022-04-13 22:47:54 +02:00
reduz 66009318e0 Import scenes as AnimationLibrary
Added the ability to import scenes as AnimationLibrary

* Completes implementation of https://github.com/godotengine/godot-proposals/issues/4296
* Helps if you want to export animations to a separate file (say a GLTF) to avoid re-importing/exporting them every time the model changes.
* Helps if you simply want to have animations using a dummy model, which can be shared across multiple models.

Creates a secondary scene importer used only for animations.

**NOTE**: A new flag for scene importer: EditorSceneFormatImporter.IMPORT_DISCARD_MESHES_AND_MATERIALS has been added, to hint importers that they should skip meshes and animations (and hence make importing faster). It is not implemented in any importer yet, this should be done in a separate PR.
2022-04-13 15:06:56 +02:00
Rémi Verschelde 46ef52162e Color: Rename `to_srgb`/`to_linear` to include base color space
This helps reduce confusion around sRGB <> Linear conversions by making
both input and output color spaces explicit.
2022-04-13 11:45:52 +02:00
Fabio Alessandrelli 7fab11da0c
Merge pull request #40975 from rohanrhu/master
Added set_extra_headers() to WebSocketServer
2022-04-12 23:04:26 +02:00
Oğuzhan Eroğlu fd4341fba4 Added set_extra_headers() to WebSocketServer 2022-04-12 17:50:53 +03:00
Priyansh Rathi 0ea7780e33
move gltf export under scene menu 2022-04-12 19:42:41 +05:30
Nicholas Huelin e8a326a08f 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.
2022-04-12 15:27:49 +02:00
bruvzg 4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
Josh Kabo 1570bcd03b catch null profile_def causing crash on startup 2022-04-11 08:55:23 -07:00
Rémi Verschelde 4ab86c6731
Merge pull request #59980 from reduz/animation-libraries 2022-04-11 14:18:35 +02:00
reduz 6f401439f8 Implement Animation Libraries
* Instead of containing single animations, AnimationPlayer now contains libraries.
* Libraries, in turn, contain the animations.

This paves the way for implementing the possibility of importing scenes as animation libraries, finally allowing to import animations separate from the 3D models.

Missing (will be done on separate PRs):

* Make it possible to import scenes (dae/fbx/gltf) as animation libraries.
* Make it possible for AnimationTree to import animation libraries on its own, so it does not rely on AnimationPlayer for everything.
2022-04-11 12:51:54 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
Rémi Verschelde 831dc74b1f
Merge pull request #59940 from BastiaanOlij/xr_new_controllers_20220405 2022-04-11 11:38:39 +02:00
Rémi Verschelde eb6ebdc4af
Merge pull request #59995 from Scony/fix-threaded-navmesh-baking
Fix navmesh baking
2022-04-09 01:27:55 +02:00
Pawel Lampe fcd26b8841 Fix navmesh baking
- improved mesh data calculation from standalone static colliders so that no
  VisualServer calls are performed - and thus no VS mutexes need to
  be locked in case of on-thread baking
- improved the same for GridMap's static colliders
2022-04-08 21:01:59 +02:00
George Marques cdbd6056ef
GDScript: Fix method call on singletons 2022-04-08 12:20:57 -03:00
Aaron Franke f3eca5abef
GDScript: Rename OPCODE_TYPE_ADJUST_TRANSFORM to have a 3D suffix 2022-04-07 23:32:56 -05:00