/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.support.nei;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
/**
*
* @author KSkun
*
*/
public abstract class ACMachineRecipeHandler extends TemplateRecipeHandler {
protected int tick;
@Override
public abstract String getRecipeName();
@Override
public abstract String getGuiTexture();
@Override
public abstract Class<? extends GuiContainer> getGuiClass();
public abstract int getInputX();
public abstract int getInputY();
public abstract int getOutputX();
public abstract int getOutputY();
@Override
public abstract void loadCraftingRecipes(ItemStack result);
@Override
public abstract void loadUsageRecipes(ItemStack ingredient);
@Override
public void onUpdate() {
super.onUpdate();
++tick;
}
protected class ACCachedRecipe extends CachedRecipe {
private final PositionedStack ingredient;
private final PositionedStack result;
protected ACCachedRecipe(ItemStack input, ItemStack output) {
ingredient = new PositionedStack(input, getInputX(), getInputY());
result = new PositionedStack(output, getOutputX(), getOutputY());
}
@Override
public PositionedStack getIngredient() {
return ingredient;
}
@Override
public PositionedStack getResult() {
return result;
}
}
}