Skip to content

Releases: Relintai/pandemonium_engine

4.5.0

20 Sep 15:36
Compare
Choose a tag to compare

Highlights:

  • New Procedural Tree 3D Module. Adds a new 'ProceduralTreeMesh' Mesh class that can generate trees procedurally. It uses https://github.com/jarikomppa/proctree .
  • Backported text-to-speech support.
  • Now the releases include a gdnative headers zip.

Breaking changes:

  • None.

Added

Engine

  • Backport text-to-speech support.

Modules

Procedural Tree 3D

Release

  • Now the releases include a gdnative headers zip.
  • Reworked the copy_repos script to use git locally to make a copy from the local engine tree.
  • Copy gdnative headers helper script.

Fixed

  • Make sure the thumbnail view is the default in the FileSystemDock as intended.
  • Only keep one of the doc links in the editor's help menu.
  • Updated the engine license in the EditorAbout window.
  • Merge pull request from halotroop2288: Separate statements about Godot and Pandemonium in README

Removed

  • Removed feature profile dir creation from the editor.
  • Removed the support development option from the help menu.
  • Removed the donors tab from the EditorAbout window, as I'm not even trying to take donations anymore.

Backports

Godot 3.x

  • Object::call() prevent debug lock accessing dangling pointer
    Self deleting an object within a call was leading to crashes due to referencing freed memory, due to a raw pointer stored in the debug lock.
  • Fix parsing of 4. in Expression
  • Backported: Doctool: Remove version attribute from XML header. We don't use that info for anything,
    and it generates unnecessary diffs every time we bump the minor version (and CI failures if we forget
    to sync some files from opt-in modules (mono, text_server_fb).
  • Safe Camera::unproject_position()
    unproject_position() can fail in some circumstances, and this needs to be conveyed to calling code.
  • PopupMenu: Update margins on visibility change Fixes #96149.
  • Verify GLTF indices to prevent crash with corrupt files
    Also verify prior to vertex optimization.
  • GLTF: Fixed external images getting embedded on import
    Added a map to keep track of external images during import, and used
    that map to instance the textures using the resource loader instead of
    creating a new texture from scratch

4.4.0

21 Jul 17:31
Compare
Choose a tag to compare

Highlights:

  • Tweaks to editor defaults.
  • Added back lightmaps, gpu based particles (GPUParticle) and GIProbes.
  • Added back the gles3 renderer (can be turned off compile time).
  • LayeredTileMaps got VertexLight2D management, and navigation obstacle support.
  • Implemented prepared statements for the database module.
  • The markdown renderer is now scriptable.

Breaking changes:

  • Always defer unmatched requests in WebNodes to index nodes if they are available.
  • Tweak WebNode::get_full_uri() to give back the output what you'd normally assume when the uri segment is "/" under a WebRoot.
  • Renamed the render_menu property in UserWebPage to should_render_menu, as there is a render_menu method in WebNode.
  • Don't create any accounts by default in the UserManagerDB::_create_default_entries() virtual method.
  • Hide result String in TableBuilder. Also add reset() method to it. (c++ only)
  • Made query_result in QueryBuilder protected. (c++ only)

Added

Core

  • Added more helper methods to StringBuilder.

Scene

  • Added a group for the toplevel property in Node2D.
  • Moved the y_sort property from YSort to Node2D. Node2d has it off by default while YSort has it on by default.

Rendering

  • Added back the GLES3 renderer. Unlike in godot it can be disabled compile time.
  • Added back GIProbes.
  • Added back the gpu based particles. Renamed Particle to GPUParticle and Particle2D to GPUParticle2D.
  • Added back lightmaps.

Modules

  • Added back the denoise module, with oidn built in.
  • Added back the lightmapper_cpu module.
  • Added back the raycast module with embree built in.
  • Added back the scene side lighmapper classes.
  • Added back the xatlas_unwrap module. Also moved xatlas into it so it's not in the thirdparty folder.
Database
  • Finish missing docs for the rest of the database module.
  • Added more helper methods to deal with prepared statements to QueryBuilder.
  • Renamed clear to reset in TableBuilder.
  • Added virtual methods to QueryBuilder for adding prepared statement placeholders.
  • Setup prepared statement support for the database module.
Database SQLite
  • Prepared statements for the sqlite database backend.
LayeredTileMaps
  • Implemented VertexLight2D management support to LayeredTileMapLayers.
  • VertexLight2D support for LayeredTileSetAtlasSourceEditor.
  • Added VertexLight2D support to LayeredTileData.
  • Implement debug drawing avoidance radius in LayeredTileMapLayer.
  • Implement navigation obstacle support for LayeredTileMapLayers.
  • Added avoidance position property to LayeredTileData.
  • Added flip winding order tool to GenericTilePolygonEditor.
  • Implemented Obstacle for LayeredTileSets.
Web
  • Docs for the markdown renderer.
  • Added the ability to script the rendering of the MarkdownRenderer. Also added a new render() method equivalent to render_to_html().

Fixed

Core

  • Don't access a Message's memory after calling it's destructor in MessageQueue. (Even though the way the code works currently this was not really a bug, but it can easily become one.)
  • Fix size mismatch warning.
  • Remove unnecessary template parameters from constructors and desctuctors.

Scene

  • Fix the type of the rotation tracks in AnimationTrackKeyEdit.

Servers

  • Don't error in RenderingServerRaster::free() if the supplied RID is just invalid.

Editor

  • Improvements to the filesystem dock.
  • Improved the renderer selector when creating a new project.

Modules

Database
  • Fix text binds being interpreted as blobs.
GDScript
  • Update theme item names for pandemonium.
LayeredTileMaps
  • Fixed rao and vertex lights for newly added cells. Also fixed re-generating the tilemap cells in many cases. Also small improvements.
  • Remove duplicate call.
  • Bind _tile_set_changed in LayeredTileDataEditor.
Web
  • Set the status code in WebRoot::_handle_error_send_request().
  • Optimize _node_route_map's usage in WebNode.
  • Fixed docs, index node support has been moved from WebRoots to WebNodes a while ago.
  • Use HashMap in BrowsableFolderServeWebPage, as the bug that was preventing this was already fixed quite a while ago.
  • Don't expose renderer_callback() for scripting.

Utilities

  • Updated the clang format script.

Changed

Editor

  • Tweaks to the editor defaults.

Modules

Database
  • Use StringBuilder in TableBuilder aswell.
  • QueryBuilder now uses a StringBuilder internally.
  • Hide result String in TableBuilder. Also add reset() method to it.
  • Made query_result in QueryBuilder protected.
  • DatabaseConnection::database_connect() now returns Error.
Database SQLite
  • Fix getting utf-8 texts from Sqlite3QueryResult.
GDScript
  • Disabled the unused argument warning by default.
LayeredTileMaps
  • Turn autowrap on on LayeredTileSetAtlasSourceEditor's tile_inspector_no_tile_selected_label.
Users
  • Don't create any accounts in UserManagerDB::_create_default_entries().
Web
  • Always defer unmatched requests to index nodes if they are available.
  • Expose FileCache in FolderServeWebPage to scripts.
  • Tweak WebNode::get_full_uri() to give back the output what you'd normally assume when the uri segment is "/" under a WebRoot.
  • Renamed the render_menu property in UserWebPage to should_render_menu, as there is a render_menu method in WebNode.

Backports

Godot3

  • Backported: [CI] Upload build cache before running tests. - AThousandShips godotengine/godot@078210b
  • Fix PopupMenu size calculations not taking into account control/canvas scale
  • fix lost old callback when continuous call requestRenderAndNotify
  • Backport DirectionalLight fade_start property to 3.x:
    Implement shadow fading when using the Orthogonal shadow mode (like in master).
    This allows customizing the distance at which directional shadows start to fade away. Shadow fading will also always start at the same distance now, regardless of the current shadow mode in use.
    This is useful for enclosed levels to prevent shadows from fading at all with a well-tuned maximum distance.
    The default fade start value (0.8) results in fading happening later in the distance compared to the previous behavior, where fading started from the last shadow split distance (0.6 in PSSM 4 Splits and 0.1 in PSSM 2 Splits).
  • Fix physics tick count in Input.action_press and Input.action_release The physics tick count was not yet updated there.
  • Use unztell64 in FileAccessZIP to ensure 64 bit return (cherry picked from commit efccebd3db90d7baf0947cd02612ab987ab87868)
  • doc: Fix cherry-pick mistake for Vector3.cross description
  • Add POST_NOTIFICATIONS permission to the list of permissions available in the Export dialog (cherry picked from commit 739190ca2b7f1b67a78eff33154a4bfd1964f5c4)
  • Clarify the behavior of Vector2/3.cross and mention parallel vectors (cherry picked from commit 47a8033698b14c8a7bb25867198c1371382e3398)
  • Always look for unique node names in owner if not found in owned nodes (cherry picked from commit 95ced4bbdcea4d8e225e235fc120c4ebd72f443d)
  • Enabled secure restorable state. (cherry picked from commit 84380a94f776c8c1e7786d2eb3fb811789f42639)
  • miniupnpc: Disable socket timeout on Windows, matching upstream Fixes #88471. (cherry picked from commit f695de7c68e373088175f8f3b1650f11a27be7aa)
  • Add support for PCK embedding section with non GNU-ld linkers. (cherry picked from commit 625c4bdacef4173f94200632362e25e537ad5d21)
  • Physics Interpolation - refactor client interpolation pump
    • Move client interpolation pump to earlier in the iteration before 3D physics synced
    • Allow get_global_transform_interpolated() to prime the client interpolation inside a physics tick
  • Physics Interpolation - refactor Camera and fix get_camera_transform()
    • Moves 3D Camera interpolation scene side.
    • Automatically switches get_camera_transform() to report interpolated transform during _process().
    • Fixes ClippedCamera to work with physics interpolation.
  • Physics Interpolation - Fix 2D skinning
    2D skinning required the interpolated skeleton base transform to be updated when using interpolation.
  • Fix spatial_editor_plugin enum
    • The view_mesh_stats feature introduced a new enum value VIEW_SLECTED_INFO within the unnamed VIEW enum.
    • This turns out to be saved somehow, which means the view settings can get out of sync when reloading the project in an older version of the editor.
    • The solution is simply to move the new value to the end of the enum so there are no conflicts.
  • Editor 3D view mesh stats
    Similar to information window, add a small optional window to display face count and other stats.
  • Add IME input support.
  • Add support for privacy manifest configuration.
  • Extend iOS plugins to support Swift runtime
  • Update actions.
  • Web: Bump closure compiler spec to ECMASCRIPT_2021 Fixes #88008. (cherry picked from commit d29b0d90e0d735eee860b977c57cb75423d7a9ba)
  • Fix emscripten 3.1.51 breaking change about *glGetProcAddress() (cherry picked from commit 5922ac0fb11105da67d28847b60a521406a77cdb)
  • Add WASM_BIGINT linker flag to the web build (cherry picked from commit 3ae524fa9e42828183f8046f6f33b945475bb052)
  • Fix gradle build errors when the build path contains non-ASCII characters (cherry picked from commit f1887a30f35dafac405014ef5ca6e3d76b4da960)
  • Add basic Emacs .gitignore entries (cherry picked from commit 2696fee3c6b08cd9645a61ebf08b84fd70be5a72)
  • Sync controller mappings D...
Read more

4.3.0

21 Apr 21:27
Compare
Choose a tag to compare

Highlights:

  • Backported the new TileMap from Godot4. Every class from it has been prefixed with the word Layered, so look for the LayeredTileMap class. The old TileMap is still available without any breakages.
  • Created a new VertexLights2D module.
  • Created a new VertexLights3D module.
  • Better LOD support due to a change from godot3.x.
  • Backported PROPERTY_USAGE_ARRAY from Godot 4.
  • Fixed, set up exporter and export templates for the FRT and FRT SDL platforms (it's for SBCs).
  • Fixed IOS export template .
  • Now WebServerSimple can also use temporary files for uploads.
  • Added a simple HTML Templating solution. See the HTMLTemplate and HTMLTemplateData classes and this demo.
  • Build containers and release setup rework.
  • ... and many more

Breaking changes:

  • Android dependencies had to be updated, unfortunately this raises the required java version to 17. On the flip side hovewer there is a new editor java home setting, and also the JAVA_HOME environment variable gets picked up.
  • Build containers now use docker instead of podman.
  • Removed parse_files() from WebServerRequest. It's doesn't work well with how the http protocol works. It did not do anything. If you called it just remove that call.

Added

  • Added FRT and FRT SDL build containers.
  • New icon for frt sdl.
  • Added an exporter for frt_sdl.
  • Added a separate exporter for FRT.
  • Added entity_resource_base_world_speed property to the ESS singleton.
  • Also add is_zero_approx() to Vector4.
  • Added copy pose and paste pose tools to the skeleton editor. Also added separators to it's dropdown menu.
  • Make RAO and VertexLights2D work with the new LayeredTileMap setup.
  • Created a new VertexLights2D module.
  • Created a new VertexLights3D module.
  • Added exp2 to the Math singleton.
  • Added Material and merger support for PropDataMergeGroup.
  • Added Material support for PropDataProp.
  • Added a new PropDataMergeGroup Node for props.
  • Implemented RAO for LayeredTileMaps.
  • Added a new canvas_item_add_texture_rect_animation() method to the RenderingServer.
  • Proper docs for WebServerSimple.
  • Updated docs for FileCache.
  • Added optional force parameter to WebServerRequest::move_file(). Also various fixes and improvements to the new upload temp file system.
  • Added new wwwroot_get_simplified_abs_path() helper to FileCache. Also improved the other path helper methods.
  • Now WebServerSimple can also use temporary files for uploads.
  • Added move_file() and is_file_moved() helper methods to WebServerRequest.
  • Added docs for String::substr_index().
  • Added more file formats to the Text Editor's Save Dialog.
  • Added HTMLTemplate and HTMLTemplateData classes.
  • Added a new method to Expression so it can be used with multiple threads simultenously.

Fixed

  • Fix crossbuilding libtheora on the server platform.
  • Fixed building FRT.
  • Fixed building FRT SDL.
  • IOS build scripts.
  • Fix MMImage.
  • Hide the FileSystemDock's empty dock slot when it's in bottom bar mode by default.
  • Use internal process for updating a dirty skeleton instead of the MessageQueue. This fixes BoneAttachments being a frame late.
  • Sync NativeScript's PROPERTY_USAGE flags with Object's.
  • Fix 2d mesh transforms and colors.
  • Various doc fixes.
  • Fix 2 off-by-one errors.
  • Fix incorrect clipping in String::substr_index().
  • Use String's length() instead of size().
  • Fix class link in the docs for SMTPClient.

Changed

  • Moved the old frt build containers.
  • Renamed the build container folders.
  • Renamed uwp's exporter's folder so it's not in the editor while that platform cannot yet be built.
  • Reworked the build containers and the in-container build scripts.
  • Added an exported for the server platform.
  • In-container build script cleanups.
  • Build containers now use docker instead of podman.
  • Updated the build containers based on godot's.
  • Now the input_properties and output_properties property won't get saved directly in MMNode (this was the original intent, nothing should change other than MMMaterial files should be a bit smaller now.). They are still visible in the editor. Also make sure an MMNodeUniversalProperty can only be registered once.
  • Make mat maker's image picker button's dialog use resources.
  • Fix error found by static analysis tools.
  • Improved Light setup in PropInstance.
  • Added more properties to PropDataLight and other light helper classes.
  • Now CharacterSkeleton2D inherits from YSort. It disables sorting by default, so the default behaviour won't change.
  • Now tooltips won't get scaled to their original control's scale anymore by default. Added a new gui_scale_tooltips property to Viewport to be able to use the previous behaviour when it's desired.
  • Removed clips_input() method and _clips_input() virtual method from Control. Made clip_contents to also have an input clipping effect, since I couldn't think any single instance where keeping them separated would be useful. This fixes LayeredTileMap's editors clipping input while being invisible, and likely other smaller issues.
  • Now EditorPropertyEnums can be setup multiple times.
  • Improve multipart filename handling a bit.
  • Now SimpleWebServerRequest Only count request size when not writing to a file.
  • get_file_length() in WebServerRequest now returns uint64_t.
  • Updated sample module_config.py.
  • Use bitshifts for all property usage flags.
  • Use PROPERTY_HINT_BUTTON in UserManagerStatic instead of a bool.
  • Now PROPERTY_HINT_BUTTON adds the property's name as the called method's first parameter.

Removed

  • Removed parse_files() from WebServerRequest. It's doesn't work well with how the http protocol works.
  • Removed Vector2i(Vector2) constructor, added a Vector2i conversion operator to Vector2 instead. This solves ambigous Variant to Vector2i conversion errors.

Backports

Godot3

  • Fix AudioStreamPlayer not paused on pause mode change Fixes #58543.
  • Add option to toggle visibility of position gizmos in 2D editor.
  • Portals - defer setting active in VisualServer until enter tree set_portal_active() was being called loading packed scenes prior to entering the tree, visual server portals had not been fully created at this point hence the call was being ignored with an error flagged. This PR defers the call until after entering the tree.
  • Add option modules_enabled_by_default and minimal CI build.
  • Fix physics on_floor_body crash Physics body previously stored the RID of a collision object and accessed it on the next frame, leading to a crash if the object had been deleted. This PR stores the ObjectID in addition to the RID, and checks the object still exists prior to access.
  • Store ObjectID instead of pointer for KinematicCollision owner
  • Fix SceneTree not respecting virtual process methods
  • Don't error multiple times when trying to load missing default bus layout
  • Backported Update Android dependencies for the project
    Update Java version from 11 to 17
    Update Android gradle plugin version from 7.2.1 to 8.2.0
    Update gradle version from 7.4.2 to 8.2
    Update target SDK from 33 to 34
    Update build tools version from 33.0.2 to 34.0.0
    Update kotlin version from 1.7.0 to 1.9.20
    Update Android fragment version from 1.3.6 to 1.6.2
    Update AndroidX window version from 1.0.0 to 1.2.0
    Update Nexus plugin version from 1.1.0 to 1.3.0
    m4gr3d
    godotengine/godot@eba77be
    Unfortunately this raises the required java version to 17. On the flip side hovewer there is a new editor java home setting, and also the JAVA_HOME environment variable gets picked up.
  • Add is_zero_approx methods to Vector{2,3}
  • Check duplicate keys in dictionary literals: enums and const variables
    Check identifiers (const variables and unnamed enums) and named
    enums when parsing dictionary literals whether the keys are not
    duplicated.
    In case of duplicate key is encountered, highlight the line with it
    and print error message:
    Duplicate key "foo" found in Dictionary literal
    This commit is a logical continuation of the commit dab73c7 which
    implemented such checks only for literal keys (which fixed #7034).
    Apart from that, this commit also fixes the issue with the error
    message itself, which was shown one line below the duplicated key
    in case it was the last one in the dictionary literal and there
    was no hanging comma.
    Also, the format of the error message has been changed so that now
    the error message also contains the value of the key which is duplicated.
    Instead of Duplicate key found in Dictionary literal, it now prints
    Duplicate key "<value>" found in Dictionary literal
  • Tighter shadow culling - fix light colinear to frustum edge
    In rare situations if a light is placed near colinear to a frustum edge, the extra culling plane derived can have an inaccurate normal due to floating point error.
    This PR detects colinear triangles, and prevents adding a culling plane in this situation.
  • Add Node.is_node_ready
  • nanosvg: Sync with upstream 93ce879
    memononen/nanosvg@93ce879
  • Backported ORMSpatialMaterial from Godot 3.x without any breaking changes.
  • FIXED: Trying to connect inexistent signal text_submitted.
  • Backport locale selection improvements.
  • Fix building with disable_3d
  • Fix SceneTree dock filter crash. The filter was crashing for two reasons: 1) Deleting a child invalidated the iteration of children 2) Child was accessed after deletion
  • Rot...
Read more

4.2.1

24 Feb 06:48
Compare
Choose a tag to compare

Added

  • Added get_global_class_name method to Script. Now GDScriptParser uses this first to determine global class names, instead of parsing the script file again.
  • Added a way for platforms to define a custom resource pack location.
  • Added more defines for platform specific configs.
  • Added S3TC_NOT_SUPPORTED define to be used by platforms externally.
  • Added optional GLES2_LOAD_EXT_NO_DLCFN_AVAILABLE define for the rasterizer storage.

Changed

  • Turn custom module paths relative to the engine's directory when they reside inside the engine's folder.

Fixed

  • Found and updated some remaining old Java package paths.
  • Fix checking the wrong property in the Android's export plugin.
  • Moved dlfcn.h include in RasterizerStorageGLES2 to it's proper place according to the comment above it.
  • Fix custom module paths for the editor builds.
  • Small tweaks to HTTPServerSimple, mostly related to ssl handling.
  • Fix FileCache for files in .pck-s.
  • Fix DirAccess::get_filesystem_abspath_for() for .pck files.
  • Fix build on MSVC.

4.2.0

09 Feb 09:11
Compare
Choose a tag to compare

Added

Core

  • Added missing setters to VariantOP.
  • Added to_real helper methods to String. (Also added it to the gdnative api.)
PLogger
  • Added log level support for PLogger.

Servers

  • Added a new dummy WindowServer class. (Disabled it for now.)

Editor

  • Added back ResourceImporterOBJ from godot.
  • Added a new editor setting (docks/filesystem/wide_bottom_panel) which makes the file system appear in the bottom panel instad of as a dock.
  • Now the names of the main screen plugins can be hidden in the editor by the new interface/editor/hide_main_screen_plugin_names editor setting. (If a plugin does not have an icon fall back to using it's name.)

Scene

GUI
  • Added a new CSplitContainer type which acts as both a VSplitContainer and HSplitContainer and allows changing between them using a property.
  • Added a new CBoxContainer type which acts as both a VBoxContainer and HBoxContainer and allows changing between them using a property.

Modules

SMTP
  • Added a new smtp module.
Tile Map
  • Added a button to the TilesetEditor to easily select the TilesetEditorContext when needed.
Web
  • Implemented range requests for the HTTPServerSimple. It does work in fiefox, however wget seems to choke on it. This will be fixed later.
  • Added a way to get all available parameter keys to WebServerRequest.
  • Added a way to unregister connections and get out their raw connection data from the http server.
Prop
  • Implemented PropDataStaticBody handling for TerrainPropJob and VoxelPropJob.
  • Initial StaticBody support for the prop system.

Misc

  • Added a backport helper script.

Fixed

Core

  • Fixed smaller issues in VariantOP.
  • Fix running standalone scripts in non-editor builds.
  • Fix logic in String::substr_index.
  • Added missing Variant PTRARG conversion.

Modules

  • Fix build when the mbedtls module is disabled.
  • Fix build when the jsonrpc module is disabled.
Editor Text Editor
  • Implemented clearing custom fonts in the editor's text editor module. Also small improvements.
  • Fixed custom font support in the editor's text editor module.
  • Fixed reopening files from the previous session in the editor's text editor module. Also small cleanups.
  • Added more extensions to the editor's text editor module.
  • Fixed all the crashes (and potential crashed) in the editor's text editor module I could find. Also fixed some smaller usability issues.
  • Fix lots of potential crashes in the editor's text editor module. Now it also won't add an additional newline to the end of files.
  • Removed the delete file option from the editor's text editor module.
  • Disabled syntax highlighting in the editor's text editor module. It will need to be reworked.
  • Fixed TextEdit width calculation after it's font changes. This fixes lines being too long to scroll to in the editor.
Web
  • Fixed generating urls in BrowsableFolderServeWebPage.
  • Now PagedArticleWebPage won't add the summary page to the list of pages you can switch to.
  • Store incoming http request parameters properly.
GDNative
  • Mark NativeScripts as having delayed metadata.

Docs

  • Fix the doc descriptions where they got lost due to adding StringName to Variants. Also fixed smaller issues where I ran into them.

Changed

Generic

  • Some reorganization of files, particularly in the scene folder.

Core

  • Updated year in version.py.
  • Allow running standalone scripts in non-editor builds.
  • Optimized path_clean_end_slash in String.
  • Now unicode error printing is disabled by default. Also can be enabled via a macro.
PLogger
  • The default log level in PLogger is now message.
  • Call the proper methods in PLogger. Also use ERR_PRINT when logging errors.

Platform

  • Updated copyright info in pandemonium_res.rc.

Editor

  • Bind more methods in EditorInspector.
  • Don't hide the script property in sub inspectors.

Modules

  • Updated the sample module config file with the new modules.
Navigation Mesh Generator
  • Don't print error when there is no default NavigationMeshGenerator.
  • Don't warn when falling back to NavigationMeshGeneratorDummy.
Network Synchronizer
Tile Map
  • Renamed RTilesetEditorContext to TilesetEditorContext.
Web
  • Completely removed the cached path api from FileCache.

License

  • Updated the license to current year, and also updated it on the top of the headers.

Backports

Godot3

  • Backported everything up to and including godotengine/godot@b859a18 Merge commit: godotengine/godot@cc4492f

  • Ported: Update the logic used to start / stop the GL thread Currently the GL thread is started / stopped when the activity is respectively resumed / paused. However, according to the GLSurfaceView documentation, this should be done instead when the activity is started / stopped, so this change updates the start / stop logic for the GL thread to match the documentation. - m4gr3d godotengine/godot@194452b

  • Ported: Vertex cache optimizer Optimizes indices to make good use of vertex cache on GPU. - lawnjelly godotengine/godot@0aa22b8

  • Portred: Add MergeGroup node to simplify merging Meshes at runtime. - lawnjelly godotengine/godot@8b79135

  • Ported: Fix signed distance field font rendering This fix works in both GLES3 and GLES2. The rendering formula in the shader was adjusted to further improve the sharpness/antialiasing quality balance. - lawnjelly and Calinou godotengine/godot@bc607fb

  • Ported: Shadow volume culling and tighter shadow caster culling Existing shadow caster culling using the BVH takes no account of the camera. This PR adds the highly encapsulated class VisualServerLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum. This is used to: * More accurately defer dirty updates to shadows when the shadow volume does not intersect the camera frustum. * Tighter cull shadow casters to the view frustum. Lights dirty state is now automatically managed: * Continuous (tighter caster culling) * Static (all casters are rendered) - lawnjelly godotengine/godot@8ca631a

  • Ported parts of: [3.x] Add Selected Collision Group in TileSet Editor Also moves the TileSet Script property down to its own category. - Mickeon godotengine/godot@211c707

  • mbedtls: Update to upstream version 2.28.7

  • certs: Sync with Mozilla bundle as of Dec 13, 2023 bagder/ca-bundle@bef37a9

  • Sync controller mappings DB with SDL2 community repo Synced with mdqinc/SDL_GameControllerDB@232c738

  • Fix build on X11 following 64-bit detection changes This also ports over the cross-compilation logic to the server platform, and allows Embree to be used in server tools builds on aarch64.

  • Fix invalid Python escape sequences

  • SCons: Fix Python 3.12 SyntaxError with regex escape sequences

  • Linux: Remove hardcoded lib path for x86 cross-compilation This breaks the build with our updated i686 Linux SDK which doesn't contain this path, and may not be needed at all.

  • CI: Update mymindstorm/setup-emsdk to v14, should fix cache folder conflicts https://github.com/mymindstorm/setup-emsdk/releases/tag/v14

  • Style: Mark clang-format 16 as supported for pre-commit hook It only introduced a difference in a .glsl file, which I've worked around by removing an empty line. This keeps formatting consistent between clang-format 15 and 16.

  • SCons: Fix Web build when compiler version isn't properly detected Quick fix for #82585. Also set CI version to 3.1.39, which is what we use for official 3.6 builds since 3.6-beta4.

  • Portals - Improve conversion logging Logging is now allowed in any TOOLS build (rather than just in the editor), but still prevented in final exports. Logging an be switched off via project settings. Autoplacement is now logged.

  • Portals - include in bound and special cases in start room * Re-introduces a property for portals to decide whether they are included in room bounds during room conversion. * Adds a special case for portals that extend into the start room, which may be caused by level design inaccuracies.

  • zlib/minizip: Update to version 1.3 Remove infback.c which we don't need. The OF macro was also removed so I can drop the patch where I yell at Gentoo developers.

  • minizip: Backport patch to fix CVE-2023-45853

  • brotli: Sync with upstream 1.1.0 https://github.com/google/brotli/releases/tag/v1.1.0

  • Web: Clarify that OS.get_unique_id is not supported Remove the base error message in OS, we no longer really error out this way for not implemented methods. Instead, each platform should override them to provide the context they want.

  • Add XInput device ID for wireless Series 2 Elite controller

  • SCons: Add stack_size and default_pthread_stack_size options to Web target

  • Set what were default values for some emscripten linkflags - Set -sSTACK_SIZE to what it was before emscripten 3.1.27. It was renamed in 3.1.25 so also set sTOTAL_SIZE for older versions for consistency. And Set -sDEFAULT_PTHREAD_STACK_SIZE to what ...

Read more

4.1.0

11 Oct 10:40
Compare
Choose a tag to compare

Added

Core

  • Added back the translations from godot.
  • Added back missing descriptions to Translation's class docs.
  • Added translate_to() method to TranslationServer, and trt() method to Object. This let's you transalte strings into specific (noon app wide) locales.
  • Added missing Variant conversion and zero cases.

Docs

  • Added docs for StringName.

Platform

OS
  • Added a new SubProcess class with a Unix and Widnows backend for better process control.
  • Updated an another missing OS.run() call.
  • Added run, create_process and create_instance helper methods to OS. Inspired by godot4's split of execute.
UWP
  • Added back the uwp platform. It likely won't work for a while. Fixed includes and build.

Scene

GUI
  • Added Toplevel property to Node2D.
  • Backported _shortcut_input() virtual from godot4.

Editor

  • Added shortcut for toggling the default bottom menu items. CTRL + ALT + 1 - 5.
  • Change the bottom bar collapse shortcut to CTRL (CMD) - U.
  • Added a shortcut and button to quickly collapse / close the bottom panel (CTRL-B).
  • Backported the new output window from godot4.
  • Now custom resources can be exported from/to any scripting language.

Modules

Users
  • Implemented getting users using their email from the UserDB.
GDScript
  • Added setting to enable / disable gdscript's language server.
  • Added back the language server for gdscript.
  • Implemented a literal syntax for NodePaths in GDScript I decided on using godot4's (^). The doc already said it's '@' but that was wrong.
JSonRPC
  • Added back the jsonrpc module.
Navigation
  • Added init and finish methods to the NavigationMeshGenerator. Also small tweaks in initialization.
  • Added finish method to the NavigationServers.
TileMap
  • TileMaps now support navigation map overrides.
Paint
  • Added a new PaintPolygon2D and PaintCurve2D Nodes.
Web
  • Added more mime types by default.
  • Added start_on_ready property to WebServerSimple.
  • Added a way to customize the doctype declaration the html tag and the body tag to WebServerRequest.

CI

  • Added a note and some commented out commands to the container linux build script.
  • Save artifacts for both the server and the http server github actions.
  • Added a http server template build github action.

Fixed

Core

  • Fix typos in _rpc_id_bind and _rpc_unreliable_id_bind.
  • Make sure rpc binds can take both Strings and StringNames as method names.
  • Only update the RenderingServer from the Main Thread while in debug break.

Docs

  • Replace navigation demo locations.
  • Updated the links in the docs.
  • Changed the docs url from godot's to my docs repository.

Platform

Android
  • Fix JNI method names and java class lookup names in the android backend.
  • Fix the android lib's package locations.
  • Fix the android editor's package locations.

Scene

GUI
  • Set input as handled when processing shortcuts in BaseButton. This fixes the issue when the script editor tab is active and the scene - tree editor is focused, a ctrl+a press both opens the new Node popup and selects all text in the script editor.
Navigation
  • Bind missing method in NavigationServer.
  • Fix NavigationObstacle2D::set_navigation.
  • Also add docs for the newly bound methods.
  • Fix the initial value of _debug_enabled in NavigationServer.
  • Fix threaded bake logic in NavigationPolygonInstance and NavigationMeshInstance.
  • Bind get_navigation_map and set_navigation_map in NavigationObstacle2D.
  • Simplify some logic NavigationObstacle2D.

Modules

Navigation
  • Make sure that all parameters are properly set into PathQueryResults.
  • Fix querying paths.
GridMap
  • MeshLibrary's SceneConverter will also processes the navigation layers for the items.
  • Use get_navigation_map() in GridMap.
  • Fix logic in GridMap::set_navigation_map().
Web
  • Fix counting children even if the server is running in WebServer::get_configuration_warning().
  • Fix crash in WebServerRequest::get_url_root().

Changed

Editor

  • Prefix messages with their thread id if they aren't coming from the main thread in the editor log.
  • The match case option is on by default now when searching in the current file and in files in the editor.
  • Removed the text from the layouts buttons in the CanvasItemEditor.
  • Replaced the text with an icon on the SpatialEditor's and the CanvasItemEditor's view button.
  • Replace the Transform text with an icon in SpatialEditor's toolbar.
  • Removed superfluous VSeparator from the SpatialEditor.
  • Convert MeshInstanceEditorPlugin's toolbar to the new style.
  • Added separators to TerrainWorldEditor and VoxelWorldEditor's toolbars.
  • Converted the menu buttons of the Portals and Rooms system to the new style.
  • Small tweak to the tooltip of the quick prop convert buttons.
  • Never show text for the Convert Rooms button.
  • Use an icon for the quick prop conversion buttons instead of text.
  • Added a VSeparator to the To Prop editor buttons.
  • Group the Anchor and Presets buttons under a common HBoxContainer in CanvasItemEditor.
  • Added a VSeparator to the NavigationPolygonEditor and the NavigationMeshEditor.
  • Removed the diffferently styled context menu from the SpatialEditor and the CanvasItemEditor. New controls are now added directly to the main FlowContainer, so they wrap properly. While having a different background for context sensitive items can look good, it doesn't work well if it's not per plugin.

Modules

  • Now VoxelWorld and TerrainWorld inherits from Spatial instead of Navigation, and Terrain2DWorld inherits from Node2D insteaf of Navigation2D, as there is now a proper NavigationServer. Also this will make Node hieararchies involvig them more versatile.
CScript
  • The CScript module is now disabled by default. It will get re-enabled once it gets finished.
Navigation
  • Removed cell height getters and setters from the Navigation2DServer.
  • Simplifications to NavigationAgent and NavigationAgent2D.
  • Bake the NavigationMesh on the main thread in the editor.
Web
  • De default mime type is application/octet-stream now for files in HTTPServerConnection.
  • Now HTTPServerSimple sends files in non-blocking mode.
  • Send the user's header when sending the file in HTTPServerConnection.
  • The mime types dictionary now uses StringName indexes. Also compare against lowercase extensions.
  • Changed the default bind host in WebServerSimple to 0.0.0.0 for convenience.

Removed

Generic

  • Removed the entire funding.yaml file.
  • Removed funding links.

Backports

Godot3

  • Backported everything up to and including godotengine/godot@ab76395 Merge commit: godotengine/godot@fe7ed98

  • Port4ed from godot: Add binary MO translation file support. Add brotli decoder and WOFF2 support. Use smaller .mo files instead of .po, if gettext is available. Convert editor fonts to .woff2 format. - bruvzg godotengine/godot@fd2fba7

  • Ported from godot: Add context support for editor translation - timothyqiu godotengine/godot@878cf82

  • Ported from godot: add support for 3 dir shadow splits - Ansraer godotengine/godot@54bc6a3

  • Ported from godot: CPUParticles2D - Add ability to follow physics interpolated target Allows a non-interpolated particle system to closely follow an interpolated target without tracking ahead of the target, by performing fixed timestep interpolation on the particle system global transform, and using this for emission. - lawnjelly godotengine/godot@3e19cf8

  • Ported: CPUParticles2D - fix interpolated transforms and culling 1) Physics interpolated particles in global mode are specified in global space. In VisualServer they should therefore ignore local transform. 2) Additionally, the expected final_transform should be passed on to children, rather than the identity transform used on the local item. 3) Local bounds in hierarchical culling are fixed for items using identity transform, by calculating their local bound in local space from the global space particles. - lawnjelly godotengine/godot@723632a

  • Ported from godot: Fix Android input routing logic when using a hardware keyboard When a hardware keyboard is connected, all key events come through so we can route them directly to the engine. This is not the case for soft keyboards, for which the current logic was designed as it requires extra processing. - m4gr3d godotengine/godot@620fdd1

  • Fix PopupMenu icon and text not having separation

  • BVH - fix axis getting mixed up when split leaf

  • BVH - fix not refitting upward from leaf nodes

  • Workaround Xcode 15 linker bug.

  • Change target version to 11.0+ to fix PCRE SLJIT build.

  • Physics Interpolation - automatic resets for Camera2D and TileMap.

  • CPUParticles - fix non-interpolated NOTIFICATION_TRANSFORM

  • Disable live resize in multithreaded rendering mode.

  • Mark debugger limits settings as requiring a restart

  • Fix cursor after last character in line counting as a character outside of the viewing area

  • mbedtls: Fix UWP arm32 build after 2.28.3 enabled AES-NI intrinsics on MSVC

  • Make TextureButton and Button update on texture change

  • Fix AudioEffectRecord circular reference

  • Core: Add recursion level check for VariantWriter::write()

  • Fix TouchScreenButton not...

Read more

4.0.0

14 Jul 05:43
Compare
Choose a tag to compare

Added

Core

  • Bind RWLock, so it's accessible to scripts.
  • Implemented a new ProcessGroup Node. It can be used to multithread scenes updates.
    It was insipred by godot 4's ProcessGroup system, however while Godot 4's implementation tries to hide threaded processing as much as possible, this implementation focuses on making it explicitly known and obvious to the user, in a (hopefully) almost bolierplate free way. Also with the available options this node can be used for other purposes, like multi threaded cron job like method calls when paired with a Timer in manual mode.
  • Ported parts of: Refactor Node Processing * Node processing works on the concept of process groups. * A node group can be inherited, run on main thread, or a sub-thread. * Groups can be ordered. * Process priority is now present for physics. This is the first steps towards implementing godotengine/godot-proposals#6424. No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later. - reduz godotengine/godot@98c655e - Only got the smaller improvements, and the thread safety for Node and SceneTree. I'm planning to implement a similar system, but I have a different way of doing it in mind.

Modules

CSG
  • Added back the csg module from godot.
  • Ported the navigation geometry parsers for the csg module.
  • Only build CSGGizmos when building the editor.
  • Added back CSG support code I removed.
Web
  • Implemented custom response headers for WebServerRequest.
GDNative

Fixed

  • Fix binding inconsistencies.
  • Fix property bind inconsistency.
  • Fix property binding hints.
  • Fix property types. Auras have been merged into Spells a while ago.
  • Fix some property names being the same as getters / setters.
  • Fixed disrepancies between a few getter and setters.
  • Bind missing enum values.
  • Fix duplicate parameter names in binding.
  • Fix the order of some default arguments in bindings.

Core

  • Fix building with ptrcall on.
  • Fix the return type of PoolVector::count().
  • Added grow_by and to_rect2 helper method to Rect2i.
  • Now Basis::get_uniform_scale() returns a real_t instead of a float.
  • Mark the parameters of Basis::rotate_to_align as const ref.
  • Apparently Basis::rotate_to_align had a bug. Ported the fix by lyuma from: godotengine/godot@6dfa6fc
  • Fix error, also add linear_interpolate call for Vector4i to variant op.
  • Fix small inconsistencies in Vector3/3i/4/4i apis.
  • Also bind Vector3i set_all().
  • Added set_all() to Vector3i.
  • Made the parameter of snap and snapped in Vector3 const reference.
  • Make the parameters of String's and PoolVector's join() const ref.
  • Fix handling dots in String::is_numeric().

Platforms

Android Editor
  • Implemented switching between the running game and the editor in the android editor.
  • Fix debugging on the android editor.
  • Added warning for the android editor that android will kill the game after a few seconds if it's opened in the same window as the editor and then it goes to the backgond. Should be still enough to see what's the issue of you don't intentionally debug break though.
Windows
  • Update the variant types in the windows natvis file.

Modules

Skeleton3D
  • Fixed SkeletonModification3DFABRIK.
FastNoise
  • Fix the type of FastnoiseNoiseParams::get_fractal_octaves().
Entity Spell System
  • Fix virtual method names in Entity.
GLTF
  • Fix registering types in the gltf module.

Docs

  • Re-extracted class docs.
  • Fix godot4 syntax in docs.
  • Add missing classes to the editor_code_editor module's class list.
  • Fix lots of small issues with the docs.

Changed

Core

  • Merged the functionality of BSInputEventKey to InputEventKey. This new setting can make input event keys act as if they are shortcut matched.
ThreadPool
  • Removed _execute method bind from the NavigationMeshGenerator jobs.
  • Don't print an error in ThreadPoolJob's _execute, as it's probably more intuitive this way.
  • Don't bind _execute() method in ThreadPoolJob derived classes, as it's not needed anymore.
  • Emit the completed signal automatically in ThreadPoolJob.
  • Added virtual _execute to threadPoolJob.

Modules

Navigation
  • Backported lots of improvements to the Navigation Servers from Godot 4. See the list in the Backports section.
  • Renamed neighbor_dist properties / getters / setters for the navigation server.
MeshDataResource
  • Use the new scaled grab radius in MDIGizmo.
Entity Spell System
  • Move the enums from the top of spell.h into the Spell class.
  • Added code to load old resource properties where applicable, to help converting resources to the new fixed apis. These will be removed after the next release.
  • Renamed get_stat, and set_stat in Entity. It's just a smell c++ side helper method, they aren't bound. Should not require any changes like the rest.
  • Fix Entity's api's inconsistencies.

In projects mass replacing the following words will update everything:

gets_is_pet -> pet_gets_is
getc_is_pet -> pet_getc_is

gets_original_entity_controller -> original_entity_controller_gets
sets_original_entity_controller -> original_entity_controller_sets
gets_entity_controller -> entity_controller_gets
sets_entity_controller -> entity_controller_sets
getc_entity_controller -> entity_controller_getc
setc_entity_controller -> entity_controller_setc
gets_ai -> ai_gets
sets_ai -> ai_sets

free_spell_points_gets -> spell_points_gets_free
free_spell_points_sets -> spell_points_sets_free
free_spell_points_getc -> spell_points_getc_free
free_spell_points_setc -> spell_points_setc_free

gets_free_class_talent_points -> class_talent_points_gets_free
sets_free_class_talent_points -> class_talent_points_sets_free
getc_free_class_talent_points -> class_talent_points_getc_free
setc_free_class_talent_points -> class_talent_points_setc_free
gets_free_character_talent_points -> character_talent_points_gets_free
sets_free_character_talent_points -> character_talent_points_sets_free
getc_free_character_talent_points -> character_talent_points_getc_free
setc_free_character_talent_points -> character_talent_points_setc_free

gets_bag -> bag_gets
sets_bag -> bag_sets
getc_bag -> bag_getc
setc_bag -> bag_setc

sets_ai_state -> ai_state_sets
ai_state_sets_stored -> ai_state_stored_sets
ssend_stat -> stat_ssend
creceive_stat -> stat_creceive
getc_state -> state_getc
setc_state -> state_setc
gets_state -> state_gets
sets_state -> state_sets
adds_state_ref -> state_ref_adds
removes_state_ref -> state_ref_removes
gets_free_spell_points -> free_spell_points_gets
sets_free_spell_points -> free_spell_points_sets
getc_free_spell_points -> free_spell_points_getc
setc_free_spell_points -> free_spell_points_setc
gets_target -> target_gets
sets_target -> target_sets
getc_target -> target_getc
setc_target -> target_setc

Mass replace these in the order given:

get_character_skeleton_path -> character_skeleton_path_get
set_character_skeleton_path -> character_skeleton_path_set
get_character_skeleton -> character_skeleton_get
set_character_skeleton -> character_skeleton_set
gets_entity_data -> entity_data_gets
sets_entity_data -> entity_data_sets
getc_entity_data -> entity_data_getc
setc_entity_data -> entity_data_setc
entity_data_gets_id -> entity_data_id_gets
entity_data_sets_id -> entity_data_id_sets
entity_data_getc_id -> entity_data_id_getc
entity_data_setc_id -> entity_data_id_setc
entity_data_gets_path -> entity_data_path_gets
entity_data_sets_path -> entity_data_sets_path
gets_ai_state -> ai_state_gets
ai_state_gets_stored -> ai_state_stored_gets

Web
  • Renamed the object() method in HTMLBuilder as it can cause issues with bind generators.

Removed

Core

  • Removed the Math singleton. If needed it can easily be recreated as a module.

Backports

Godot 3.x

  • Single Compilation Unit build. Adds support for simple SCU build. This speeds up compilation by compiling multiple cpp files within a single translation unit. - lawnjelly godotengine/godot@43e181a
  • Canvas item hierarchical culling Adds optional hierarchical culling to the 2D rendering (within VisualServer). Each canvas item maintains a bound in local space of the item itself and all child / grandchild items. This allows branches to be culled at once when they don't intersect a viewport. - lawnjelly godotengine/godot@b777a9e
  • Revert "Add option in VisibilityEnabler2D to hide the parent for better performance"
    This reverts commit ad6e504.
  • Add parameters for the Godot Activity starting intent to allow restarting or force-quitting the engine Follow-up code cleanup for #78130 - m4gr3d godotengine/godot@5cf0ba8
  • Expose the TextEdit control of the script editor
    Refactor ScriptEditor and ScriptTextEditor with added method to retrieve the script editor's TextEdit control. - jeronimo-schreyer godotengine/godot@a248c31
  • Move autotile fallback helper functions + fix comments and docs - wareya ...
Read more

3.11.0

02 May 05:59
Compare
Choose a tag to compare

Added

Core

  • Added module initialization levels (similar idea to what's in godot4, although I added more).
  • Backported the tight version of godot4's LocalVector as the new TightLocalVector class.
  • Small cleanups for PooledList and PagedAllocator.
  • Renamed Map to RBMap.
  • Renamed Set to RBSet.
  • Replaced the HashMap's implementation with the one Godot4. Refactored it to work as a drop in replacement. Renamed the old one to OGHashMap.
  • Added more getters to the new HshMap, for more backwards compatibility.
  • Added the rest of the new container classes from godot4.
  • Added utf8_byte_length(), and utf16_byte_length() helper methods to String.
  • Added HAS_TRIVIAL_CONSTRUCTOR, HAS_TRIVIAL_DESTRUCTOR, and HAS_TRIVIAL_COPY macros to typedefs to fix new clang deprecations.
  • Added Size and Point typedefs for Vector3i and Vector4i.
  • Added log10 to the Math class.
  • Added a Math singleton exposing math functions directly to scripts. The idea is to make the disrepancies between scripts and engine side code smaller.
  • Added erf to Math.

Servers

  • Now more than one Navigation Server can be registered.
  • Move NavigationServer2d's forwarding logic to the navigation module as a new derived class.
  • Now more than one Naviugation2D servers can be registered.
  • Allocate the selected navigation srevers.
  • Add init() virtual methods to the navigation servers.

Editor

  • Added a setting to force launch the project in an adjacent window in the android editor.
  • Re-enable remote debugging in the android editor build.

Misc

  • Added alternate slim args when building the editor with the setup script. Also updated the list and style of the example.

Platforms

Modules

  • Added include guards to all module register_types.h-s.
Steering AI
Web
  • Added a new WebServerRequestScriptable class, so different web server request implementations can be created using scripts when needed.
  • Added missing binds in FileCache.
  • Added protocol error handling to the http server simple.
  • Added optional protocol error logging to HTTPParser. Also remove unnecessary error.
  • Set a better self signed cert path for the HTTPServerSimple.
  • Pre-create the required folders for the self signed cert files automatically.
  • Implement sending keep alive connection type if a connection has more than one request for HTTPServerSimple. Also more togglable debugging.
  • Implement max request size limit for HTTPServerSimple.
  • Now post and get parameters can be set / changed in requests from scripts aswell.
  • Added missing helper method to WebServerRequest.
  • Added more mimetypes to the HTTPServerSimple.
UnitTest
  • Added a new skeleton unit test module with some notes.
EditorCodeEditor
  • Move the editor's script text editor into the new code_editor module.
ShaderEditor
  • Separated shader editor into a new module.
Props
  • Added noise offset support to TiledWalls.
MaterialMaker
  • Ported SlopeBlur from MaterialMaker.
  • Ported the TonesStep Node from MaterialMaker.
  • Ported the Warp Node from MaterialMaker.
  • Added buttons slots to MMGraphNodes.
  • Ported the TonesMap from MaterialMaker.
  • Tones Node + Editor port from MaterialMaker.
NavigationServerDummy
  • Added a new dummy navigation server module.
  • Make sure the dummy navigation server is used automatically if the normal is disabled.

Fixed

Core

  • String: Use set_length, instead of resize in String's operator +=.
  • Updated the logic of a few getters in String.
  • Fix warning on clang.

Editor

  • Fix selecting the script editor even if it's not the 3rd in the editor_tables array.
  • Make sure that the script editor is the 3rd tab.

Platforms

  • Fix sprintf deprecation warning on osx.

Modules

  • Now modules in custom folders can properly declare their copyright.txt.
Web
  • Set _server_quit in WebServerSimple the way it was intended to be used.
  • Fixed multi threading + https in HTTPServerSimple.
  • Fixed more cases of using String.size() instead of String.length().
  • Fix Content-Length calculation in HTTPServerConnection::send when using non-ascii utf-8 characters.
  • Fix handling utf-8 in the MarkdownRenderer.
  • Use the size struct member when parsing markdown in MarkdownRenderer.
  • Properly handle non-ascii characters in uris in HTTPParser.
  • Quick fix for accessing files in the pck file for FileCaches.
  • Parse and process http headers in a case insensitive manner in HTTPParser.
  • Fix string parameter parsing in multipart forms, also make multipart form content fields case independent.
Skeleton3D
  • Fix error spam in the skeleton editor.
  • Make sure Skeletons set up their initial pose.
  • Cleanups to Skeleton's bindings.
Entity
  • Add braces around one liner if-s in Entity.
  • Proper bind parameters for body_instance.
MaterialMaker
  • Fixed MMSdf3dOpExtrusion's name and added it to the build.
  • Reworked MMOutputImage. Now it uses a button, and also it works as it should.
Paint
  • Fixed the tooltip of the Add Paint Canvas button of the PaintProjectToolsPropertyInspector.
MeshDataResource
  • Reworked undo redo handling in the MeshDataResource Editor. Now it will properly mark the actual resource dirty in all cases. Also fixed other small inconsistencies, and issues.
  • Fix visual indicator toggles in the MeshDataResource editor.
  • Also fix the tangent generation button in the MeshDataResource editor.

Changed

Modules

CVTT
  • Moved the cvtt module to the editor modules folder, as it's tools only.
Entity
  • Make body related methods in entity have body as their prefix. (For example: get_body_path() -> body_get_path()).
  • Make body_instance in Entity virtual.
Props
  • Don't serialize editor only omni lights in PropDataLight.
Web
  • Improved PagedArticleWebPage's api.
  • Refresh the file cache in WebRoot on NOTIFICATION_READY.

Removed

Core

  • Removed the deprecated clamped() method from vector2. (The new method is limit_length().)

Modules

TileMap
  • Removed RTileMap and RTileSet compatibility classes.

Backports

Godot 3.x

Backported everything up to and including godotengine/godot@cc60359 Merge commit: godotengine/godot@adee8cf

  • Tweak particles animation offset property hint to allow more precise values
  • Fix Tree overflow without scrolling being enabled
  • Fix RichTextLabel discards appended BBCode text on window resize when using DynamicFont
  • Fix local variables not showing when breaking on final line
  • Expose API to force file system sync.
  • Fix stylus tilt Y direction.
  • iOS: Add new model identifiers for DPI metrics
  • Support Git worktrees in generation of hash header
  • Fix get_path() is not working when files are opend with open_compressed And also fixed get_absolute_path() in the same way
  • Make CollisionShape selection box use shape AABB
  • Bump json5 from 1.0.1 to 1.0.2 in /platform/web
  • zlib/minizip: Update to version 1.2.13, remove zlib from freetype Security update, fixes CVE-2022-37434 in zlib.
  • Faster queue free
  • Fix error when dropping script into script editor
  • Fix for PoolArray comparison - AThousandShips
  • Set touch input as handled only after _gui_call_input - necrashter
  • GLES2 fix octahedral half float unpacking
  • Expose OS.read_string_from_stdin() to the scripting API This can be used in scripts to read user input in a blocking manner.
    This also removes the unused block argument, which is always true.
  • Fixed: Save Branch as Scene not workking in Remote Tree (only work when u pause)
  • Suggest Filename in Remote Tree File Dialog
  • PopupMenu rework and enhancements Many scrolling behaviour improvements and the ability to limit popup size.
  • Add dumb theme item cache to Control
  • Windows: Fix heap overflow setting native icon
  • Update the logic to calculate the screen scale on Android. Takes into account the ratio between the screen size and the default window dimensions.
  • Improve error messages and classref for occluders and portals. Misused functions would previously produce no error messages which was confusing for users.
  • Provide a delegate implementation for the killProcess logic on Android
  • Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices
  • Add independent spinbox arrow step precision
  • Implement file provider capabilities. The previously used file sharing api was restricted after Android N causing the engine to crash whenever used on devices running Android N or higher.
  • Document image size restrictions for custom mouse cursors in HTML5
  • Fix wrong SpriteFrames docs
  • Fix Line2D UVs when using BOX end cap mode
  • Default update_vital_only to true for Android and Web editor
  • Fix the issue causing long-press on a selected node on the scene tree to trigger both the context menu and the rename functionality.
  • Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
  • Improve the clarity of Viewport's documentation
  • iOS: Fix memory leak on touch input
  • Fix Editor hanging if audiostream's pitch_scale is NaN
  • TileSet: Fix resizing collision shape when vertex is outside the tilesheet
  • BVH - fix lockguards for multithread mode
  • Add error messages for collision exception functions
  • Backport Tree::set_selected
  • Backport a simpler version of the accent color for check icons
  • Document using String.percent_encod...
Read more

3.10.0

01 Jan 10:36
Compare
Choose a tag to compare

Added

Backports

Core

  • Added support for specifying a COPYRIGHT.txt file for modules.
  • Never print an error message in Object::get_meta().
  • Remove now superfluos check from String's operator[].
  • Add FORCE_INLINE to String's resize().
  • Added set_length helper method to String.

Editor

  • Now EditorPlugins can register nodes to be shown on the Create Root Node tab.

Platforms

Android
  • Now the desired android arches can be easily specified for the android build when using to the app build script.

Modules

Database
  • Added initialized signal and helper method to the DataBaseManager. It can be used to let automally allocated classes (singletons, main scene classes) in heavily database driven applications know when it's safe to use the db.
  • Added docs for the QueryBuilder.
  • Added docs for the TableBuilder.
User
  • Added signals for user actions into the user web nodes.
  • Added a simple page rendering customization api for UserWebPages.
Web
  • Added HTTPSessionManagerDB using the disabled code in HTTPSessionManager, and cleaned up it's (and HTTPSessionManager's) logic.
  • Added new tag() and ctag() universal tag helpers to the HTMLBuilder binder class.
  • Also added tag() and ctag() helpers to the c++ side HTMLBuilder, and smaller cleanups.
  • Added get request parameter support for WebServerRequest.

Fixed

  • Fixed lots typos with codespell.

Editor

  • Removed unused variables from the SceneTreeDock.
  • Now the Access as Unique Name option is in the right place when right clicking the scene tree.
  • Fix regression, and an another issue with touch gui input handling.

Platforms

Android
  • Don't enable remote debugging in the android editor for now. This fixes black screen when a project encounters a script error.

Modules

Database
  • QueryBuilder: Fix potential infinite recursion.
  • QueryBuilder: Various small fixes
  • TableBuilder: Fix missing default parameter.
  • Use String length() instead of size() in QueryBuilder, also guard against overindexing.
Database SQLite
  • QueryBuilder, sql3QueryBuilder various small fixes
  • Set sqlite to serialized mode.
  • Make sure escape is used in SQLite3QueryBuilder wherever it's expected.
Props
  • Fixed a typo in one of TiledWallData's properties. renamed 'heigth' to 'height'.
User
  • Fix connecting a signal to a non existent method in UserManagerDB.
  • Update logic in UserManagerDB, as the default user id is -1 now.
Web
  • Use String.length() instead of String.size() in WebServerRequest::setup_url_stack().
  • Ensure a '/' in between the host, and the url in WebServerRequest::get_url_site().

Changed

  • Added custom_modules folder to the .gitignore.

Modules

Paint
  • Full overhaul of the paint module.

Removed

  • Removed the unused libsimplewebm.

Modules

Database
  • Removed a few unimplemented methods.
Web
  • Removed old unneeded c++ files.

3.9.0

15 Oct 13:23
Compare
Choose a tag to compare

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.