speedin-santa/Scripts/UI/CreditsMenu.gd
2024-12-18 16:35:26 -05:00

43 lines
1.3 KiB
GDScript

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