using Assets.Scripts.Helpers;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using TMPro;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using static UnityEditor.Progress;
|
|
public enum ItemUIType
|
{
|
ItemNameDescription,
|
ItemDescription
|
}
|
|
public class ItemUIScript : MonoBehaviour
|
{
|
private InventorySlot inventorySlot;
|
|
public ItemUIType itemUIType;
|
|
public InventorySlot InventorySlot
|
{
|
get => inventorySlot;
|
set
|
{
|
inventorySlot = value;
|
switch (itemUIType)
|
{
|
case ItemUIType.ItemNameDescription:
|
gameObject.transform.Find("ItemName").GetComponent<TextMeshProUGUI>().text = inventorySlot.item.itemName;
|
gameObject.transform.Find("ItemQuantity").GetComponent<TextMeshProUGUI>().text = inventorySlot.quantity.ToString() + "x";
|
gameObject.transform.Find("ItemIcon").GetComponent<Image>().sprite = inventorySlot.item.itemIcon;
|
UIHelper.UpdateItemMaxCountText(gameObject.transform.Find("ItemQuantity").GetComponent<TextMeshProUGUI>(), inventorySlot.quantity, inventorySlot.item.maxStackSize);
|
break;
|
case ItemUIType.ItemDescription:
|
string description = $"<b>Description</b>\n{inventorySlot.item.itemDescription}\n";
|
|
GenerateableDatabase.Instance.TryGetGenerateables(inventorySlot.item.itemId, out var variants);
|
if (variants != null)
|
{
|
description += $"\n<b>Generation</b>";
|
foreach (var variant in variants)
|
{
|
description += $"\nLocation\tY: {variant.maxHeight} to {variant.minHeight}";
|
description += $"\n\tAmount: {variant.dropRange.ToRangeString()}";
|
}
|
}
|
gameObject.transform.Find("ItemTextDescription").GetComponent<TextMeshProUGUI>().text = description;
|
break;
|
}
|
}
|
}
|
private void OnDestroy()
|
{
|
gameObject.GetComponent<Button>()?.onClick?.RemoveAllListeners();
|
}
|
}
|