package com.jmrapp.terralegion.game.item.crafting; import com.jmrapp.terralegion.game.item.ItemStack; import com.jmrapp.terralegion.game.item.inventory.Inventory; /** * Created by Jon on 10/15/15. */ public class CraftingRecipe { private ItemStack craftedItem; private ItemStack[] requiredItems; public CraftingRecipe(ItemStack craftedItem, ItemStack ... requiredItems) { this.craftedItem = craftedItem; this.requiredItems = requiredItems; } public ItemStack getCraftedItemStack() { return ItemStack.getItemStack(craftedItem); } public ItemStack[] getRequiredItems() { return requiredItems; } public boolean canCraft(Inventory inventory) { for (ItemStack itemStack : requiredItems) if (inventory.getTotalCount(itemStack.getItem()) < itemStack.getStack()) return false; return true; } /** * Removes all of the required items from the inventory. Assumes that the inventory contains all required items. * @param inventory The inventory to remove the required items from * @return The crafted ItemStack */ public ItemStack craft(Inventory inventory) { for (ItemStack itemStack : requiredItems) { inventory.removeItemStack(ItemStack.getItemStack(itemStack)); } return getCraftedItemStack(); } }