73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ItemComponent : MonoBehaviour
|
|
{
|
|
public ItemHandler itemHandler;
|
|
|
|
public GameItem item;
|
|
public TMP_Text nameText;
|
|
public Image itemIcon;
|
|
public Text quantityText;
|
|
|
|
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<ItemHandler>();
|
|
|
|
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 name)
|
|
{
|
|
// Find the ItemName child and get the TMP_Text component
|
|
nameText.text = name;
|
|
}
|
|
|
|
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);
|
|
item = newItem;
|
|
}
|
|
|
|
public void DeleteItem()
|
|
{
|
|
// need to delete the parent of this item Component
|
|
Destroy(transform.gameObject);
|
|
}
|
|
|
|
public GameItem GetItem()
|
|
{
|
|
return item;
|
|
}
|
|
|
|
public ItemComponent Copy()
|
|
{
|
|
Debug.Log("Copying item");
|
|
var newItem = gameObject.AddComponent<ItemComponent>();
|
|
newItem.SetItem(item);
|
|
return newItem;
|
|
}
|
|
} |