2022-10-22 18:04:21 +02:00
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
2022-11-27 21:28:55 +01:00
|
|
|
using System.Linq;
|
2022-10-22 18:04:21 +02:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
public class TaskUIManager : UIBaseManager<Task>
|
|
|
|
{
|
|
|
|
public const string ITEM_LOCALIZATION = "UiPanels/";
|
|
|
|
public const string PANEL_NAME = "TaskPanel";
|
|
|
|
|
2022-11-27 21:28:55 +01:00
|
|
|
public static new TaskUIManager Instance { get; protected set; }
|
|
|
|
|
|
|
|
public void Awake()
|
|
|
|
{
|
|
|
|
if (Instance == null)
|
|
|
|
{
|
|
|
|
Instance = this;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Destroy(gameObject);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-10-22 18:04:21 +02:00
|
|
|
public override void SetupPanel()
|
|
|
|
{
|
|
|
|
base.SetupPanel();
|
|
|
|
|
|
|
|
// setup models list
|
|
|
|
DynamicPanel.GetComponent<TaskPanelController>().SetUp(Elements);
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void UpdateList()
|
2022-11-27 21:28:55 +01:00
|
|
|
{
|
|
|
|
// condition for situation where eg player want to pick up item when inventory / equipment is closed
|
|
|
|
|
|
|
|
if (DynamicPanel)
|
|
|
|
DynamicPanel.GetComponent<TaskPanelController>().BuildPanelContent(Elements);
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<Task> FindTaskByName(string taskTitle)
|
|
|
|
{
|
|
|
|
return Elements.Where(task => task.Title == taskTitle).ToList();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void RemoveByName(string name)
|
2022-10-22 18:04:21 +02:00
|
|
|
{
|
2022-11-27 21:28:55 +01:00
|
|
|
Elements.RemoveAll(task => task.Title == name);
|
|
|
|
|
|
|
|
UpdateList();
|
2022-10-22 18:04:21 +02:00
|
|
|
}
|
|
|
|
|
2022-11-27 21:28:55 +01:00
|
|
|
|
2022-10-22 18:04:21 +02:00
|
|
|
protected override GameObject GetTemplatePanel()
|
|
|
|
{
|
|
|
|
// Resources = default path - Asset/Resources ... .obj
|
|
|
|
return Resources.Load(ITEM_LOCALIZATION + PANEL_NAME) as GameObject;
|
|
|
|
}
|
|
|
|
}
|