- `EditorNavigationMeshGenerator` was being registered as part of the Core API,
even after d3f48f88bb. We must make sure to
set Editor as the current ClassDB API type before creating an instance.
- The `VisualScriptEngineSingleton.constant` property has a property hint string
that's different between tools and non-tools builds. This commit makes the
hint string to no longer be set in `_bind_methods`, and to instead set it in
`_validate_property`. This way it's ignored when calculating the API hash.
- `JavaClassWrapper` is now registered in ClassDB on all platforms,
using a dummy implementation on platforms other than Android.
This fixes API portability between Android and other platforms.
- Updated `--class-db-json` command to ignore non-virtual methods that start
with an underscore (see: 4be87c6016).
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
Also added an option to output a json file with all the ClassDB registered classes and its members. This can be used to compare the API of two different builds by a simple diff.
* Expose EditorNavigationMeshGenerator as an engine singleton so users
can generate navmesehes from `tool` scripts.
* Add support for generating navmeshes from static colliders. All
collision shapes are supported except for Plane (since Plane is an
infinite collider and navmeshes need to have finite geometry).
* When using static colliders as a geometry source, a layer mask can be
specified to ignore certain colliders.
* Don't rely on global transform. It still should give the exact same
results but allows for building navmeshes on nodes that are not in the
tree (useful in `tool` scripts).
* Update navigation gizmos after every new bake.
This work has been kindly sponsored by IMVU.
Modules can register their own editor plugins (like GridMap does),
so no need to put module-specific classes in the `editor/` folder.
Also cleans up the previous SCons env pollution from the Recast
module, integrating its code into libmodules as other modules.