package crazypants.enderio.conduit.item.filter; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter.Category; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import crazypants.enderio.EnderIO; import crazypants.enderio.conduit.item.FilterRegister; public class ClearFilterRecipe implements IRecipe{ static { RecipeSorter.register("EnderIO:clearFilter", ClearFilterRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless"); } private ItemStack output; @Override public boolean matches(InventoryCrafting inv, World world) { int count = 0; ItemStack input = null; for (int i = 0; i < inv.getSizeInventory(); i++) { ItemStack checkStack = inv.getStackInSlot(i); if (checkStack != null && checkStack.getItem() instanceof IItemFilterUpgrade) { count++; } input = (count == 1 && checkStack != null) ? checkStack : input; } if (count == 1 && FilterRegister.isFilterSet(input)) { ItemStack out = input.copy(); out.stackSize = 1; out.stackTagCompound = null; this.output = out; } else { this.output = null; } return count == 1 && output != null; } @Override public ItemStack getCraftingResult(InventoryCrafting inv) { return output.copy(); } @Override public int getRecipeSize() { return 1; } @Override public ItemStack getRecipeOutput() { return output; } @SubscribeEvent public void onTooltip(ItemTooltipEvent event) { if (this.output != null && ItemStack.areItemStacksEqual(output, event.itemStack)) { event.toolTip.add(EnumChatFormatting.RED.toString() + EnumChatFormatting.ITALIC + EnderIO.lang.localize("itemConduitFilterUpgrade.clearConfigWarning")); } } }