Skip to content

Commit 99acec1

Browse files
authored
updated CooldownDecorator to use Time singleton instead of physics pr… (#408)
updated CooldownDecorator to use Time singleton instead of physics process delta time
1 parent c0bb1eb commit 99acec1

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

addons/beehave/nodes/decorators/cooldown.gd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ class_name CooldownDecorator
1616

1717
func tick(actor: Node, blackboard: Blackboard) -> int:
1818
var c: BeehaveNode = get_child(0)
19-
var remaining_time: float = blackboard.get_value(cache_key, 0.0, str(actor.get_instance_id()))
19+
var end_time: float = blackboard.get_value(cache_key, 0.0, str(actor.get_instance_id()))
20+
var current_time = Time.get_ticks_msec()
2021
var response: int
2122

2223
if c != running_child:
2324
c.before_run(actor, blackboard)
2425

25-
if remaining_time > 0:
26+
if current_time < end_time:
2627
response = FAILURE
2728

28-
remaining_time -= get_physics_process_delta_time()
29-
blackboard.set_value(cache_key, remaining_time, str(actor.get_instance_id()))
3029
if can_send_message(blackboard):
3130
BeehaveDebuggerMessages.process_tick(self.get_instance_id(), response, blackboard.get_debug_data())
3231
else:
@@ -44,12 +43,13 @@ func tick(actor: Node, blackboard: Blackboard) -> int:
4443
if c is ActionLeaf:
4544
blackboard.set_value("running_action", c, str(actor.get_instance_id()))
4645
else:
46+
end_time = Time.get_ticks_msec() + wait_time * 1000
4747
c.after_run(actor, blackboard)
48-
blackboard.set_value(cache_key, wait_time, str(actor.get_instance_id()))
48+
blackboard.set_value(cache_key, end_time, str(actor.get_instance_id()))
4949

5050
return response
5151

5252
func interrupt(actor: Node, blackboard: Blackboard) -> void:
5353
# Reset the cooldown when the branch changes
5454
blackboard.set_value(cache_key, 0.0, str(actor.get_instance_id()))
55-
super.interrupt(actor, blackboard)
55+
super.interrupt(actor, blackboard)

0 commit comments

Comments
 (0)