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
685c7e92e5
Merge pull request #100437 from KoBeWi/ruaninstancequestionmark
...
Add `is_instance()` helper method to Node
2025-09-23 12:08:48 -05:00
Aaron Franke
84eb90b790
Allow attaching scripts to nodes with previously-non-abstract scripts
2025-08-27 11:14:59 -07:00
kobewi
11adf408ab
Add is_instance() helper method to Node
2025-07-08 20:42:52 +02:00
Mikael Hermansson
af94831ab2
Fix typed collections using same reference across scene instances
2025-07-02 23:45:25 +02:00
Thaddeus Crews
ffc267b44f
Merge pull request #92280 from dalexeev/editor-fix-built-in-script-documentation
...
Editor: Fix documentation for built-in scripts
2025-06-18 18:14:09 -05:00
Pedro J. Estébanez
c854462ac5
Fix resources wrongly duplicated upon instantiating inherited scenes
2025-06-06 17:45:45 +02:00
Rindbee
5e2396e001
Add a flag to make the connection automatically emit the source object.
...
Mainly used to improve the connection dialog.
Not implemented in `emit_signalp()`, append the source object when a PackScene is instantiated.
2025-05-27 20:19:03 +08:00
Danil Alexeev
0a07ae7bf1
Editor: Fix documentation for built-in scripts
2025-05-05 21:26:30 +03:00
A Thousand Ships
889410dcda
Add String::replace_char(s) methods for performance and convenience
2025-04-10 13:08:45 +02:00
Yufeng Ying
bbc380b07e
Do not iterate Dictionary with get_key_at_index.
2025-04-07 21:54:13 +08:00
Thaddeus Crews
5edb235018
CI: Bump various pre-commit hooks
2025-04-07 08:23:35 -05:00
Aaron Franke
2800948d61
Organize ifdefs for disabling navigation, physics, and XR
2025-04-02 08:24:24 -07:00
kobewi
bc9d0c7835
Add templated version of ObjectDB::get_instance()
2025-03-27 15:43:23 +01:00
Mikael Hermansson
a71f670d7d
Bind SceneState methods get_path and get_base_scene_state
2025-03-14 13:04:26 +01:00
A Thousand Ships
466590d0ec
Use get_slicec instead of get_slice for single character splitters
2025-03-08 20:36:37 +01:00
Rémi Verschelde
dbdd8a2db9
PackedScene: Use ObjectID for DeferredNodePathProperties base
...
Help do proper error handling and avoid a crash.
Works around #103263 .
2025-02-26 14:40:14 +01:00
A Thousand Ships
a1846b27ea
Improve use of Ref.is_null/valid
...
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Yufeng Ying
73d85f46c9
Remove unused headers in scene.
...
Co-authored-by: Thaddeus Crews <repiteo@outlook.com >
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com >
2024-12-24 00:40:09 +08:00
Rémi Verschelde
2153a60425
Revert "Avoid duplicating signals from scene instances into packed scenes"
...
This partially reverts commit 8a42e3d3ef .
Comment improvements and the test case were kept, with one part commented out.
2024-12-10 10:42:58 +01:00
cixil
8a42e3d3ef
Avoid duplicating signals from scene instances into packed scenes
2024-11-29 18:29:08 +01:00
A Thousand Ships
68f638cf02
Use (r)find_char instead of (r)find for single characters
2024-11-17 10:02:18 +01:00
Thaddeus Crews
925b690c98
Core: Integrate Ref::instantiate where possible
2024-11-10 12:41:26 -06:00
nikitalita
95d2909474
Fix missing resource properties being dropped on save
2024-11-05 11:53:29 -06:00
Raffaele Picca
1df0159b36
Added a more detailed error message when instatiating a scene with missing export properties.
2024-09-16 16:08:55 +02:00
Rémi Verschelde
7a4c03418a
Merge pull request #96144 from SaracenOne/reimport_owner_instance
...
Make reimported models reimport their owner.
2024-09-08 23:21:32 +02:00
Saracen
86ce15fb7a
Make reimported models reimport their owner.
...
Changes the behaviour of the scene hot-reload system
so that if the scene which needs to be reimported is
owned by another instance, reload that instance instead.
2024-09-08 03:12:47 +01:00
Thaddeus Crews
9853a69144
Implement typed dictionaries
2024-09-04 10:27:26 -05:00
BlueCube3310
6412cdf27d
Fix saving subresources of nodes
2024-08-28 12:37:10 +02:00
Rémi Verschelde
78935cad95
Merge pull request #94954 from raulsntos/mark-internal-properties
...
Mark underscored properties as internal
2024-08-28 00:12:42 +02:00
Raul Santos
7a20ba9b63
Mark underscored properties as internal
...
These properties look like they were intended to be internal but they were missing the `PROPERTY_USAGE_INTERNAL` flag.
- `PackedScene::_bundled`
- `PortableCompressedTexture2D::_data`
- `ImporterMesh::_data`
2024-07-30 18:50:00 +02:00
kobewi
5636518358
Allow live reloading of built-in scripts
2024-07-06 23:43:37 +02:00
kobewi
b83c64faac
Speed up scene group scanning for text scenes
2024-06-29 21:30:38 +02:00
kobewi
be111004dd
Fix default NodePaths saved in scene
2024-06-03 13:10:23 +02:00
Adriano Orioli
edd2e6e37f
make InstancePlaceholder in charge of node reference resolution
2024-05-28 11:51:49 +02:00
kobewi
413c11357d
Use Core/Scene stringnames consistently
2024-05-13 23:41:07 +02:00
kobewi
a262d2d881
Add shorthand for using singleton string names
2024-05-11 18:53:08 +02:00
Rémi Verschelde
29607924bd
Merge pull request #88741 from adamscott/fix-shared-variables-of-inherited-scenes-redux
...
Fix shared exported variables of inherited scenes
2024-05-07 16:49:20 +02:00
Aaron Franke
6aac3e4a16
Disable all 3D nodes, physics, and resources when compiling without 3D
2024-03-11 01:00:55 -07:00
Rémi Verschelde
1d6403323f
Merge pull request #88426 from Rindbee/fix-inherited-scenes-produce-errors
...
Fix inherited scenes produce errors in editor when `editable_children` is true
2024-03-10 21:12:54 +01:00
风青山
4d57da4d01
Fix inherited scenes produce errors in editor when "editable_children" is true
...
Since the same argument is used, `SceneState::get_node_deferred_nodepath_properties()`
should use similar logic to `SceneState::get_property_value()`.
Make `SceneState::get_property_value()` to return whether the property is deferred.
2024-03-10 07:37:47 +08:00
Rémi Verschelde
172b254687
Merge pull request #88664 from RandomShaper/res_load_modes
...
Enhance cache modes in resource loading
2024-02-29 13:54:07 +01:00
Rémi Verschelde
440fe26338
Merge pull request #87268 from Wyxaldir/master
...
Fix for `resource_local_to_scene` in arrays.
2024-02-29 13:53:49 +01:00
Pedro J. Estébanez
5e144022e7
Enhance cache modes in resource loading
...
- Unify documentation, hoping to clear misconcepctions about about propagation of the cache mode across dependant loads.
- Clarify in docs that `CACHE_MODE_REPLACE` now also works on the main resource (from #87008 ).
- Add two recursive modes, counterparts of `CACHE_MODE_REPLACE` and `CACHE_MODE_IGNORE`, since it seems some need them (see #59669 , #82830 ).
- Let resources, even loaded with one of the ignore-cache modes, get a path, which is useful for tools.
2024-02-26 14:59:04 +01:00
Adam Scott
d53a1b0e84
Fix shared exported variables of inherited scenes
2024-02-24 16:35:01 -05:00
Wyxaldir
07b011aec7
Fixes #71243 . Resources that have local_to_scene enabled now properly work inside arrays and dictionaries.
2024-02-21 09:35:31 -05:00
kobewi
be4cbee873
Allow opening scenes with missing scene dependency
2024-02-13 19:46:35 +01:00
A Thousand Ships
684752e75b
Replace error checks against size with is_empty
2024-02-09 12:50:15 +01:00
Stanislav Labzyuk
958699a0c4
Implement project-wide node groups
2023-12-19 18:07:19 +01:00
kobewi
c6c872ba34
Provide more context when scene fails to load
2023-11-20 14:57:00 +01:00