001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.util.ArrayList; 006 import java.util.Iterator; 007 import java.util.List; 008 import java.util.TreeMap; 009 import java.util.Map.Entry; 010 011 @SideOnly(Side.CLIENT) 012 public class GuiSnooper extends GuiScreen 013 { 014 private final GuiScreen field_74100_a; 015 private final GameSettings field_74097_b; 016 private final List field_74098_c = new ArrayList(); 017 private final List field_74096_d = new ArrayList(); 018 private String field_74103_m; 019 private String[] field_74101_n; 020 private GuiSnooperList field_74102_o; 021 private GuiButton field_74099_p; 022 023 public GuiSnooper(GuiScreen par1GuiScreen, GameSettings par2GameSettings) 024 { 025 this.field_74100_a = par1GuiScreen; 026 this.field_74097_b = par2GameSettings; 027 } 028 029 /** 030 * Adds the buttons (and other controls) to the screen in question. 031 */ 032 public void initGui() 033 { 034 this.field_74103_m = StatCollector.translateToLocal("options.snooper.title"); 035 String var1 = StatCollector.translateToLocal("options.snooper.desc"); 036 ArrayList var2 = new ArrayList(); 037 Iterator var3 = this.fontRenderer.listFormattedStringToWidth(var1, this.width - 30).iterator(); 038 039 while (var3.hasNext()) 040 { 041 String var4 = (String)var3.next(); 042 var2.add(var4); 043 } 044 045 this.field_74101_n = (String[])var2.toArray(new String[0]); 046 this.field_74098_c.clear(); 047 this.field_74096_d.clear(); 048 this.controlList.add(this.field_74099_p = new GuiButton(1, this.width / 2 - 152, this.height - 30, 150, 20, this.field_74097_b.getKeyBinding(EnumOptions.SNOOPER_ENABLED))); 049 this.controlList.add(new GuiButton(2, this.width / 2 + 2, this.height - 30, 150, 20, StatCollector.translateToLocal("gui.done"))); 050 boolean var6 = this.mc.getIntegratedServer() != null && this.mc.getIntegratedServer().func_80003_ah() != null; 051 Iterator var7 = (new TreeMap(this.mc.getPlayerUsageSnooper().getCurrentStats())).entrySet().iterator(); 052 Entry var5; 053 054 while (var7.hasNext()) 055 { 056 var5 = (Entry)var7.next(); 057 this.field_74098_c.add((var6 ? "C " : "") + (String)var5.getKey()); 058 this.field_74096_d.add(this.fontRenderer.trimStringToWidth((String)var5.getValue(), this.width - 220)); 059 } 060 061 if (var6) 062 { 063 var7 = (new TreeMap(this.mc.getIntegratedServer().func_80003_ah().getCurrentStats())).entrySet().iterator(); 064 065 while (var7.hasNext()) 066 { 067 var5 = (Entry)var7.next(); 068 this.field_74098_c.add("S " + (String)var5.getKey()); 069 this.field_74096_d.add(this.fontRenderer.trimStringToWidth((String)var5.getValue(), this.width - 220)); 070 } 071 } 072 073 this.field_74102_o = new GuiSnooperList(this); 074 } 075 076 /** 077 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 078 */ 079 protected void actionPerformed(GuiButton par1GuiButton) 080 { 081 if (par1GuiButton.enabled) 082 { 083 if (par1GuiButton.id == 2) 084 { 085 this.field_74097_b.saveOptions(); 086 this.field_74097_b.saveOptions(); 087 this.mc.displayGuiScreen(this.field_74100_a); 088 } 089 090 if (par1GuiButton.id == 1) 091 { 092 this.field_74097_b.setOptionValue(EnumOptions.SNOOPER_ENABLED, 1); 093 this.field_74099_p.displayString = this.field_74097_b.getKeyBinding(EnumOptions.SNOOPER_ENABLED); 094 } 095 } 096 } 097 098 /** 099 * Draws the screen and all the components in it. 100 */ 101 public void drawScreen(int par1, int par2, float par3) 102 { 103 this.drawDefaultBackground(); 104 this.field_74102_o.drawScreen(par1, par2, par3); 105 this.drawCenteredString(this.fontRenderer, this.field_74103_m, this.width / 2, 8, 16777215); 106 int var4 = 22; 107 String[] var5 = this.field_74101_n; 108 int var6 = var5.length; 109 110 for (int var7 = 0; var7 < var6; ++var7) 111 { 112 String var8 = var5[var7]; 113 this.drawCenteredString(this.fontRenderer, var8, this.width / 2, var4, 8421504); 114 var4 += this.fontRenderer.FONT_HEIGHT; 115 } 116 117 super.drawScreen(par1, par2, par3); 118 } 119 120 static List func_74095_a(GuiSnooper par0GuiSnooper) 121 { 122 return par0GuiSnooper.field_74098_c; 123 } 124 125 static List func_74094_b(GuiSnooper par0GuiSnooper) 126 { 127 return par0GuiSnooper.field_74096_d; 128 } 129 }