You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've also encountered this. I found it because I have a CooldownDecorator with a SelectorComposite inside of it. Since after_run never gets called on the SelectorComposite after a SUCCESS, it thinks the successful child node is still running, and skips all the children before it.
I was able to work around this by subclassing CooldownDecorator and adding a call to after_run when the superclass's tick returns something other than RUNNING. This got things working as expected again.
It also seems that other decorators are not consistently calling before_run and after_run:
CooldownDecorator does not call after_run
DelayDecorator does not call after_run
LimiterDecorator does not call before_run
UntilFailDecorator does not call after_run
ReapeaterDecorator calls before_run one time, but calls after_run after each repetition that returns SUCCESS or FAILURE (I'm unsure which of these is correct, but I would expect them to match.)
Godot version: 4.2.1
To Reproduce
Steps to reproduce the behavior:
DelayDecorator
orCooldownDecorator
as its childExpected behavior
'I finished running' message printing out in the output every tick.
Actual behaviour
No message is being printed out.
The text was updated successfully, but these errors were encountered: