Commit Graph

147 Commits

Author SHA1 Message Date
Ryan 1a5d818ea9 Optimize AnimationTree & Improve internals
Apply suggestions from code review

Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-Authored-By: Silc Lizard (Tokage) Renew <tokage.it.lab@gmail.com>
2026-03-14 02:24:21 -04:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde 765362b033 Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +01:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
kobewi f7b9703cbd Use actual class names in resource type hints 2026-01-29 21:07:56 +01:00
Thaddeus Crews 597b0a2f03 Merge pull request #109986 from SomeRanDev/animation_node_state_machine_playback_expansion
Expose `get_fading_...` methods for `AnimationNodeStateMachinePlayback`
2025-10-28 12:19:20 -05:00
kobewi d61a337a70 Improve usage of String.split() vs get_slice() 2025-09-19 16:31:55 +02:00
Maybee Rezbit dc8f7b4f5d Expose "fade" methods for AnimationNodeStateMachinePlayback 2025-08-28 13:54:42 -04:00
Adam Johnston d72006119d Add node started/finished signals for animation state machines 2025-06-05 12:09:16 -07:00
LuoZhihao 713ed59a77 Remove unnecessary _validate_property() calling 2025-06-03 21:57:36 +08:00
Adam Wychowaniec d193af78c5 Expose AnimationNode(StateMachine/BlendTree).get_node_list() 2025-04-22 21:08:26 +02:00
Thaddeus Crews 1e8b7fe5a0 Merge pull request #101582 from Flynsarmy/recursive_transition_wording
Improve wording on recursive transition detection warning
2025-04-18 12:21:26 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Rémi Verschelde ede3d21519 Don't expose AnimationNodeStartState and AnimationNodeEndState as internal, this triggers a ClassDB bug
Fixes #99534.
2025-02-04 22:19:56 +01:00
Flyn San 3af934bc9c Improve wording on recursive AnimationNodeStateMachinePlayback transition detection warning 2025-01-15 23:10:46 +10:00
Aarni Koskela f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02: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
Yufeng Ying 180c1b1cfa Remove dead code. 2024-12-12 23:40:25 +08:00
Chaosus 7adb986e15 Fix orphan strings in AnimationNodeStateMachine 2024-12-11 11:08:23 +03:00
Lukas Tenbrink b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Rémi Verschelde d6b20fd7e5 Merge pull request #98402 from vaner-org/highlight-node-neighbours
Reduce opacity of nodes with no shared transition when selecting an AnimationNodeStateMachine node
2024-12-02 15:50:22 +01:00
lullabyist 366fa9ff39 Reduce opacity of nodes with no shared transition when selecting an AnimationNodeStateMachine node
Applied suggestions from code review
2024-12-01 18:21:09 +05:30
nazarii 76208f7155 Implement array based hash map 2024-10-24 21:34:12 +03:00
Silc Lizard (Tokage) Renew 4de79fed45 Determine break_loop_at_end 1 frame earlier using prediction by delta 2024-07-28 15:55:41 +09:00
Silc Lizard (Tokage) Renew 88e590c9d3 Add approx comparing methods to Animation, use them on time comparison 2024-07-24 01:18:06 +09:00
Silc Lizard (Tokage) Renew 7cdeac94d1 Fix StateMachine process when transition to end & optimize StringName 2024-07-13 17:32:31 +09: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
Rémi Verschelde f69fab5bfd Merge pull request #89575 from TokageItLab/move-loop-check-state
Move the line of infinity loop checking in AnimationStateMachine
2024-04-04 14:31:28 +02:00
Silc Lizard (Tokage) Renew 6dd410854c Rework AnimationNode process for retrieving the semantic time info 2024-03-20 22:52:26 +09:00
Silc Lizard (Tokage) Renew b8d555c74b Move the line of infinity loop checking in AnimationStateMachine 2024-03-17 00:51:36 +09:00
Micky cd2032a90b Optimise Object's get_argument_options 2024-02-29 18:00:54 +01:00
Micky e5c1da1c61 Add Autocompletion for AnimationNodeStateMachine & BlendTree 2024-01-06 17:03:46 +01:00
Silc Lizard (Tokage) Renew 5acf6b4ca6 Remove differences of the code between old AnimationTree and Mixer 2023-12-06 02:29:29 +09:00
Silc Lizard (Tokage) Renew 599f0dbf97 Fix GroupedStateMachine reset 2023-09-30 10:37:46 +09:00
Silc Lizard (Tokage) Renew 1b95827d3e Implement AnimationManager the base class of AnimationPlayer/Tree 2023-09-29 08:23:57 +09:00
A Thousand Ships a29416e332 [Scene,Main] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 12:53:06 +02:00
Silc Lizard (Tokage) Renew fc40ba21cd Fix infinity loop state can't break 2023-07-07 16:12:37 +09:00
Rémi Verschelde 3e6a731904 Merge pull request #76418 from reduz/method-bind-validated-call
Add ValidatedCall to MethodBind
2023-05-08 13:52:42 +02:00
Juan Linietsky 1c93606e47 Add ValidatedCall to MethodBind
* This should optimize GDScript function calling _enormously_.
* It also should simplify the GDScript VM considerably.

NOTE: GDExtension calling performance has most likely been affected until going via ptrcall is fixed.
2023-04-30 20:01:26 +02:00
Yuri Sizov 0562decf34 Unexpose AnimationTrackEditPlugin as not implemented 2023-04-25 11:38:17 +02:00
Silc Renew 991e6e90ba Rework StateMachine and nested StateMachine process
Breaking compatibility: If a StateMachineTransition is connected to a nested StateMachine prior to this, it is removed. Also, there was a feature to connect another StateMachine as the End of a StateMachine, which is also removed to avoid reference confusion. It was like a GoTo Statement, also further passing the same reference to the blending process, causing the blending calculation to break or causing some StateMachines to not work.
2023-04-18 19:06:51 +09:00
Silc Renew fff3ae1d89 Fix NodeTransition initialization and AnimationNode remapping method 2023-02-05 06:24:14 +09:00
Silc Renew 4525181c2d Make restart in NodeStateMachine / NodeTransition optional 2023-02-01 03:57:11 +09:00
SaracenOne 02a82c9531 Add indicator for state machine transition fade progress and position of state transitioning from. 2023-01-25 10:17:55 +00:00
Aaron Franke 2bc0bcbd26 PropertyUsage: Rename "DO_NOT_SHARE_ON_DUPLICATE" to "ALWAYS_DUPLICATE" 2023-01-24 16:05:07 -06:00
Rémi Verschelde 285e6ed9a5 Merge pull request #71840 from TokageItLab/fix-travel-reset
Fix weird behavior of teleporting to self-state when `reset_on_teleport` is `false` in StateMachine
2023-01-22 11:08:57 +01:00
Silc Renew a6d8afc90c Fix weird behavior of teleporting to self-state when reset is false 2023-01-22 16:16:48 +09:00
Silc Renew 8b04f58604 Expose fading_from_node from StateMachine 2023-01-22 15:50:53 +09:00
Silc Renew e480262c53 Allow AnimationNodes to restart when transitioning to the same state 2023-01-19 03:10:59 +09:00