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 }