package net.minecraft.client.gui;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.Ordering;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.client.network.NetworkPlayerInfo;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EnumPlayerModelParts;
import net.minecraft.scoreboard.IScoreObjectiveCriteria;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.MathHelper;
import net.minecraft.world.WorldSettings;
public class GuiPlayerTabOverlay extends Gui
{
private static final Ordering field_175252_a = Ordering.from(new GuiPlayerTabOverlay.PlayerComparator(null));
private final Minecraft field_175250_f;
private final GuiIngame field_175251_g;
private IChatComponent footer;
private IChatComponent header;
private long field_175253_j;
private boolean field_175254_k;
private static final String __OBFID = "CL_00001943";
public GuiPlayerTabOverlay(Minecraft mcIn, GuiIngame p_i45529_2_)
{
this.field_175250_f = mcIn;
this.field_175251_g = p_i45529_2_;
}
public String func_175243_a(NetworkPlayerInfo p_175243_1_)
{
return p_175243_1_.func_178854_k() != null ? p_175243_1_.func_178854_k().getFormattedText() : ScorePlayerTeam.formatPlayerName(p_175243_1_.func_178850_i(), p_175243_1_.func_178845_a().getName());
}
public void func_175246_a(boolean p_175246_1_)
{
if (p_175246_1_ && !this.field_175254_k)
{
this.field_175253_j = Minecraft.getSystemTime();
}
this.field_175254_k = p_175246_1_;
}
public void func_175249_a(int p_175249_1_, Scoreboard p_175249_2_, ScoreObjective p_175249_3_)
{
NetHandlerPlayClient var4 = this.field_175250_f.thePlayer.sendQueue;
List var5 = field_175252_a.sortedCopy(var4.func_175106_d());
int var6 = 0;
int var7 = 0;
Iterator var8 = var5.iterator();
int var10;
while (var8.hasNext())
{
NetworkPlayerInfo var9 = (NetworkPlayerInfo)var8.next();
var10 = this.field_175250_f.fontRendererObj.getStringWidth(this.func_175243_a(var9));
var6 = Math.max(var6, var10);
if (p_175249_3_ != null && p_175249_3_.func_178766_e() != IScoreObjectiveCriteria.EnumRenderType.HEARTS)
{
var10 = this.field_175250_f.fontRendererObj.getStringWidth(" " + p_175249_2_.getValueFromObjective(var9.func_178845_a().getName(), p_175249_3_).getScorePoints());
var7 = Math.max(var7, var10);
}
}
var5 = var5.subList(0, Math.min(var5.size(), 80));
int var28 = var5.size();
int var29 = var28;
for (var10 = 1; var29 > 20; var29 = (var28 + var10 - 1) / var10)
{
++var10;
}
boolean var11 = this.field_175250_f.isIntegratedServerRunning() || this.field_175250_f.getNetHandler().getNetworkManager().func_179292_f();
int var12;
if (p_175249_3_ != null)
{
if (p_175249_3_.func_178766_e() == IScoreObjectiveCriteria.EnumRenderType.HEARTS)
{
var12 = 90;
}
else
{
var12 = var7;
}
}
else
{
var12 = 0;
}
int var13 = Math.min(var10 * ((var11 ? 9 : 0) + var6 + var12 + 13), p_175249_1_ - 50) / var10;
int var14 = p_175249_1_ / 2 - (var13 * var10 + (var10 - 1) * 5) / 2;
int var15 = 10;
int var16 = var13 * var10 + (var10 - 1) * 5;
List var17 = null;
List var18 = null;
Iterator var19;
String var20;
if (this.header != null)
{
var17 = this.field_175250_f.fontRendererObj.listFormattedStringToWidth(this.header.getFormattedText(), p_175249_1_ - 50);
for (var19 = var17.iterator(); var19.hasNext(); var16 = Math.max(var16, this.field_175250_f.fontRendererObj.getStringWidth(var20)))
{
var20 = (String)var19.next();
}
}
if (this.footer != null)
{
var18 = this.field_175250_f.fontRendererObj.listFormattedStringToWidth(this.footer.getFormattedText(), p_175249_1_ - 50);
for (var19 = var18.iterator(); var19.hasNext(); var16 = Math.max(var16, this.field_175250_f.fontRendererObj.getStringWidth(var20)))
{
var20 = (String)var19.next();
}
}
int var21;
if (var17 != null)
{
drawRect(p_175249_1_ / 2 - var16 / 2 - 1, var15 - 1, p_175249_1_ / 2 + var16 / 2 + 1, var15 + var17.size() * this.field_175250_f.fontRendererObj.FONT_HEIGHT, Integer.MIN_VALUE);
for (var19 = var17.iterator(); var19.hasNext(); var15 += this.field_175250_f.fontRendererObj.FONT_HEIGHT)
{
var20 = (String)var19.next();
var21 = this.field_175250_f.fontRendererObj.getStringWidth(var20);
this.field_175250_f.fontRendererObj.func_175063_a(var20, (float)(p_175249_1_ / 2 - var21 / 2), (float)var15, -1);
}
++var15;
}
drawRect(p_175249_1_ / 2 - var16 / 2 - 1, var15 - 1, p_175249_1_ / 2 + var16 / 2 + 1, var15 + var29 * 9, Integer.MIN_VALUE);
for (int var30 = 0; var30 < var28; ++var30)
{
int var31 = var30 / var29;
var21 = var30 % var29;
int var22 = var14 + var31 * var13 + var31 * 5;
int var23 = var15 + var21 * 9;
drawRect(var22, var23, var22 + var13, var23 + 8, 553648127);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.enableAlpha();
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
if (var30 < var5.size())
{
NetworkPlayerInfo var24 = (NetworkPlayerInfo)var5.get(var30);
String var25 = this.func_175243_a(var24);
if (var11)
{
this.field_175250_f.getTextureManager().bindTexture(var24.func_178837_g());
Gui.drawScaledCustomSizeModalRect(var22, var23, 8.0F, 8.0F, 8, 8, 8, 8, 64.0F, 64.0F);
EntityPlayer var26 = this.field_175250_f.theWorld.getPlayerEntityByUUID(var24.func_178845_a().getId());
if (var26 != null && var26.func_175148_a(EnumPlayerModelParts.HAT))
{
Gui.drawScaledCustomSizeModalRect(var22, var23, 40.0F, 8.0F, 8, 8, 8, 8, 64.0F, 64.0F);
}
var22 += 9;
}
if (var24.getGameType() == WorldSettings.GameType.SPECTATOR)
{
var25 = EnumChatFormatting.ITALIC + var25;
this.field_175250_f.fontRendererObj.func_175063_a(var25, (float)var22, (float)var23, -1862270977);
}
else
{
this.field_175250_f.fontRendererObj.func_175063_a(var25, (float)var22, (float)var23, -1);
}
if (p_175249_3_ != null && var24.getGameType() != WorldSettings.GameType.SPECTATOR)
{
int var32 = var22 + var6 + 1;
int var27 = var32 + var12;
if (var27 - var32 > 5)
{
this.func_175247_a(p_175249_3_, var23, var24.func_178845_a().getName(), var32, var27, var24);
}
}
this.func_175245_a(var13, var22 - (var11 ? 9 : 0), var23, var24);
}
}
if (var18 != null)
{
var15 += var29 * 9 + 1;
drawRect(p_175249_1_ / 2 - var16 / 2 - 1, var15 - 1, p_175249_1_ / 2 + var16 / 2 + 1, var15 + var18.size() * this.field_175250_f.fontRendererObj.FONT_HEIGHT, Integer.MIN_VALUE);
for (var19 = var18.iterator(); var19.hasNext(); var15 += this.field_175250_f.fontRendererObj.FONT_HEIGHT)
{
var20 = (String)var19.next();
var21 = this.field_175250_f.fontRendererObj.getStringWidth(var20);
this.field_175250_f.fontRendererObj.func_175063_a(var20, (float)(p_175249_1_ / 2 - var21 / 2), (float)var15, -1);
}
}
}
protected void func_175245_a(int p_175245_1_, int p_175245_2_, int p_175245_3_, NetworkPlayerInfo p_175245_4_)
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.field_175250_f.getTextureManager().bindTexture(icons);
byte var5 = 0;
boolean var6 = false;
byte var7;
if (p_175245_4_.getResponseTime() < 0)
{
var7 = 5;
}
else if (p_175245_4_.getResponseTime() < 150)
{
var7 = 0;
}
else if (p_175245_4_.getResponseTime() < 300)
{
var7 = 1;
}
else if (p_175245_4_.getResponseTime() < 600)
{
var7 = 2;
}
else if (p_175245_4_.getResponseTime() < 1000)
{
var7 = 3;
}
else
{
var7 = 4;
}
this.zLevel += 100.0F;
this.drawTexturedModalRect(p_175245_2_ + p_175245_1_ - 11, p_175245_3_, 0 + var5 * 10, 176 + var7 * 8, 10, 8);
this.zLevel -= 100.0F;
}
private void func_175247_a(ScoreObjective p_175247_1_, int p_175247_2_, String p_175247_3_, int p_175247_4_, int p_175247_5_, NetworkPlayerInfo p_175247_6_)
{
int var7 = p_175247_1_.getScoreboard().getValueFromObjective(p_175247_3_, p_175247_1_).getScorePoints();
if (p_175247_1_.func_178766_e() == IScoreObjectiveCriteria.EnumRenderType.HEARTS)
{
this.field_175250_f.getTextureManager().bindTexture(icons);
if (this.field_175253_j == p_175247_6_.func_178855_p())
{
if (var7 < p_175247_6_.func_178835_l())
{
p_175247_6_.func_178846_a(Minecraft.getSystemTime());
p_175247_6_.func_178844_b((long)(this.field_175251_g.getUpdateCounter() + 20));
}
else if (var7 > p_175247_6_.func_178835_l())
{
p_175247_6_.func_178846_a(Minecraft.getSystemTime());
p_175247_6_.func_178844_b((long)(this.field_175251_g.getUpdateCounter() + 10));
}
}
if (Minecraft.getSystemTime() - p_175247_6_.func_178847_n() > 1000L || this.field_175253_j != p_175247_6_.func_178855_p())
{
p_175247_6_.func_178836_b(var7);
p_175247_6_.func_178857_c(var7);
p_175247_6_.func_178846_a(Minecraft.getSystemTime());
}
p_175247_6_.func_178843_c(this.field_175253_j);
p_175247_6_.func_178836_b(var7);
int var8 = MathHelper.ceiling_float_int((float)Math.max(var7, p_175247_6_.func_178860_m()) / 2.0F);
int var9 = Math.max(MathHelper.ceiling_float_int((float)(var7 / 2)), Math.max(MathHelper.ceiling_float_int((float)(p_175247_6_.func_178860_m() / 2)), 10));
boolean var10 = p_175247_6_.func_178858_o() > (long)this.field_175251_g.getUpdateCounter() && (p_175247_6_.func_178858_o() - (long)this.field_175251_g.getUpdateCounter()) / 3L % 2L == 1L;
if (var8 > 0)
{
float var11 = Math.min((float)(p_175247_5_ - p_175247_4_ - 4) / (float)var9, 9.0F);
if (var11 > 3.0F)
{
int var12;
for (var12 = var8; var12 < var9; ++var12)
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, var10 ? 25 : 16, 0, 9, 9);
}
for (var12 = 0; var12 < var8; ++var12)
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, var10 ? 25 : 16, 0, 9, 9);
if (var10)
{
if (var12 * 2 + 1 < p_175247_6_.func_178860_m())
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, 70, 0, 9, 9);
}
if (var12 * 2 + 1 == p_175247_6_.func_178860_m())
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, 79, 0, 9, 9);
}
}
if (var12 * 2 + 1 < var7)
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, var12 >= 10 ? 160 : 52, 0, 9, 9);
}
if (var12 * 2 + 1 == var7)
{
this.func_175174_a((float)p_175247_4_ + (float)var12 * var11, (float)p_175247_2_, var12 >= 10 ? 169 : 61, 0, 9, 9);
}
}
}
else
{
float var16 = MathHelper.clamp_float((float)var7 / 20.0F, 0.0F, 1.0F);
int var13 = (int)((1.0F - var16) * 255.0F) << 16 | (int)(var16 * 255.0F) << 8;
String var14 = "" + (float)var7 / 2.0F;
if (p_175247_5_ - this.field_175250_f.fontRendererObj.getStringWidth(var14 + "hp") >= p_175247_4_)
{
var14 = var14 + "hp";
}
this.field_175250_f.fontRendererObj.func_175063_a(var14, (float)((p_175247_5_ + p_175247_4_) / 2 - this.field_175250_f.fontRendererObj.getStringWidth(var14) / 2), (float)p_175247_2_, var13);
}
}
}
else
{
String var15 = EnumChatFormatting.YELLOW + "" + var7;
this.field_175250_f.fontRendererObj.func_175063_a(var15, (float)(p_175247_5_ - this.field_175250_f.fontRendererObj.getStringWidth(var15)), (float)p_175247_2_, 16777215);
}
}
public void setFooter(IChatComponent p_175248_1_)
{
this.footer = p_175248_1_;
}
public void setHeader(IChatComponent p_175244_1_)
{
this.header = p_175244_1_;
}
static class PlayerComparator implements Comparator
{
private static final String __OBFID = "CL_00001941";
private PlayerComparator() {}
public int func_178952_a(NetworkPlayerInfo p_178952_1_, NetworkPlayerInfo p_178952_2_)
{
ScorePlayerTeam var3 = p_178952_1_.func_178850_i();
ScorePlayerTeam var4 = p_178952_2_.func_178850_i();
return ComparisonChain.start().compareTrueFirst(p_178952_1_.getGameType() != WorldSettings.GameType.SPECTATOR, p_178952_2_.getGameType() != WorldSettings.GameType.SPECTATOR).compare(var3 != null ? var3.getRegisteredName() : "", var4 != null ? var4.getRegisteredName() : "").compare(p_178952_1_.func_178845_a().getName(), p_178952_2_.func_178845_a().getName()).result();
}
public int compare(Object p_compare_1_, Object p_compare_2_)
{
return this.func_178952_a((NetworkPlayerInfo)p_compare_1_, (NetworkPlayerInfo)p_compare_2_);
}
PlayerComparator(Object p_i45528_1_)
{
this();
}
}
}