@@ -15,37 +15,38 @@ class_name DelayDecorator
1515
1616func tick (actor : Node , blackboard : Blackboard ) -> int :
1717 var c : BeehaveNode = get_child (0 )
18- var total_time : float = blackboard .get_value (cache_key , 0.0 , str (actor .get_instance_id ()))
18+ var actor_id := str (actor .get_instance_id ())
19+ var total_time : float = blackboard .get_value (cache_key , 0.0 , actor_id )
1920 var response : int
2021
21- if c != running_child :
22- c .before_run (actor , blackboard )
23-
2422 if total_time < wait_time :
2523 response = RUNNING
2624
2725 total_time += get_physics_process_delta_time ()
28- blackboard .set_value (cache_key , total_time , str ( actor . get_instance_id ()) )
26+ blackboard .set_value (cache_key , total_time , actor_id )
2927
3028 if can_send_message (blackboard ):
3129 BeehaveDebuggerMessages .process_tick (self .get_instance_id (), response , blackboard .get_debug_data ())
3230 else :
31+ if c != running_child :
32+ c .before_run (actor , blackboard )
33+
3334 response = c ._safe_tick (actor , blackboard )
3435
3536 if can_send_message (blackboard ):
3637 BeehaveDebuggerMessages .process_tick (c .get_instance_id (), response , blackboard .get_debug_data ())
3738
3839 if c is ConditionLeaf :
39- blackboard .set_value ("last_condition" , c , str ( actor . get_instance_id ()) )
40- blackboard .set_value ("last_condition_status" , response , str ( actor . get_instance_id ()) )
40+ blackboard .set_value ("last_condition" , c , actor_id )
41+ blackboard .set_value ("last_condition_status" , response , actor_id )
4142
4243 if response == RUNNING :
4344 running_child = c
4445 if c is ActionLeaf :
45- blackboard .set_value ("running_action" , c , str ( actor . get_instance_id ()) )
46+ blackboard .set_value ("running_action" , c , actor_id )
4647 else :
4748 c .after_run (actor , blackboard )
48- blackboard .set_value (cache_key , 0.0 , str ( actor . get_instance_id ()) )
49+ blackboard .set_value (cache_key , 0.0 , actor_id )
4950
5051 return response
5152
0 commit comments