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 }