package openblocks.common.recipe;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemEnderPearl;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import openblocks.OpenBlocks;
import openblocks.common.item.ItemGoldenEye;
public class GoldenEyeRechargeRecipe extends ShapelessOreRecipe {
private static final int PEARL_RECHARGE = 10;
public GoldenEyeRechargeRecipe() {
super(new ItemStack(OpenBlocks.Items.goldenEye, 1, ItemGoldenEye.MAX_DAMAGE - PEARL_RECHARGE), new ItemStack(OpenBlocks.Items.goldenEye, 1, ItemGoldenEye.MAX_DAMAGE), Items.ender_pearl);
}
@Override
public boolean matches(InventoryCrafting inventory, World world) {
ItemStack golden = null;
int enderCount = 0;
for (int i = 0; i < inventory.getSizeInventory(); i++) {
ItemStack stack = inventory.getStackInSlot(i);
if (stack == null) continue;
Item item = stack.getItem();
if (item instanceof ItemGoldenEye) golden = stack;
else if (item instanceof ItemEnderPearl) enderCount++;
else return false;
}
return golden != null && enderCount > 0 && golden.getItemDamage() - enderCount * PEARL_RECHARGE >= 0;
}
@Override
public ItemStack getCraftingResult(InventoryCrafting inventory) {
ItemStack golden = null;
int enderCount = 0;
for (int i = 0; i < inventory.getSizeInventory(); i++) {
ItemStack stack = inventory.getStackInSlot(i);
if (stack == null) continue;
Item item = stack.getItem();
if (item instanceof ItemGoldenEye) golden = stack;
else if (item instanceof ItemEnderPearl) enderCount++;
}
if (golden == null) return null;
ItemStack result = golden.copy();
result.setItemDamage(golden.getItemDamage() - enderCount * PEARL_RECHARGE);
return result;
}
}