Files
Dawn-Godot/scripts/Cutscene/Event/CutsceneWhileEvent.gd
2025-05-01 19:08:20 -05:00

44 lines
852 B
GDScript

class_name CutsceneWhileEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
var events:Array[CutsceneEvent] = []
var callback:Callable
var current:int = 0
func _init(callback:Callable, evt:Array[CutsceneEvent]) -> void:
super._init();
self.events = evt;
self.callback = callback;
func shouldLoop() -> bool:
return self.callback.call(self)
func update(delta:float) -> void:
if self.current >= self.events.size():
return;
var evt = self.events[self.current]
if !evt.started:
evt.start()
evt.started = true
evt.update(delta)
if evt.isDone():
evt.end()
self.current += 1
if self.current < self.events.size():
return
if !self.shouldLoop():
return
self.current = 0
for event in self.events:
event.reset()
func isDone() -> bool:
if self.shouldLoop():
return false;
return self.current >= self.events.size();