This commit is contained in:
2025-06-30 23:21:33 -05:00
parent 342d6745d1
commit 0c31e684e3
7 changed files with 73 additions and 5 deletions

View File

@@ -1,4 +1,31 @@
class_name Cutscene extends Node
var items:Array[CutsceneItem] = []
var itemIndex:int = 0
func _enter_tree() -> void:
# Get children
var children = get_children()
for child in children:
if !(child is CutsceneItem):
continue
items.append(child)
pass
func _exit_tree() -> void:
items.clear()
pass
func start() -> void:
pass
itemIndex = -1
if items.size() == 0:
return
nextItem()
func nextItem() -> void:
itemIndex += 1
if itemIndex >= items.size():
return
var item = items[itemIndex]
item.start()

View File

@@ -0,0 +1,5 @@
class_name CutsceneItem extends Node
func start() -> void:
# This method should be overridden by subclasses
pass

View File

@@ -0,0 +1 @@
uid://dbjcrhunrugyb

View File

@@ -0,0 +1,23 @@
class_name CutsceneText extends CutsceneItem
@export_multiline var interactTexts:Array[String] = []
var nextTextIndex:int = 0
func _enter_tree() -> void:
pass
func _exit_tree() -> void:
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
func start() -> void:
nextTextIndex = 0
UI.TEXTBOX.setText(interactTexts[nextTextIndex])
UI.TEXTBOX.textboxClosing.connect(onTextboxClosing)
func onTextboxClosing() -> void:
nextTextIndex += 1
if nextTextIndex < interactTexts.size():
UI.TEXTBOX.setText(interactTexts[nextTextIndex])
else:
UI.TEXTBOX.textboxClosing.disconnect(onTextboxClosing)
UI.TEXTBOX.setText("")

View File

@@ -0,0 +1 @@
uid://8updtj1mctra

View File

@@ -31,11 +31,16 @@ func _on_interact() -> void:
nextTextIndex = 0
match interactType:
InteractType.TEXTBOX:
if interactTexts.size() == 0:
return
UI.TEXTBOX.setText(interactTexts[nextTextIndex])
UI.TEXTBOX.textboxClosing.connect(onTextboxClosing)
return
InteractType.CUTSCENE:
if cutscene:
cutscene.start()
return
_:
return