30 lines
853 B
GDScript
30 lines
853 B
GDScript
extends "res://addons/escoria-dialog-simple/patterns/state_machine/state.gd"
|
|
|
|
|
|
# Reference to the currently playing dialog manager
|
|
var _dialog_manager: ESCDialogManager = null
|
|
|
|
|
|
func initialize(dialog_manager: ESCDialogManager) -> void:
|
|
_dialog_manager = dialog_manager
|
|
|
|
|
|
func enter():
|
|
escoria.logger.trace(self, "Dialog State Machine: Entered 'say_finish'.")
|
|
|
|
if escoria.inputs_manager.input_mode != \
|
|
escoria.inputs_manager.INPUT_NONE and \
|
|
_dialog_manager != null:
|
|
|
|
if not _dialog_manager.is_connected("say_visible", self, "_on_say_visible"):
|
|
_dialog_manager.connect("say_visible", self, "_on_say_visible")
|
|
|
|
_dialog_manager.finish()
|
|
else:
|
|
escoria.logger.error(self, "Illegal state.")
|
|
|
|
|
|
func _on_say_visible() -> void:
|
|
escoria.logger.trace(self, "Dialog State Machine: 'say_finish' -> 'visible'")
|
|
emit_signal("finished", "visible")
|