Commit Graph

6660 Commits

Author SHA1 Message Date
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
Rémi Verschelde
d4b54e35f9 Fix path handling in FBX and Blend importers
Fixes #59996.
2022-04-07 23:33:28 +02:00
David Maziarka
1f62965d26 Add built-in Variant types to autocompletion list
Co-authored-by: Gustav <gusan092@student.liu.se>
2022-04-07 11:10:19 -05:00
Rémi Verschelde
4d0fdf2e98
Merge pull request #59947 from vnen/gdscript-static-methods-classdb 2022-04-06 20:57:34 +02:00
George Marques
4710e2b278
GDScript: Add support for static method calls in native types 2022-04-06 14:14:38 -03:00
Bastiaan Olij
f8dab282cb Added missing interaction profiles and making sure related extensions are enabled if available 2022-04-06 23:00:26 +10:00
bruvzg
f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Eeli Reilin
60f3d1d36f Fix CSG gizmos only working on root shapes 2022-04-06 13:36:34 +03:00
Rémi Verschelde
5d55846715
Merge pull request #59862 from bruvzg/font_delay_texture_update
Delay font texture update, until `draw` is called. Rasterize glyphs during shaping.
2022-04-06 08:39:45 +02:00
Rémi Verschelde
e4f0fc50f7
Merge pull request #59930 from Scony/fix-navi-get-simple-path-master
Fix `map_get_path` aka `get_simple_path` behavior in 2D & 3D
2022-04-05 23:55:47 +02:00
Pawel Lampe
dcab82ad43 Fix get_simple_path behavior in 2D & 3D 2022-04-05 23:26:37 +02:00
Paweł Fertyk
79b4844be5 Fix NoiseTexture._generate_texture crash
Fixes #59915 .
2022-04-05 22:24:58 +02:00
Rémi Verschelde
77843355a0 CI: Update black formatter and apply changes 2022-04-05 17:43:12 +02:00
bruvzg
aad9d1414c
Delay font texture update, until draw is called. Rasterize glyphs during shaping. 2022-04-05 10:49:41 +03:00
Rémi Verschelde
b512fe67a6
Merge pull request #59888 from akien-mga/clang-tidy 2022-04-04 23:57:30 +02:00
Rémi Verschelde
db8e6bd83f
Merge pull request #59885 from Jayman2000/autoload-inheritance-message 2022-04-04 23:56:20 +02:00
Jason Yundt
1cc7e7ec33 Improve autoload inheritance error message
Autoloaded scripts should always inherit from Node. When you run a
project that tries to autoload a script which doesn’t inherit from Node,
then Godot gives an error.

Before this change, the error said “Script does not inherit a Node”.
That error message is a little bit misleading. If a class inherits a
Node, then one of its superclasses has a Node. If a class inherits
_from_ Node, then one of its superclasses is Node. This change corrects
that mistake.

Fixes #59884.
2022-04-04 15:51:02 -04:00
Rémi Verschelde
b78aa4fe19 Style: Apply clang-tidy to current code, add readability-redundant-member-init 2022-04-04 21:49:51 +02:00
Rémi Verschelde
f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Rémi Verschelde
338b23d572
Merge pull request #59513 from BastiaanOlij/openxr_actionmap_editor 2022-04-04 14:26:28 +02:00
Bastiaan Olij
9b7b9de0e5 Add action map editor for OpenXR 2022-04-04 18:43:29 +10:00
Marc Gilleron
277825e956 Initialize pointer variables to fix random crash on startup.
`configure_blender_dialog` is lazily created if equal to null,
however nothing really sets it to null.
2022-04-03 23:21:29 +01:00
Rémi Verschelde
c630c2001d
Merge pull request #59633 from EricEzaM/better-code-complete-update
Improve sorting of Code Completion options.
2022-04-03 12:34:00 +02:00
Eric M
4ab605d14d Improve sorting of Code Completion options.
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
2022-04-01 20:39:09 +10:00
Rémi Verschelde
4263f02f28
Merge pull request #59764 from reduz/blender-import-autodetect 2022-04-01 11:42:05 +02:00
reduz
e32215fbad Add Blender install autodetection and configuration.
This PR is a continuation to #54886

* Changed Blender path editor setting from binary to installation.
* Add a class to query whether the format is supported.
* This class allows to create proper editors to configure support.

**NOTE**: This PR only provides autodetection on Linux. Code needs to be added for Windows and MacOS to autodetect the Blender installation.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2022-04-01 11:01:12 +02:00
FireForge
60dfe76e1f Fix group name in FastNoise and Gradient 2022-03-31 21:21:04 -05:00
Rémi Verschelde
340ad7d748
Merge pull request #59755 from V-Sekai/import-gltf-mat-placeholder 2022-04-01 01:12:16 +02:00
Rémi Verschelde
47d58b5a97
Merge pull request #59753 from V-Sekai/let-there-be-light 2022-03-31 22:21:23 +02:00
K. S. Ernest (iFire) Lee
d8b3d14d82 Add support for Blend importing of material placeholders.
Couldn't get the 'NONE' option to work.
2022-03-31 10:11:06 -07:00
K. S. Ernest (iFire) Lee
b675a6b9de Allow importing punctual lights from Blend. 2022-03-31 09:34:12 -07:00
bruvzg
947d7c8329
Fix some issues found by clang sanitizers. 2022-03-31 18:35:56 +03:00
bruvzg
4d9689e7f6
[Brotli] Use aligned reads when building with sanitizers. 2022-03-31 18:00:49 +03:00
Rémi Verschelde
a647fb3e62 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
bruvzg
824927dc50
[ICU] Add library name suffix for API rename to avoid conflicts (GDExtension build). 2022-03-31 13:04:54 +03:00
Rémi Verschelde
5ba3b993d5
Merge pull request #59694 from vnen/gdscript-better-call-super 2022-03-30 17:58:11 +02:00
Rémi Verschelde
543c5658ba
Merge pull request #58983 from Chaosus/gds_fix_builtin_methods_completion 2022-03-30 17:33:27 +02:00
George Marques
be718285f7
GDScript: Fix issues with completion and super calls
- Make call errors use the call node instead of the calle, which will be
  empty on super calls.
- Don't allow `super()` to be used within lambdas.
2022-03-30 11:58:29 -03:00
Yuri Roubinsky
0584387918 Fix autocompletion of static methods in built-in types in GDScript 2022-03-30 17:40:41 +03:00
K. S. Ernest (iFire) Lee
0a6889d834 Add fbx2gltf support for importing .fbx files
Lets you drag or place .fbx files in the project folder and it will import the files.

An editor setting sets the location of the fbx2gltf binary.

Enables .fbx and .blend by default.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-03-30 15:22:46 +02:00
Rémi Verschelde
33d477498e Remove ad-hoc FBX importer
This importer was the fruit of a lot of amazing reverse engineering
work by RevoluPowered, based on the original Assimp importer that was
introduced by fire.

While promising and well tuned for a specific type of FBX scenes, it
was found to have many flaws to support the many FBX exporters and
legacy models that Godot users want to use. As we currently lack a
maintainer to improve it, those issues are left unresolved and FBX
import is still sub-par in the current Godot releases.

After some experimentation, we're instead adding a new importer that
relies on Facebook's `fbx2gltf` command line tool to convert FBX to
glTF, so that we can then use our well-maintained glTF importer.
See #59653 and https://github.com/facebookincubator/FBX2glTF for details.
2022-03-30 13:04:31 +02:00
reduz
45f74ceb85 Add PortableCompressedTexture
* Resource that allows saving textures embedded in scenes or standalone.
* Supports only formats that are portable: Lossy, Lossles or BasisUniversal

This is something I wanted to add for a long time. I made it now because @fire
requires it for importing GLTF2 files with embedded textures, but also this
will allow saving Godot scenes as standalone binary files that will run
in all platforms (because textures will load everywhere).

This is ideal when you want to distribute individual standalone assets online
in games that can be built from Godot scenes.
2022-03-30 10:39:41 +02:00
Rémi Verschelde
dab46db619
Merge pull request #59507 from bruvzg/openxr_move_proj_settings
Move OpenXR project settings to the main, to make them visible on unsupported platforms.
2022-03-29 23:48:16 +02:00
bruvzg
d2add64f91
Move OpenXR project settings to the main, to make them visible on unsupported platforms. 2022-03-29 23:25:33 +03:00
K. S. Ernest (iFire) Lee
9484ee7a9e Add support for importing .blend files
Lets you drag or place .blend files in the project folder and it will import the files.

Checks for Blender 3.0's gltf2 `export_keep_originals` option.

Add basepath support to GLTFDocument append_from_file.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-03-29 21:54:41 +02:00
Rémi Verschelde
da346ed4ad
Merge pull request #59583 from V-Sekai/svg-crash 2022-03-29 19:33:30 +02:00
K. S. Ernest (iFire) Lee
683b61b094 Set threads to be one to avoid SVG crash. 2022-03-29 10:05:43 -07:00
Rémi Verschelde
3b4e94c8b5
Merge pull request #59660 from timothyqiu/fbx-reg 2022-03-29 10:41:19 +02:00
Haoyu Qiu
c17d9f05f8 Simplify FBX importer project settings registering 2022-03-29 15:00:43 +08:00
bruvzg
ea4d62dca3
[ICU] Add library name suffix for API rename to avoid conflicts. 2022-03-29 08:38:21 +03:00
Rémi Verschelde
5149db8d85
Merge pull request #59644 from akien-mga/template-no-editor-dep 2022-03-28 23:35:51 +02:00
Rémi Verschelde
8c12dfe099
Merge pull request #56718 from Geometror/noise-overhaul 2022-03-28 21:59:18 +02:00
Rémi Verschelde
45ec0e31c3 Remove last editor code dependencies in template build
SConstruct change also makes it possible to outright delete the `editor`
folder in a `tools=no` build, which we use in CI to ensure no invalid
cross-dependencies are added.
2022-03-28 21:13:01 +02:00
Rémi Verschelde
1ae8b2de38
Merge pull request #59636 from akien-mga/string-remove-ttr 2022-03-28 21:12:44 +02:00
Rémi Verschelde
0c7a15d777
Merge pull request #59641 from Sauermann/fix-encoder-compiler-warning 2022-03-28 20:43:34 +02:00
Rémi Verschelde
80d4f35215
Merge pull request #59626 from lufog/const_ref 2022-03-28 20:29:53 +02:00
Rémi Verschelde
7119d355eb String: Remove TTR and DTR defines in non-tools build
This ensures we don't use TTR in runtime code, as it's specifically meant
to source translations for the editor.
2022-03-28 20:26:35 +02:00
Rémi Verschelde
4799009a0f
Merge pull request #59631 from akien-mga/websocket-no-tools-disable-editor-code
Modules: Don't build editor-specific classes in templates
2022-03-28 19:56:20 +02:00
Markus Sauermann
759d04e28e basisu_uastc_enc.cpp was included twice in encoder_sources 2022-03-28 19:34:03 +02:00
Rémi Verschelde
5fe6984639 Modules: Don't build editor-specific classes in templates
They're moved to an `editor` subfolder so that we can easily handle them
separately.
2022-03-28 16:48:15 +02:00
Rémi Verschelde
c9b75431f3 Refactor GDScript/C# script templates logic to be editor-only
Not a full refactor as it still goes through ScriptLanguage so it's hacky,
but at least it can now compile without this.
2022-03-28 16:21:00 +02:00
Rémi Verschelde
143d13717b
Merge pull request #59553 from reduz/script-extension-support 2022-03-28 13:35:21 +02:00
Juan Linietsky
ed14ff5a08
Revert "Sort autocomplete/code completion options in a better way" 2022-03-28 13:31:32 +02:00
Rémi Verschelde
01f34495bf
Merge pull request #59621 from bruvzg/icu_external 2022-03-28 11:58:12 +02:00
Rémi Verschelde
795304e34f
Merge pull request #59612 from YeldhamDev/style_and_grace 2022-03-28 11:36:27 +02:00
Aleksey Smirnov
1a13de0f8d Replace copies with constant refs 2022-03-28 12:34:05 +03:00
bruvzg
40b0634b34
Fix TextServer build with builtin_icu=no. 2022-03-28 11:06:49 +03:00
Rémi Verschelde
7fe5bece45
Merge pull request #58931 from EricEzaM/proposals/4189-better-code-completion
Sort autocomplete/code completion options in a better way
2022-03-28 08:56:27 +02:00
Rémi Verschelde
c422dc5feb
Merge pull request #59064 from Chaosus/gds_fix_narrowing_conv_warning
Prevent NARROWING_CONVERSION warning for `int(float)` function in GDScript
2022-03-28 08:55:52 +02:00
Michael Alexsander
42df9ed059 Make script templates follow the GDScript style guide 2022-03-28 01:32:12 -03:00
Fabio Alessandrelli
331f1662df [Net] Drop is_connected_to_host for TCP and UDP.
The UDP method is now called `is_socket_connected` to limit confusion
with the actual host connection status which doesn't make sense in UDP.

The TCP method is completly dropped, use get_status instead.

The only one left is the WebSocketPeer one, which should be fine as is
for now.
2022-03-27 16:36:44 +02:00
Fabio Alessandrelli
0e52867668 [Net] Make StreamPeerTCP::_poll_connection explicit.
No longer hacked into `get_status` and renamed to `poll`.

The old `poll` (for *nix `poll`, win `select`) is now called `wait`.
2022-03-27 16:36:44 +02:00
reduz
360dea5348 Add GDExtension support to Script
* Ability to create script languages from GDExtension
* Some additions to gdnative_extension.h to make this happen
* Moved the GDExtension binder to core

This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x.
Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-27 16:13:00 +02:00
Rémi Verschelde
6fce38d1da
Merge pull request #59489 from adamscott/add-gltf-dae-fbx-blend-shape-mask-array-format-enforcers
Add GLTF, DAE and FBX importers enforcement for blend shape mask array
2022-03-25 22:47:16 +01:00
Rémi Verschelde
7c37ab53be
Merge pull request #59503 from V-Sekai/basis-universal-update 2022-03-25 11:00:57 +01:00
Bastiaan Olij
c78876f977 Cleanup OpenXR on initialisation failure 2022-03-25 18:30:47 +11:00
K. S. Ernest (iFire) Lee
3529141b4b Update basis universal to version 1.16.3.
Enable basis universal uastc internal storage instead of etc1s for better quality.
2022-03-24 22:41:23 -07:00
Fabio Alessandrelli
1ed6ad939b
Merge pull request #59255 from winterpixelgames/fix-js-websocket-close
Use 3001 instead of 1001 when destroying a Javascript websocket
2022-03-25 05:20:13 +01:00
Adam Scott
5e6d4baa48 Add GLTF, DAE and FBX importers enforcement for blend shape mask array 2022-03-24 17:15:23 -04:00
Eric M
f9e1c094a2 Improve sorting of Code Completion options.
Done by ordering options by their location in the code - e.g. local, parent class, global, etc.
2022-03-24 22:24:14 +10:00