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 GuiShareToLan extends GuiScreen
008 {
009 /**
010 * A reference to the screen object that created this. Used for navigating between screens.
011 */
012 private final GuiScreen parentScreen;
013 private GuiButton buttonAllowCommandsToggle;
014 private GuiButton buttonGameMode;
015
016 /**
017 * The currently selected game mode. One of 'survival', 'creative', or 'adventure'
018 */
019 private String gameMode = "survival";
020
021 /** True if 'Allow Cheats' is currently enabled */
022 private boolean allowCommands = false;
023
024 public GuiShareToLan(GuiScreen par1GuiScreen)
025 {
026 this.parentScreen = par1GuiScreen;
027 }
028
029 /**
030 * Adds the buttons (and other controls) to the screen in question.
031 */
032 public void initGui()
033 {
034 this.controlList.clear();
035 this.controlList.add(new GuiButton(101, this.width / 2 - 155, this.height - 28, 150, 20, StatCollector.translateToLocal("lanServer.start")));
036 this.controlList.add(new GuiButton(102, this.width / 2 + 5, this.height - 28, 150, 20, StatCollector.translateToLocal("gui.cancel")));
037 this.controlList.add(this.buttonGameMode = new GuiButton(104, this.width / 2 - 155, 100, 150, 20, StatCollector.translateToLocal("selectWorld.gameMode")));
038 this.controlList.add(this.buttonAllowCommandsToggle = new GuiButton(103, this.width / 2 + 5, 100, 150, 20, StatCollector.translateToLocal("selectWorld.allowCommands")));
039 this.func_74088_g();
040 }
041
042 private void func_74088_g()
043 {
044 StringTranslate var1 = StringTranslate.getInstance();
045 this.buttonGameMode.displayString = var1.translateKey("selectWorld.gameMode") + " " + var1.translateKey("selectWorld.gameMode." + this.gameMode);
046 this.buttonAllowCommandsToggle.displayString = var1.translateKey("selectWorld.allowCommands") + " ";
047
048 if (this.allowCommands)
049 {
050 this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + var1.translateKey("options.on");
051 }
052 else
053 {
054 this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + var1.translateKey("options.off");
055 }
056 }
057
058 /**
059 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
060 */
061 protected void actionPerformed(GuiButton par1GuiButton)
062 {
063 if (par1GuiButton.id == 102)
064 {
065 this.mc.displayGuiScreen(this.parentScreen);
066 }
067 else if (par1GuiButton.id == 104)
068 {
069 if (this.gameMode.equals("survival"))
070 {
071 this.gameMode = "creative";
072 }
073 else if (this.gameMode.equals("creative"))
074 {
075 this.gameMode = "adventure";
076 }
077 else
078 {
079 this.gameMode = "survival";
080 }
081
082 this.func_74088_g();
083 }
084 else if (par1GuiButton.id == 103)
085 {
086 this.allowCommands = !this.allowCommands;
087 this.func_74088_g();
088 }
089 else if (par1GuiButton.id == 101)
090 {
091 this.mc.displayGuiScreen((GuiScreen)null);
092 String var2 = this.mc.getIntegratedServer().shareToLAN(EnumGameType.getByName(this.gameMode), this.allowCommands);
093 String var3 = "";
094
095 if (var2 != null)
096 {
097 var3 = this.mc.thePlayer.translateString("commands.publish.started", new Object[] {var2});
098 }
099 else
100 {
101 var3 = this.mc.thePlayer.translateString("commands.publish.failed", new Object[0]);
102 }
103
104 this.mc.ingameGUI.getChatGUI().printChatMessage(var3);
105 }
106 }
107
108 /**
109 * Draws the screen and all the components in it.
110 */
111 public void drawScreen(int par1, int par2, float par3)
112 {
113 this.drawDefaultBackground();
114 this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("lanServer.title"), this.width / 2, 50, 16777215);
115 this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("lanServer.otherPlayers"), this.width / 2, 82, 16777215);
116 super.drawScreen(par1, par2, par3);
117 }
118 }