class_name CreditsMenu extends Control @onready var creditTemplate: PackedScene = load("res://Scenes/UI/CreditTemplate.tscn") @onready var creditHolder: Control = $CreditHolder @export var animator: AnimationPlayer @export var spawnTimer: float = 2 @export var credits: Array[Credit] var timerTarget: float = 0 var timer: float = 0 var credIndex: int = 0 var running: bool = false # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: if (!running): return timer += delta if (timer >= timerTarget): timer -= timerTarget var credit: CreditTemplate = creditTemplate.instantiate() credit.creditInfo = credits[credIndex] creditHolder.add_child(credit) credit.position.y = 670 timerTarget = 5 + (2 + credits[credIndex].description.size() + credits[credIndex].links.size()) * spawnTimer credIndex += 1 if (credIndex >= credits.size()): credIndex = 0 func animFinished(s: String) -> void: if (s == "ShowCredits" && !self.visible): running = false credIndex = 0 timer = 0 timerTarget = 0 for child: Control in creditHolder.get_children(): if (!(child is CreditTemplate)): continue child.queue_free() elif (s == "ShowCredits" && self.visible): running = true func toggle() -> void: running = !running