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
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
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
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
Yuri Sizov
4d42d6fdf6
Merge pull request #78706 from RedworkDE/node-rename-inplace
...
Allow renaming child nodes in `_ready`
2023-07-21 17:15:26 +02:00
Ninni Pipping
7bd3a3a5e5
Prevent crash when accessing Node
Multiplayer from thread
2023-07-11 12:57:25 +02:00
Rémi Verschelde
6cb1162aa0
Merge pull request #79000 from AThousandShips/owner_error
...
Improve error message for `Node.set_owner`
2023-07-11 11:29:30 +02:00
kleonc
3f6e35bdb2
Fix drag-dropping nodes to parent with internal nodes
2023-07-07 19:24:44 +02:00
Ninni Pipping
0183340012
Improve error message for Node.set_owner
2023-07-04 08:51:12 +02:00
Markus Sauermann
b02dff6e1c
Fix Node::add_sibling
parent check
...
Replace `data.blocked > 0` by `data.parent->data.blocked > 0` in order
to check if the parent is busy.
2023-06-29 20:21:37 +02:00
Pedro J. Estébanez
70ca659143
Fix node internal/non-internal processing order
...
Bonus:
Fix issues in group-processing related setters
2023-06-27 19:19:55 +02:00
RedworkDE
2c0caa5828
Allow renaming child nodes in _ready
2023-06-26 13:25:48 +02:00
Markus Sauermann
31fab43b8b
Fix scene load crash related to _ready
...
The iterator might get invalidated during `_ready`-user-code.
Prevent this by disallowing set_name during iterator-operations.
2023-06-25 22:35:38 +02:00
Rémi Verschelde
cce100a840
Merge pull request #75459 from kleonc/node-fix-find-children
...
Fix recursive `Node.find_children`
2023-06-19 22:33:46 +02:00
Danil Alexeev
eb391d3302
Display BitField[Enum]
in docs to distinguish from Enum
2023-06-15 17:23:02 +03:00
Rémi Verschelde
c3e5e4ed4b
Merge pull request #68599 from Rindbee/update-edited_scene_root-in-time
...
Update the edit scene root in time after it is replaced
2023-06-12 17:08:50 +02:00
Rindbee
eb74079dfb
Update the edit scene root in time after it is replaced
...
When changing the type of the edited scene root node, it may be necessary
to update edited scene root in time for the child nodes to work properly.
2023-06-12 21:49:30 +08:00
Ninni Pipping
dcd2b883eb
Use NULL instead of COND checks when appropriate
...
Restricted to scene
2023-06-10 08:56:30 +02:00
Markus Sauermann
7561e176e8
Fix parent inconsistency in Node::remove_child
...
`NOTIFICATION_CHILD_ORDER_CHANGED` could be triggered, while there
was an inconsistent state:
- parent node no longer had child listed as child
- child node still had parent node listed as parent
Bring these two in sync, before emitting the notification.
2023-06-08 22:51:07 +02:00
Hugo Locurcio
bd468cdec7
Display the node path or name in Node thread guard errors
...
This makes it easier to diagnose which node is the source of the issue.
2023-06-07 16:06:53 +02:00
Markus Sauermann
15ee292664
Don't update mouse cursor state on child order changed
...
Partially Revert "Create a virtual mouse move event after moving child nodes"
This reverts parts of commit ce10ca6979
.
The problem was that the the mouse-move event interacted in unexpected ways.
2023-06-05 10:28:55 +02:00
Markus Sauermann
ce10ca6979
Create a virtual mouse move event after moving child nodes
...
This updates mouse cursor and mouse-over-states without the need
for additional mouse movements.
2023-05-29 22:46:19 +02:00
Rémi Verschelde
508a5bf16e
Merge pull request #76025 from YuriSizov/editor-reparentable-windows
...
Expose dialog parent-and-popup logic to the API
2023-05-16 10:49:09 +02:00
Rémi Verschelde
8cfa19a078
Merge pull request #77000 from reduz/make-more-base-nodes-thread-safe
...
Make more base nodes thread safe
2023-05-16 00:31:56 +02:00
Yuri Sizov
17f492fb82
Expose dialog parent-and-popup logic to the API
2023-05-15 19:49:28 +02:00
Juan Linietsky
0a9f72d5a8
Make more base nodes thread safe
...
Ongoing work to make more of the base nodes thread safe.
2023-05-15 16:54:10 +02:00
Rindbee
1eb250e17d
Avoid crash when adjusting a node tree that is not in the tree
...
When node tree `A` is not in the tree, `remove_child(B)` will not
automatically clean up the owners of `B` and `B`'s child nodes.
This is convenient for implementing operations like `replace_by()`,
but may have hidden dangers when manipulating the rest of the tree
`A`.
This commit makes it safe to manipulate the rest of `A` after freeing
`B`.
2023-05-11 08:57:39 +08:00
Juan Linietsky
98c655ec8d
Refactor Node Processing
...
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.
This is the first steps towards implementing https://github.com/godotengine/godot-proposals/issues/6424 .
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
2023-05-09 19:17:51 +02:00
kobewi
1b9802fa8c
Prevent errors when using ViewportTexture
2023-05-08 15:56:16 +02:00
Rémi Verschelde
6aac8af6f1
Merge pull request #69318 from Sauermann/fix-refresh-gui-events
...
Fix scene reload crash related to mouse cursor update
2023-04-25 15:36:26 +02:00
Aaron Franke
8eb9986dc5
Make Node::get_children()
public
2023-04-15 21:59:25 -05:00
kleonc
d159123633
Fix recursive Node.find_children
2023-04-09 09:15:21 +02:00
Juan Linietsky
ab5fc22f67
Optimize Node children management
...
* Adding and removing child nodes is now constant time, speed up should be huge.
* Searching for node paths as in ("path/to/node") should be far faster too.
This changes the children management and makes it a hashmap, optimizing most StringName based operations.
Most operations should be severe speed up without breaking compatibility.
This should fix many issues regarding to node access performance, and may also speed up editor start/end, but benchmarks are needed. So if you want to test, please make some benchmarks!
Further performance improvements will be done in the future by removing NOTIFICATION_MOVED_IN_PARENT and replacing by something less laborious.
2023-04-08 10:54:28 +02:00
Rémi Verschelde
c151d3231f
Merge pull request #75760 from reduz/optimize-node-add-child-validation
...
Optimize Node::add_child validation
2023-04-07 18:20:28 +02:00
Juan Linietsky
223ce4fcb9
Optimize Node::add_child validation
...
Adding 10k nodes is almost twice as fast.
2023-04-07 13:18:47 +02:00