using Handlers; using TMPro; using Types.Items; using UnityEngine; using UnityEngine.UI; namespace Components.UI { public class ItemComponent : MonoBehaviour { public ItemHandler itemHandler; public TMP_Text nameText; public Image itemIcon; public Text quantityText; public GameItem Item; private void Awake() { if (nameText == null) Debug.LogError("ItemName not found"); if (quantityText == null) Debug.LogError("qty not found"); if (itemIcon == null) Debug.LogError("Icon not found"); itemHandler = gameObject.AddComponent(); if (itemHandler == null) Debug.LogError("ItemHandler not found"); } public void SetQuantity(string qty) { // Find the Quantity child and get the TMP_Text component quantityText.text = qty; } public void SetName(string itemName) { // Find the ItemName child and get the TMP_Text component nameText.text = itemName; } public void SetIcon(Sprite icon) { // Find the Icon child and get the Image component itemIcon.sprite = icon; } public void SetItem(GameItem newItem) { // todo: Use the new Item to update the ItemName, Icon, qty Debug.Log("Setting item, name: " + newItem.ItemName); SetName(newItem.ItemName); SetIcon(newItem.Icon); SetQuantity(newItem.Quantity.ToString()); Item = newItem; } public void DeleteItem() { // need to delete the parent of this item Component Destroy(transform.gameObject); } public GameItem GetItem() { return Item; } public void SetQuantity(int qty) { // Find the Quantity child and get the TMP_Text component quantityText.text = qty.ToString(); } public ItemComponent Copy() { Debug.Log("Copying item"); var newItem = gameObject.AddComponent(); newItem.SetItem(Item); return newItem; } public void AddQuantity(int quantityToAdd) { // Add the quantity to the current quantity Item.Quantity += quantityToAdd; SetQuantity(Item.Quantity); } } }