001package net.minecraft.client.gui;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import net.minecraft.util.StatCollector;
006import net.minecraft.util.StringTranslate;
007import net.minecraft.world.EnumGameType;
008
009@SideOnly(Side.CLIENT)
010public 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.buttonList.clear();
038        this.buttonList.add(new GuiButton(101, this.width / 2 - 155, this.height - 28, 150, 20, StatCollector.translateToLocal("lanServer.start")));
039        this.buttonList.add(new GuiButton(102, this.width / 2 + 5, this.height - 28, 150, 20, StatCollector.translateToLocal("gui.cancel")));
040        this.buttonList.add(this.buttonGameMode = new GuiButton(104, this.width / 2 - 155, 100, 150, 20, StatCollector.translateToLocal("selectWorld.gameMode")));
041        this.buttonList.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 stringtranslate = StringTranslate.getInstance();
048        this.buttonGameMode.displayString = stringtranslate.translateKey("selectWorld.gameMode") + " " + stringtranslate.translateKey("selectWorld.gameMode." + this.gameMode);
049        this.buttonAllowCommandsToggle.displayString = stringtranslate.translateKey("selectWorld.allowCommands") + " ";
050
051        if (this.allowCommands)
052        {
053            this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + stringtranslate.translateKey("options.on");
054        }
055        else
056        {
057            this.buttonAllowCommandsToggle.displayString = this.buttonAllowCommandsToggle.displayString + stringtranslate.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 s = this.mc.getIntegratedServer().shareToLAN(EnumGameType.getByName(this.gameMode), this.allowCommands);
096            String s1 = "";
097
098            if (s != null)
099            {
100                s1 = this.mc.thePlayer.translateString("commands.publish.started", new Object[] {s});
101            }
102            else
103            {
104                s1 = this.mc.thePlayer.translateString("commands.publish.failed", new Object[0]);
105            }
106
107            this.mc.ingameGUI.getChatGUI().printChatMessage(s1);
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}