equivalent-exchange-3/src/main/java/com/pahimar/ee3/recipe/AludelRecipeManager.java
2016-05-30 15:55:45 -04:00

86 lines
2.5 KiB
Java

package com.pahimar.ee3.recipe;
import com.google.common.collect.ImmutableList;
import com.pahimar.ee3.api.recipe.RecipeRegistryProxy;
import com.pahimar.ee3.item.crafting.RecipeAludel;
import com.pahimar.ee3.util.LoaderHelper;
import com.pahimar.ee3.util.LogHelper;
import cpw.mods.fml.common.Loader;
import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
public class AludelRecipeManager
{
private static AludelRecipeManager aludelRegistry = null;
private List<RecipeAludel> aludelRecipes;
private AludelRecipeManager()
{
aludelRecipes = new ArrayList<RecipeAludel>();
}
public static AludelRecipeManager getInstance()
{
if (aludelRegistry == null)
{
aludelRegistry = new AludelRecipeManager();
}
return aludelRegistry;
}
public static void registerRecipes() {
for (RecipeAludel recipeAludel : AludelRecipeManager.getInstance().getRecipes()) {
RecipeRegistryProxy.addRecipe(recipeAludel.getRecipeOutput(), recipeAludel.getRecipeInputsAsWrappedStacks());
}
}
public void addRecipe(ItemStack recipeOutput, ItemStack recipeInputStack, ItemStack recipeInputDust)
{
addRecipe(new RecipeAludel(recipeOutput, recipeInputStack, recipeInputDust));
}
public void addRecipe(RecipeAludel recipeAludel)
{
if (!aludelRecipes.contains(recipeAludel))
{
LogHelper.trace(RecipeRegistry.RECIPE_MARKER, "[{}] Mod with ID '{}' added Aludel recipe '{}'", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), recipeAludel);
aludelRecipes.add(recipeAludel);
}
}
public ItemStack getResult(ItemStack recipeInputStack, ItemStack recipeInputDust)
{
for (RecipeAludel recipeAludel : aludelRecipes)
{
if (recipeAludel.matches(recipeInputStack, recipeInputDust))
{
return recipeAludel.getRecipeOutput();
}
}
return null;
}
public RecipeAludel getRecipe(ItemStack recipeInputStack, ItemStack recipeInputDust)
{
for (RecipeAludel recipeAludel : aludelRecipes)
{
if (recipeAludel.matches(recipeInputStack, recipeInputDust))
{
return recipeAludel;
}
}
return null;
}
public List<RecipeAludel> getRecipes()
{
return ImmutableList.copyOf(aludelRecipes);
}
}