001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 006 @SideOnly(Side.CLIENT) 007 public class ScreenChatOptions extends GuiScreen 008 { 009 /** An array of all EnumOptions which are to do with chat. */ 010 private static final EnumOptions[] allScreenChatOptions = new EnumOptions[] {EnumOptions.CHAT_VISIBILITY, EnumOptions.CHAT_COLOR, EnumOptions.CHAT_LINKS, EnumOptions.CHAT_OPACITY, EnumOptions.CHAT_LINKS_PROMPT}; 011 012 /** Instance of GuiScreen. */ 013 private final GuiScreen theGuiScreen; 014 015 /** Instance of GameSettings file. */ 016 private final GameSettings theSettings; 017 private String theChatOptions; 018 019 public ScreenChatOptions(GuiScreen par1GuiScreen, GameSettings par2GameSettings) 020 { 021 this.theGuiScreen = par1GuiScreen; 022 this.theSettings = par2GameSettings; 023 } 024 025 /** 026 * Adds the buttons (and other controls) to the screen in question. 027 */ 028 public void initGui() 029 { 030 StringTranslate var1 = StringTranslate.getInstance(); 031 int var2 = 0; 032 this.theChatOptions = var1.translateKey("options.chat.title"); 033 EnumOptions[] var3 = allScreenChatOptions; 034 int var4 = var3.length; 035 036 for (int var5 = 0; var5 < var4; ++var5) 037 { 038 EnumOptions var6 = var3[var5]; 039 040 if (var6.getEnumFloat()) 041 { 042 this.controlList.add(new GuiSlider(var6.returnEnumOrdinal(), this.width / 2 - 155 + var2 % 2 * 160, this.height / 6 + 24 * (var2 >> 1), var6, this.theSettings.getKeyBinding(var6), this.theSettings.getOptionFloatValue(var6))); 043 } 044 else 045 { 046 this.controlList.add(new GuiSmallButton(var6.returnEnumOrdinal(), this.width / 2 - 155 + var2 % 2 * 160, this.height / 6 + 24 * (var2 >> 1), var6, this.theSettings.getKeyBinding(var6))); 047 } 048 049 ++var2; 050 } 051 052 this.controlList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, var1.translateKey("gui.done"))); 053 } 054 055 /** 056 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 057 */ 058 protected void actionPerformed(GuiButton par1GuiButton) 059 { 060 if (par1GuiButton.enabled) 061 { 062 if (par1GuiButton.id < 100 && par1GuiButton instanceof GuiSmallButton) 063 { 064 this.theSettings.setOptionValue(((GuiSmallButton)par1GuiButton).returnEnumOptions(), 1); 065 par1GuiButton.displayString = this.theSettings.getKeyBinding(EnumOptions.getEnumOptions(par1GuiButton.id)); 066 } 067 068 if (par1GuiButton.id == 200) 069 { 070 this.mc.gameSettings.saveOptions(); 071 this.mc.displayGuiScreen(this.theGuiScreen); 072 } 073 } 074 } 075 076 /** 077 * Draws the screen and all the components in it. 078 */ 079 public void drawScreen(int par1, int par2, float par3) 080 { 081 this.drawDefaultBackground(); 082 this.drawCenteredString(this.fontRenderer, this.theChatOptions, this.width / 2, 20, 16777215); 083 super.drawScreen(par1, par2, par3); 084 } 085 }