@@ -22,15 +22,21 @@ class_name BTSequence
22
22
# Variables privées
23
23
# ------------------------------------------
24
24
25
+ var _running_child_index :int = - 1
26
+
25
27
# ------------------------------------------
26
28
# Fonctions Godot redéfinies
27
29
# ------------------------------------------
28
30
29
31
func tick (actor :Node , blackboard :BTBlackboard ) -> int :
30
- for child in _children :
31
- var result :int = child ._execute (actor , blackboard )
32
- if result != BTTickResult .SUCCESS :
33
- return result
32
+ for child_index in _children .size ():
33
+ if not save_progression or child_index >= _running_child_index :
34
+ var child :BTNode = _children [child_index ]
35
+ var result :int = child ._execute (actor , blackboard )
36
+ if result != BTTickResult .SUCCESS :
37
+ if save_progression and result == BTTickResult .RUNNING :
38
+ _running_child_index = child_index
39
+ return result
34
40
35
41
return BTTickResult .SUCCESS
36
42
@@ -41,3 +47,9 @@ func tick(actor:Node, blackboard:BTBlackboard) -> int:
41
47
# ------------------------------------------
42
48
# Fonctions privées
43
49
# ------------------------------------------
50
+
51
+ func start (blackboard :BTBlackboard ) -> void :
52
+ _running_child_index = 0
53
+
54
+ func stop (blackboard :BTBlackboard ) -> void :
55
+ _running_child_index = - 1
0 commit comments