Commit graph

645 commits

Author SHA1 Message Date
Thaddeus Crews
4e84cd8a6b
Merge pull request #116326 from KoBeWi/noden't
Remove some unused Node methods
2026-02-16 15:02:41 -06:00
Thaddeus Crews
1e12317895
Merge pull request #115646 from Ivorforce/list-explicit-copy
Change `List` copy constructor from implicit to explicit.
2026-02-16 15:02:34 -06:00
kobewi
3c0eaa38de Remove some unused Node methods 2026-02-15 18:46:00 +01:00
X23
44fa4a4cde Fix transform notification in threaded processing. 2026-02-07 17:51:30 +08:00
Rémi Verschelde
63c78e684b
Merge pull request #114165 from KoBeWi/static
Use actual class names in resource type hints
2026-02-02 10:10:24 +01:00
Lukas Tenbrink
7072a9a874 Change List copy constructor from implicit to explicit. 2026-01-30 18:58:42 +01:00
kobewi
f7b9703cbd Use actual class names in resource type hints 2026-01-29 21:07:56 +01:00
Lukas Tenbrink
1825e89787 Change copy constructors of HashMap and AHashMap from implicit to explicit. 2026-01-21 13:01:23 +01:00
David Snopek
6d60660cd6 Unmark Node::is_editable_instance() parameter as required 2025-12-03 08:34:04 -06:00
Thaddeus Crews
9f76aa3df5
Merge pull request #113282 from dsnopek/required-ptr-get-out-there
Use `RequiredParam`/`RequiredResult` in some high value places
2025-12-02 20:42:53 -06:00
David Snopek
fc92ce3e7f Use RequiredParam/RequiredResult in some high value places 2025-12-02 10:44:12 -06:00
Rindbee
e0532a711a
Fix resource shared when duplicating an instanced scene
For resources with `resource_local_to_scene` enabled in the sub-scene,
the resource is already set when the sub-scene is instantiated, so does
not need to be set again. Just needs to update the property of the
resource according to the value in the main scene.
2025-12-02 20:45:54 +08:00
David Snopek
090a4540b7 Use RequiredParam and RequiredResult in a handful of places in order to test 2025-11-24 12:12:10 -06:00
Thaddeus Crews
6a3d1f1fa1
Merge pull request #57121 from KoBeWi/noddeganger
Add `DUPLICATE_INTERNAL_STATE` flag
2025-11-13 17:42:47 -06:00
Thaddeus Crews
d2ff4c6377
Merge pull request #112401 from xuhuisheng/dev/queue-free
Fix crash on queue free scene node in editor
2025-11-13 12:33:37 -06:00
xuhuisheng
63d1319674 Fixes crash on queue free scene node in editor
Update scene/main/node.cpp

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-11-13 21:10:44 +08:00
Thaddeus Crews
72925d756f
Merge pull request #112076 from kevinlam508/custom-node-reference-duplication
Fix duplicating node references of custom node type properties
2025-11-11 16:07:53 -06:00
Lukas Tenbrink
78096d4ce7 Revert "Add warning when node name is invalid"
This reverts commit 0d46d42f2a.
2025-11-05 18:11:43 +01:00
Thaddeus Crews
80b82af92b
Merge pull request #111163 from HolonProduction/node-greater-than
Speed up `Node::is_greater_than` by avoiding `alloca`
2025-11-04 16:32:42 -06:00
HolonProduction
8c5e67a514 Speedup Node::is_greater_than by avoiding alloca 2025-11-04 17:34:08 +01:00
AdvanceControl
0d46d42f2a
Add warning when node name is invalid 2025-11-03 17:52:25 +08:00
Kevin Lam
b9cc82df40 Fix duplicating node references of custom node type properties
Script assignment must be complete for the subtree in order to correctly assign into properties set to a script type.
2025-10-27 16:00:45 -05:00
Mike Precup
abfc63b483 Speed up signal disconnects in the editor 2025-10-22 22:27:25 -07:00
Thaddeus Crews
60710df3b6
Merge pull request #94047 from KoBeWi/resource_printer
Improve `to_string()` and add it to Resource
2025-10-16 12:48:11 -05:00
Lukas Tenbrink
1e0b41ab27 Remove display_server.h transitive include from node.h. 2025-10-14 00:43:02 +02:00
Thaddeus Crews
31f9ed087e
Merge pull request #110650 from WhalesState/node-cache-less-dirty
Optimize children cache updates and refine special-case handling
2025-10-13 12:30:14 -05:00
kobewi
e6783dbdd1 Improve to_string() and add it to Resource 2025-10-09 00:54:38 +02:00
Lukas Tenbrink
33689d7beb Remove transitive mesh.h, rendering_server.h and shader.h includes from node.h. 2025-10-08 12:16:52 +02:00
Juan
faddd60c40
Add unique Node IDs to support base and instantiated scene refactorings
The main goal of this PR is to safeguard when a base or instantiated scene changes (nodes renamed, moved or readded),
that the hierarchy is still maintained and the node and its overridden properties can be preserved.

What it does:
* Implements unique node IDs.
* These IDs act as a fallback to names when saving.
* The IDs are **USED AS A FALLBACK**, so they are just an addition. It should not break any current existing scene.
* If a scene renames or moves a node, inherited or instantiated scenes will no longer lose reference to it.

Unlike the previous approach, this one is intended to be a fallback, only used if the node is not found.
This makes it safer to implement and ensure that, at worst case, we fail to find the node, but nothing breaks.
2025-10-06 12:55:38 +02:00
Thaddeus Crews
f6aa5ba23c
Merge pull request #97210 from AleksLitynski/object-snapshot-debugger
Add an ObjectDB Profiling Tool
2025-10-03 12:01:11 -05:00
Thaddeus Crews
7bdec67718
Merge pull request #111126 from HolonProduction/gotta-get-path
Optimize initial `Node::get_path` call by avoiding `Vector::reverse`
2025-10-02 15:12:01 -05:00
HolonProduction
b50ce590b4 Optimize initial Node::get_path call by avoiding Vector::reverse 2025-10-01 22:56:53 +02:00
Thaddeus Crews
09609c1320
Merge pull request #111043 from HolonProduction/rm-import-path
Remove unused `import_path` member from `Node`
2025-09-30 20:10:44 -05:00
Thaddeus Crews
e5bf31b170
Merge pull request #107369 from Ivorforce/node-iter-children
Core: Add `Node::iterate_children` as a fast way to iterate a node's children
2025-09-30 18:35:21 -05:00
Ryan
6ebef31b3c Make Node::orphan_node_count thread-safe 2025-09-29 17:54:41 -04:00
HolonProduction
743e0edfd7 Remove unused import_path member from Node 2025-09-29 21:40:01 +02:00
Thaddeus Crews
685c7e92e5
Merge pull request #100437 from KoBeWi/ruaninstancequestionmark
Add `is_instance()` helper method to Node
2025-09-23 12:08:48 -05:00
Thaddeus Crews
89c51cb183
Merge pull request #110571 from WhalesState/get-children
Improve `Node::get_children` performance.
2025-09-22 13:28:46 -05:00
Thaddeus Crews
149a4b4ca1
Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
Mounir Tohami
3335708ce0 Refine children cache invalidation to skip more special cases. 2025-09-18 18:28:59 +03:00
Mounir Tohami
7dc6df3051 Optimize Node::get_children.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-09-17 13:31:23 +03:00
Pāvels Nadtočajevs
7b47f5e8db
[Accessibility] Process non-focusable windows (popups, menus) as part of the parent window tree. 2025-08-17 12:15:08 +03:00
Adam Simpkins
254fa6c642 fix releasing the old unique name when renaming a Node
This fixes `Node::set_name()` to release the old unique name before
performing the rename.  #76560 changed the code to update `data.name`
before calling `_release_unique_name_in_owner()`, causing to incorrectly
try releasing the new name instead of the old name.

Fixes #108683
2025-07-16 14:21:50 -07:00
kobewi
25f0e0ac91 Add DUPLICATE_INTERNAL_STATE flag 2025-07-12 22:18:59 +02:00
kobewi
11adf408ab Add is_instance() helper method to Node 2025-07-08 20:42:52 +02:00
Aleksander Litynski
78f1543e35 Add an ObjectDB Profiling Tool
A new tab is added to the debugger that can help profile a game's memory usage.

Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
2025-07-08 16:39:24 +02:00
lawnjelly
2d3dedb12d FTI - Add reset on setting top_level 2025-06-29 17:01:51 +01:00
lawnjelly
14a814586a Provide quick access to Object ancestry 2025-06-23 07:11:11 +01:00
Dimitri Sukhankin
6e650163da Add a proper error message when trying to add node to a group with an empty name 2025-06-21 13:58:31 +04:00
Lukas Tenbrink
175c38d0dc Core: Add Node::iterate_children as a fast way to iterate a node's children, without needing allocations or get_child.
Adds `Iterable` class to templates.
2025-06-13 17:01:51 +02:00