/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.util.crafting; import mods.railcraft.common.items.ItemTicket; import mods.railcraft.common.items.ItemTicketGold; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class RoutingTicketCopyRecipe implements IRecipe { @Override public boolean matches(InventoryCrafting grid, World world) { int numPaper = 0; int numTickets = 0; for (int slot = 0; slot < grid.getSizeInventory(); slot++) { ItemStack stack = grid.getStackInSlot(slot); if (stack != null) { if (stack.getItem() == ItemTicketGold.item) { numTickets++; } else if (stack.getItem() == Items.paper || stack.getItem() == ItemTicket.item) { numPaper++; } else { return false; } } } return numTickets == 1 && numPaper == 1; } @Override public ItemStack getCraftingResult(InventoryCrafting grid) { ItemStack ticket = null; for (int slot = 0; slot < grid.getSizeInventory(); slot++) { ItemStack stack = grid.getStackInSlot(slot); if (stack != null) { if (stack.getItem() == ItemTicketGold.item) { ticket = stack; break; } } } if (ticket != null) { return ItemTicket.copyTicket(ticket); } return null; } @Override public int getRecipeSize() { return 2; } @Override public ItemStack getRecipeOutput() { return ItemTicket.getTicket(); } }