Files
Blockline/scripts/hit_stop.gd
T

22 lines
597 B
GDScript

class_name HitStop
extends Node
const DURATION := 0.03
var running := false
var previous_scale := 1.0
var deadline_usec := 0
func _ready() -> void:
process_mode = Node.PROCESS_MODE_ALWAYS
func trigger() -> void:
if running: return
previous_scale = Engine.time_scale
running = true
deadline_usec = Time.get_ticks_usec() + 30000
Engine.time_scale = 0.05
func _process(_dt: float) -> void:
if running and Time.get_ticks_usec() >= deadline_usec: restore()
func restore() -> void:
if not running: return
Engine.time_scale = previous_scale
running = false
func _exit_tree() -> void: restore()