When `p_points.size() > p_colors.size()`, it crashed with invalid
array access to `p_colors`. Also, when `p_colors` was an empty
`Vector` it crashed due a missing `else` checking the `size`
condition, as the code handling that special case exists.
This PR fixes the missing `else` for `p_colors.size == 0` and,
following the `canvas_item_add_multiline` spirit, it only uses the
first color for the whole polyline if points and colors differ in
size.
Fix#17621.
(cherry picked from commit 8eedb2afe2b7e00c6317a30e98a388f78be6ac56)
Font update after resize relies on the viewport size which was updated
after the font was already refreshed, which resulted in artifacts when
it was rendered into the actual/new viewport size.
Fixes#15173.
(cherry picked from commit 47747718d63c1e5d3949fa4793752b579434bc3e)
When adding a directory path to the inventory of the pack, an empty file name was being added to the file list. That made `Directory.get_ntext()` signal end-of-list too early so that files in a subdirectory were missed.
Fixes#15801.
Helps with #16798.
(cherry picked from commit 536611704a2be026682ce3d6c7454b97122d341e)
Changed it to roughly sqrt(FLT_MAX), it's a little less to account for float inaccuracies.
Fixes#1835
(cherry picked from commit 55f79f2e809f27e3e3d24e8f06cb86a9e28cffb0)
This PR fixes the code to avoid saving default environment every time
the project is run whitin the editor.
Should fix#17727. Sorry for the troubles!
(cherry picked from commit 7821b70a00768cb99c0b48450eabe5a687ae276c)
When `_save_all_scenes` or `save_resource_in_path` was called, they
always saved all the scenes and the resource no matter if they were
modified or not. For example, when `saving before run` option was
checked, it always overwrote the current scene and the default
environment simply by opening and runing the project.
This PR adds checks for unsaved scenes (using the same `unsave` check
others method used) and modified resources (comparing last modified
time and last import time).
Fix#6025.
(cherry picked from commit 28ab60422d648d43d219186ea0ecffce1645188f)
As `KEY_F3` was used both for changing to script editor window and, in
the script editor, for finding the next result in the last search, and
the key event is **not** consumed, the resulting behaviour was similar
to press `F3` twice, first to change to script editor and second to
find the next result of a previous search.
This PR sets the `key_pressed` status of `InputEvent` to `false` if
this event is responsible of an editor change, simulating the
consumption of the event.
Fix#17334
(cherry picked from commit 8939f44f6ac5594348e4d671d121680822bd8dc8)
Add a new function to check action names, `_validate_action_name`, in
the spirit of `_valprop`. Offending characters include non-printable
ascii, and `\/=:"`. Also set only one text for the UI message.
(cherry picked from commit da6c07698f591b3eac773770dc776bf095c3d9ef)
Now the action name is quoted if it contains spaces. Also, quotation
mark (") is added to the forbidden character list for action names, as
it was also a bug.
Fix#17322
(cherry picked from commit ea94a8259624a1915fa4b92682755e28f2bb6af5)
Make TileMap monitor its TileSet for changes and emit a signal when the TileSet changes. This makes the editor update and show the updated version of the TileSet.
(cherry picked from commit 67f4944a21487dce92746bdb716303a7860b081c)
Original code used a quick aproximation for simulating the
correspondent texel in the `TextureProgress` texture as radial
progress indicator. This lead to visualization errors. Changed it for
a Liang-Barsky line clipping algorithm stripped to its minimum for
this specific use case.
Fix#17364.
(cherry picked from commit 7991bd168da1e0b8d0dc34635a35057aab466349)
Make Sprite monitor its Texture for changes and trigger an update when the sprite changes.
(cherry picked from commit a23c0877f1bb26edb75aa344f1049a7b7a91f079)
Fixes#16904
Restore more out functionality, fix built-ins.
Requested changes, I think?
(cherry picked from commit 25ba49fd88ec460a6c4f39f93222671d5e2bab6e)
If you change the type of an existing node, it checks if you have
modified the initial value of their properties before overwriting
their values in the new node.
For example, if you created a `Label` and changed it to
`LineEdit`, the `mouse_filter` property was created as `Ignore`
for the original `Label` node, and was maintained after changing
it to `LineEdit` causing not to work as expected. Now it checks if
`Ignore` is the default value for `Label` nodes, and as it is, the
property value is left unchanged, maintaining the default value
for `LineEdit`, which is `Stop`.
Fix#13955 and alike.
(cherry picked from commit 8ea4ea0d53e772673dea69a9df83aa8445ad49ea)
- Setup runtime main args during initialization. This must be done manually by embedders who do not call mono_runtime_run_main. Fixes NullReferenceException in System.Environment.
- Continue to search the assembly in the rest of the search locations if loading it from one of them failed.
(cherry picked from commit fa1d656af4c4ea81ca04c7f0117e421855327a28)
Disallow reserved keywords as class names and prefix base class with the Godot
namespace if it's the same as the class name.
Fixes#12483
(cherry picked from commit 700d07cf7cae4e28de107e0c274b27c857d98450)
Replace float with real_t in most files, defined at the top of each file via using. Objects such as Vector3 now accept doubles as inputs, and convert to real_t internally. I've added default Vectors such as Vector3.Zero. Other misc C# improvements such as Mathf.RoundToInt(). Color continues to use float only because high precision is not needed for 8-bit color math and to keep things simple. Everything seems to compile and work fine, but testing is requested, as this is the first time I've ever contributed to Godot.
(cherry picked from commit ff97c97c930f80209480c630622b1b64372bd65a)
If you had a tree like Node2D->Sprite->Camera2D and you write a
code like $Node2D/Spr and chose the autocompletion sugested
Node2D/Sprite, the resulting string was $Node2D/Node2D/Sprite
instead $Node2D/Sprite. If you chose Node2D/Sprite/Camera2D, then
you ended with $Node2D/Node2D/Sprite/Camera2D.
Fix#15813.
(cherry picked from commit 95f186b62184c846571c7278842ac4923f461d5a)