1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00
Commit Graph

234 Commits

Author SHA1 Message Date
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