summaryrefslogtreecommitdiff
path: root/scene/main/scene_tree.h
AgeCommit message (Collapse)Author
2022-09-26Change time parameters and variables to double typeDave Palais
Addresses #65313
2022-09-08Merge pull request #63596 from Jayman2000/issue-27640Rémi Verschelde
Rename `change_scene()` and `change_scene_to()`
2022-09-07Rename change_scene() and change_scene_to()Jason Yundt
Before this change, the SceneTree had methods named “change_scene” and “change_scene_to”. One of them accepted a String as a parameter and the other accepted a PackedScene, but you couldn’t tell which one was which just by looking at their names. This change renames those two methods to “change_scene_to_file” and “change_scene_to_packed”. These new names came from this suggestion [1]. These new names make the difference between the two methods more clear and hint at the fact that there’s more than one change_scene method. [1]: <https://github.com/godotengine/godot/issues/27640#issuecomment-1081870955> Fixes #27640.
2022-09-07Remove / Replace old Navigation Debug Visualizationsmix8
- removes / replaces leftovers from old navigation debug code - cleanes SceneTree and ProjectSettings from old navigation debug
2022-09-03Some improvements to the SceneTreeTimerXwdit
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-07-17Set initial SceneTree processes times to 0.0Marcel Admiraal
2022-06-20Add Path2D/3D debug optionssmix8
Add Path2D/3D debug options.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-20Merge pull request #61026 from timothyqiu/quit-propRémi Verschelde
Make `auto_accept_quit` and `quit_on_go_back` properties
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-14Make auto_accept_quit and quit_on_go_back propertiesHaoyu Qiu
2022-05-05Make `{call,set,notify}_group()` immediate by defaultHugo Locurcio
This results in less surprising behavior out of the box. Internal usages were modified to keep the existing behavior identical there.
2022-04-26[Net] Allow branch-specific MultiplayerAPIs.Fabio Alessandrelli
Removes custom_multiplayer from Node. MultiplayerAPI overrides are now set at SceneTree level, and apply to whole branches. Impact on performance when using only the default multiplayer or overriding it is minimal, the use of branches can likely be further optimized by caching nodes and relevant MultiplayerAPI IDs.
2022-04-05[Input] Add extra `shortcut_input` input processing step to process Unicode ↵bruvzg
character input with Alt / Ctrl modifiers, after processing of shortcuts.
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-03-30Make vararg method bind no return and returnPierre-Thomas Meisels
Type emit_signal exposed method return type set UndoRedo add_do_method and add_undo_method exposed return void Set TreeItem::_call_recursive_bind returns void Set _rpc_bind and _rpc_id_bind returns void in Node Set _call_group and _call_group_flags method returns void in SceneTree Set godot-cpp-test CI flag to false
2022-03-09Remove VARIANT_ARG* macrosreduz
* Very old macros from the time Godot was created. * Limited arguments to 5 (then later changed to 8) in many places. * They were replaced by C++11 Variadic Templates. * Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard. * Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-02-04[Net] New replication interface, spawner and synchronizer nodes.Fabio Alessandrelli
Initial implementation of the MultiplayerReplicationInterface and its default implementation (SceneReplicationInterface). New MultiplayerSpawner node helps dealing with instantiation of scenes on remote peers (e.g. clients). It supports both custom spawns via a `_spawn_custom` virtual function, and optional auto-spawn of known scenes via a TypedArray<PackedScenes> property. New MultiplayerSynchornizer helps synchronizing states between the local and remote peers, supports both sync and spawn properties and is configured via a `SceneReplicationConfig` resource. It can also sync via path (i.e. without being spawned by a MultiplayerSpawner if both peers has it in tree, but will not send the spawn state in that case, only the sync one.
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-10-21Remove unimplemented methodsMarcel Admiraal
2021-09-07[Net] Move multiplayer to core subdir, split RPCManager.Fabio Alessandrelli
Move multiplayer classes to "core/multiplayer" subdir. Move the RPCConfig and enums (TransferMode, RPCMode) to a separate file (multiplayer.h), and bind them to the global namespace. Move the RPC handling code to its own class (RPCManager). Renames "get_rpc_sender_id" to "get_remote_sender_id".
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-22Revert "Add Node processing and physics processing cumulative (as opposed to ↵Juan Linietsky
delta) time"
2021-08-17Add Node processing and physics processing cumulative (as opposed to delta) ↵Mohammad Khashashneh
time.
2021-07-26Use doubles for time everywhere in Timer/SceneTreeAaron Franke
2021-07-23Show tooltips even when paused or time_scale is 0kobewi
2021-07-12[Net] Remove most multiplayer hooks from SceneTree.Fabio Alessandrelli
Use `multiplayer` or `get_multiplayer()` instead of `get_tree()`.
2021-06-19Complete rewrite of TweensTomasz Chabora
* Tweens were changed from Node to RefCounted. New API is inspired by DOTween. * Tweens are created and managed by SceneTree, similar to SceneTreeTimer, which makes them ultra cheap to use a lot. * Animating with Tweens is done by creating sequences of Tweeners. You create them from code and they autostart by default (fire-and-forget). * There are 4 Tweeners that cover the former Tween functionality: PropertyTweener, IntervalTweener, CallbackTweener and MethodTweener. * The methods were simplified a lot. Long argument lists are replaced with chained calls on Tweens and Tweeners. * Tweeners by default execute in sequence, so it's easy to create complex chained animations. * You can bind a Tween to a node. Tween will be removed automatically when the bound node is freed.
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-02-25Remove GDScript bindings for OS.get/set_exit_code, ↵Emmanuel Leblond
SceneTree.quit(<exit_code>) should be used instead
2021-02-22Add preview Sun and Environmentreduz
* Adds both a preview sun and preview environment to the 3D editor. * They are valid as long as a DirectionalLight3D and WorldEnvironment are not in the scene. * If any is added to the scene, the respective preview is disabled. * Changed WorldEnvironment to better handle multiple node versions. * Added a function in SceneTree to get the first node in a group. * Fixed button minimum size to also consider font height if no text is there, this broke with the TextSever PR.
2021-02-19Update documentation for the new ProcessModeAaron Franke
2021-02-09Initialize class variables with default values in scene/ [2/2]Rafał Mikrut
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-22Rename MainLoop methods to match Node methodsMarcel Admiraal
2020-12-11Move initialization of some classes to headersTomasz Chabora
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-09-10scene_tree.h: Update header guardYetizone
2020-07-24Remove multilevel callsGeorge Marques
In general they are more confusing to users because they expect inheritance to fully override parent methods. This behavior can be enabled by script writers using a simple super() call.
2020-07-10Add override keywords.Marcel Admiraal
2020-07-01Fix doubleclick on tree item, restore input focus on previous windows.Juan Linietsky
Closes #37335
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-03-27Rename more 2D and 3D nodes to follow conventionRémi Verschelde
Rename editor plugins to match the new node names.
2020-03-27Renamed 2D and 3D nodes to make their types explicitJuan Linietsky
Fixes #30736.
2020-03-26Add macOS DisplayServer implementation.bruvzg
Change global menu to use Callable, add support for check items and submenus.
2020-03-26Refactored input, goes all via windows now.Juan Linietsky
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26Added a Window node, and made it the scene root.Juan Linietsky
Still a lot of work to do.
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.