Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Adding print_rich() for printing with BBCode
|
|
Fix chain assignment bug with jump_if_shared
|
|
|
|
|
|
|
|
GDScript: Enable exporting nodes to the inspector
|
|
Add a const call mode to Object, Variant and Script.
|
|
Also fix an small issue in the property editor for NodePath trying to
use the meta property when not needed.
|
|
GDScript: Fix setter being called in chains for shared types
|
|
For this to work safely (user not call queue_free or something in the expression), a const call mode was added to Object and Variant (and optionally Script).
This mode ensures only const functions can be called, making it safe to use from the editor.
Co-Authored-By: reduz <reduzio@gmail.com>
|
|
When a type is shared (i.e. passed by reference) it doesn't need to be
called in a setter chain (e.g. `a.b.c = 0`) since it will be updated in
place.
This commit adds an instruction that jumps when the value is shared so
it can be used to skip those cases and avoid redundant calls of setters.
It also solves issues when assigning to sub-properties of read-only
properties.
|
|
Remake ResourceCache thread safety code and API
|
|
Rename @export_range's noslider option to no_slider
|
|
GDScript: Use implicit method for @onready variables
|
|
Initialize them with the implicit method so they're not related to the
overriding of the `_ready` method of the script but instead are always
set.
|
|
So it's not shown on docs or when listing the methods. This also avoids
being able to call it using the `call()` function.
|
|
|
|
piiertho/enhancement/rename-controll-minimum_size-to-custom_minimum_size
|
|
|
|
|
|
Add NavigationServer region_owns_point() helper function
|
|
For in-engine processing allow saving openexr to a buffer.
|
|
Adds a helper function to check if a world space position is currently owned by a navigation region.
|
|
Implement varargs in Methodinfo
|
|
Mono: Update Newtonsoft.Json to 13.0.1
|
|
Control::custom_minimum_size
|
|
|
|
Adds map_force_update() function to NavigationServer. This function immediately flushes the Navigationserver command queue and recalculates all navigationmeshes and region connections for a specific map.
|
|
See https://github.com/advisories/GHSA-5crp-9r3c-p9vr
|
|
|
|
|
|
|
|
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
|
|
Variadic templates are an awful thing. Implements #62233 using them in MethodInfo so less changes are required.
|
|
|
|
Fix ogg edge cases
|
|
|
|
Added new function that returns all created navigation map RIDs from the NavigationServer. The function returns both 2D and 3D created navigation maps as technically there is no distinction between them.
|
|
* Ensures thread safety when resources are destroyed.
* Simplified API by always forcing `ResourceCache::get_ref`, which needs less hacks and is fully thread safe.
* Removed RWLock for resources because its not possible to use for the new logic. Should not be a problem.
Supersedes #57533
|
|
Disables navmesh baking EditorProgress for now until fixed as EditorProgress is not thread-safe and uses hacks and Main::iteration() for steps which can result in random crashes when baking navmesh.
|
|
|
|
Implement a Movie Maker mode
|
|
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.
This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).
**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).
Usage:
$ godot --write-movie movie.avi [scene_file.tscn]
Missing:
* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
|