Description
Summary
Currently all elements of a sequence are initialized during the intitialization of the sequence. This can lead to weird bugs when people expect the creation of the action element to happen when the action starts it's execution.
Expected behavior
The action should be initiated directly before it's execution, no other actions should be executed between the intitialization and execution.
Current behavior
They are initialized when the sequence starts it's execution. This leads to issues in when the action initialization is used synonymous with action start. This happens e.g. in the implementation of the stand action.
Steps to Reproduce
- Create a sequence of actions that log the time since they where initialized and wait for a few seconds
- Execute the sequence
- Later actions show a long time since their initialization
Possible Solution
- Manually check for the first perform call with a flag and do the things that would normally happen during init there
- Or fix the code to lazy initialize only the currently active action before it's first performed
The first solution is easy as it requires no changes here, but people might have the same issue in the future as it is not intuitive. It also requires the rewrite of a bunch of actions
The second one changes a few things, but should not brake anything. I therefore prefere the second one.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status