Files
SimUL/Assets/Scripts/UIElements/ContainerItemsUI.cs
T
2023-12-18 10:50:05 +02:00

66 lines
1.7 KiB
C#

using UnityEngine;
public class ContainerItemsUI : MonoBehaviour
{
[SerializeField]
private Transform _container;
[SerializeField]
private Transform _itemsList;
[SerializeField]
private Transform _itemUITemplate;
private ContainerItem _playerContainer;
private void Awake()
{
_container.gameObject.SetActive(false);
}
private void Start()
{
Player.Instance.OnContainerChanged += OnContainerChanged;
}
private void OnContainerChanged(object sender, bool e)
{
if (e)
{
_container.gameObject.SetActive(true);
_playerContainer = Player.Instance.GetContainerItem();
_playerContainer.OnItemsChange += OnItemsChange;
}
else
{
_container.gameObject.SetActive(false);
_playerContainer.OnItemsChange -= OnItemsChange;
_playerContainer = null;
}
}
private void OnItemsChange(object sender, System.EventArgs e)
{
if (_playerContainer.IsSalebleItems())
{
ClearObject();
var playerItemsList = _playerContainer.GetItems();
for (int count = 0; count < playerItemsList.Count; count++)
{
var itemUI = Instantiate(_itemUITemplate, _itemsList);
itemUI.gameObject.SetActive(true);
itemUI.GetComponent<ItemDescriptionUI>().SetItem((SellableItemSO)playerItemsList[count]);
}
}
}
private void ClearObject()
{
foreach (Transform child in _itemsList)
{
if (child == _itemUITemplate) continue;
Destroy(child.gameObject);
}
}
}