init
This commit is contained in:
commit
b99855351d
434 changed files with 50357 additions and 0 deletions
56
scripts/singletons/dialogue_manager.gd
Normal file
56
scripts/singletons/dialogue_manager.gd
Normal 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()
|
Loading…
Add table
Add a link
Reference in a new issue