extends Node var states: Array[int] = [] var curr_state := false var last_change: int = 0 var start_time := 0 func reset() -> void: last_change = Time.get_ticks_msec() start_time = last_change states = [] func set_state(state: bool) -> void: if state == curr_state: return curr_state = state var now := Time.get_ticks_msec() states.push_front(now - last_change) last_change = now