public void AddItemToInventory(Item newItem, ChestContents chest, int itemIndex)
    {
        bool breakLoop            = false;
        bool sucessfullyAddedItem = false;

        for (int i = 0; i < inventory.Count; i++)
        {
            if (inventory[i] == null)
            {
                switch (newItem.itemType)
                {
                case Item.ItemType.Consumable:
                    Consumable inventoryConsumable = Instantiate <Consumable>((Consumable)(newItem));
                    Consumable tempConsumable      = (Consumable)newItem;
                    tempConsumable.CopyTo(out inventoryConsumable);
                    inventory[i]              = tempConsumable;
                    breakLoop                 = true;
                    sucessfullyAddedItem      = true;
                    chest.contents[itemIndex] = null;
                    break;

                case Item.ItemType.Armor:
                    break;

                default:
                    break;
                }
            }
            else if (inventory[i].itemName == newItem.itemName)
            {
                if (itemNumberInStack[i] <= inventory[i].stackLimit - chest.itemNumberInStack[itemIndex])
                {
                    itemNumberInStack[i] += chest.itemNumberInStack[itemIndex];
                    breakLoop             = true;
                    sucessfullyAddedItem  = true;
                }
                else
                {
                    while (itemNumberInStack[i] < inventory[i].stackLimit)
                    {
                        itemNumberInStack[i]++;
                        chest.itemNumberInStack[itemIndex]--;
                        breakLoop = true;
                    }
                }
            }
            if (breakLoop)
            {
                break;
            }
        }
        if (!sucessfullyAddedItem)
        {
            inventory.Add(newItem);
            itemNumberInStack.Add(chest.itemNumberInStack[itemIndex]);
            chest.RemoveItem(itemIndex);
        }
        AutoSortInventory();
    }