Working platforms platform: OSX, Windows.
Support for almost all ui elements, including project list.
Ported from 304a1f5b5a (#7864).
Fixes#492 and #3913.
Pause mode was not correctly propagating effectively stopping
immediately when the mode was not PAUSE_MODE_INHERIT.
(cherry picked from commit a5ce7a98cb)
auto_accept_quit value is set first properly with GLOBAL_DEF("application/auto_accept_quit", true) in main.cpp
after that it's reset to true in SceneTree:init() whatever value was.
Add four methods to the TileMap node to make collision layers and masks be modified bit by bit (like PhysicBody2Ds and RayCast2Ds):
* set_collision_layer_bit()
* set_collision_mask_bit()
* get_collision_layer_bit()
* get_collision_mask_bit()
- Fix monitoring flag being reset when the scene is out of the tree (happens on save all if the current scene is not the focused one, therefore on save-on-run as well)
- Fix the inability to reset the monitoring flag while the area is out of the tree
Collisions and nav debug are conditionally compiled depending on DEBUG_ENABLED
is_editor_hint() and is_node_being_edited() are compiled only with TOOLS_ENABLED
Every affected method is implemented in the header in case its macro is not present (the getters just returning false and the setters having an empty body) so the compiler can inline and finally no-op-out them as likely as possible.
is_node_being_edited() already showed a similar optimization effort and has been adapted to this change.
Furthermore, and as a consequence, -debugcol and -debugnav will not work on non-debug (strict release) builds.
This can bring a little bit of runtime performance on release and non-tooled builds (less code, so less cycles to spend and maybe more cache friendly).
This avoids the display folded flag needlessly getting into the scene file (potentially forever) and also gives more visual feedback if the user re-enables editable children so it will display unfolded at first.
When godot was running as the project manager, it tried to call a method on a null pointer (get_tree()->get_edited_scene_root()).
This is undefined behaviour and caused a crash when compiled with sanitizing enabled.
(cherry picked from commit 1d3c9c448d)
When working with a viewport you should call Viewport.input() to pass
the input, but if the input was unhandled you might also want to call
Viewport.unhandled_input() so that objects in the sub-scene can handle
the event. This adds a way to check if the input was handled so that you
know whether you should call Viewport.unhandled_input() or not.
Signed-off-by: Saggi Mizrahi <saggi@mizrahi.cc>
(cherry picked from commit 245ace6e2e)
- TCP:
- `listen` bind to wildcard "*" -> dual stack socket
- `listen` bind to address -> socket from address type
- `connect` -> resolve using best protocol (UNSPEC), socket from address type
- UDP:
- `listen` bind to wildcard "*" -> dual stack socket
- `listen` bind to address -> socket from address type
- `put_packet`/`put_var` -> resolve using TYPE_ANY (UNSPEC), socket from address type
(to change socket type you must first call `close` it)
(cherry picked from commit 88a56ba783)
According to Issue #8018, a BIND_VMETHOD macro wasn't present in scene/gui/control.cpp, while it was declared to be a virtual method in scene/gui/control.h.
classes.xml was updated to also list this method in Control.
(cherry picked from commit 9589936d6e)
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
(Manual redo of 49c065d29c)
clang-format does not handle that well *at all*.
For the reference, found the relevant pieces of code with:
`ag "=[ "$'\t'"]?"$'\n'"[ "$'\t'"]?{" --ignore=thirdparty`
(cherry picked from commit 40323407df)
Got part of the fix from 5fc084c28e
Added an engine setting to enable the fix (physics_2d/motion_fix_enabled) which is false by default so the default behavior is the same as always
Added motion methods with a from parameter, the same as 3.0 does
lest breaking current API, though, it is noted in the documentation of TabContainer
class, of the upcoming Godot (v3.0+) changes in behavior, that is, `tab_selected` will be
emitted for selecting any tab, while `tab_changed` only if a tab changes.
- Added `get_previous_tab()`. Which returns the previous shown tab. **Note:** In Godot v3.0+, only `tab_changed` can modify previous tab index.
- Add documentation for the added function and signals. Fix a typo too.
- When one of two or more overlapping Area2Ds is removed with remove_child(), it doesn't try to report to the
other one anymore
- When overlappinng Area2Ds are removed woth remove_child(), _enter_tree and _exit_tree signals are now
properly disconnected upon removal
to decide whether signals, groups and/or scripts should be set in the copied nodes or not; it's default value makes the method work as usual, that is, including everything
Fix touch button needing double tap after pause (applies to those not set to pass-by)
Fix error when a pressed TouchScreenButton with no associated action exits the tree
(with some refactoring of duplicate code)
Refactor duplicated code (from 0159e4f969)
Add line length guideline to code editors (from d9c1729a8f)
Allow turning off zero-padding for line numbers (from 00b3af246b)
(In 3.0 zero-padding is off by default, but for 2.1 I'm setting the default to be on because it's how it always worked.)
Fixed line lenght guideline drawing with color option (from @Paulb23's 6b42cd5fe6)
Serialize dictionaries adding newlines between key-value pairs
Serialize group lists also with newlines in between
Serialize string properties escaping only " and \ (needed for a good diff experience with built-in scripts and shaders)
Bonus:
Make AnimationPlayer serialize its blend times always sorted so their order is predictable in the .tscn file.
This PR is back-compat; won't break the load of existing files.
Cherry-picked from 7dbb1c0571