Files
Babushka/scripts/CSharp/Common/Quest/QuestListUi.cs
T

49 lines
1.1 KiB
C#
Raw Normal View History

2025-07-07 04:40:40 +02:00
using Godot;
using System;
using Babushka.scripts.CSharp.Common.Quest;
public partial class QuestListUi : VBoxContainer
{
[Export]
private PackedScene _questListItemPrefab;
public override void _EnterTree()
{
UpdateList();
2025-07-07 04:41:03 +02:00
QuestManager.Instance!.QuestsChanged += UpdateList;
}
public override void _ExitTree()
{
QuestManager.Instance!.QuestsChanged -= UpdateList;
2025-07-07 04:40:40 +02:00
}
public override void _Ready()
{
UpdateList();
}
public void UpdateList()
{
// delete children
foreach (Node child in GetChildren())
{
RemoveChild(child);
child.QueueFree();
}
// recreate children
2025-07-07 04:41:03 +02:00
var activeQuests = QuestManager.Instance.GetVisibleQuests();
2025-07-07 04:40:40 +02:00
foreach (var questPair in activeQuests)
{
var questResource = questPair.Key;
var questStatus = questPair.Value;
var questListItem = _questListItemPrefab.Instantiate<QuestListItemUi>();
questListItem.UpdateButton(questResource);
AddChild(questListItem);
}
}
}