Scriptum/Assets/Scripts/REFACTORING/Application/UI/Inventory/InventoryUIManager.cs
2022-12-27 15:24:26 +01:00

100 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class InventoryUIManager : UIWarehouseManager
{
public static new InventoryUIManager Instance { get; protected set; }
public override int SLOTS_NUMBER { get { return 42; } }
public const string ITEM_LOCALIZATION = "UiPanels/";
public const string PANEL_NAME = "InventoryPanel";
public override void Awake()
{
if (Instance == null)
{
Instance = this;
}
else
{
Debug.Log(Instance);
Debug.Log("destroiy inventory UI");
Destroy(gameObject);
}
}
/* public override void UpdateList()
{
// TODO something like rebuild associated panel content
// depending on which class we use it mayu be Inventory / Chest / Shop Panel Controller
DynamicPanel.GetComponent<InventoryPanelController>(); //.Refresh() -- rebuild content
}*/
public override void SetupPanel()
{
base.SetupPanel();
// setup models list
DynamicPanel.GetComponent<InventoryPanelController>().SetUp(Elements);
}
public override void UpdateList()
{
// condition for situation where eg player want to pick up item when inventory / equipment is closed
if(DynamicPanel)
DynamicPanel.GetComponent<InventoryPanelController>().BuildPanelContent(Elements);
}
protected override GameObject GetTemplatePanel()
{
// Resources = default path - Asset/Resources ... .obj
return Resources.Load(ITEM_LOCALIZATION + PANEL_NAME) as GameObject;
}
#region List API
public override void RemoveByPosition(int keyPosition)
{
base.RemoveByPosition(keyPosition);
UpdateList();
}
public override int RemoveByItemId(int itemId)
{
var result = base.RemoveByItemId(itemId);
UpdateList();
return result;
}
public override int RemoveOneByItemName(string itemName)
{
var result = base.RemoveOneByItemName(itemName);
UpdateList();
return result;
}
public override int RemoveByItemName(string itemName)
{
var result = base.RemoveByItemName(itemName);
UpdateList();
return result;
}
public override void RemoveAll()
{
Elements.Clear();
UpdateList();
}
#endregion
}