81 lines
1.9 KiB
GDScript
81 lines
1.9 KiB
GDScript
extends Node
|
|
|
|
var rootUi:RootUI = null
|
|
var interactIndicator:InteractIndicator = null
|
|
|
|
# True whenever any dialogue resource is being processed by DialogueManager.
|
|
# Driven by DialogueManager.dialogue_started / dialogue_ended signals.
|
|
var dialogueActive:bool = false
|
|
|
|
# True only during a CONVERSATION-mode sequence. Blocks player movement.
|
|
var activeConversation:bool = false
|
|
|
|
func _ready() -> void:
|
|
DialogueManager.dialogue_started.connect(_onDialogueStarted)
|
|
DialogueManager.dialogue_ended.connect(_onDialogueEnded)
|
|
SCENE.sceneChanged.connect(_onSceneChanged)
|
|
|
|
func _onDialogueStarted(_resource:DialogueResource) -> void:
|
|
dialogueActive = true
|
|
|
|
func _onDialogueEnded(_resource:DialogueResource) -> void:
|
|
dialogueActive = false
|
|
|
|
func _onSceneChanged(_newScene:SceneSingleton.SceneType) -> void:
|
|
_cleanupDialogue()
|
|
|
|
func _cleanupDialogue() -> void:
|
|
if chatBoxContainer:
|
|
for child in chatBoxContainer.get_children():
|
|
if child is DialogueTextbox or child is DialogueChoiceBox:
|
|
child.queue_free()
|
|
activeConversation = false
|
|
dialogueActive = false
|
|
if INTERACT_INDICATOR:
|
|
INTERACT_INDICATOR.clear()
|
|
|
|
var INTERACT_INDICATOR:InteractIndicator:
|
|
get(): return interactIndicator
|
|
|
|
var chatBoxContainer:Control:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.chatBoxContainer
|
|
return null
|
|
|
|
var DEBUG_MENU:DebugMenu:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.debugMenu
|
|
return null
|
|
|
|
var GAME_MENU:GameMenu:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.gameMenu
|
|
return null
|
|
|
|
var PAUSE_MENU:PauseMenu:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.pauseMenu
|
|
return null
|
|
|
|
var QUIT_DIALOG:QuitConfirmDialog:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.quitConfirmDialog
|
|
return null
|
|
|
|
var MAIN_MENU_DIALOG:ConfirmDialog:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.mainMenuConfirmDialog
|
|
return null
|
|
|
|
var BACKDROP:ModalBackdrop:
|
|
get():
|
|
if rootUi:
|
|
return rootUi.modalBackdrop
|
|
return null
|