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