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)
The default one is "#!/bin/bash", but BSD systems doesn't have bash
in that path. For portability reasons, it should be changed to
"#!/usr/bin/env bash".
More info: https://en.wikipedia.org/wiki/Shebang_%28Unix%29#Portability
(cherry picked from commit 52abf4ba84b5a41ac9903af0ba1087bf18be2187)
Starting from April 2018 Apple no longer accepts apps that do not
support iPhone X. For games this mainly means respecting the safe area,
unobstructed by notch and virtual home button. UI controls must be
placed within the safe area so that users can interact with them.
This commit:
- Adds OS::get_window_safe_area method that returns unobscured area of
the window, where interactive controls should be rendered.
- Reorganizes how launch screens are exported - the previous way was
incorrect and modern iPhones did not pick up the correct screens and
because of that used a non-native resolution to render the game.
- Adds launch screen options for iPhone X.
- Makes launch screens optional in the export template. If not
specified, a white screen will be used.
- Adds App Store icon (1024x1024) export option as it now has to be
bundled with the app instead of being provided in iTunes Connect.
- Fixes crash when launching games in iOS Simulator. It happened because
controllerWasConnected callback came before the engine was
initialized. Now in such case the controllers will be queued up and
registered after initialization is done.
- Fixes issue with the virtual keyboard where for some reason
autocorrection panel would intersect with the keyboard itself and not
allow you to use the top row of the keyboard. This is fixed by
disabling autocorrection altogether.
Closes#17358. Fixes#17428. Fixes#17331.
(cherry picked from commit 1d9a3a9b1c9ef7db26e53c8aeaab731992cffd6e)
Saves asset md5sum's in a file that doesn't contain data that needs to be VC'd
Now saves the md5s to a different file (.import.md5)
Now reads the md5's from a separate file
Now uses a file in the .import folder to store md5s
(cherry picked from commit 030b59502ffe69a05e553e9cbb0fdc9f67aea706)
This fixes the problem described in #13996 in a proper way.
This also adds "deadzone" property to ScrollContainer. It can be used
on mobile, where taps are not as precise as mouse clicks. Player could
slightly move their finger when tapping, in which case we still want
the button to be pressed rather than the container to be scrolled.
(cherry picked from commit dcf5be92a3aede861909c08d06b114669bbe75e8)