Commit Graph

496 Commits

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