public bool Craft(PlayerStatus inventory, BlockType blockType) { var craft = _craftingEntries.Find(s => s.CraftedItem.Type == blockType); foreach (var item in craft.NeededItems) { if (item.Count > inventory.Inventory.FindAll(s => s.Type == item.Type).Select(s => s.Count).Sum()) { return(false); } } foreach (var item in craft.NeededItems) { var requiredCount = craft.NeededItems.First(s => s.Type == item.Type).Count; var materil = inventory.Inventory.FindAll(s => s.Type == item.Type); if (materil.First().Count < requiredCount) { requiredCount -= materil.First().Count; inventory.Inventory.Remove(materil.First()); } inventory.Decrement(item.Type, requiredCount); } inventory.AddElement(craft.CraftedItem.Duplicate()); return(true); }
private void CheckMinPower(Item blockType) { if (blockToBreak.MinimumPower != 0) { if (blockToBreak.tool != blockType.TooltType || blockToBreak.MinimumPower > blockType.Power) { return; } } status.AddElement(new Item(1, blockToBreak.Id)); }