class_name QuestMenu extends Panel @export var questList:ItemList @export var questName:Label @export var closeButton:Button func _ready() -> void: hide() # Setup quests questList.clear() for questKey in QUEST.quests: var q = QUEST.quests[questKey] questList.add_item(q.questName) # Connect signals questList.item_selected.connect(_onQuestSelected) closeButton.pressed.connect(_onCloseClicked) func _onQuestSelected(index:int) -> void: setQuest(index) pass func setQuest(questKey = null): if questKey == null: questList.deselect_all() return assert(QUEST.quests.has(questKey), "Quest with key %s does not exist" % questKey) var quest = QUEST.quests[questKey]; questList.select(questKey) questName.text = quest.questName pass func _onCloseClicked() -> void: self.close() func open(questKey = null) -> void: setQuest(questKey) self.show() func close() -> void: self.hide() func isOpen() -> bool: return self.visible