public bool CheckMaterials()
 {
     foreach (BuildingMaterial material in Building.Materials)
     {
         InventoryItemStack boxStack = Box.FindItemStack(material.ContainedItem);
         if (boxStack == null)
         {
             return(false);
         }
         if (boxStack.Amount < material.TargetAmount)
         {
             return(false);
         }
     }
     return(true);
 }
Пример #2
0
    //Check if inventory items have changed since last open
    public void AdjustAmounts()
    {
        foreach (StationItem item in ChosenItems)
        {
            StorageObject      Inventory = GameManager.Instance.Player.GetComponent <PlayerInventory>();
            InventoryItemStack stack     = Inventory.FindItemStack(item.ContainedItem);
            int itemAmount = Inventory.GetItemAmount(item.ContainedItem);

            if (itemAmount < 1)
            {
                RemoveItem(item.ContainedItem);
                return;
            }
            if (item.Amount > itemAmount)
            {
                int amt = item.Amount - itemAmount;
                amt = Mathf.Abs(amt);
                for (int i = 0; i < amt; i++)
                {
                    DecreaseIngredientAmount(item);
                }
            }
        }
    }
    void CheckItems(StorageObject pInventory)
    {
        if (pInventory == null)
        {
            return;
        }
        if (pInventory.UniqueID == InventoryID)
        {
            foreach (ContainedItem wantedTtem in WantedItems)
            {
                InventoryItemStack stack = pInventory.FindItemStack(wantedTtem.Item);
                if (stack == null)
                {
                    return;
                }
                else if (stack.Amount < wantedTtem.Amount)
                {
                    return;
                }
            }

            Event.Invoke();
        }
    }