// Path: src/speiger/src/api/common/recipes/squezingCompressor/parts/INormalRecipe.java
// public interface INormalRecipe
// {
// 	public ItemStack getItemInput();
// 	
// 	public FluidStack[] getFluidInput();
// 	
// 	public Result[] getResults();
// 	
// 	public boolean matches(ItemStack input, FluidTank first, FluidTank second, World world);
// 	
// 	public EnumRecipeType getRecipeType();
// 	
// 	public void runResult(ItemStack input, FluidTank first, FluidTank second, World world);
// 	
// 	public RecipeHardness getComplexity();
// }
// 
// Path: src/speiger/src/api/common/recipes/util/Result.java
// public interface Result
// {
// 	public boolean hasItemResult();
// 	
// 	public ItemStack getItemResult();
// 	
// 	public int getItemResultChance();
// 	
// 	public boolean hasFluidResult();
// 	
// 	public FluidStack getFluidResult();
// 	
// 	public int getFluidResultChance();
// 	
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidTank;
import speiger.src.api.common.recipes.squezingCompressor.parts.INormalRecipe;
import speiger.src.api.common.recipes.util.Result;

	{
		if(item == null)
		{
			return new ArrayList<INormalRecipe>();
		}
		List<INormalRecipe> list = new ArrayList<INormalRecipe>();
		for(EnumRecipeType type : EnumRecipeType.values())
		{
			list.addAll(getRecipeFromItem(type, item, false));
		}
		return list;
	}
	
	public List<INormalRecipe> getRecipeFromItem(EnumRecipeType type, ItemStack item, boolean input)
	{
		if(item == null)
		{
			return new ArrayList<INormalRecipe>();
		}
		List<INormalRecipe> list = new ArrayList<INormalRecipe>();
		if(getRecipeListFromType(type) != null)
		{
			for(INormalRecipe recipe : getRecipeListFromType(type))
			{
				ItemStack stack = recipe.getItemInput();
				if(input && stack != null && stack.isItemEqual(item))
				{
					list.add(recipe);
					continue;
				}

// Path: src/speiger/src/api/common/recipes/squezingCompressor/parts/INormalRecipe.java
// public interface INormalRecipe
// {
// 	public ItemStack getItemInput();
// 	
// 	public FluidStack[] getFluidInput();
// 	
// 	public Result[] getResults();
// 	
// 	public boolean matches(ItemStack input, FluidTank first, FluidTank second, World world);
// 	
// 	public EnumRecipeType getRecipeType();
// 	
// 	public void runResult(ItemStack input, FluidTank first, FluidTank second, World world);
// 	
// 	public RecipeHardness getComplexity();
// }
// 
// Path: src/speiger/src/api/common/recipes/util/Result.java
// public interface Result
// {
// 	public boolean hasItemResult();
// 	
// 	public ItemStack getItemResult();
// 	
// 	public int getItemResultChance();
// 	
// 	public boolean hasFluidResult();
// 	
// 	public FluidStack getFluidResult();
// 	
// 	public int getFluidResultChance();
// 	
// }


// Path: src/speiger/src/api/common/recipes/squezingCompressor/MachineRecipeMaker.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidTank;
import speiger.src.api.common.recipes.squezingCompressor.parts.INormalRecipe;
import speiger.src.api.common.recipes.util.Result;

	{
		if(item == null)
		{
			return new ArrayList<INormalRecipe>();
		}
		List<INormalRecipe> list = new ArrayList<INormalRecipe>();
		for(EnumRecipeType type : EnumRecipeType.values())
		{
			list.addAll(getRecipeFromItem(type, item, false));
		}
		return list;
	}
	
	public List<INormalRecipe> getRecipeFromItem(EnumRecipeType type, ItemStack item, boolean input)
	{
		if(item == null)
		{
			return new ArrayList<INormalRecipe>();
		}
		List<INormalRecipe> list = new ArrayList<INormalRecipe>();
		if(getRecipeListFromType(type) != null)
		{
			for(INormalRecipe recipe : getRecipeListFromType(type))
			{
				ItemStack stack = recipe.getItemInput();
				if(input && stack != null && stack.isItemEqual(item))
				{
					list.add(recipe);
					continue;
				}

				Result[] results = recipe.getResults();
