Untitled
Anonymous
plain_text
02/24/2026 1:26 AM
1.3 KB
10
Indexable
extends Control
signal finished
@onready var text_label: RichTextLabel = $Center/Text
var _lines: Array[String] = []
var _index: int = 0
var _running: bool = false
var _at_end: bool = false
func _ready() -> void:
# Make sure this overlay never blocks clicks in other scenes
mouse_filter = Control.MOUSE_FILTER_IGNORE
visible = false
func start(lines: Array[String]) -> void:
_lines = lines
_index = 0
_running = true
_at_end = false
visible = true
text_label.text = ""
_show_current()
func _show_current() -> void:
if _lines.is_empty():
_running = false
_at_end = true
emit_signal("finished")
return
_index = clamp(_index, 0, _lines.size() - 1)
text_label.text = _lines[_index]
func _unhandled_input(event: InputEvent) -> void:
if not visible or not _running:
return
if event.is_action_pressed("interact"):
if _at_end:
_running = false
emit_signal("finished")
return
_index += 1
if _index >= _lines.size() - 1:
_index = _lines.size() - 1
_at_end = true
_show_current()Editor is loading...
Leave a Comment