package net.minecraft.client.gui.achievement; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.Collections; import java.util.Comparator; import java.util.List; import net.minecraft.client.gui.GuiSlot; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; import net.minecraft.stats.StatCrafting; import net.minecraft.util.StringTranslate; import org.lwjgl.input.Mouse; @SideOnly(Side.CLIENT) abstract class GuiSlotStats extends GuiSlot { protected int field_77262_g; protected List field_77266_h; protected Comparator field_77267_i; protected int field_77264_j; protected int field_77265_k; final GuiStats statsGui; protected GuiSlotStats(GuiStats par1GuiStats) { super(GuiStats.getMinecraft1(par1GuiStats), par1GuiStats.width, par1GuiStats.height, 32, par1GuiStats.height - 64, 20); this.statsGui = par1GuiStats; this.field_77262_g = -1; this.field_77264_j = -1; this.field_77265_k = 0; this.setShowSelectionBox(false); this.func_77223_a(true, 20); } /** * the element in the slot that was clicked, boolean for wether it was double clicked or not */ protected void elementClicked(int par1, boolean par2) {} /** * returns true if the element passed in is currently selected */ protected boolean isSelected(int par1) { return false; } protected void drawBackground() { this.statsGui.drawDefaultBackground(); } protected void func_77222_a(int par1, int par2, Tessellator par3Tessellator) { if (!Mouse.isButtonDown(0)) { this.field_77262_g = -1; } if (this.field_77262_g == 0) { GuiStats.drawSprite(this.statsGui, par1 + 115 - 18, par2 + 1, 0, 0); } else { GuiStats.drawSprite(this.statsGui, par1 + 115 - 18, par2 + 1, 0, 18); } if (this.field_77262_g == 1) { GuiStats.drawSprite(this.statsGui, par1 + 165 - 18, par2 + 1, 0, 0); } else { GuiStats.drawSprite(this.statsGui, par1 + 165 - 18, par2 + 1, 0, 18); } if (this.field_77262_g == 2) { GuiStats.drawSprite(this.statsGui, par1 + 215 - 18, par2 + 1, 0, 0); } else { GuiStats.drawSprite(this.statsGui, par1 + 215 - 18, par2 + 1, 0, 18); } if (this.field_77264_j != -1) { short var4 = 79; byte var5 = 18; if (this.field_77264_j == 1) { var4 = 129; } else if (this.field_77264_j == 2) { var4 = 179; } if (this.field_77265_k == 1) { var5 = 36; } GuiStats.drawSprite(this.statsGui, par1 + var4, par2 + 1, var5, 0); } } protected void func_77224_a(int par1, int par2) { this.field_77262_g = -1; if (par1 >= 79 && par1 < 115) { this.field_77262_g = 0; } else if (par1 >= 129 && par1 < 165) { this.field_77262_g = 1; } else if (par1 >= 179 && par1 < 215) { this.field_77262_g = 2; } if (this.field_77262_g >= 0) { this.func_77261_e(this.field_77262_g); GuiStats.getMinecraft2(this.statsGui).sndManager.playSoundFX("random.click", 1.0F, 1.0F); } } /** * Gets the size of the current slot list. */ protected final int getSize() { return this.field_77266_h.size(); } protected final StatCrafting func_77257_d(int par1) { return (StatCrafting)this.field_77266_h.get(par1); } protected abstract String func_77258_c(int var1); protected void func_77260_a(StatCrafting par1StatCrafting, int par2, int par3, boolean par4) { String var5; if (par1StatCrafting != null) { var5 = par1StatCrafting.func_75968_a(GuiStats.getStatsFileWriter(this.statsGui).writeStat(par1StatCrafting)); this.statsGui.drawString(GuiStats.getFontRenderer4(this.statsGui), var5, par2 - GuiStats.getFontRenderer5(this.statsGui).getStringWidth(var5), par3 + 5, par4 ? 16777215 : 9474192); } else { var5 = "-"; this.statsGui.drawString(GuiStats.getFontRenderer6(this.statsGui), var5, par2 - GuiStats.getFontRenderer7(this.statsGui).getStringWidth(var5), par3 + 5, par4 ? 16777215 : 9474192); } } protected void func_77215_b(int par1, int par2) { if (par2 >= this.top && par2 <= this.bottom) { int var3 = this.func_77210_c(par1, par2); int var4 = this.statsGui.width / 2 - 92 - 16; if (var3 >= 0) { if (par1 < var4 + 40 || par1 > var4 + 40 + 20) { return; } StatCrafting var5 = this.func_77257_d(var3); this.func_77259_a(var5, par1, par2); } else { String var9 = ""; if (par1 >= var4 + 115 - 18 && par1 <= var4 + 115) { var9 = this.func_77258_c(0); } else if (par1 >= var4 + 165 - 18 && par1 <= var4 + 165) { var9 = this.func_77258_c(1); } else { if (par1 < var4 + 215 - 18 || par1 > var4 + 215) { return; } var9 = this.func_77258_c(2); } var9 = ("" + StringTranslate.getInstance().translateKey(var9)).trim(); if (var9.length() > 0) { int var6 = par1 + 12; int var7 = par2 - 12; int var8 = GuiStats.getFontRenderer8(this.statsGui).getStringWidth(var9); GuiStats.drawGradientRect(this.statsGui, var6 - 3, var7 - 3, var6 + var8 + 3, var7 + 8 + 3, -1073741824, -1073741824); GuiStats.getFontRenderer9(this.statsGui).drawStringWithShadow(var9, var6, var7, -1); } } } } protected void func_77259_a(StatCrafting par1StatCrafting, int par2, int par3) { if (par1StatCrafting != null) { Item var4 = Item.itemsList[par1StatCrafting.getItemID()]; String var5 = ("" + StringTranslate.getInstance().translateNamedKey(var4.getItemName())).trim(); if (var5.length() > 0) { int var6 = par2 + 12; int var7 = par3 - 12; int var8 = GuiStats.getFontRenderer10(this.statsGui).getStringWidth(var5); GuiStats.drawGradientRect1(this.statsGui, var6 - 3, var7 - 3, var6 + var8 + 3, var7 + 8 + 3, -1073741824, -1073741824); GuiStats.getFontRenderer11(this.statsGui).drawStringWithShadow(var5, var6, var7, -1); } } } protected void func_77261_e(int par1) { if (par1 != this.field_77264_j) { this.field_77264_j = par1; this.field_77265_k = -1; } else if (this.field_77265_k == -1) { this.field_77265_k = 1; } else { this.field_77264_j = -1; this.field_77265_k = 0; } Collections.sort(this.field_77266_h, this.field_77267_i); } }