// Path: src/main/java/net/einsteinsci/betterbeginnings/util/LogUtil.java
// public class LogUtil
// {
// 	public static void logDebug(String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(Level.DEBUG, text);
// 		}
// 	}
// 
// 	public static void logDebug(Level level, String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(level, text);
// 		}
// 	}
// 
// 	public static void log(Level level, String text)
// 	{
// 		FMLLog.log(ModMain.NAME, level, text);
// 	}
// 
// 	public static void log(String text)
// 	{
// 		log(Level.INFO, text);
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/util/Util.java
// public class Util
// {
// 	public static boolean areItemStacksEqualIgnoreSize(ItemStack template, ItemStack tested)
// 	{
// 		if (template == null)
// 		{
// 			return tested == null;
// 		}
// 		else if (tested == null)
// 		{
// 			return false;
// 		}
// 
// 		return template.getItem() == tested.getItem() && (template.getMetadata() == tested.getMetadata() ||
// 			template.getMetadata() == OreDictionary.WILDCARD_VALUE);
// 	}
// 
// 	public static <TObject, TField> TField getPrivateVariable(TObject obj, String fieldName)
// 	{
// 		Field privateStringField = null;
// 		try
// 		{
// 			privateStringField = obj.getClass().getDeclaredField(fieldName);
// 		}
// 		catch (NoSuchFieldException e)
// 		{
// 			return null;
// 		}
// 		privateStringField.setAccessible(true);
// 
// 		try
// 		{
// 			return (TField)privateStringField.get(obj);
// 		}
// 		catch (IllegalAccessException e)
// 		{
// 			return null;
// 		}
// 	}
// 
// 	public static boolean listContainsItemStackIgnoreSize(List<ItemStack> list, ItemStack stack)
// 	{
// 		for (ItemStack s : list)
// 		{
// 			if (areItemStacksEqualIgnoreSize(s, stack))
// 			{
// 				return true;
// 			}
// 		}
// 
// 		return false;
// 	}
// }


import net.einsteinsci.betterbeginnings.tileentity.TileEntityBrickOven;
import net.einsteinsci.betterbeginnings.util.LogUtil;
import net.einsteinsci.betterbeginnings.util.Util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import org.apache.logging.log4j.Level;
import java.util.*;

	public BrickOvenShapelessRecipe putShapelessRecipe(ItemStack output, Object... args)
	{
		ArrayList res = new ArrayList();

		for (Object obj : args)
		{

			if (obj instanceof ItemStack)
			{
				res.add(new OreRecipeElement((ItemStack)obj));
			}
			else if (obj instanceof Item)
			{
				res.add(new OreRecipeElement(new ItemStack((Item)obj)));
			}
			else if (obj instanceof Block)
			{
				res.add(new OreRecipeElement(new ItemStack((Block)obj)));
			}
			else if (obj instanceof String)
			{
				res.add(new OreRecipeElement((String)obj));
			}
			else if(obj instanceof OreRecipeElement)
			{
				res.add(obj);
			}
			else
			{
// Path: src/main/java/net/einsteinsci/betterbeginnings/util/LogUtil.java
// public class LogUtil
// {
// 	public static void logDebug(String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(Level.DEBUG, text);
// 		}
// 	}
// 
// 	public static void logDebug(Level level, String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(level, text);
// 		}
// 	}
// 
// 	public static void log(Level level, String text)
// 	{
// 		FMLLog.log(ModMain.NAME, level, text);
// 	}
// 
// 	public static void log(String text)
// 	{
// 		log(Level.INFO, text);
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/util/Util.java
// public class Util
// {
// 	public static boolean areItemStacksEqualIgnoreSize(ItemStack template, ItemStack tested)
// 	{
// 		if (template == null)
// 		{
// 			return tested == null;
// 		}
// 		else if (tested == null)
// 		{
// 			return false;
// 		}
// 
// 		return template.getItem() == tested.getItem() && (template.getMetadata() == tested.getMetadata() ||
// 			template.getMetadata() == OreDictionary.WILDCARD_VALUE);
// 	}
// 
// 	public static <TObject, TField> TField getPrivateVariable(TObject obj, String fieldName)
// 	{
// 		Field privateStringField = null;
// 		try
// 		{
// 			privateStringField = obj.getClass().getDeclaredField(fieldName);
// 		}
// 		catch (NoSuchFieldException e)
// 		{
// 			return null;
// 		}
// 		privateStringField.setAccessible(true);
// 
// 		try
// 		{
// 			return (TField)privateStringField.get(obj);
// 		}
// 		catch (IllegalAccessException e)
// 		{
// 			return null;
// 		}
// 	}
// 
// 	public static boolean listContainsItemStackIgnoreSize(List<ItemStack> list, ItemStack stack)
// 	{
// 		for (ItemStack s : list)
// 		{
// 			if (areItemStacksEqualIgnoreSize(s, stack))
// 			{
// 				return true;
// 			}
// 		}
// 
// 		return false;
// 	}
// }


// Path: src/main/java/net/einsteinsci/betterbeginnings/register/recipe/BrickOvenRecipeHandler.java
import net.einsteinsci.betterbeginnings.tileentity.TileEntityBrickOven;
import net.einsteinsci.betterbeginnings.util.LogUtil;
import net.einsteinsci.betterbeginnings.util.Util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import org.apache.logging.log4j.Level;
import java.util.*;


	public BrickOvenShapelessRecipe putShapelessRecipe(ItemStack output, Object... args)
	{
		ArrayList res = new ArrayList();

		for (Object obj : args)
		{

			if (obj instanceof ItemStack)
			{
				res.add(new OreRecipeElement((ItemStack)obj));
			}
			else if (obj instanceof Item)
			{
				res.add(new OreRecipeElement(new ItemStack((Item)obj)));
			}
			else if (obj instanceof Block)
			{
				res.add(new OreRecipeElement(new ItemStack((Block)obj)));
			}
			else if (obj instanceof String)
			{
				res.add(new OreRecipeElement((String)obj));
			}
			else if(obj instanceof OreRecipeElement)
			{
				res.add(obj);
			}
			else
			{
				LogUtil.log(Level.WARN, "Invalid shapeless recipe!");