lawnjelly
40c05c69f9
Physics Interpolation - Add editor configuration warnings
...
* For physics bodies that are on non-interpolated branches
2025-04-20 10:03:04 +01:00
Quentin Quaadgras
23ffdd79e8
fix gdextension Object/Node::to_string to check is_valid before returning the result
...
at best, this results in an empty string, at worst, the result is never
initialised when is_valid is false.
2025-04-19 10:45:12 +12:00
2750558108
3c745c0315
Replace duplicate code of is_ancestor_of in node.cpp
2025-04-13 14:05:21 +08:00
Priahoud
bf963e767e
Add Options, Functions and Settings to convert Node-Names and Strings to kebab-case
...
- refactored and renamed String::_camelcase_to_underscore to String:_separate_compound_words
- refactored String::to_snake_case to work with the refactored String::_separate_compound_words
- created char_utils::is_hyphen to catch all hyphen variants in kebab-case conversion
- created String::to_kebab_case using the new String::_separate_compound_words
- created corresponding Documentation in String and StringName
- simplified both switch statements in EditorNode and ProjectDialog
- added new kebab-casing Option for Node Names in ProjectSettings
- added missing camelCase Options to Scene- and Node-Names in ProjectSettings
- simplified Mono RuntimeInterop Functions
- hooked up the ConnectionsDialog
- created additional Unit Tests
2025-04-10 21:22:21 +02:00
Pāvels Nadtočajevs
b106dfd4f9
Base accessibility API.
2025-04-08 20:14:28 +03:00
Yyf2333
22b5ec17fb
Using iterator pattern instead of List::Element *.
...
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Thaddeus Crews
f09ee0171a
Style: Begin integrating simple `.clangd` fixes
2025-03-22 13:24:35 -05:00
Thaddeus Crews
b377562b52
Merge pull request #91660 from AThousandShips/methodinfo_vec
...
[Core] Use `Vector` for `MethodInfo::arguments`
2025-03-14 10:06:13 -05:00
Hilderin
14b1e40e36
Fix missing binding for NOTIFICATION_WM_POSITION_CHANGED
2025-03-13 16:12:16 -04:00
Thaddeus Crews
7d677fe761
Merge pull request #96372 from CreatedBySeb/fix-signal-copying
...
Fix copying a Node with a signal potentially resulting in an Editor crash
2025-03-11 09:35:01 -05:00
A Thousand Ships
d9721954e6
[Core] Use `Vector` for `MethodInfo::arguments`
2025-03-10 13:57:53 +01:00
Thaddeus Crews
77022096ef
Merge pull request #102451 from ryevdokimov/add-fail-cond-msg-reparent-self
...
Add `ERR_FAIL_COND_MSG` for reparenting to self
2025-03-07 15:12:35 -06:00
kobewi
92ab92114e
Don't duplicate internal nodes
2025-03-07 16:08:53 +01:00
Thaddeus Crews
e23460ae78
Merge pull request #102585 from KoBeWi/localichangetion
...
Don't send `TRANSLATION_CHANGED` outside tree
2025-03-05 12:07:50 -06:00
lawnjelly
e46993f0db
Physics Interpolation - Auto-reset on `set_physics_interpolation_mode()`
...
Fixes historical bug where auto-reset wasn't working correctly.
Also fixes process modes on Cameras when mode is changed.
2025-02-10 10:19:54 +00:00
kobewi
1680e9e77f
Don't send TRANSLATION_CHANGED outside tree
2025-02-08 16:14:05 +01:00
Robert Yevdokimov
80869063bd
Add `ERR_FAIL_COND_MSG` for reparenting to self
2025-02-05 15:15:38 +04:00
HP van Braam
6f7525c396
Improve Scene Tree editor performance
...
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.
Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.
In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.
We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.
SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.
There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.
This fixes #83460
I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.
2024-12-12 22:47:05 +01:00
AThousandShips
ff6eea5042
Prevent infinite recursion in first `_draw`
2024-11-22 17:42:58 +01:00
Danil Alexeev
e379cc76e5
Core: Fix `Callable.get_bound_arguments{,_count}()` return incorrect data
2024-11-04 22:41:56 +03:00
Michael Alexsander
16524a8a01
Add "Game" editor for better runtime debugging
2024-10-30 11:42:17 -03:00
A Thousand Ships
203d3be200
[Core] Add way to check if a signal has any connections
...
Added to `Object` and `Signal`
2024-09-20 16:39:09 +02:00
Haoyu Qiu
c5d147b9b5
Allow configuring which translation domain Object.tr uses
2024-09-17 13:09:44 +08:00
Rémi Verschelde
8ebfd89359
Merge pull request #96024 from Ryan-000/expose_get_rpc_config
...
Expose `get_rpc_config` and `get_node_rpc_config`
2024-09-16 13:34:34 +02:00
Ryan
8835f326b1
Expose get_rpc_config and get_node_rpc_config
...
add documentation
Update doc/classes/Node.xml
change name of get_node_rpc_config to get_rpc_config
Co-Authored-By: moondog <159832633+dog-on-moon@users.noreply.github.com>
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2024-09-04 15:45:22 -04:00
Sébastien Dunne Fulmer
7563c3a4df
Avoid copying a signal with a Node if the target path is empty
2024-08-31 10:41:19 +01:00
rune-scape
154049ce17
StringName Dictionary keys
...
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
Rémi Verschelde
6d22b8026d
Merge pull request #90992 from RadiantUwU/fix_node_duplicate
...
Fix `Node.duplicate()` crash when duplicating a node that cannot be instantiated.
2024-08-19 14:33:31 +02:00
Radiant
70f41e414e
Fix node.duplicate, return nullptr if this operation fails.
2024-08-02 16:26:19 +03:00
Ricardo Buring
2f8ab4a654
Fixed Timestep Interpolation (3D)
...
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
Ricardo Buring
ceadbaa299
Fixed Timestep Interpolation: Fix behaviour on pause
...
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 16:48:17 +02:00
kobewi
bef2e62c88
Fix duplicating nodes with Array properties
2024-06-27 19:17:50 +02:00
Rémi Verschelde
0ec023f101
Merge pull request #92678 from warriormaster12/dup_prop_before_remap_resources
...
Duplicate properties first before remapping resources
2024-06-18 14:08:39 +02:00
Raul Santos
29bf60cc02
Use GDExtension `to_string` in Node
...
Matches the `Object::to_string` implementation.
2024-06-11 17:40:51 +02:00
warriormaster12
e4d0d1344b
Duplicate properties first before remapping resources
2024-06-02 13:27:35 +03:00
kobewi
59f05ed31a
Cleanup unused/underused singleton StringNames
2024-05-14 18:18:29 +02:00
kobewi
413c11357d
Use Core/Scene stringnames consistently
2024-05-13 23:41:07 +02:00
A Thousand Ships
2f442ff21a
Fix outdated name for `script` `StringName`
2024-05-13 12:39:41 +02:00
Rémi Verschelde
3bb7fd8ac4
Merge pull request #91329 from warriormaster12/dont-do-things-twice
...
Fix a performance regression when duplicating a node
2024-05-13 12:05:34 +02:00
warriormaster12
f14455fd3d
Fix a performance regression when duplicating a node
2024-05-12 21:43:22 +03:00
kobewi
a262d2d881
Add shorthand for using singleton string names
2024-05-11 18:53:08 +02:00
kobewi
5c0f7968e3
Fix crash when adding a child while duplicating a node
2024-05-07 21:56:38 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to `List`
...
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
kobewi
0b877a9962
Expose is_part_of_edited_scene()
2024-04-26 11:49:38 +02:00
ajreckof
248e5bfba2
Revert what needs to be reverted
2024-04-10 09:49:30 +08:00
Ricardo Buring
e6b9161246
Fix per-node physics interpolation setting
...
The per-node default should be ON.
2024-04-05 10:30:19 +02:00
Rémi Verschelde
f47f4a02c8
Merge pull request #89992 from ajreckof/fix-my-mistake-with-replace-in-update-scene
...
Fix node duplication in update after external changes.
2024-04-04 02:53:57 +02:00
ajreckof
ae472865d0
fix node duplication in update after external changes.
2024-04-03 12:19:38 +02:00
Rémi Verschelde
af08342fd8
Merge pull request #89957 from warriormaster12/regress-dup
...
Fix regression when duplicating a node with a resource attached
2024-03-28 10:47:39 +01:00
warriormaster12
9533543aa5
Fix duplicating resources regression
2024-03-27 11:51:29 +02:00
Rémi Verschelde
9d8697ab01
Merge pull request #89686 from kleonc/unique-node-names-check-owned-then-in-owner
...
Always look for unique node names in owner if not found in owned nodes
2024-03-24 01:21:28 +01:00
Rémi Verschelde
1d4907243e
Merge pull request #89628 from twobitadder/whoops_no_internals_pls
...
Fix crash on `reparent()` with Node containing internal children
2024-03-24 01:19:34 +01:00
Rémi Verschelde
e92806c7e7
Merge pull request #88424 from rburing/fti_2d
...
Physics interpolation (2D)
2024-03-24 01:13:53 +01:00
Ricardo Buring
2ed2ccc2d8
Fixed Timestep Interpolation (2D)
...
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
kleonc
95ced4bbdc
Always look for unique node names in owner if not found in owned nodes
2024-03-19 22:13:10 +01:00
twobit
b9bade8db1
fixes crash on nodes with internal children
2024-03-17 22:44:05 -04:00
warriormaster12
9851c1bdd8
Fix property duplication when duplicating a parent node
2024-03-17 09:57:38 +02:00
Rémi Verschelde
c1377920cd
Merge pull request #86743 from Mickeon/autocompletion-optimise-object
...
Optimise comparisons for Object's `get_argument_options`
2024-03-01 14:56:06 +01:00
Micky
cd2032a90b
Optimise Object's `get_argument_options`
2024-02-29 18:00:54 +01:00
Markus Sauermann
c58607c32f
Fix owner when importing meshes
...
Handle the case correctly, that a child of a replaced node has
as owner an ancestor of the replaced node.
2024-02-26 22:24:57 +01:00
kobewi
75ba837612
Fix inefficient list iteration in Node
2024-02-24 23:18:44 +01:00
Travis Lange
ae97cf2ff0
Fix AnimationMixer breaking animations with redundant check
...
Also change `Node::get_node_and_resource` to prevent it from printing an
error from `Node::get_node`, and just returns nullptr. This is what the
redundant check was trying to prevent.
Fixes #88428 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-19 16:50:19 +01:00
Rémi Verschelde
ab4c5a594a
Merge pull request #88521 from YeldhamDev/atr_regression
...
Fix regression in auto translation overhaul
2024-02-19 00:09:22 +01:00
Rémi Verschelde
0f0515a75f
Merge pull request #87743 from WhalesState/camera2d
...
Fix `Camera2D` is enabled when dragging scene files to the `CanvasItemEditor`
2024-02-19 00:07:57 +01:00
Michael Alexsander
b56774b5bf
Fix regression in auto translation overhaul
2024-02-18 19:33:08 -03:00
Mounir Tohami
451b198c40
Fix dragging scene files to the `CanvasItemEditor`
2024-02-18 21:55:14 +02:00
Rémi Verschelde
92fcbe2f5c
Revert "Allow configuration warnings to refer to a property"
...
This reverts commit bf37a9bac6 .
2024-02-17 19:04:18 +01:00
Michael Alexsander
7b42c24550
Make auto translation inheritable
2024-02-15 16:51:19 -03:00
Rémi Verschelde
58a8eb8617
Merge pull request #84824 from Rindbee/fix-double-internal-node
...
Fix duplicating sub-scene may get two copies of internal node
2024-02-09 12:14:29 +01:00
RedMser
bf37a9bac6
Allow configuration warnings to refer to a property
...
This is used by the inspector so it can show a warning icon on
a specific property.
2024-02-08 23:05:20 +01:00
kobewi
0de8a736da
Allow Node.create_tween() outside SceneTree
2024-01-29 20:18:43 +01:00
Rémi Verschelde
ef9cb3dfa5
Merge pull request #87535 from Mickeon/scene-tree-configuration-warnings-cleanup
...
Improve appearance of Node configuration warnings
2024-01-29 13:17:17 +01:00
Micky
3e4e0f08c4
Improve appearance of Node configuration warnings
2024-01-27 13:03:07 +01:00
Yuri Sizov
adcfe3d1a0
Merge pull request #87252 from ajreckof/Fix-renaming-a-node-to-the-name-of-its-siblings-breaking-NodePath
...
Fix renaming a node to the name of its siblings breaking NodePath
2024-01-24 14:08:20 +01:00
Yuri Sizov
28cf7fe2f6
Merge pull request #85384 from HolonProduction/unique-name-completion
...
Suggest scene unique nodes in `get_node` autocompletion
2024-01-17 18:52:31 +01:00
ajreckof
2f697926b0
Fix renaming a node to the name of its siblings breaking NodePath
...
Also fix cases where node name was not visually updated because name was not changed
Co-Authored-By: Nông Văn Tình <53887662+nongvantinh@users.noreply.github.com>
2024-01-16 15:18:30 +01:00
Rémi Verschelde
f3fc35eb17
Merge pull request #81506 from twobitadder/reparent_keep_owner
...
Fix `reparent()` losing owner
2024-01-11 17:34:19 +01:00
Micky
f996003fb4
Add autocompletion to `get_node_or_null`
2024-01-06 17:33:32 +01:00
Rémi Verschelde
fbaab3cf53
Merge pull request #86745 from KoBeWi/internal_error
...
Ignore internal children when replacing node
2024-01-03 15:48:41 +01:00
Rémi Verschelde
73c5deff76
Merge pull request #82916 from jsjtxietian/update-scene-tree-tooltip-after-editor-description-chnage
...
Support updating tooltip immediately after editor description change
2024-01-03 15:41:31 +01:00
kobewi
cd2edfef25
Ignore internal children when replacing node
2024-01-03 13:04:16 +01:00
风青山
f19c419126
Fix duplicating sub-scene may get two copies of internal node
...
Previously, internal node might be mistaken for `hidden_root` and be duplicated again.
Exclude those internal nodes to avoid this case, unless the owner is set intentionally.
2023-12-20 18:29:25 +08:00
Stanislav Labzyuk
958699a0c4
Implement project-wide node groups
2023-12-19 18:07:19 +01:00
Yuri Sizov
13305d31b5
Merge pull request #83343 from warriormaster12/node-property-duplication
...
Fix export variable of type Node pointing to a wrong child node when duplicating
2023-12-08 15:22:59 +01:00
HolonProduction
8cc85515af
Suggest scene unique nodes in `get_node` autocompletion
2023-11-26 15:41:29 +01:00
Markus Sauermann
d3d00c7039
Fix crash caused by stale owner
...
Adjust `NOTIFICATION_PREDELETE` in `Node` to clean up owned nodes.
Also print a warning, when the owner becomes invalid.
2023-11-17 19:53:58 +01:00
jsjtxietian
4680ced5fa
support updating tooltip after editor description change
2023-11-15 14:27:49 +08:00
Rémi Verschelde
15b8185c68
Don't use TTR/RTR for ERR/WARN prints
...
We don't translate those, only editor strings are translated.
2023-11-12 12:00:55 +01:00
Yuri Sizov
623b905d2e
Remove unused `NOTIFICATION_NODE_RECACHE_REQUESTED` notification
2023-11-06 12:16:32 +01:00
warriormaster12
de1dc6c8d4
Fix node property duplication
2023-11-04 10:45:38 +02:00
twobit
b4aa6ad36e
Fix `reparent` losing owner if relationship to original owner is not broken
2023-10-26 13:08:05 -04:00
A Thousand Ships
034c0f1624
Replace `sanity` with `safety` for checks
2023-10-08 16:22:24 +02:00
Rémi Verschelde
3b70e30e9b
Merge pull request #77072 from vPumpking/get-tree-string
...
Add `Node.get_tree_string` and `Node.get_tree_string_pretty`
2023-10-05 16:32:12 +02:00
Danil Alexeev
aff767ef07
Fix expected argument count for `Callable` call errors
2023-09-29 20:00:10 +03:00
jsjtxietian
e36117f557
Fix can not set process priority of node if not any process is processing
2023-09-26 19:29:25 +08:00
vPumpking
bd575c5fe5
Add 'get_tree_string()' and 'get_tree_string_pretty()' to Node class to complement printing methods
2023-09-15 19:18:53 +02:00
Yuri Sizov
d8ff69d53c
Extract ScriptInstance to simplify includes
...
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.
This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
A Thousand Ships
9cf13cedfd
Ensure binds are duplicated with `Node` signals
2023-08-29 16:52:38 +02:00
Rémi Verschelde
c081d1bd24
Merge pull request #78816 from kleonc/scene-tree-fix-drag-drop-to-parent-with-internal-nodes
...
Fix drag-dropping nodes to parent with internal nodes
2023-08-16 16:54:06 +02:00
Yuri Sizov
fd1ee5d56b
Merge pull request #79332 from AThousandShips/mp_crash
...
Prevent crash when accessing `Node` Multiplayer from thread
2023-08-01 17:25:07 +02:00