package minefantasy.mf2.client.gui;
import minefantasy.mf2.api.knowledge.InformationBase;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiDiscovery extends Gui
{
private static final ResourceLocation field_146261_a = new ResourceLocation("textures/gui/achievement/achievement_background.png");
private Minecraft field_146259_f;
private int field_146260_g;
private int field_146267_h;
private String field_146268_i;
private String field_146265_j;
private InformationBase field_146266_k;
private long field_146263_l;
private RenderItem field_146264_m;
private boolean field_146262_n;
public GuiDiscovery(Minecraft p_i1063_1_)
{
this.field_146259_f = p_i1063_1_;
this.field_146264_m = new RenderItem();
}
public void func_146256_a(InformationBase p_146256_1_)
{
this.field_146268_i = I18n.format("knowledge.discover", new Object[0]);
this.field_146265_j = p_146256_1_.getName();
this.field_146263_l = Minecraft.getSystemTime();
this.field_146266_k = p_146256_1_;
this.field_146262_n = false;
}
public void func_146255_b(InformationBase p_146255_1_)
{
this.field_146268_i = p_146255_1_.getName();
this.field_146265_j = p_146255_1_.getDescription();
this.field_146263_l = Minecraft.getSystemTime() + 2500L;
this.field_146266_k = p_146255_1_;
this.field_146262_n = true;
}
private void func_146258_c()
{
GL11.glViewport(0, 0, this.field_146259_f.displayWidth, this.field_146259_f.displayHeight);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
this.field_146260_g = this.field_146259_f.displayWidth;
this.field_146267_h = this.field_146259_f.displayHeight;
ScaledResolution scaledresolution = new ScaledResolution(this.field_146259_f, this.field_146259_f.displayWidth, this.field_146259_f.displayHeight);
this.field_146260_g = scaledresolution.getScaledWidth();
this.field_146267_h = scaledresolution.getScaledHeight();
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0.0D, this.field_146260_g, this.field_146267_h, 0.0D, 1000.0D, 3000.0D);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
GL11.glTranslatef(0.0F, 0.0F, -2000.0F);
}
public void func_146254_a()
{
if (this.field_146266_k != null && this.field_146263_l != 0L && Minecraft.getMinecraft().thePlayer != null)
{
double d0 = (Minecraft.getSystemTime() - this.field_146263_l) / 3000.0D;
if (!this.field_146262_n)
{
if (d0 < 0.0D || d0 > 1.0D)
{
this.field_146263_l = 0L;
return;
}
}
else if (d0 > 0.5D)
{
d0 = 0.5D;
}
this.func_146258_c();
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glDepthMask(false);
double d1 = d0 * 2.0D;
if (d1 > 1.0D)
{
d1 = 2.0D - d1;
}
d1 *= 4.0D;
d1 = 1.0D - d1;
if (d1 < 0.0D)
{
d1 = 0.0D;
}
d1 *= d1;
d1 *= d1;
int i = this.field_146260_g - 160;
int j = 0 - (int)(d1 * 36.0D);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
this.field_146259_f.getTextureManager().bindTexture(field_146261_a);
GL11.glDisable(GL11.GL_LIGHTING);
this.drawTexturedModalRect(i, j, 96, 202, 160, 32);
if (this.field_146262_n)
{
this.field_146259_f.fontRenderer.drawSplitString(this.field_146265_j, i + 30, j + 7, 120, -1);
}
else
{
this.field_146259_f.fontRenderer.drawString(this.field_146268_i, i + 30, j + 7, -256);
this.field_146259_f.fontRenderer.drawString(this.field_146265_j, i + 30, j + 18, -1);
}
RenderHelper.enableGUIStandardItemLighting();
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
GL11.glEnable(GL11.GL_LIGHTING);
this.field_146264_m.renderItemAndEffectIntoGUI(this.field_146259_f.fontRenderer, this.field_146259_f.getTextureManager(), this.field_146266_k.theItemStack, i + 8, j + 8);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
}
public void func_146257_b()
{
this.field_146266_k = null;
this.field_146263_l = 0L;
}
}