Add addons
This commit is contained in:
parent
2c862b2235
commit
3367bad24f
527 changed files with 36197 additions and 0 deletions
37
Sprout/addons/beehave/nodes/composites/sequence_star.gd
Normal file
37
Sprout/addons/beehave/nodes/composites/sequence_star.gd
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
## Sequence Star nodes will attempt to execute all of its children and report
|
||||
## `SUCCESS` in case all of the children report a `SUCCESS` status code.
|
||||
## If at least one child reports a `FAILURE` status code, this node will also
|
||||
## return `FAILURE`. This node will skip all previous child nodes that succeeded
|
||||
## prior, in case one of the children is currently in `RUNNING` state
|
||||
@tool
|
||||
class_name SequenceStarComposite extends Composite
|
||||
@icon("../../icons/sequence_reactive.svg")
|
||||
|
||||
var successful_index = 0
|
||||
|
||||
func tick(actor: Node, blackboard: Blackboard) -> int:
|
||||
for c in get_children():
|
||||
if c.get_index() < successful_index:
|
||||
continue
|
||||
|
||||
var response = c.tick(actor, blackboard)
|
||||
|
||||
if c is ConditionLeaf:
|
||||
blackboard.set_value("last_condition", c)
|
||||
blackboard.set_value("last_condition_status", response)
|
||||
|
||||
if response != SUCCESS:
|
||||
if response == FAILURE:
|
||||
successful_index = 0
|
||||
else: # RUNNING
|
||||
running_child = c
|
||||
return response
|
||||
else:
|
||||
successful_index += 1
|
||||
|
||||
if successful_index == get_child_count():
|
||||
successful_index = 0
|
||||
return SUCCESS
|
||||
else:
|
||||
successful_index = 0
|
||||
return FAILURE
|
||||
Loading…
Add table
Add a link
Reference in a new issue