package tonius.neiintegration.mods.electricalage;
import mods.eln.misc.Recipe;
import mods.eln.misc.RecipesList;
import net.minecraft.item.ItemStack;
import tonius.neiintegration.RecipeHandlerBase;
import tonius.neiintegration.Utils;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.PositionedStack;
public abstract class RecipeHandlerElnBase extends RecipeHandlerBase {
public class CachedElnRecipe extends CachedBaseRecipe {
public PositionedStack input;
public PositionedStack output;
public CachedElnRecipe(Recipe recipe) {
if (recipe.input != null) {
this.input = new PositionedStack(recipe.input, 44, 22);
}
if (recipe.output != null) {
this.output = new PositionedStack(recipe.output, 105, 22);
}
}
@Override
public PositionedStack getIngredient() {
return this.input;
}
@Override
public PositionedStack getResult() {
return this.output;
}
}
@Override
public String getGuiTexture() {
return "neiintegration:textures/basicProcessing.png";
}
@Override
public void loadTransferRects() {
this.addTransferRect(68, 21, 24, 17);
}
@Override
public void drawBackground(int recipe) {
this.changeToGuiTexture();
GuiDraw.drawTexturedModalRect(0, 0, 0, 0, 160, 65);
}
@Override
public void drawExtras(int recipe) {
this.drawProgressBar(68, 21, 160, 0, 24, 16, 80, 0);
}
public abstract RecipesList getRecipes();
@Override
public void loadAllRecipes() {
for (Recipe recipe : this.getRecipes().getRecipes()) {
this.arecipes.add(new CachedElnRecipe(recipe));
}
}
@Override
public void loadCraftingRecipes(ItemStack result) {
for (Recipe recipe : this.getRecipes().getRecipes()) {
if (recipe.output != null && recipe.output.length > 0 && Utils.areStacksSameTypeCraftingSafe(recipe.output[0], result)) {
this.arecipes.add(new CachedElnRecipe(recipe));
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingred) {
for (Recipe recipe : this.getRecipes().getRecipes()) {
if (Utils.areStacksSameTypeCraftingSafe(recipe.input, ingred)) {
this.arecipes.add(new CachedElnRecipe(recipe));
}
}
}
}