This method extracts the 2 or 3-letter language code from `OS::get_locale()`,
making it easier for users to identify the "main" language code for users
that might have different OS locales due to different OS or region, but
should be matched to the same translation (e.g. "generic" Spanish).
Fixes#40703.
(cherry picked from commit def99c7baf)
Fixes shear effect with `BILLBOARD_FIXED_Y` when the camera is rotated around the z-axis by rotating the mesh correctly into view space.
Also removes shearing effects that occur when rotating the mesh by excluding the model rotation and scale from the billboard matrix.
(cherry picked from commit d3850a0954)
When clicking on a resource field in the inspector dock, you now have
the "Quick Load" option in addition to "Load". This opens a QuickOpen
dialog allowing the user to type in a phrase to quickly locate the
desired resource (similar to "Quick Open Scene").
In my experience, this is much faster than clicking through the File
Dialog.
Relates to godotengine/godot-proposals#346.
(cherry picked from commit 470b94fe22)
Unnamed gizmos should be avoided, so this should help editor plugin
authors resolve issues with gizmo naming if they forgot to override
the function.
(cherry picked from commit e5406ba952)
This pull request adds a small amendment to `SceneTree` describing the behavior `_physics_process()` when pausing the scene.
`_physics_process` will completely stop processing collisions and signals whenever the scene is paused, however, the function will still receive calls.
This addresses: #47326
(cherry picked from commit d62175e009)
- Use a colon instead of parentheses and a comma to reduce visual
clutter.
- Pad the line number with 4 spaces to account for scripts longer
than 999 lines.
(cherry picked from commit 1e8976fcb5)
Since this avoids accidentally placing 2D nodes at subpixel positions,
this results in more crisp visuals by default, even when pixel snapping
is disabled in the project settings.
(cherry picked from commit c03e7c2dde)
- Tweak the Android platform logo to remove the Android wordmark,
as it can't be used without explicit permission.
(cherry picked from commit 1513aa9b26)
This gives visual feedback when not starting Godot from a terminal.
This could lead to confusion when placing a Godot binary within a
project folder that has no main scene defined.
(cherry picked from commit 87fb9297e3)
Fixes#43733: "creating SpatialMaterial in a separate thread creates invalid
shaders (temporarily)."
The bug occurred because various setters called in materials' constructors add
materials to queues that are processed on the main thread. This means that
when the materials are created in another thread, they can be processed on the
main thread before the constructor has finished.
The fix adds a flag to affected materials that prevents them from being added
to the queue until their constructors have finished initialising all the
members.
Extra:
- Optimized the debug-only check about why the object is null to determine if it's because it has been deleted (the RC is enough; no need to check the ObjectDB).
- Because of the previous point. the debugger being attached is not required anymore for giving the "Object was deleted" error; from now, it only matters that it's a debug build.
- `is_instance_valid()` is now trustworthy. It will return `true` if, and only if, the last object assigned to a `Variant` is still alive (and not if a new object happened to be created at the same memory address of the old one).
- Replacements of `instance_validate()` are used where possible `Variant::is_invalid_object()` is introduced to help with that. (GDScript's `is_instance_valid()` is good.)