This commit is contained in:
Gerard Gascón 2025-04-24 17:23:34 +02:00
commit b99855351d
434 changed files with 50357 additions and 0 deletions

View file

@ -0,0 +1,56 @@
extends Node
var global_variables = {}
@onready var text_box_scene = preload("res://prefabs/ink_template.tscn")
var text_box: Control
var is_dialog_active = false
var can_enter_dialogue = true
@export var start_time = 50
@export var decrease_speed = 0.5
signal dialogue_finished(time_to_add: int)
func start_dialog(lines: Resource):
if lines == null:
return
if is_dialog_active or !can_enter_dialogue:
return
_show_text_box()
text_box.variables = global_variables
text_box._setup_story(lines)
is_dialog_active = true
can_enter_dialogue = false
func _show_text_box():
text_box = text_box_scene.instantiate()
get_tree().root.add_child(text_box)
const DIALOGUE_COOLDOWN = .5
var dialogue_cooldown = 0
func _process(delta):
if (
Input.is_action_just_pressed("advance_dialog") &&
is_dialog_active
):
text_box._continue_story()
if !text_box.active:
_quit_dialogue()
dialogue_cooldown -= delta
if !is_dialog_active and dialogue_cooldown < 0:
can_enter_dialogue = true
func _quit_dialogue():
is_dialog_active = false
global_variables = text_box.variables
dialogue_finished.emit(global_variables["time_to_add"])
global_variables["time_to_add"] = 0
dialogue_cooldown = DIALOGUE_COOLDOWN
text_box.queue_free()