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