summaryrefslogtreecommitdiff
path: root/scene/main/node.h
AgeCommit message (Collapse)Author
2023-01-07Merge pull request #36301 from KoBeWi/daddy_nodeRémi Verschelde
Add reparent methods to Node
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-11-28Merge pull request #68874 from TokageItLab/fix-unique-path-keyingRémi Verschelde
Added option to `get_path_to()` to get the shortest path considering unique name
2022-11-24Merge pull request #68566 from Mickeon/node-print-orphans-staticRémi Verschelde
Make `Node.print_orphan_nodes()` static
2022-11-19Add option to get_path_to() to get the shortest path with unique nameSilc Renew
2022-11-16Remove more instances of 'instance' being used as a verbVolTer
2022-11-12Make `Node.print_orphan_nodes()` staticMicky
2022-10-24Rename queue_delete => queue_freeMarc Gilleron
# Conflicts: # editor/plugins/tiles/tiles_editor_plugin.cpp
2022-10-14Rename pos -> index on NodeMiguel Gonzalez Sanchez
2022-10-13Comment not to remove `data` structs in some NodesMicky
2022-09-19Change return type of `get_configuration_warnings` to `PackedStringArray`Marc Gilleron
2022-09-11Add ability to flag classes as experimental or deprecated.SaracenOne
2022-09-09Remove Remove and SkipVolTer
2022-09-08Merge pull request #60108 from KoBeWi/arise_to_topRémi Verschelde
Rename raise() to move_to_front()
2022-09-07Rename `legible_unique_name` param to `force_readable_name`Micky
With the introduction of Scene Unique Nodes, `is_unique_in_owner`, "Unique Name in Scene" and other descriptions related to the feature, the second parameter of add_child() and add_simbling() could be misunderstood to be related, at first glance.
2022-09-06Rename raise() to move_to_front()kobewi
2022-08-30Merge pull request #64410 from MewPurPur/rename-notification-instancedRémi Verschelde
2022-08-26Merge pull request #64570 from KoBeWi/node🧳ingRémi Verschelde
Unify node casing adjustment
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-18Unify node casing adjustmentkobewi
2022-08-16Add methods for node reparentingTomasz Chabora
2022-08-16Rename NOTIFICATION_INSTANCED to NOTIFICATION_SCENE_INSTANTIATEDVolTer
2022-08-02move rpc and rpc_id implementations back to headerNathan Franke
StackOverflow on why this is needed: https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file Minor mistake in commit ca7d572908c58c587214b8f65bdd4078d0185ab2
2022-07-26[Net] Modularize multiplayer, expose MultiplayerAPI to extensions.Fabio Alessandrelli
- RPC configurations are now dictionaries. - Script.get_rpc_methods renamed to Script.get_rpc_config. - Node.rpc[_id] and Callable.rpc now return an Error. - Refactor MultiplayerAPI to allow extension. - New MultiplayerAPI.rpc method with Array argument (for scripts). - Move the default MultiplayerAPI implementation to a module.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-06-27Merge pull request #61577 from YuriSizov/core-fix-events-for-moved-nodesRémi Verschelde
2022-06-23Fix editor-only visibility for lightsreduz
* Update visibility again for editor-only lights if owner changes. Fixes #26399, supersedes #52327
2022-05-31Mark node groups as dirty for every children if parent is movedYuri Sizov
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
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-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
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-25Node: Re-add `find_node` as `find_child`, improve docsRémi Verschelde
The new name contrasts it better with `find_parent`, and makes it clear that it only matches child/descendant nodes. Also rename `find_nodes` to `find_children` accordingly.
2022-04-25Implement Scene Unique Nodesreduz
Implements https://github.com/godotengine/godot-proposals/issues/4096 * Nodes can be marked unique to the scene in the editor (or via code). * Unique nodes can be accessed via the **%** prefix at any point in the path. From that point in the path (depending on whether the scene of the path is), the unique node will be fetched. * Implementation is very optimal, as these nodes are cached.
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-03-31Merge pull request #59590 from Calinou/rename-print-stray-nodesRémi Verschelde
2022-03-31Rename `Node.print_stray_nodes()` to `Node.print_orphan_nodes()`Hugo Locurcio
The "orphan" terminology is already used elsewhere.
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-26Object: Remove unused category boilerplateRémi Verschelde
We might want to re-add something like this if/when we find a good use case for it and do the effort to categorize all objects in the API properly. Until then, it's better to remove that boilerplate since it's not needed. Closes #18711.
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-19Merge pull request #58042 from Sauermann/fix-viewport-border-notificationsRémi Verschelde
Fix Viewport mouse enter+exit notifications
2022-02-17Change 'find_node' to 'find_nodes' and Add 'type' parameterdiddykonga
Changed 'find_node' to 'find_nodes' which now returns an 'TypedArray<Node>', as well as Added a 'type' parameter to match against specific node types, which supports inheritance.
2022-02-15Connect notifications from Container to ViewportMarkus Sauermann
mouse enter+exit
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-05Merge pull request #55512 from RandomShaper/better_node_deleteRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-01Rationalize Node removals and deletionsPedro J. Estébanez
- Regarding preservation of owner, `free()` and `remove_child()` now behave the same: owner is kept during `tree_exiting` signal and `null` during `tree_exited`. - `tree_exited` is emitted in the same order as `tree_exiting`. - Superfluous code to handle cancelation of ownership is removed.
2021-11-25Merge pull request #52387 from Calinou/node-rename-path-changed-notificationMax Hilbrunner
Rename Node's `NOTIFICATION_PATH_CHANGED` to `NOTIFICATION_PATH_RENAMED`
2021-11-08Add property value pinningPedro J. Estébanez