package net.minecraft.client.gui;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import me.lordethan.cryton.ui.GuiIngameHook;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.boss.BossStatus;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.scoreboard.Score;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.FoodStats;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StringUtils;
import net.minecraft.world.border.WorldBorder;
public class GuiIngame extends Gui
{
private static final ResourceLocation vignetteTexPath = new ResourceLocation("textures/misc/vignette.png");
private static final ResourceLocation widgetsTexPath = new ResourceLocation("textures/gui/widgets.png");
private static final ResourceLocation pumpkinBlurTexPath = new ResourceLocation("textures/misc/pumpkinblur.png");
private final Random rand = new Random();
private final Minecraft mc;
private final RenderItem itemRenderer;
/** ChatGUI instance that retains all previous chat data */
private final GuiNewChat persistantChatGUI;
private final GuiStreamIndicator streamIndicator;
private int updateCounter;
/** The string specifying which record music is playing */
private String recordPlaying = "";
/** How many ticks the record playing message will be displayed */
private int recordPlayingUpFor;
private boolean recordIsPlaying;
/** Previous frame vignette brightness (slowly changes by 1% each frame) */
public float prevVignetteBrightness = 1.0F;
/** Remaining ticks the item highlight should be visible */
private int remainingHighlightTicks;
/** The ItemStack that is currently being highlighted */
private ItemStack highlightingItemStack;
private final GuiOverlayDebug overlayDebug;
private final GuiSpectator field_175197_u;
private final GuiPlayerTabOverlay overlayPlayerList;
private int field_175195_w;
private String field_175201_x = "";
private String field_175200_y = "";
private int field_175199_z;
private int field_175192_A;
private int field_175193_B;
private int field_175194_C = 0;
private int field_175189_D = 0;
private long field_175190_E = 0L;
private long field_175191_F = 0L;
private static final String __OBFID = "CL_00000661";
public GuiIngame(Minecraft mcIn)
{
this.mc = mcIn;
this.itemRenderer = mcIn.getRenderItem();
this.overlayDebug = new GuiOverlayDebug(mcIn);
this.field_175197_u = new GuiSpectator(mcIn);
this.persistantChatGUI = new GuiNewChat(mcIn);
this.streamIndicator = new GuiStreamIndicator(mcIn);
this.overlayPlayerList = new GuiPlayerTabOverlay(mcIn, this);
this.func_175177_a();
}
public void func_175177_a()
{
this.field_175199_z = 10;
this.field_175192_A = 70;
this.field_175193_B = 20;
}
public void func_175180_a(float p_175180_1_)
{
ScaledResolution var2 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
int var3 = var2.getScaledWidth();
int var4 = var2.getScaledHeight();
this.mc.entityRenderer.setupOverlayRendering();
GlStateManager.enableBlend();
if (Minecraft.isFancyGraphicsEnabled())
{
this.func_180480_a(this.mc.thePlayer.getBrightness(p_175180_1_), var2);
}
else
{
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
}
ItemStack var5 = this.mc.thePlayer.inventory.armorItemInSlot(3);
if (this.mc.gameSettings.thirdPersonView == 0 && var5 != null && var5.getItem() == Item.getItemFromBlock(Blocks.pumpkin))
{
this.func_180476_e(var2);
}
if (!this.mc.thePlayer.isPotionActive(Potion.confusion))
{
float var6 = this.mc.thePlayer.prevTimeInPortal + (this.mc.thePlayer.timeInPortal - this.mc.thePlayer.prevTimeInPortal) * p_175180_1_;
if (var6 > 0.0F)
{
this.func_180474_b(var6, var2);
}
}
if (this.mc.playerController.enableEverythingIsScrewedUpMode())
{
this.field_175197_u.func_175264_a(var2, p_175180_1_);
}
else
{
this.func_180479_a(var2, p_175180_1_);
}
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(icons);
GlStateManager.enableBlend();
if (this.func_175183_b())
{
GlStateManager.tryBlendFuncSeparate(775, 769, 1, 0);
GlStateManager.enableAlpha();
this.drawTexturedModalRect(var3 / 2 - 7, var4 / 2 - 7, 0, 0, 16, 16);
}
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
this.mc.mcProfiler.startSection("bossHealth");
this.renderBossHealth();
this.mc.mcProfiler.endSection();
if (this.mc.playerController.shouldDrawHUD())
{
this.func_180477_d(var2);
}
GlStateManager.disableBlend();
float var7;
int var8;
int var11;
if (this.mc.thePlayer.getSleepTimer() > 0)
{
this.mc.mcProfiler.startSection("sleep");
GlStateManager.disableDepth();
GlStateManager.disableAlpha();
var11 = this.mc.thePlayer.getSleepTimer();
var7 = (float)var11 / 100.0F;
if (var7 > 1.0F)
{
var7 = 1.0F - (float)(var11 - 100) / 10.0F;
}
var8 = (int)(220.0F * var7) << 24 | 1052704;
drawRect(0, 0, var3, var4, var8);
GlStateManager.enableAlpha();
GlStateManager.enableDepth();
this.mc.mcProfiler.endSection();
}
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
var11 = var3 / 2 - 91;
if (this.mc.thePlayer.isRidingHorse())
{
this.func_175186_a(var2, var11);
}
else if (this.mc.playerController.gameIsSurvivalOrAdventure())
{
this.func_175176_b(var2, var11);
}
if (this.mc.gameSettings.heldItemTooltips && !this.mc.playerController.enableEverythingIsScrewedUpMode())
{
this.func_175182_a(var2);
}
else if (this.mc.thePlayer.func_175149_v())
{
this.field_175197_u.func_175263_a(var2);
}
if (this.mc.isDemo())
{
this.func_175185_b(var2);
}
//TODO: Cryton
if (!this.mc.gameSettings.showDebugInfo)
{
GL11.glPushMatrix();
GuiIngameHook.StartHud();
GL11.glPopMatrix();
}else {
}
if (this.mc.gameSettings.showDebugInfo)
{
this.overlayDebug.func_175237_a(var2);
}
int var9;
if (this.recordPlayingUpFor > 0)
{
this.mc.mcProfiler.startSection("overlayMessage");
var7 = (float)this.recordPlayingUpFor - p_175180_1_;
var8 = (int)(var7 * 255.0F / 20.0F);
if (var8 > 255)
{
var8 = 255;
}
if (var8 > 8)
{
GlStateManager.pushMatrix();
GlStateManager.translate((float)(var3 / 2), (float)(var4 - 68), 0.0F);
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
var9 = 16777215;
if (this.recordIsPlaying)
{
var9 = Color.HSBtoRGB(var7 / 50.0F, 0.7F, 0.6F) & 16777215;
}
this.func_175179_f().drawString(this.recordPlaying, -this.func_175179_f().getStringWidth(this.recordPlaying) / 2, -4, var9 + (var8 << 24 & -16777216));
GlStateManager.disableBlend();
GlStateManager.popMatrix();
}
this.mc.mcProfiler.endSection();
}
if (this.field_175195_w > 0)
{
this.mc.mcProfiler.startSection("titleAndSubtitle");
var7 = (float)this.field_175195_w - p_175180_1_;
var8 = 255;
if (this.field_175195_w > this.field_175193_B + this.field_175192_A)
{
float var14 = (float)(this.field_175199_z + this.field_175192_A + this.field_175193_B) - var7;
var8 = (int)(var14 * 255.0F / (float)this.field_175199_z);
}
if (this.field_175195_w <= this.field_175193_B)
{
var8 = (int)(var7 * 255.0F / (float)this.field_175193_B);
}
var8 = MathHelper.clamp_int(var8, 0, 255);
if (var8 > 8)
{
GlStateManager.pushMatrix();
GlStateManager.translate((float)(var3 / 2), (float)(var4 / 2), 0.0F);
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
GlStateManager.pushMatrix();
GlStateManager.scale(4.0F, 4.0F, 4.0F);
var9 = var8 << 24 & -16777216;
this.func_175179_f().func_175065_a(this.field_175201_x, (float)(-this.func_175179_f().getStringWidth(this.field_175201_x) / 2), -10.0F, 16777215 | var9, true);
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.scale(2.0F, 2.0F, 2.0F);
this.func_175179_f().func_175065_a(this.field_175200_y, (float)(-this.func_175179_f().getStringWidth(this.field_175200_y) / 2), 5.0F, 16777215 | var9, true);
GlStateManager.popMatrix();
GlStateManager.disableBlend();
GlStateManager.popMatrix();
}
this.mc.mcProfiler.endSection();
}
Scoreboard var12 = this.mc.theWorld.getScoreboard();
ScoreObjective var13 = null;
ScorePlayerTeam var15 = var12.getPlayersTeam(this.mc.thePlayer.getName());
if (var15 != null)
{
int var10 = var15.func_178775_l().func_175746_b();
if (var10 >= 0)
{
var13 = var12.getObjectiveInDisplaySlot(3 + var10);
}
}
ScoreObjective var16 = var13 != null ? var13 : var12.getObjectiveInDisplaySlot(1);
if (var16 != null)
{
this.func_180475_a(var16, var2);
}
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
GlStateManager.disableAlpha();
GlStateManager.pushMatrix();
GlStateManager.translate(0.0F, (float)(var4 - 48), 0.0F);
this.mc.mcProfiler.startSection("chat");
this.persistantChatGUI.drawChat(this.updateCounter);
this.mc.mcProfiler.endSection();
GlStateManager.popMatrix();
var16 = var12.getObjectiveInDisplaySlot(0);
if (this.mc.gameSettings.keyBindPlayerList.getIsKeyPressed() && (!this.mc.isIntegratedServerRunning() || this.mc.thePlayer.sendQueue.func_175106_d().size() > 1 || var16 != null))
{
this.overlayPlayerList.func_175246_a(true);
this.overlayPlayerList.func_175249_a(var3, var12, var16);
}
else
{
this.overlayPlayerList.func_175246_a(false);
}
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.disableLighting();
GlStateManager.enableAlpha();
}
protected void func_180479_a(ScaledResolution p_180479_1_, float p_180479_2_)
{
if (this.mc.func_175606_aa() instanceof EntityPlayer)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(widgetsTexPath);
EntityPlayer var3 = (EntityPlayer)this.mc.func_175606_aa();
int var4 = p_180479_1_.getScaledWidth() / 2;
float var5 = this.zLevel;
this.zLevel = -90.0F;
this.drawTexturedModalRect(var4 - 91, p_180479_1_.getScaledHeight() - 22, 0, 0, 182, 22);
this.drawTexturedModalRect(var4 - 91 - 1 + var3.inventory.currentItem * 20, p_180479_1_.getScaledHeight() - 22 - 1, 0, 22, 24, 22);
this.zLevel = var5;
GlStateManager.enableRescaleNormal();
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
RenderHelper.enableGUIStandardItemLighting();
for (int var6 = 0; var6 < 9; ++var6)
{
int var7 = p_180479_1_.getScaledWidth() / 2 - 90 + var6 * 20 + 2;
int var8 = p_180479_1_.getScaledHeight() - 16 - 3;
this.func_175184_a(var6, var7, var8, p_180479_2_, var3);
}
RenderHelper.disableStandardItemLighting();
GlStateManager.disableRescaleNormal();
GlStateManager.disableBlend();
}
}
public void func_175186_a(ScaledResolution p_175186_1_, int p_175186_2_)
{
this.mc.mcProfiler.startSection("jumpBar");
this.mc.getTextureManager().bindTexture(Gui.icons);
float var3 = this.mc.thePlayer.getHorseJumpPower();
short var4 = 182;
int var5 = (int)(var3 * (float)(var4 + 1));
int var6 = p_175186_1_.getScaledHeight() - 32 + 3;
this.drawTexturedModalRect(p_175186_2_, var6, 0, 84, var4, 5);
if (var5 > 0)
{
this.drawTexturedModalRect(p_175186_2_, var6, 0, 89, var5, 5);
}
this.mc.mcProfiler.endSection();
}
public void func_175176_b(ScaledResolution p_175176_1_, int p_175176_2_)
{
this.mc.mcProfiler.startSection("expBar");
this.mc.getTextureManager().bindTexture(Gui.icons);
int var3 = this.mc.thePlayer.xpBarCap();
int var6;
if (var3 > 0)
{
short var4 = 182;
int var5 = (int)(this.mc.thePlayer.experience * (float)(var4 + 1));
var6 = p_175176_1_.getScaledHeight() - 32 + 3;
this.drawTexturedModalRect(p_175176_2_, var6, 0, 64, var4, 5);
if (var5 > 0)
{
this.drawTexturedModalRect(p_175176_2_, var6, 0, 69, var5, 5);
}
}
this.mc.mcProfiler.endSection();
if (this.mc.thePlayer.experienceLevel > 0)
{
this.mc.mcProfiler.startSection("expLevel");
int var9 = 8453920;
String var10 = "" + this.mc.thePlayer.experienceLevel;
var6 = (p_175176_1_.getScaledWidth() - this.func_175179_f().getStringWidth(var10)) / 2;
int var7 = p_175176_1_.getScaledHeight() - 31 - 4;
boolean var8 = false;
this.func_175179_f().drawString(var10, var6 + 1, var7, 0);
this.func_175179_f().drawString(var10, var6 - 1, var7, 0);
this.func_175179_f().drawString(var10, var6, var7 + 1, 0);
this.func_175179_f().drawString(var10, var6, var7 - 1, 0);
this.func_175179_f().drawString(var10, var6, var7, var9);
this.mc.mcProfiler.endSection();
}
}
public void func_175182_a(ScaledResolution p_175182_1_)
{
this.mc.mcProfiler.startSection("toolHighlight");
if (this.remainingHighlightTicks > 0 && this.highlightingItemStack != null)
{
String var2 = this.highlightingItemStack.getDisplayName();
if (this.highlightingItemStack.hasDisplayName())
{
var2 = EnumChatFormatting.ITALIC + var2;
}
int var3 = (p_175182_1_.getScaledWidth() - this.func_175179_f().getStringWidth(var2)) / 2;
int var4 = p_175182_1_.getScaledHeight() - 59;
if (!this.mc.playerController.shouldDrawHUD())
{
var4 += 14;
}
int var5 = (int)((float)this.remainingHighlightTicks * 256.0F / 10.0F);
if (var5 > 255)
{
var5 = 255;
}
if (var5 > 0)
{
GlStateManager.pushMatrix();
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
this.func_175179_f().func_175063_a(var2, (float)var3, (float)var4, 16777215 + (var5 << 24));
GlStateManager.disableBlend();
GlStateManager.popMatrix();
}
}
this.mc.mcProfiler.endSection();
}
public void func_175185_b(ScaledResolution p_175185_1_)
{
this.mc.mcProfiler.startSection("demo");
String var2 = "";
if (this.mc.theWorld.getTotalWorldTime() >= 120500L)
{
var2 = I18n.format("demo.demoExpired", new Object[0]);
}
else
{
var2 = I18n.format("demo.remainingTime", new Object[] {StringUtils.ticksToElapsedTime((int)(120500L - this.mc.theWorld.getTotalWorldTime()))});
}
int var3 = this.func_175179_f().getStringWidth(var2);
this.func_175179_f().func_175063_a(var2, (float)(p_175185_1_.getScaledWidth() - var3 - 10), 5.0F, 16777215);
this.mc.mcProfiler.endSection();
}
protected boolean func_175183_b()
{
if (this.mc.gameSettings.showDebugInfo && !this.mc.thePlayer.func_175140_cp() && !this.mc.gameSettings.field_178879_v)
{
return false;
}
else if (this.mc.playerController.enableEverythingIsScrewedUpMode())
{
if (this.mc.pointedEntity != null)
{
return true;
}
else
{
if (this.mc.objectMouseOver != null && this.mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{
BlockPos var1 = this.mc.objectMouseOver.func_178782_a();
if (this.mc.theWorld.getTileEntity(var1) instanceof IInventory)
{
return true;
}
}
return false;
}
}
else
{
return true;
}
}
public void func_180478_c(ScaledResolution p_180478_1_)
{
this.streamIndicator.render(p_180478_1_.getScaledWidth() - 10, 10);
}
private void func_180475_a(ScoreObjective p_180475_1_, ScaledResolution p_180475_2_)
{
Scoreboard var3 = p_180475_1_.getScoreboard();
Collection var4 = var3.getSortedScores(p_180475_1_);
ArrayList var5 = Lists.newArrayList(Iterables.filter(var4, new Predicate()
{
private static final String __OBFID = "CL_00001958";
public boolean func_178903_a(Score p_178903_1_)
{
return p_178903_1_.getPlayerName() != null && !p_178903_1_.getPlayerName().startsWith("#");
}
public boolean apply(Object p_apply_1_)
{
return this.func_178903_a((Score)p_apply_1_);
}
}));
ArrayList var21;
if (var5.size() > 15)
{
var21 = Lists.newArrayList(Iterables.skip(var5, var4.size() - 15));
}
else
{
var21 = var5;
}
int var6 = this.func_175179_f().getStringWidth(p_180475_1_.getDisplayName());
String var10;
for (Iterator var7 = var21.iterator(); var7.hasNext(); var6 = Math.max(var6, this.func_175179_f().getStringWidth(var10)))
{
Score var8 = (Score)var7.next();
ScorePlayerTeam var9 = var3.getPlayersTeam(var8.getPlayerName());
var10 = ScorePlayerTeam.formatPlayerName(var9, var8.getPlayerName()) + ": " + EnumChatFormatting.RED + var8.getScorePoints();
}
int var22 = var21.size() * this.func_175179_f().FONT_HEIGHT;
int var23 = p_180475_2_.getScaledHeight() / 2 + var22 / 3;
byte var24 = 3;
int var25 = p_180475_2_.getScaledWidth() - var6 - var24;
int var11 = 0;
Iterator var12 = var21.iterator();
while (var12.hasNext())
{
Score var13 = (Score)var12.next();
++var11;
ScorePlayerTeam var14 = var3.getPlayersTeam(var13.getPlayerName());
String var15 = ScorePlayerTeam.formatPlayerName(var14, var13.getPlayerName());
String var16 = EnumChatFormatting.RED + "" + var13.getScorePoints();
int var18 = var23 - var11 * this.func_175179_f().FONT_HEIGHT;
int var19 = p_180475_2_.getScaledWidth() - var24 + 2;
drawRect(var25 - 2, var18, var19, var18 + this.func_175179_f().FONT_HEIGHT, 1342177280);
this.func_175179_f().drawString(var15, var25, var18, 553648127);
this.func_175179_f().drawString(var16, var19 - this.func_175179_f().getStringWidth(var16), var18, 553648127);
if (var11 == var21.size())
{
String var20 = p_180475_1_.getDisplayName();
drawRect(var25 - 2, var18 - this.func_175179_f().FONT_HEIGHT - 1, var19, var18 - 1, 1610612736);
drawRect(var25 - 2, var18 - 1, var19, var18, 1342177280);
this.func_175179_f().drawString(var20, var25 + var6 / 2 - this.func_175179_f().getStringWidth(var20) / 2, var18 - this.func_175179_f().FONT_HEIGHT, 553648127);
}
}
}
private void func_180477_d(ScaledResolution p_180477_1_)
{
if (this.mc.func_175606_aa() instanceof EntityPlayer)
{
EntityPlayer var2 = (EntityPlayer)this.mc.func_175606_aa();
int var3 = MathHelper.ceiling_float_int(var2.getHealth());
boolean var4 = this.field_175191_F > (long)this.updateCounter && (this.field_175191_F - (long)this.updateCounter) / 3L % 2L == 1L;
if (var3 < this.field_175194_C && var2.hurtResistantTime > 0)
{
this.field_175190_E = Minecraft.getSystemTime();
this.field_175191_F = (long)(this.updateCounter + 20);
}
else if (var3 > this.field_175194_C && var2.hurtResistantTime > 0)
{
this.field_175190_E = Minecraft.getSystemTime();
this.field_175191_F = (long)(this.updateCounter + 10);
}
if (Minecraft.getSystemTime() - this.field_175190_E > 1000L)
{
this.field_175194_C = var3;
this.field_175189_D = var3;
this.field_175190_E = Minecraft.getSystemTime();
}
this.field_175194_C = var3;
int var5 = this.field_175189_D;
this.rand.setSeed((long)(this.updateCounter * 312871));
boolean var6 = false;
FoodStats var7 = var2.getFoodStats();
int var8 = var7.getFoodLevel();
int var9 = var7.getPrevFoodLevel();
IAttributeInstance var10 = var2.getEntityAttribute(SharedMonsterAttributes.maxHealth);
int var11 = p_180477_1_.getScaledWidth() / 2 - 91;
int var12 = p_180477_1_.getScaledWidth() / 2 + 91;
int var13 = p_180477_1_.getScaledHeight() - 39;
float var14 = (float)var10.getAttributeValue();
float var15 = var2.getAbsorptionAmount();
int var16 = MathHelper.ceiling_float_int((var14 + var15) / 2.0F / 10.0F);
int var17 = Math.max(10 - (var16 - 2), 3);
int var18 = var13 - (var16 - 1) * var17 - 10;
float var19 = var15;
int var20 = var2.getTotalArmorValue();
int var21 = -1;
if (var2.isPotionActive(Potion.regeneration))
{
var21 = this.updateCounter % MathHelper.ceiling_float_int(var14 + 5.0F);
}
this.mc.mcProfiler.startSection("armor");
int var22;
int var23;
for (var22 = 0; var22 < 10; ++var22)
{
if (var20 > 0)
{
var23 = var11 + var22 * 8;
if (var22 * 2 + 1 < var20)
{
this.drawTexturedModalRect(var23, var18, 34, 9, 9, 9);
}
if (var22 * 2 + 1 == var20)
{
this.drawTexturedModalRect(var23, var18, 25, 9, 9, 9);
}
if (var22 * 2 + 1 > var20)
{
this.drawTexturedModalRect(var23, var18, 16, 9, 9, 9);
}
}
}
this.mc.mcProfiler.endStartSection("health");
int var25;
int var26;
int var27;
for (var22 = MathHelper.ceiling_float_int((var14 + var15) / 2.0F) - 1; var22 >= 0; --var22)
{
var23 = 16;
if (var2.isPotionActive(Potion.poison))
{
var23 += 36;
}
else if (var2.isPotionActive(Potion.wither))
{
var23 += 72;
}
byte var24 = 0;
if (var4)
{
var24 = 1;
}
var25 = MathHelper.ceiling_float_int((float)(var22 + 1) / 10.0F) - 1;
var26 = var11 + var22 % 10 * 8;
var27 = var13 - var25 * var17;
if (var3 <= 4)
{
var27 += this.rand.nextInt(2);
}
if (var22 == var21)
{
var27 -= 2;
}
byte var28 = 0;
if (var2.worldObj.getWorldInfo().isHardcoreModeEnabled())
{
var28 = 5;
}
this.drawTexturedModalRect(var26, var27, 16 + var24 * 9, 9 * var28, 9, 9);
if (var4)
{
if (var22 * 2 + 1 < var5)
{
this.drawTexturedModalRect(var26, var27, var23 + 54, 9 * var28, 9, 9);
}
if (var22 * 2 + 1 == var5)
{
this.drawTexturedModalRect(var26, var27, var23 + 63, 9 * var28, 9, 9);
}
}
if (var19 > 0.0F)
{
if (var19 == var15 && var15 % 2.0F == 1.0F)
{
this.drawTexturedModalRect(var26, var27, var23 + 153, 9 * var28, 9, 9);
}
else
{
this.drawTexturedModalRect(var26, var27, var23 + 144, 9 * var28, 9, 9);
}
var19 -= 2.0F;
}
else
{
if (var22 * 2 + 1 < var3)
{
this.drawTexturedModalRect(var26, var27, var23 + 36, 9 * var28, 9, 9);
}
if (var22 * 2 + 1 == var3)
{
this.drawTexturedModalRect(var26, var27, var23 + 45, 9 * var28, 9, 9);
}
}
}
Entity var34 = var2.ridingEntity;
int var36;
if (var34 == null)
{
this.mc.mcProfiler.endStartSection("food");
for (var23 = 0; var23 < 10; ++var23)
{
var36 = var13;
var25 = 16;
byte var38 = 0;
if (var2.isPotionActive(Potion.hunger))
{
var25 += 36;
var38 = 13;
}
if (var2.getFoodStats().getSaturationLevel() <= 0.0F && this.updateCounter % (var8 * 3 + 1) == 0)
{
var36 = var13 + (this.rand.nextInt(3) - 1);
}
if (var6)
{
var38 = 1;
}
var27 = var12 - var23 * 8 - 9;
this.drawTexturedModalRect(var27, var36, 16 + var38 * 9, 27, 9, 9);
if (var6)
{
if (var23 * 2 + 1 < var9)
{
this.drawTexturedModalRect(var27, var36, var25 + 54, 27, 9, 9);
}
if (var23 * 2 + 1 == var9)
{
this.drawTexturedModalRect(var27, var36, var25 + 63, 27, 9, 9);
}
}
if (var23 * 2 + 1 < var8)
{
this.drawTexturedModalRect(var27, var36, var25 + 36, 27, 9, 9);
}
if (var23 * 2 + 1 == var8)
{
this.drawTexturedModalRect(var27, var36, var25 + 45, 27, 9, 9);
}
}
}
else if (var34 instanceof EntityLivingBase)
{
this.mc.mcProfiler.endStartSection("mountHealth");
EntityLivingBase var35 = (EntityLivingBase)var34;
var36 = (int)Math.ceil((double)var35.getHealth());
float var37 = var35.getMaxHealth();
var26 = (int)(var37 + 0.5F) / 2;
if (var26 > 30)
{
var26 = 30;
}
var27 = var13;
for (int var39 = 0; var26 > 0; var39 += 20)
{
int var29 = Math.min(var26, 10);
var26 -= var29;
for (int var30 = 0; var30 < var29; ++var30)
{
byte var31 = 52;
byte var32 = 0;
if (var6)
{
var32 = 1;
}
int var33 = var12 - var30 * 8 - 9;
this.drawTexturedModalRect(var33, var27, var31 + var32 * 9, 9, 9, 9);
if (var30 * 2 + 1 + var39 < var36)
{
this.drawTexturedModalRect(var33, var27, var31 + 36, 9, 9, 9);
}
if (var30 * 2 + 1 + var39 == var36)
{
this.drawTexturedModalRect(var33, var27, var31 + 45, 9, 9, 9);
}
}
var27 -= 10;
}
}
this.mc.mcProfiler.endStartSection("air");
if (var2.isInsideOfMaterial(Material.water))
{
var23 = this.mc.thePlayer.getAir();
var36 = MathHelper.ceiling_double_int((double)(var23 - 2) * 10.0D / 300.0D);
var25 = MathHelper.ceiling_double_int((double)var23 * 10.0D / 300.0D) - var36;
for (var26 = 0; var26 < var36 + var25; ++var26)
{
if (var26 < var36)
{
this.drawTexturedModalRect(var12 - var26 * 8 - 9, var18, 16, 18, 9, 9);
}
else
{
this.drawTexturedModalRect(var12 - var26 * 8 - 9, var18, 25, 18, 9, 9);
}
}
}
this.mc.mcProfiler.endSection();
}
}
/**
* Renders dragon's (boss) health on the HUD
*/
private void renderBossHealth()
{
if (BossStatus.bossName != null && BossStatus.statusBarTime > 0)
{
--BossStatus.statusBarTime;
FontRenderer var1 = this.mc.fontRendererObj;
ScaledResolution var2 = new ScaledResolution(this.mc, this.mc.displayWidth, this.mc.displayHeight);
int var3 = var2.getScaledWidth();
short var4 = 182;
int var5 = var3 / 2 - var4 / 2;
int var6 = (int)(BossStatus.healthScale * (float)(var4 + 1));
byte var7 = 12;
this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5);
this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5);
if (var6 > 0)
{
this.drawTexturedModalRect(var5, var7, 0, 79, var6, 5);
}
String var8 = BossStatus.bossName;
this.func_175179_f().func_175063_a(var8, (float)(var3 / 2 - this.func_175179_f().getStringWidth(var8) / 2), (float)(var7 - 10), 16777215);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(icons);
}
}
private void func_180476_e(ScaledResolution p_180476_1_)
{
GlStateManager.disableDepth();
GlStateManager.depthMask(false);
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.disableAlpha();
this.mc.getTextureManager().bindTexture(pumpkinBlurTexPath);
Tessellator var2 = Tessellator.getInstance();
WorldRenderer var3 = var2.getWorldRenderer();
var3.startDrawingQuads();
var3.addVertexWithUV(0.0D, (double)p_180476_1_.getScaledHeight(), -90.0D, 0.0D, 1.0D);
var3.addVertexWithUV((double)p_180476_1_.getScaledWidth(), (double)p_180476_1_.getScaledHeight(), -90.0D, 1.0D, 1.0D);
var3.addVertexWithUV((double)p_180476_1_.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D);
var3.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D);
var2.draw();
GlStateManager.depthMask(true);
GlStateManager.enableDepth();
GlStateManager.enableAlpha();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
}
private void func_180480_a(float p_180480_1_, ScaledResolution p_180480_2_)
{
p_180480_1_ = 1.0F - p_180480_1_;
p_180480_1_ = MathHelper.clamp_float(p_180480_1_, 0.0F, 1.0F);
WorldBorder var3 = this.mc.theWorld.getWorldBorder();
float var4 = (float)var3.getClosestDistance(this.mc.thePlayer);
double var5 = Math.min(var3.func_177749_o() * (double)var3.getWarningTime() * 1000.0D, Math.abs(var3.getTargetSize() - var3.getDiameter()));
double var7 = Math.max((double)var3.getWarningDistance(), var5);
if ((double)var4 < var7)
{
var4 = 1.0F - (float)((double)var4 / var7);
}
else
{
var4 = 0.0F;
}
this.prevVignetteBrightness = (float)((double)this.prevVignetteBrightness + (double)(p_180480_1_ - this.prevVignetteBrightness) * 0.01D);
GlStateManager.disableDepth();
GlStateManager.depthMask(false);
GlStateManager.tryBlendFuncSeparate(0, 769, 1, 0);
if (var4 > 0.0F)
{
GlStateManager.color(0.0F, var4, var4, 1.0F);
}
else
{
GlStateManager.color(this.prevVignetteBrightness, this.prevVignetteBrightness, this.prevVignetteBrightness, 1.0F);
}
this.mc.getTextureManager().bindTexture(vignetteTexPath);
Tessellator var9 = Tessellator.getInstance();
WorldRenderer var10 = var9.getWorldRenderer();
var10.startDrawingQuads();
var10.addVertexWithUV(0.0D, (double)p_180480_2_.getScaledHeight(), -90.0D, 0.0D, 1.0D);
var10.addVertexWithUV((double)p_180480_2_.getScaledWidth(), (double)p_180480_2_.getScaledHeight(), -90.0D, 1.0D, 1.0D);
var10.addVertexWithUV((double)p_180480_2_.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D);
var10.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D);
var9.draw();
GlStateManager.depthMask(true);
GlStateManager.enableDepth();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
}
private void func_180474_b(float p_180474_1_, ScaledResolution p_180474_2_)
{
if (p_180474_1_ < 1.0F)
{
p_180474_1_ *= p_180474_1_;
p_180474_1_ *= p_180474_1_;
p_180474_1_ = p_180474_1_ * 0.8F + 0.2F;
}
GlStateManager.disableAlpha();
GlStateManager.disableDepth();
GlStateManager.depthMask(false);
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
GlStateManager.color(1.0F, 1.0F, 1.0F, p_180474_1_);
this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
TextureAtlasSprite var3 = this.mc.getBlockRendererDispatcher().func_175023_a().func_178122_a(Blocks.portal.getDefaultState());
float var4 = var3.getMinU();
float var5 = var3.getMinV();
float var6 = var3.getMaxU();
float var7 = var3.getMaxV();
Tessellator var8 = Tessellator.getInstance();
WorldRenderer var9 = var8.getWorldRenderer();
var9.startDrawingQuads();
var9.addVertexWithUV(0.0D, (double)p_180474_2_.getScaledHeight(), -90.0D, (double)var4, (double)var7);
var9.addVertexWithUV((double)p_180474_2_.getScaledWidth(), (double)p_180474_2_.getScaledHeight(), -90.0D, (double)var6, (double)var7);
var9.addVertexWithUV((double)p_180474_2_.getScaledWidth(), 0.0D, -90.0D, (double)var6, (double)var5);
var9.addVertexWithUV(0.0D, 0.0D, -90.0D, (double)var4, (double)var5);
var8.draw();
GlStateManager.depthMask(true);
GlStateManager.enableDepth();
GlStateManager.enableAlpha();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
}
private void func_175184_a(int p_175184_1_, int p_175184_2_, int p_175184_3_, float p_175184_4_, EntityPlayer p_175184_5_)
{
ItemStack var6 = p_175184_5_.inventory.mainInventory[p_175184_1_];
if (var6 != null)
{
float var7 = (float)var6.animationsToGo - p_175184_4_;
if (var7 > 0.0F)
{
GlStateManager.pushMatrix();
float var8 = 1.0F + var7 / 5.0F;
GlStateManager.translate((float)(p_175184_2_ + 8), (float)(p_175184_3_ + 12), 0.0F);
GlStateManager.scale(1.0F / var8, (var8 + 1.0F) / 2.0F, 1.0F);
GlStateManager.translate((float)(-(p_175184_2_ + 8)), (float)(-(p_175184_3_ + 12)), 0.0F);
}
this.itemRenderer.func_180450_b(var6, p_175184_2_, p_175184_3_);
if (var7 > 0.0F)
{
GlStateManager.popMatrix();
}
this.itemRenderer.func_175030_a(this.mc.fontRendererObj, var6, p_175184_2_, p_175184_3_);
}
}
/**
* The update tick for the ingame UI
*/
public void updateTick()
{
if (this.recordPlayingUpFor > 0)
{
--this.recordPlayingUpFor;
}
if (this.field_175195_w > 0)
{
--this.field_175195_w;
if (this.field_175195_w <= 0)
{
this.field_175201_x = "";
this.field_175200_y = "";
}
}
++this.updateCounter;
this.streamIndicator.func_152439_a();
if (this.mc.thePlayer != null)
{
ItemStack var1 = this.mc.thePlayer.inventory.getCurrentItem();
if (var1 == null)
{
this.remainingHighlightTicks = 0;
}
else if (this.highlightingItemStack != null && var1.getItem() == this.highlightingItemStack.getItem() && ItemStack.areItemStackTagsEqual(var1, this.highlightingItemStack) && (var1.isItemStackDamageable() || var1.getMetadata() == this.highlightingItemStack.getMetadata()))
{
if (this.remainingHighlightTicks > 0)
{
--this.remainingHighlightTicks;
}
}
else
{
this.remainingHighlightTicks = 40;
}
this.highlightingItemStack = var1;
}
}
public void setRecordPlayingMessage(String p_73833_1_)
{
this.setRecordPlaying(I18n.format("record.nowPlaying", new Object[] {p_73833_1_}), true);
}
public void setRecordPlaying(String p_110326_1_, boolean p_110326_2_)
{
this.recordPlaying = p_110326_1_;
this.recordPlayingUpFor = 60;
this.recordIsPlaying = p_110326_2_;
}
public void func_175178_a(String p_175178_1_, String p_175178_2_, int p_175178_3_, int p_175178_4_, int p_175178_5_)
{
if (p_175178_1_ == null && p_175178_2_ == null && p_175178_3_ < 0 && p_175178_4_ < 0 && p_175178_5_ < 0)
{
this.field_175201_x = "";
this.field_175200_y = "";
this.field_175195_w = 0;
}
else if (p_175178_1_ != null)
{
this.field_175201_x = p_175178_1_;
this.field_175195_w = this.field_175199_z + this.field_175192_A + this.field_175193_B;
}
else if (p_175178_2_ != null)
{
this.field_175200_y = p_175178_2_;
}
else
{
if (p_175178_3_ >= 0)
{
this.field_175199_z = p_175178_3_;
}
if (p_175178_4_ >= 0)
{
this.field_175192_A = p_175178_4_;
}
if (p_175178_5_ >= 0)
{
this.field_175193_B = p_175178_5_;
}
if (this.field_175195_w > 0)
{
this.field_175195_w = this.field_175199_z + this.field_175192_A + this.field_175193_B;
}
}
}
public void func_175188_a(IChatComponent p_175188_1_, boolean p_175188_2_)
{
this.setRecordPlaying(p_175188_1_.getUnformattedText(), p_175188_2_);
}
/**
* returns a pointer to the persistant Chat GUI, containing all previous chat messages and such
*/
public GuiNewChat getChatGUI()
{
return this.persistantChatGUI;
}
public int getUpdateCounter()
{
return this.updateCounter;
}
public FontRenderer func_175179_f()
{
return this.mc.fontRendererObj;
}
public GuiSpectator func_175187_g()
{
return this.field_175197_u;
}
public GuiPlayerTabOverlay getTabList()
{
return this.overlayPlayerList;
}
}