// Path: src/main/java/com/panicnot42/warpbook/item/WarpItem.java
// public class WarpItem extends Item implements IDeclareWarp, IColorable {
// 	
// 	public static final String unbound = "§4§kUnbound";
// 	public static final String ttprefix = "§a";
// 	
// 	public Warp warp = new Warp();
// 	public boolean cloneable = false;;
// 	
// 	public WarpItem(String name) {
// 		setUnlocalizedName(name);
// 		setRegistryName(name);
// 	}
// 	
// 	public WarpItem setWarp(Warp warp) {
// 		this.warp = warp;
// 		return this;
// 	}
// 
// 	public WarpItem setCloneable(boolean is) {
// 		this.cloneable = is;
// 		return this;
// 	}
// 	
// 	@Override
// 	public String getName(World world, ItemStack stack) {
// 		return warp.getName(world, stack);
// 	}
// 	
// 	@Override
// 	public Waypoint getWaypoint(EntityPlayer player, ItemStack stack) {
// 		return warp.getWaypoint(player, stack);
// 	}
// 	
// 	@Override
// 	public boolean hasValidData(ItemStack stack) {
// 		return warp.hasValidData(stack);
// 	}
// 
// 	@Override
// 	@SideOnly(Side.CLIENT)
// 	public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flagIn) {
// 		warp.addInformation(stack, world, tooltip, flagIn);
// 	}
// 	
// 	/** Can this be copied to a page? Either in the book cloner or via a copy recipe */
// 	public boolean isWarpCloneable(ItemStack stack) {
// 		return cloneable;
// 	}
// 
// 	public boolean canGoInBook() {
// 		return false;
// 	}
// 
// 	@Override
// 	@SideOnly(Side.CLIENT)
// 	public int getColor(ItemStack stack, int tintIndex) {
// 		return 0xFFFFFFFF;
// 	}
// 	
// 	@SideOnly(Side.CLIENT)
// 	public WarpColors getWarpColor() {
// 		return warp.getColor();
// 	}
// 	
// }


import com.panicnot42.warpbook.item.WarpItem;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraft.util.NonNullList;
package com.panicnot42.warpbook.crafting;



public class WarpPageShapeless extends ShapelessRecipes {
	ItemStack recipeOutput;
	
	public WarpPageShapeless(ItemStack recipeOutput, NonNullList<Ingredient> ingredients) {
		super("", recipeOutput, ingredients);
		this.recipeOutput = recipeOutput;
	}
	
	@Override
	public ItemStack getCraftingResult(InventoryCrafting inventory) {
		ItemStack output = recipeOutput.copy();
		
		try {
			for (int i = 0; i < inventory.getSizeInventory(); ++i) {
				ItemStack workingStack = inventory.getStackInSlot(i);
// Path: src/main/java/com/panicnot42/warpbook/item/WarpItem.java
// public class WarpItem extends Item implements IDeclareWarp, IColorable {
// 	
// 	public static final String unbound = "§4§kUnbound";
// 	public static final String ttprefix = "§a";
// 	
// 	public Warp warp = new Warp();
// 	public boolean cloneable = false;;
// 	
// 	public WarpItem(String name) {
// 		setUnlocalizedName(name);
// 		setRegistryName(name);
// 	}
// 	
// 	public WarpItem setWarp(Warp warp) {
// 		this.warp = warp;
// 		return this;
// 	}
// 
// 	public WarpItem setCloneable(boolean is) {
// 		this.cloneable = is;
// 		return this;
// 	}
// 	
// 	@Override
// 	public String getName(World world, ItemStack stack) {
// 		return warp.getName(world, stack);
// 	}
// 	
// 	@Override
// 	public Waypoint getWaypoint(EntityPlayer player, ItemStack stack) {
// 		return warp.getWaypoint(player, stack);
// 	}
// 	
// 	@Override
// 	public boolean hasValidData(ItemStack stack) {
// 		return warp.hasValidData(stack);
// 	}
// 
// 	@Override
// 	@SideOnly(Side.CLIENT)
// 	public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag flagIn) {
// 		warp.addInformation(stack, world, tooltip, flagIn);
// 	}
// 	
// 	/** Can this be copied to a page? Either in the book cloner or via a copy recipe */
// 	public boolean isWarpCloneable(ItemStack stack) {
// 		return cloneable;
// 	}
// 
// 	public boolean canGoInBook() {
// 		return false;
// 	}
// 
// 	@Override
// 	@SideOnly(Side.CLIENT)
// 	public int getColor(ItemStack stack, int tintIndex) {
// 		return 0xFFFFFFFF;
// 	}
// 	
// 	@SideOnly(Side.CLIENT)
// 	public WarpColors getWarpColor() {
// 		return warp.getColor();
// 	}
// 	
// }


// Path: src/main/java/com/panicnot42/warpbook/crafting/WarpPageShapeless.java
import com.panicnot42.warpbook.item.WarpItem;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapelessRecipes;
import net.minecraft.util.NonNullList;

package com.panicnot42.warpbook.crafting;



public class WarpPageShapeless extends ShapelessRecipes {
	ItemStack recipeOutput;
	
	public WarpPageShapeless(ItemStack recipeOutput, NonNullList<Ingredient> ingredients) {
		super("", recipeOutput, ingredients);
		this.recipeOutput = recipeOutput;
	}
	
	@Override
	public ItemStack getCraftingResult(InventoryCrafting inventory) {
		ItemStack output = recipeOutput.copy();
		
		try {
			for (int i = 0; i < inventory.getSizeInventory(); ++i) {
				ItemStack workingStack = inventory.getStackInSlot(i);
				if (inventory.getStackInSlot(i) != null && workingStack.getItem() instanceof WarpItem) {