/**
* 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 cn.academy.core.Resources;
import cn.academy.crafting.api.ImagFusorRecipes;
import cn.academy.crafting.api.ImagFusorRecipes.IFRecipe;
import cn.lambdalib.util.client.HudUtils;
import cn.lambdalib.util.client.RenderUtils;
import cn.lambdalib.util.client.font.IFont.FontOption;
import cn.lambdalib.util.client.shader.ShaderMono;
import cn.lambdalib.util.helper.Color;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL20;
/**
*
* @author KSkun
*
*/
public class FusorRecipeHandler extends ACMachineRecipeHandler {
@Override
public String getRecipeName() {
return StatCollector.translateToLocal("tile.ac_imag_fusor.name");
}
@Override
public String getGuiTexture() {
return "academy:textures/guis/nei_fusor.png";
}
@Override
public Class<? extends GuiContainer> getGuiClass() {
return GuiContainer.class;
}
@Override
public int getInputX() {
return 31;
}
@Override
public int getInputY() {
return 37;
}
@Override
public int getOutputX() {
return 118;
}
@Override
public int getOutputY() {
return 37;
}
@Override
public void loadCraftingRecipes(ItemStack result) {
for(IFRecipe r : ImagFusorRecipes.INSTANCE.getAllRecipe()) {
if(r.output.getItem().equals(result.getItem())) {
arecipes.add(new IFCachedRecipe(r.consumeType, r.output, r.consumeLiquid));
break;
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingredient) {
for(IFRecipe r : ImagFusorRecipes.INSTANCE.getAllRecipe()) {
if(r.consumeType.getItem().equals(ingredient.getItem())) {
arecipes.add(new IFCachedRecipe(r.consumeType, r.output, r.consumeLiquid));
break;
}
}
}
@Override
public void drawBackground(int recipe) {
ShaderMono.instance().useProgram();
RenderUtils.loadTexture(new ResourceLocation(getGuiTexture()));
HudUtils.rect(24.5f, 0, 0, 0, 115, 66, 115, 66);
GL20.glUseProgram(0);
}
@Override
public void drawExtras(int recipe) {
if(tick >= 50) tick = 0;
GL11.glEnable(GL11.GL_BLEND);
Resources.font().draw(String.valueOf(((IFCachedRecipe) arecipes.get(recipe)).liquid),
75, 11.5f, new FontOption(13, new Color(0xFF373737)));
ShaderMono.instance().useProgram();
GL11.glColor4f(55f / 151, 55f / 151, 55f / 151, 1);
RenderUtils.loadTexture(new ResourceLocation("academy:textures/guis/progress/progress_fusor.png"));
HudUtils.rect(62, 40.5f, 0, 0, 40d * (tick / 50d), 10, 126 * (tick / 50d), 30);
GL20.glUseProgram(0);
}
private class IFCachedRecipe extends ACCachedRecipe {
public final int liquid;
private IFCachedRecipe(ItemStack input, ItemStack output, int liquid) {
super(input, output);
this.liquid = liquid;
}
}
}