Commit graph

651 commits

Author SHA1 Message Date
Rémi Verschelde
765362b033
Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +01:00
Rémi Verschelde
a447ac95ec
Move DisplayServer enums and typedefs to DisplayServerEnums
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
2026-03-03 12:44:02 +01:00
Pāvels Nadtočajevs
1306221592
Move accessibility methods/enums from DisplayServer to the AccessibilityServer dedicated singleton. 2026-03-02 13:48:29 +02:00
Thaddeus Crews
e380a41752
Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
kobewi
6f86914f55 Cleanup _validate_property() implementations 2026-02-23 15:05:25 +01:00
Rémi Verschelde
1c12d2c36e
Tidy up includes in scene/main and scene/debugger 2026-02-19 15:09:29 +01:00
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