Started cutscene system

This commit is contained in:
2025-01-05 15:30:00 -06:00
parent e74878eb80
commit 0554f5719d
11 changed files with 135 additions and 7 deletions

View File

@@ -0,0 +1,39 @@
class_name Cutscene
const CutsceneEvent = preload("res://scripts/Cutscene/CutsceneEvent.gd");
var queue:Array[CutsceneEvent] = [];
func setupCutscene() -> void:
print_debug("Cutscene setup has not been overriden");
pass
func update(delta:float) -> void:
if queue.size() == 0:
return
var item = queue[0]
if !item.started:
item.start()
item.started = true
item.update(delta)
if item.isDone():
item.end()
queue.erase(item)
pass
func add(items:Array[CutsceneEvent]) -> void:
queue.append_array(items)
func clear() -> void:
if queue.size() == 0:
return
var item = queue[0]
if item.started:
item.end()
item.started = false
queue.clear()

View File

@@ -0,0 +1,18 @@
class_name CutsceneEvent
var started:bool = false;
func _init() -> void:
pass
func start() -> void:
pass
func update(delta:float) -> void:
pass
func isDone() -> bool:
return true
func end() -> void:
pass

View File

@@ -0,0 +1,9 @@
class_name CutscenePrintEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
var text:String = ""
func _init(text:String) -> void:
self.text = text
func start() -> void:
print(self.text)

View File

@@ -0,0 +1,12 @@
class_name CutsceneWaitEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
var wait:float = 0.0
func _init(wait:float) -> void:
self.wait = wait
func update(delta:float) -> void:
self.wait -= delta
func isDone() -> bool:
return self.wait <= 0.0

View File

@@ -0,0 +1,10 @@
class_name TestCutscene extends "res://scripts/Cutscene/Cutscene.gd"
const CutscenePrintEvent = preload("res://scripts/Cutscene/Event/CutscenePrintEvent.gd");
const CutsceneWaitEvent = preload("res://scripts/Cutscene/Event/CutsceneWaitEvent.gd");
func setupCutscene() -> void:
add([
CutsceneWaitEvent.new(4.0),
CutscenePrintEvent.new("Hello, World!")
]);
pass