-
Notifications
You must be signed in to change notification settings - Fork 744
Description
Hello, we are currently using the behaviortree library version 3.5.
When we wanted to upgrade to version 4.0.2 we encountered some interface changes.
Most of these were quickly fixed, however there is one bigger problem.
Namely the fix for preemptable nodes (https://www.behaviortree.dev/migration/#preemptable-nodes-and-treetickroot) and how they stop the flow of our trees.
We are using behavior trees in an event driven way, meaning they get ticked when an event occurs (which may not be that often).
For these trees to remain in a RUNNING
state for longer periods is also a valid.
Our trees were created with the curent design of a SequenceNode
in mind, where a child returning SUCCESS
will tick the next child.
However with the changes for preemptable nodes, this flow is stopped.
This mean the behaviortree API as it is now does not allow us to nicely tick our trees, since tickOnce()
does not call all children in the sequence.
And we do not know before hand how often we should call the tickOnce()
.
And tickWhileRunning()
will call the tree too often on 1 event.
Is there a way to get the old behavior back?