Skip to content

3.9.0

Compare
Choose a tag to compare
@Relintai Relintai released this 15 Oct 13:23
· 2071 commits to master since this release

Added

Backports

Backported everything up to and including godotengine/godot@6812e66 Merge commit: godotengine/godot@3c39bc3

Core

  • Now the Engine has methods to store globals (custom singletons). They are mostly meant for classes like EditorInterface, SpatialEditor, and plugin scripts that need a singleton for in-editor use. In essence it provides easy and side effect less access for classes that might not be present on every run. (For example gdscript recognizes normal singletons as keywords, but not these.) Also registered EditorInterface, SpatialEditor, CanvasItemEditor, and WebNodeEditor as globals.
  • Added msvc versions of the no-rtti and no-exceptions options. (They are disabled temporarily)
  • Use FALLTHROUGH macro instead on [[fallthrough]];

Engine

  • Added a new World class and made Viewport inherit from it. Moved World2D and World3D related things to World from Viewport. Also added the ability for overriding Worlds. Still needs some work, it should be already usable. (Sometimes when changing world overrides, a few camera related errors are emitted.)

Editor

  • Now menu items can be added to the convert menu in the editor.
  • Added an option to automatically reload or save instead of asking what to do after a file changed outside the editor.

Modules

GridMap
  • Added back the GridMap module. Also added back support for it in other modules.
ThreadPool
  • Now the target fps is customizable for ThreadPool when threading is not enabled.
Web
  • Small improvements to the simple web server.
  • Added enctype and multipart form helpers to HTMLTag.
  • Added rows and cols to HTMLTag.
  • Added proper multi part form parsing support for the simple web server.

Releases / Builds / CI

  • Updated the build containers from upstream.
  • Added a strip script.
  • Now the podman build all script also builds armhf x11 executables.
  • Added a script for engine side release preparation.
  • Now the podman build all script has the ability to easily set the build name.
  • Added a new command line option to help with generating version.txt for tpz files.
  • Windows x86 github action.

Changed

Core

  • Added missing projection * projection Variant operator.

Engine

  • Added _3d postfix to the end of the World3D related getters and setters in Viewport.
  • Renamed Environment to Environment3D, and WorldEnvironment to WorldEnvironment3D.
  • Renamed World to World3D.
  • Now Camera2Ds handle being current properly, and also more intuitively.

Platforms

  • Updated frt2 to the latest.

Modules

  • Cleaned up old _PRESENT defines, now everything uses module configs.
TileSet
  • Renamed RTileMap ro TileMap and RTileSet to TileSet, as it does not need to be able to live alongside Godot's TileMap anymore. Also added compatibility classes.
  • Added back TileSet export.
GridMap
  • Now MeshLibraryEditorPlugin registers itself to the export as menu.
GLTF
  • Moved the gltf export to the convert scene menu.
ThreadPool
  • Now ThreadPool should properly handle when use_threads changes.
  • Moved ThreadPool to core. Also it can change it's thread count now when it has time for it.
  • Now ThreadPool uses a List internally as a queue instead of a Vector.
Paint
  • Added a few getters and setters to the PaintWindow.
Skeletons
  • Moved Skeleton and it's related classes to a module.
  • Moved Skeleton2D and it's related classes into a module.
GDScript
  • Now the return value discarded warning is disabled by default in gdscript and cscript.
Web
  • Renamed WebEditor* to WebNodeEditor*, made it a singleton, and added an extension api for it.

Build System

  • Now the project setup script's module folders are customizable.
  • Updated the example build config file.
  • Add quotes when passing the custom module folders parameter.
  • Now the app project helper build script supports custom module folders.

Releases / Builds / CI

  • Now export templates are created in the .tpz format for easy installation. (Note that you can rename them to zip, and unpack them yourself if you need / want.)
  • Replaced the default project editor icon, and the logo editor icon.
  • Pass all arguments into the build commands in the podman build all file instead of the hardcoded -j4.
  • Now versions will be handled differently, unlike in godot, I'll commit version information to the repository.
  • Update hungarian translation from godot.

Fixed

Core

  • Now String and CharString Types properly move the null terminator on resize and remove.

Editor

  • Now all gizmo plugins return gizmo names properly.
  • Get gizmo names using the proper method for the toggle popup in the SpatialEditor.
  • Fix errors on new scene creation.
  • Remove unused file selector from EditorNode.

Modules

Voxelman
  • Fix voxelman's editor setting. (Now it's under the Voxelman tab instead of under the Voxel tab.)
PluginRefresher
  • Fixed PluginRefresher when a project only has one addon.
ThreadPool
  • Fix race condition in threadpool.
  • Fix setter parameter types for ThreadPool.
Pain
  • Improved PaintWindow mouse emulation from touch support a bit more.
  • Fix PaintWindow with mouse emulation from touch.
Web
  • Fix requesting write locks in WebNodes.
  • Fix default argument for the binding of WebServerRequest::send_redirect.
  • Fix: WebPermission was meant to be a Resource.
  • Fix mimetype handling in the simle server. Also added a few misisng ones.
  • Fixed rendering the menu of the BrowsableFolderServeWebPage and StaticWebPage.

Build System

  • Don't try to include x86 assembly into non-x86 based platforms when cross compiling the x11 platform on x86.
  • Fix build when 3d is off.

Releases / Builds / CI

  • Don't remove the module config file in the build all script anymore.
  • Fix the job name of the android editor's github action.