Commit Graph

243 Commits

Author SHA1 Message Date
55bedbfaf5 Merge pull request #108741 from AriaTheCurseling/Allow-concurrent-unbind-and-binding-of-signal-arguments-in-editor
Allow concurrent unbinding and binding of signal arguments in editor
2025-11-13 17:42:49 -06:00
acdb8667b5 Core: Sidestep GCC false-positive 2025-10-17 18:57:34 -05:00
7d3c25d083 Remove callable_bind.h from object.h 2025-10-14 16:24:05 +08:00
16a11ac88b Merge pull request #111358 from Ivorforce/no-variant-hasher
Remove `VariantHasher` and `VariantComparator` in favour of specialising `HashMapHasherDefault` and `HashMapComparatorDefault`.
2025-10-10 10:26:12 -05:00
207e8c1b92 Remove compositor.h include from world_3d.h. 2025-10-08 11:25:23 +02:00
d2ee378d1c Remove VariantHasher and VariantComparator in favour of specializing HashMapHasherDefault and HashMapComparatorDefault. 2025-10-07 13:47:39 +02:00
30a0a41982 Merge pull request #111274 from chocola-mint/include-optimization-logger
Remove `file_access.h` and `script_backtrace.h` includes from `logger.h`.
2025-10-06 09:06:32 -05:00
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
ead282ff13 Remove file_access.h and script_backtrace.h includes from logger.h. 2025-10-05 17:49:23 +09:00
685c7e92e5 Merge pull request #100437 from KoBeWi/ruaninstancequestionmark
Add `is_instance()` helper method to Node
2025-09-23 12:08:48 -05:00
84eb90b790 Allow attaching scripts to nodes with previously-non-abstract scripts 2025-08-27 11:14:59 -07:00
caa2a388bb Serialization of Callable now works with bind and unbind at the same time
Removed exclusivity between unbind and bind in many places, both on display elements, connection dock and within serialization.

A signal can now be connected with both unbound and bound arguments through the editor
2025-08-10 12:26:46 +02:00
11adf408ab Add is_instance() helper method to Node 2025-07-08 20:42:52 +02:00
af94831ab2 Fix typed collections using same reference across scene instances 2025-07-02 23:45:25 +02:00
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
c854462ac5 Fix resources wrongly duplicated upon instantiating inherited scenes 2025-06-06 17:45:45 +02:00
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
0a07ae7bf1 Editor: Fix documentation for built-in scripts 2025-05-05 21:26:30 +03:00
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
bbc380b07e Do not iterate Dictionary with get_key_at_index. 2025-04-07 21:54:13 +08:00
5edb235018 CI: Bump various pre-commit hooks 2025-04-07 08:23:35 -05:00
2800948d61 Organize ifdefs for disabling navigation, physics, and XR 2025-04-02 08:24:24 -07:00
bc9d0c7835 Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00
a71f670d7d Bind SceneState methods get_path and get_base_scene_state 2025-03-14 13:04:26 +01:00
466590d0ec Use get_slicec instead of get_slice for single character splitters 2025-03-08 20:36:37 +01:00
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
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
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
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
8a42e3d3ef Avoid duplicating signals from scene instances into packed scenes 2024-11-29 18:29:08 +01:00
68f638cf02 Use (r)find_char instead of (r)find for single characters 2024-11-17 10:02:18 +01:00
925b690c98 Core: Integrate Ref::instantiate where possible 2024-11-10 12:41:26 -06:00
95d2909474 Fix missing resource properties being dropped on save 2024-11-05 11:53:29 -06:00
1df0159b36 Added a more detailed error message when instatiating a scene with missing export properties. 2024-09-16 16:08:55 +02:00
7a4c03418a Merge pull request #96144 from SaracenOne/reimport_owner_instance
Make reimported models reimport their owner.
2024-09-08 23:21:32 +02:00
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
9853a69144 Implement typed dictionaries 2024-09-04 10:27:26 -05:00
6412cdf27d Fix saving subresources of nodes 2024-08-28 12:37:10 +02:00
78935cad95 Merge pull request #94954 from raulsntos/mark-internal-properties
Mark underscored properties as internal
2024-08-28 00:12:42 +02:00
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
5636518358 Allow live reloading of built-in scripts 2024-07-06 23:43:37 +02:00
b83c64faac Speed up scene group scanning for text scenes 2024-06-29 21:30:38 +02:00
be111004dd Fix default NodePaths saved in scene 2024-06-03 13:10:23 +02:00
edd2e6e37f make InstancePlaceholder in charge of node reference resolution 2024-05-28 11:51:49 +02:00
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
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
6aac3e4a16 Disable all 3D nodes, physics, and resources when compiling without 3D 2024-03-11 01:00:55 -07:00
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