Files
Dawn-Godot/scripts/UI/QuestMenu.gd
2025-05-07 11:16:08 -05:00

47 lines
954 B
GDScript

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