package net.minecraft.item.crafting; import com.google.common.collect.Lists; import java.util.ArrayList; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class RecipeRepairItem implements IRecipe { private static final String __OBFID = "CL_00002156"; /** * Used to check if a recipe matches current crafting inventory */ public boolean matches(InventoryCrafting p_77569_1_, World worldIn) { ArrayList var3 = Lists.newArrayList(); for (int var4 = 0; var4 < p_77569_1_.getSizeInventory(); ++var4) { ItemStack var5 = p_77569_1_.getStackInSlot(var4); if (var5 != null) { var3.add(var5); if (var3.size() > 1) { ItemStack var6 = (ItemStack)var3.get(0); if (var5.getItem() != var6.getItem() || var6.stackSize != 1 || var5.stackSize != 1 || !var6.getItem().isDamageable()) { return false; } } } } return var3.size() == 2; } /** * Returns an Item that is the result of this recipe */ public ItemStack getCraftingResult(InventoryCrafting p_77572_1_) { ArrayList var2 = Lists.newArrayList(); ItemStack var4; for (int var3 = 0; var3 < p_77572_1_.getSizeInventory(); ++var3) { var4 = p_77572_1_.getStackInSlot(var3); if (var4 != null) { var2.add(var4); if (var2.size() > 1) { ItemStack var5 = (ItemStack)var2.get(0); if (var4.getItem() != var5.getItem() || var5.stackSize != 1 || var4.stackSize != 1 || !var5.getItem().isDamageable()) { return null; } } } } if (var2.size() == 2) { ItemStack var10 = (ItemStack)var2.get(0); var4 = (ItemStack)var2.get(1); if (var10.getItem() == var4.getItem() && var10.stackSize == 1 && var4.stackSize == 1 && var10.getItem().isDamageable()) { Item var11 = var10.getItem(); int var6 = var11.getMaxDamage() - var10.getItemDamage(); int var7 = var11.getMaxDamage() - var4.getItemDamage(); int var8 = var6 + var7 + var11.getMaxDamage() * 5 / 100; int var9 = var11.getMaxDamage() - var8; if (var9 < 0) { var9 = 0; } return new ItemStack(var10.getItem(), 1, var9); } } return null; } /** * Returns the size of the recipe area */ public int getRecipeSize() { return 4; } public ItemStack getRecipeOutput() { return null; } public ItemStack[] func_179532_b(InventoryCrafting p_179532_1_) { ItemStack[] var2 = new ItemStack[p_179532_1_.getSizeInventory()]; for (int var3 = 0; var3 < var2.length; ++var3) { ItemStack var4 = p_179532_1_.getStackInSlot(var3); if (var4 != null && var4.getItem().hasContainerItem()) { var2[var3] = new ItemStack(var4.getItem().getContainerItem()); } } return var2; } }