public virtual void AddItem(Item item, int amount = 1, int slot = 0) { if (!ItemDatabase.ValidID(item.id)) { return; } for (int i = slot; i < slots.Count; i++) { if (items[i].id == item.id) { ItemIcon itemObj = slots[i].GetComponentInChildren <ItemIcon>(); itemObj.amount += amount; itemObj.Refresh(); return; } } for (int i = slot; i < slots.Count; i++) { if (items[i].id == 0) { items[i] = item; GameObject itemObj = Instantiate(itemIconPrefab, slots[i].transform); itemObj.GetComponent <ItemIcon>().Initialize(this, item, amount, i); return; } } InventoryChanged(); }
public virtual void RemoveItem(Item item, int amount = 1, int slot = 0) { if (!ItemDatabase.ValidID(item.id)) { return; } for (int i = slot; i < slots.Count; i++) { if (items[i].id == item.id) { ItemIcon itemObj = slots[i].GetComponentInChildren <ItemIcon>(); itemObj.amount -= amount; if (itemObj.amount <= 0) { Destroy(itemObj.gameObject); items[i].id = 0; } itemObj.Refresh(); return; } } InventoryChanged(); }