Due to the async nature of WebRTC implementations, the multiplayer peer
could end up having queued packets from a given connection before it is
able to emit the "peer_added" signal.
This commit ensures that packets from peers which are not notified yet
are skipped by `get_packet` and `get_available_packet_count`.
(cherry picked from commit 9b8db7c63a)
This is required when sampling an albedo map from a texture array
in 3D. Otherwise, colors will look washed out.
(cherry picked from commit 491acf346d)
* Adds `indent(prefix)` to `String`
* Moves the loading of tool/doc translation into
`editor/editor_translation.{h,cpp}`
* Makes use of doc translation when generating XML class references, and
setup the translation locale based on `-l LOCALE` CLI parameter.
The XML class reference won't be translated if `-l LOCALE` parameter is
not given, or when it's `-l en`.
(cherry picked from commit c11b1850c4)
It is not uncommon to want to scroll to the most recently added child of
a ScrollContainer (e.g. a chat box or activity log). This is a little
tricky, since `ensure_control_visible` will not work on a node on the
same frame as you add it. Let's at least document that you need to wait
until the next frame.
Relates to https://github.com/godotengine/godot-proposals/issues/3629.
Backport of https://github.com/godotengine/godot/pull/55609.
Co-authored-by: Yuri Sizov <pycbouh@users.noreply.github.com>
(cherry picked from commit 22fb04bddf)
In rare circumstances, changing the geometry data attached to an instance, there was the opporunity for the lighting_dirty flag to get out of sync, which could lead to access to a stale light RID, and warnings or worse.
This PR fixes the problem by ensuring the lighting is always updated on the instance when first adding GeometryData.
(cherry picked from commit 26e93dc5c6)
This PR adds the code necessary to correctly free environments in GLES2, which was previously missing causing them to leak.
(cherry picked from commit 7134ef90bb)
This will be changed to radians per second in Godot 4.0, but it can't
be changed in 3.x to preserve compatibility with existing projects.
(cherry picked from commit 2fe15124de)
Exposes a method in `EditorInterface` to open scripts on a specified
line and column. This method handles if the internal or the external
editor should be used.
(cherry picked from commit 9535831866)
The note was present in the SceneTree `create_timer()` class
documentation, but not in the SceneTreeTimer class documentation.
(cherry picked from commit 796ea60d11)