28 lines
534 B
GDScript
28 lines
534 B
GDScript
extends Node
|
|
|
|
var predicted_tick := 0
|
|
var delta_counter := 0.0
|
|
var ticking := false
|
|
|
|
signal next_tick
|
|
|
|
func _process(delta) -> void:
|
|
if ticking == true:
|
|
predict_tick(delta)
|
|
|
|
func predict_tick(delta) -> void:
|
|
delta_counter += delta
|
|
|
|
if delta_counter >= Globals.TICK_TIME:
|
|
predicted_tick += 1
|
|
delta_counter -= Globals.TICK_TIME
|
|
next_tick.emit()
|
|
|
|
func set_tick_timer_state(new_tick_val) -> void:
|
|
predicted_tick = new_tick_val
|
|
delta_counter = 0
|
|
|
|
func start_ticking():
|
|
predicted_tick = 0
|
|
delta_counter = 0
|
|
ticking = true
|