package net.minecraft.client.gui.achievement;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
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.stats.Achievement;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
@SideOnly(Side.CLIENT)
public class GuiAchievement extends Gui
{
private static final ResourceLocation achievementBg = new ResourceLocation("textures/gui/achievement/achievement_background.png");
private Minecraft mc;
private int width;
private int height;
private String achievementTitle;
private String achievementDescription;
private Achievement theAchievement;
private long notificationTime;
private RenderItem renderItem;
private boolean permanentNotification;
private static final String __OBFID = "CL_00000721";
public GuiAchievement(Minecraft mc)
{
this.mc = mc;
this.renderItem = new RenderItem();
}
public void displayAchievement(Achievement p_146256_1_)
{
this.achievementTitle = I18n.format("achievement.get", new Object[0]);
this.achievementDescription = p_146256_1_.getStatName().getUnformattedText();
this.notificationTime = Minecraft.getSystemTime();
this.theAchievement = p_146256_1_;
this.permanentNotification = false;
}
public void displayUnformattedAchievement(Achievement p_146255_1_)
{
this.achievementTitle = p_146255_1_.getStatName().getUnformattedText();
this.achievementDescription = p_146255_1_.getDescription();
this.notificationTime = Minecraft.getSystemTime() + 2500L;
this.theAchievement = p_146255_1_;
this.permanentNotification = true;
}
private void updateAchievementWindowScale()
{
GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
this.width = this.mc.displayWidth;
this.height = this.mc.displayHeight;
ScaledResolution scaledresolution = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
this.width = scaledresolution.getScaledWidth();
this.height = scaledresolution.getScaledHeight();
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0.0D, (double)this.width, (double)this.height, 0.0D, 1000.0D, 3000.0D);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
GL11.glTranslatef(0.0F, 0.0F, -2000.0F);
}
public void updateAchievementWindow()
{
if (this.theAchievement != null && this.notificationTime != 0L && Minecraft.getMinecraft().thePlayer != null)
{
double d0 = (double)(Minecraft.getSystemTime() - this.notificationTime) / 3000.0D;
if (!this.permanentNotification)
{
if (d0 < 0.0D || d0 > 1.0D)
{
this.notificationTime = 0L;
return;
}
}
else if (d0 > 0.5D)
{
d0 = 0.5D;
}
this.updateAchievementWindowScale();
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.width - 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.mc.getTextureManager().bindTexture(achievementBg);
GL11.glDisable(GL11.GL_LIGHTING);
this.drawTexturedModalRect(i, j, 96, 202, 160, 32);
if (this.permanentNotification)
{
this.mc.fontRendererObj.drawSplitString(this.achievementDescription, i + 30, j + 7, 120, -1);
}
else
{
this.mc.fontRendererObj.drawString(this.achievementTitle, i + 30, j + 7, -256);
this.mc.fontRendererObj.drawString(this.achievementDescription, 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.renderItem.renderItemAndEffectIntoGUI(this.mc.fontRendererObj, this.mc.getTextureManager(), this.theAchievement.theItemStack, i + 8, j + 8);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
}
public void clearAchievements()
{
this.theAchievement = null;
this.notificationTime = 0L;
}
}