diff options
Diffstat (limited to 'addons/escoria-dialog-simple/states/dialog_interrupt.gd')
| -rw-r--r-- | addons/escoria-dialog-simple/states/dialog_interrupt.gd | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/addons/escoria-dialog-simple/states/dialog_interrupt.gd b/addons/escoria-dialog-simple/states/dialog_interrupt.gd new file mode 100644 index 0000000..83fb707 --- /dev/null +++ b/addons/escoria-dialog-simple/states/dialog_interrupt.gd @@ -0,0 +1,24 @@ +extends State + + +# 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 'interrupt'.") + + if _dialog_manager != null: + if not _dialog_manager.say_finished.is_connected(_on_say_finished): + _dialog_manager.say_finished.connect(_on_say_finished) + + _dialog_manager.interrupt() + + +func _on_say_finished() -> void: + escoria.logger.trace(self, "Dialog State Machine: 'interrupt' -> 'finish'") + finished.emit("finish") |
