Пример #1
0
    public void ConsumeWood(int amount)
    {
        var stockpilesWithWood = _worldPlane.GetBlocksWithOccupants()
                                 .Select(block => block.GetOccupant().GetComponent <StockpileSpawn>())
                                 .Where(component => component != null && component.HasWood());

        int remainingAmount = amount;

        foreach (var stockpile in stockpilesWithWood)
        {
            var toConsume = Mathf.Min(remainingAmount, stockpile.StoredCount());
            remainingAmount -= toConsume;

            stockpile.Consume(toConsume);

            if (remainingAmount == 0)
            {
                return;
            }
        }
    }