5.0.0
Highlights
- Added new Variant types: TypedArray and PackedTypedArray.
- Backported all improvements from Terraman to Voxelman.
- Improvements to both Voxelman and Terraman.
- Finished docs for Voxelman.
- Added a new scripting language: PScript, with a c-like syntax.
- Threading related classes now use the platform apis directly.
Breaking Changes
- SafeNumeric has been split to SafeNumeric and SafePointer. This might result in a break on the c++ side for engine modules.
- Renamed DEFAULT_CHANNEL_ALT_TYPE to DEFAULT_CHANNEL_LIQUID_TYPE and DEFAULT_CHANNEL_ALT_ISOLEVEL to DEFAULT_CHANNEL_LIQUID_ISOLEVEL in voxelman.
- Backport bd476c1 to voxelman.
Split _create_chunk() to _create_chunk() and _setup_chunk() in
TerrainWorld.- Unfortunately this is a breaking change. (Very slight though.)
Now _create_chunk() should be used to initialize serialized properties
in chunks. The new _setup_chunk() virtual should be used to initialize
other non/serialized properties (like meshers).
Fortunately the only thing that needs to be done is to split old
_create_chunk() into two. - Note that when using procedural generation, the old way should just work
without any updates necessary. This change is only needed when loading
of chunks is desired.
- Unfortunately this is a breaking change. (Very slight though.)
Core
- Added new Variant types: TypedArray and PackedTypedArray.
- Added missing constructor for Rect2I.
- Bound 2 constuctors for Projection.
- Add approximate deep equals support for TypedArray and PackedTypedArray.
- Added missing types to Variant::deep_equal().
- Remove duplicate label.
- Split deep_equal() into deep_equal() and deep_equal_approx().
- Add deep_equal_approx to gdscript.
- Docs for deep_equal_approx.
- Rename some of the binary magic headers.
The old ones are still loaded for backwards compatibility. - Don't use IP::ResolverStatus as a SafeNumeric parameter.
- Now ObjectRC and Object use SafePointers and SafeNumerics instead of std::atomic.
- Now ThreadWorkPool uses SafeFlag and SafeNumeric instead of std::atomic.
- Get rid of stl in SafeList. Note that SafeList is not used anywhere, so it might still have issues.
Threads
- Collect old threading primitive implementations to a temp folder.
- Copy the current thread implementations under drivers.
- Now the X11 platform uses pthreads directly.
- Everything is snappier now... This is ridiculous.
- For reference the character on the Broken Seals menu appears instantly
now, instead of in about a second.
- Also set pthread priority.
- Added the pthread implementation as platform thread overrides to all flatforms that can use it unmodified.
- A better system will be needed for this eventually.
- Override thread implementation for android aswell.
- Setup native threads for windows aswell.
- Fix missing return value.
- pthread_setschedprio doesn't exists on osx.
- Fix Windows thread's global static callback method trying to access Thread's private members.
- Fix trying to return undeclared identifier.
- iOS doesn't have pthread_setschedprio either.
- Disable temporarily the pthread_setschedparam calls.
- Init _main_thread_id to 0 everywhere.
- Add platform thread override to the javascript platform aswell.
- Make the default thread implementation in core the dummy one.
- Move thread_posix.h and cpp.
- Now platform_threads.h are used whwnewer NO_THREADS is defined. Removed PLATFORM_THREAD_OVERRIDE.
- Use native mutex apis directly.
- Fix missing memnew declaration.
- Move includes in mutex.h.
- Cast before deleting for good measure.
- Remove unnecessary always inlines.
- Add missing include.
- Use c style numeric limits.
- Use native rw lock apis directly.
- Fix variable name.
- Cast before deletion.
- Use native semaphores.
- Tweaks.
- Use dispatch_semaphore for osx.
- Also use dispatch semaphore on ios.
- Reimplement atomics using old gcc builtins.
- Now SpinLock uses SafeFlag.
- MSVC atomics initial setup.
- No need for the float SafeNumeric template specialization now.
- Atomics for MSVC.
- Add new method to dummy SafeFlag.
- Added a SafePointer type to SafeRefcount. Renamed the Windows template specialization to it.
- Use InterlockedExchangeAdd everywhere instead of InterlockedAdd on Windows.
- Added proper atomic loads and stores.
- Fix compare exchange logic and also small tweaks.
- Rework the gcc version of SafeFlag to use uint8_t.
- Use set() in atomic variable constructors again.
- Use getters instead of casting to volatile in Safe Refcount. Also initialize flag to 0 in SafeFlag.
- Mark all MutexLocks as NO_DISCARD_CLASS.
Editor
- Change GDScript text to just Script in ProjectExportDialog.
- Added a default language and default name casing dropdown to the create project dialog. If changed, they remember state.
- Tweak the renderer texts in the create project dialog.
- Rename SCENE_NAME_CASING_AUTO to SCENE_NAME_CASING_KEEP so it's name better matches what it does.
- Store global script class icon keys as Strings, instead of StringNames in the ProjectSettings.
This fixes their order changing constantly in the project.pandemonium file.
Servers
- Fix multi threaded rendering.
Scene
- Remove SafeNumeric<float>-s from AudioStreamPlayers.
- The way they are used it's unnecessary. If they have race conditions
they will need mutexes. - Restored them to be volatile as they were before the atomic rework
just in case.
- The way they are used it's unnecessary. If they have race conditions
Modules
GDNative
- Added bindings for the new Variant types: TypedArray and PackedTypedArray.
- Updated the gdnative helper scripts.
- Added deep_equal_approx to gdnative.
Voxelman
- Backport improved priority generation logic to Voxelman.
- Backport 9cd4da7 for Voxelman.
Added new helper methods to TerrainWorld. - Backport 4a2d4af for voxelman.
Clear meshes as needed in TerrainPropJob. - Backport 6be11c2 for voxelman.
Implemented an immediate build mode for TerrainChunk. - Backport c13a4d0 for voxelman.
Use the new immediate build mode in TerrainWorld's
set_voxel_at_world_data_position(). - Backport e11e75e for voxelman.
Unlock the mutex after the rects are refreshed in the material cache in
TerrainLibraryMergerPCM. - Backport 2688162 for voxelman.
Optimized editing in TerrainWorldEditor. - Backport 2024a33 for voxelman.
Implemented chunk material invalidation support for
TerrainLibraryMergerPCM. - Backport "Get the dimensions from the texture instead of the image in texture_get_uv_rect of the material cache." from pre-pandfemonium terraman.
Relintai/terraman@29c68e5 - Added liquid material caches to VoxelLibraryMergerPCM.
- Renamed DEFAULT_CHANNEL_ALT_TYPE to DEFAULT_CHANNEL_LIQUID_TYPE and DEFAULT_CHANNEL_ALT_ISOLEVEL to DEFAULT_CHANNEL_LIQUID_ISOLEVEL in voxelman.
- Backport "Added a helper method to get the editor's camera." from pre-pandemonium terraman.
Relintai/terraman@a78d41b - Backport "Fix a deadlock in TerrainLibraryMergerPCM that could occur when spawning and despawning cunks extremely fast." from pre-pandemonium terraman.
- Fix include.
- Backport "Fix more issues when allocating and deleting chunks really fast. (Flying around in the editor at max speed.)" from pre-pandemonium terraman.
Relintai/terraman@0845d92 - Backport fix for some race condition and deadlocks in voxelman.
- Fix potential deadlock.
- Support using Material Caches in VoxelMeshers.
- Set and generate liquid materials.
- Backport 39cb3e3 to voxelman.
Reset the mesher's lod index in _reset() in TerrainTerrainJob. This
fixes subsequent mesh generations. - Backport 17e048a to voxelman.
Added a new helper method to TerrainWorld. - Backport 12214cb to voxelman.
Fix potential hang on exit due to deadlocks. - Missing changes.
- Fix double call.
- Backport d0fa4ba to voxelman.
Clear the material cache data in TerrainChunk::_exit_tree(). - Backport 4ac6095 to voxelman.
Added a new helper method to TerrainWorld. - Backport a980238 to voxelman.
Add the new chunk to the generation queue instead of directly calling
it's build method in TerrainWorld::chunk_add(). - Backport "When the world adds a MeshDataResource to the chunk it should not be scaled again." from original terraman,
Relintai/terraman@01721b9 - Backport "Chunk's mesh_data_resource_add expects a local transform." from original terraman.
Relintai/terraman@f76a7f9 - Backport "Now the world can be deactivated when needed." from original terraman.
Relintai/terraman@632586f - Backport "Added chunk_added and chunk_removed signals to TerraWorld." from original terraman.
Relintai/terraman@86de26c - Backport 2361477 to voxelman.
Simplify chunks_set() in TerrainWorld. - Backport b0177a2 to voxelman.
Only generate chunks once. - Backport eb3ed4f to voxelman.
Now props and mesh data resources are saved with the TerrainChunks. - Backported 583298d to voxelman.
Now TerrainLights are stored inside chunks (they are also automatically
saved with them). Also changed TerrainLight's api to makes use of
Vector3i. - Backport 954ca26 to voxelman.
Make sure the remaining chunks are notified of the changed world lights
when adding / removing chunks. - Backport 1643197 to voxelman.
Now TerrainChunks will remember whether they own a prop or not. Also
added and bound missing methods to Chunk's prop api. - Backport 0a87629 to voxelman.
Set prop ownership when adding them in TerrainWorld. - Backport 2054f60 to voxelman.
Renamed the new original parameter in TerrainChunk and TerrainWorld's
prop api from owner to original. - Backport 7006c94 to voxelman.
Store whether a mesh_data_resource in a TerrainChunk is original or not. - Backport 1c14d1c to voxelman.
Store ownership information in TerrainLights. - Backport 601185c to voxelman.
Set prop ownership to lights in TerrainWorld::prop_add(). - Backport 6786193 to voxelman.
Added to_dict() and from_dict() methods to TerrainLight. - BAckport 6e9e3fd to voxelman.
Now TerrainLights inherit from Resource. - Backport 418bac4 to voxelman.
Added owned_lights property to TerrainChunk. Also changed the lights
property it is now scripting only, it won't get saved. - Backport 39eeba0 to voxelmnan.
Added scene storage api to TerrainChunks. - Fix bind.
- Backport 9d6ec2b to voxelman.
Tweaks and improvements to TerrainChunk's new scene api. - Backport 10c5076 to voxelman.
Added the new scene_add() method to TerrainWorld. Also store scenes from
props inside chunks. - Backport 9841d6f to voxelman.
Small variable name tweak. - Backport b248a28 to voxelman.
More tweaks to TerrainChunk's new scene api. - Backport f561824 to voxelman.
Fix compile on windows, osx, and javascript. (Hopefully.) - Backport 5ad5d65 to voxelman.
Call emit_changed() in TerrainChunk setters. Also a setter fix. - Backpoer fb08c49 to voxelman.
Make sure the prop meshes are cleared from previous runs before
returning early in TerrainPropJob. - Backport 5d3aa83 to voxelman.
Rebuild chunks in TerrainWorld::prop_add(). - Backport 7e52eb6 to voxelman.
Now props added to TerrainWorld can also have a name. The prop bake
editor tool uses it to save and restore node names. - MaterialCache support for VoxelMesherMarchingCubes.
- Backport 0847706 to voxelman.
Implement setting a name to scenes in TerrainChunk. - Backport dc4de19 to voxelman.
Return and set the name with the props property in TerrainChunk. - Backported f770c59 to voxelman.
Now TerrainChunks can also store a name and material for
MeshDataResources. - Backport 74ddba1 to voxelman.
Added mesh_data_resource_add() helper method to TerrainWorld. - Backport d371765 to voxelman.
Removed OWNER_TYPE_VERTEX_LIGHT_3D from TerrainLight. - Backport 4f0050f to voxelman.
Added light_mode property to TerrainLight. - Backport 7a50eed to voxelman.
Added item_cull_mask property to TerrainLight. - Backport ffa4cf9 to voxelman.
Added more helper methods to TerrainWorld. - Backport 20f5439 to voxelman.
Fix TerrainChunk::light_remove_index() not actually remoing lights. - Backport a4ff7e9 to voxelman.
Added use_vertex_lights_3d property to TerrainWorld. - Backport 1ac803d to voxelman.
Make use of the VertexLights3DServer in
TerrainChunkDefault::_bake_lights() if enabled. - Backport c094e07 to voxelman.
Now TerrainChunks will register their lights into the
VertexLights3DServer if use_vertex_lights_3d is enabled in world. - Left out changes from the previous commit.
- Backport the ChunkDataManagers from terraman to voxelman.
- Backport 5dbfdac to voxelman.
Now TerrainWorld uses TerrainWorldChunkDataManagers if they are
available. - Backport 117f6cf to voxelman.
Now TerrainWorld won't save it's chunks into scenes in the editor
anymore if a TerrainWorldChunkDataManager is set. - Backport 9fefe64 to voxelman.
Added force_save_all_chunks() method to TerrainWorld. - Backport b7bfd13 to voxelman.
Added a force save all chunks button to TerrainWorld's inspector if a
TerrainWorldChunkDataManager is set. - Add missing bind.
- Backport bd476c1 to voxelman.
Split _create_chunk() to _create_chunk() and _setup_chunk() in
TerrainWorld.- Unfortunately this is a breaking change. (Very slight though.)
Now _create_chunk() should be used to initialize serialized properties
in chunks. The new _setup_chunk() virtual should be used to initialize
other non/serialized properties (like meshers).
Fortunately the only thing that needs to be done is to split old
_create_chunk() into two. - Note that when using procedural generation, the old way should just work
without any updates necessary. This change is only needed when loading
of chunks is desired.
- Unfortunately this is a breaking change. (Very slight though.)
- Backport 4d23866 to voxelman.
Call TerrainWorldDefault's _create_chunk() and _setup_chunk() in
TerrainWorldBlocky. - Backport d995773 to voxelman.
Call chunk's enter_tree and set voxel world on entering the tree in
TerrainWorld. - Backport 97380e3 to voxelman.
Only build the chunk in TerrainWorld::chunk_add() if the world is in the
tree. - Backport 82218be to voxelman.
Fix visibility toggling in TerrainChunkDefault even if lods are
disabled. - Backport 9289351 to voxelman.
Also check whether chunks are building when doing a priority generation. - Backport comment.
- Backport 64696b5 to voxelman.
Don't destroy and re-generate meshes in TerrainChunk's _enter and
_exit_tree, just hide / show them. This makes scene tab swithing with
TerrainWorlds in the editor a lot simpler. - Backport 61a43da to voxelman.
Removed unnecessary check. - Backport 556de2d to veoxelman.
TerrainChunkDefault lod change code cleanups and improvements. Also set
scenario on entering and exiting the tree. - Don't complain if chunk is already used by an another world for now.
This can happen when realoding scenes that have chunks saved in them.
Maybe eventually a different solution might be needed, but for now this
seems fine. - Set space for the colliders when entering and exiting tree in VoxelChunkDefault.
- Implement visible collision shapes support for Voxelman.
- Set scenario for debug meshes aswell in VoxelChunkDefault, also free them in free_chunk().
- Free the body first.
- Hide and show debug mesh in VoxelChunkDefault::_visibility_changed().
- Revert "Hide and show debug mesh in VoxelChunkDefault::_visibility_changed()."
This reverts commit cebd091. - Make VoxelWorld handle visibility change notifications.
- Emit changed in VoxelChunk::set_is_terrain_generated().
- Use post enter tree in VoxelWorld::_notification.
- Cancel build first in VoxelChunk::_exit_tree().
- Don't check for the presence of _enter_tree and _exit_tree, as they are always available.
- Clean up abort build logic.
- Set collider space properly in VoxelChunkDefault.
- Also reset _is_generating flag if the build was aborted.
- Also reset _queued_generation if abort build was set.
- Properly restart builds in enter tree.
- Reset cancelled state in VoxelJob::_reset().
- Reset _current_job if the build was aborted.
- Clean metas in VoxelTerrainJob::_reset().
- Reset cancelled state in VoxelChunk::job_next() instead of VoxelJob::reset().
- Reset the build_phase_type in VoxelTerrainJob::_reset().
- Re-extracted class docs.
- Detup channel index info for VoxelWorldBlocky.
- Use undoredo when setting voxels with the voxel world editor.
- Rename set_voxel_with_tool to transform_position_for_tool.
- Use transform_position_for_tool to calculate position in the voxel world editor.
- Add missing docs for VoxelChunk.
- Added missing method docs for VoxelChunkDefault.
- Fix typo.
- Added missing method docs for VoxelLight.
- Docs for VoxelMesherJobStep.
- Description for VoxelMesherMarchingCubes.
- Dosc for VoxelPropJob.
- Docs for VoxelStructure.
- Docs for VoxelSurface.
- Docs for VoxelSurfaceMerger.
- Docs for VoxelSurfaceSimple.
- Docs for VoxelTerrainJob.
- Added liquid type and isolevel type info enums for VoxelWorld.
- Docs for VoxelWorld.
- Docs for VoxelWorldArea.
- Docs for VoxelWorldBlocky.
- Fix typo.
- Docs for VoxelWorldChunkDataManager.
- Docs for VoxelWorldChunkDataManagerStaticFolderResources.
- Docs for VoxelWorldCubic.
- Docs for VoxelWorldMarchingCubes.
- Docs for VoxelWorldDefault.
- Update chunk setup in VoxelWorldMarchingCubes.
- Backport chunk_lod_first_falloff to voxelman.
Terraman
- Backport 9e6a720 to terraman.
Don't complain if chunk is already used by an another world for now.
This can happen when realoding scenes that have chunks saved in them.
Maybe eventually a different solution might be needed, but for now this
seems fine. - Backport cf35457 to terraman.
Set space for the colliders when entering and exiting tree in
VoxelChunkDefault. - Backport 6a49e5b to terraman.
Implement visible collision shapes support for Voxelman. - Backport 061b404 to terraman.
Set scenario for debug meshes aswell in VoxelChunkDefault, also free
them in free_chunk(). - Backport 3635ba7 to terraman.
Free the body first. - Backport 7d1e77c to terraman.
Make VoxelWorld handle visibility change notifications. - Backport 2f546a7 to terraman.
Emit changed in VoxelChunk::set_is_terrain_generated(). - Backport 9d085ef to terraman.
Use post enter tree in VoxelWorld::_notification. - Backport b842d85 to terraman.
Cancel build first in VoxelChunk::_exit_tree(). - Backport 7aa97ba to terraman.
Don't check for the presence of _enter_tree and _exit_tree, as they are
always available. - Backport 70e41b0 to terraman.
Clean up abort build logic. - Backport 00cf2ba to terraman.
Set collider space properly in VoxelChunkDefault. - Backport d1410b7 to terraman.
Also reset _is_generating flag if the build was aborted. - Backport 28b24b7 to terraman.
Also reset _queued_generation if abort build was set. - Backport 5cce377 to terraman.
Properly restart builds in enter tree. - Backport 9eda527 to terraman.
Reset cancelled state in VoxelChunk::job_next() instead of
VoxelJob::reset(). - Backport e9b97b4 to terraman.
Reset _current_job if the build was aborted. - Backport a42371c to terraman.
Reset the build_phase_type in VoxelTerrainJob::_reset(). - Now TerrainWorlds will duplicate chunks if they are already part of an another world.
This fixes in-scene serialized chunks + instancing. - Backport the previous change to voxelman.
CScript
- Remove the csript module. (it was disabled by default)
I'm going to start over in a different way.
PScript
- Added pdscript module. It's a copy of gdscript, and it's disabled by default for now.
- Rename all files.
- Rename the --lsp-port option to --gd-lsp-port. Also add pdscript variant.
- Mass rename classes.
- Set the default gdscript lsp port to 6005, pdscript lsp port 6006, as remote debug uses 6007, and when tat fails it increments ports one by one.
- Rename register_lsp_types(); to register_gd_lsp_types();.
- Enable pdscript by default.
- Rename the pdscript module to pscript instead.
- Update pscript in main. Also fix setting port.
- Only allow ; as the end statement.
- Remove type inference (:= operator) from pscript.
- Removed yield from pscript.
- Added a new dictinary literal to pscript, as the plain curly brace is going to be used for scopes.
- |{ key: value, ... }|
- Fix crash.
- Fix dev assert being triggered.
- PScript now uses {} instead of indents.
- Fix parsing if.
- Removed the pass keyword from pscript.
- Rename the self keyword to this in PScript.
- Udpated the keyword list in PScriptLanguage::get_reserved_words().
- Added Variant as a usable type to PScript.
- Implement c-like function definition syntax for PScript.
- Implement c-like syntax for class variables in PScript..
- Allow a single ; and newline after the export keyword in PScript.
- Removed old function definition style from PScript.
- Removed old class variable definition type from PScript.
- Implement c-like class constant declaration for PScript.
- Use else if instead of elif in PScript.
- Fix parsing inner classes in PScript.
- Allow a ; after an inner class declaration in PScript.
- Implement c-like variable declaration syntax for built in variables in PScript.
- Removed _parse_type_identifier as it did not handle subclasses directly.
- Added :: as a token, classes inside classes now use this as their type. (Similar to how c++ does it.)
- Remove note, as the :: syntax seems better.
- Allow indexing in expressions using :: aswell.
This makes :: behave in expressions exactly like ".", or indexing with
[], (even method calls will work with it), except it won't work if it's
in the first literal in the line. Eventually this will likely get
refined. - Tweak errors.
- Remove the now unused elif token from PScript.
- Require ; after class_name aswell in PScript.
- Allow : to be used as extend aswell in PScript.
- Implement // style comments for PScript.
- Remove var keyword from PScript.
- Fix Instanting inner classes inside their outer classes.
- Fix PScriptLanguage::find_function().
- Remove now unused func keyword from PScript.
- Implement raw (no beginning statement, like if while, etc.) control flow blocks to PScript.
- Add PScripts to the default rearch extension list.
- Rename the current for to foreach in PScript.
- Fix up templates for PScript.
- Keyword list udpates.
- Update method auto complete hints for PScript.
- Also ignore // in PScriptLanguage::auto_indent_code().
- Update 2 more autocomplete argument hints for PScript.
- Don't print error in TypedArray and PackedTypedArray when setting types.
- Fix marshalling TypedArray and PackedTypedArray.
- Added a new type + virtuals completion type for in-class completion.
- Rename the wildcard token to "default".
This was already planned, but it makes the auto complete work as I
expect in classes, so did it early. - Simplified and fixed up match in PScript.
- Renamed match to switch.
- Fix default label and tweak error messages.
- Rework the switch statement, now it's make it more c-like.
- Fix the switch statement's codegen. Also set line numbers, so it also looks nice in the in-engine debugger.
- Rename nodes and variables from match to switch.
- Foreach now requires an explicit type, also now it supports having parentheses around the iteration variables.
- Re-enable the range optimization for foreach.
- Add type support for signals in PScript.
- For loop for PScript pt1.
- For loop for PScript pt2.
- Fix some for loops exiting early.
- Allow multiple statements, separated by ',' in the for loop post iteration condition.
- Update the core type list in ScriptLanguage.
- Split LSP settings for pscript and gdscript.
- Require a ; after the tool keyword.
- Don't use deprecated method.
- Better mesher setup in TerrainWorldBlocky::_setup_chunk().
- Fix BUILD_FLAG_CREATE_COLLIDER in terraman.
- Also fix BUILD_FLAG_CREATE_COLLIDER in voxelman.
- Implement int post increment and pre increment support to PScript.
- Added log1p, log10, and log2 to PScript.
- Update PScript docs.
- Update the dictionatry literal.
- Fixing issues with for pt1.
- Fix all remaining issues with for variable scopes.
- Added an editor text completion option for inserting the StringName and nodePath symbols in front of Strings when applicable.
- Enabled it by default, but it will only work with PScript.
- It's a small optimization, as if done this way, we save a conversion.
- It currently works with signals.
- Fix inserting StringName and NodePath symbols in all cases I was able to find.
- Rework the ternary operator in PScript to be more c-like.
- Unfortunately the : is alredy taken dictionary literal, and I had to
use a new token. It ended up being: <>. - Fortunately though the <> token actually really makes sense for a
choice. - So the final expression looks like: <expr> ? <value is true> <> <value
is false>. - Fix error messages.
- Update comment to save potential pain in the future.
- Swap the comment delimiters around in PScriptLanguage::get_comment_delimiters() so the editor toggle comment shortcut uses //.
- Fix accessing engine singletons from PScript.
- Parse -> as dot in PScript.
- Make ; after enums optional in PScript.
- Tokenize -> as forward arrow instead, and also handle it as indexing, to make potential error messages less confusing.
- Also search outer classes of their subclasses for types when declaring a variable in PScript.
- Fix switch statement falling into statements when not having a default case, and the given value did not match any cases in PScript.
- Fix parsing expressions after switch statements in PScript. This also fixed switch statements inside switch statements.
- Allow const and const reference parameters, variables, and const methods similar to how they are often used on the engine side.
- Don't allow const reference as a variable, it's unecessary.
- Implement Ref<> for PScript. It's just syntactic sugar.
- Add Ref to the identifier and reserved keywords list.
- Fix build when GDScript and / or PScript is disabled.
- Fix standalone expression warnings with pre and post increment and decrement.
- Backport to PScript:
- GDScript: Fix missing function signature hint
- Fix if statements not setting line numbers properly in PScript.
Web
- Fix virtual method bind return types in WebPermission.
- Fix pagination links of PagedArticleWebPage.
HTTP Server Simple
- SimpleWebServerRequest::get_file_key() now returns the file's input's name attribute as intended.
- Remove unnecessary duplicate logic.
Skeleton3D
- Bind missing method in SkeletonEditor.
Entity Spell System
- Fix _create_item_instance virtual method bind's return value in ItemTemplate.
- Add default _create_item_instance method in ItemTemplate to spare the has_method check.
GDScript
- Fix build when GDScript and / or PScript is disabled.
- Fix lua style dictionaries in GDScript.
Platforms
- Platforms now have their own threading related class implementations.
Windows
- Add the new variant types to the natvis file.
Other
- Update module list in module_config.py.
- Added long term plans to the readme.
- Set the clang format standard to c++11.
- Set the website to the domain as it has proper https certificates.
- Rename docs variable to docs_branch in version.py and also added a docs_url variable.
Backports
Backported everything up to and including godotengine/godot@e94c006
merge commit: godotengine/godot@0301610
Godot 3.x
- Make physics interpolation compatible with separate-thread rendering
- Use approximate test when comparing properties, thoroughly
- Mark MutexLock as NO_DISCARD to prevent misuse.
- GDScript: Fix missing function signature hint
- Update Natvis for Variant:::OBJECT