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