public void RemoveCraftable(Item item) { if (item.IsStackable()) { Item itemInInventory = null; foreach (Item inventoryItem in itemList) { if (inventoryItem.itemType == item.itemType) { inventoryItem.amount -= item.amount; itemInInventory = inventoryItem; } } if (itemInInventory != null && itemInInventory.amount <= 0) { itemList.Remove(itemInInventory); } } else { itemList.Remove(item); } OnCraftableListChanged?.Invoke(this, EventArgs.Empty); pCon.CheckGear(); }
public void AddCraftable(Item item) { if (item.IsStackable()) { bool itemAlreadyInInventory = false; foreach (Item inventoryItem in itemList) { if (inventoryItem.itemType == item.itemType) { inventoryItem.amount += item.amount; itemAlreadyInInventory = true; } } if (!itemAlreadyInInventory) { itemList.Add(item); } } else { itemList.Add(item); } OnCraftableListChanged?.Invoke(this, EventArgs.Empty); pCon.CheckGear(); }