001package net.minecraft.client.gui;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import net.minecraft.client.mco.McoClient;
006import net.minecraft.client.mco.McoServer;
007import net.minecraft.util.StringTranslate;
008import org.lwjgl.input.Keyboard;
009
010@SideOnly(Side.CLIENT)
011public class GuiScreenEditOnlineWorld extends GuiScreen
012{
013    private GuiScreen field_96204_a;
014    private GuiScreen field_96202_b;
015    private GuiTextField field_96203_c;
016    private GuiTextField field_96201_d;
017    private McoServer field_96205_n;
018    private GuiButton field_96206_o;
019
020    public GuiScreenEditOnlineWorld(GuiScreen par1GuiScreen, GuiScreen par2GuiScreen, McoServer par3McoServer)
021    {
022        this.field_96204_a = par1GuiScreen;
023        this.field_96202_b = par2GuiScreen;
024        this.field_96205_n = par3McoServer;
025    }
026
027    /**
028     * Called from the main game loop to update the screen.
029     */
030    public void updateScreen()
031    {
032        this.field_96201_d.updateCursorCounter();
033        this.field_96203_c.updateCursorCounter();
034    }
035
036    /**
037     * Adds the buttons (and other controls) to the screen in question.
038     */
039    public void initGui()
040    {
041        StringTranslate stringtranslate = StringTranslate.getInstance();
042        Keyboard.enableRepeatEvents(true);
043        this.buttonList.clear();
044        this.buttonList.add(this.field_96206_o = new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + 12, stringtranslate.translateKey("mco.configure.world.buttons.done")));
045        this.buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + 12, stringtranslate.translateKey("gui.cancel")));
046        this.field_96201_d = new GuiTextField(this.fontRenderer, this.width / 2 - 100, 66, 200, 20);
047        this.field_96201_d.setFocused(true);
048        this.field_96201_d.setMaxStringLength(32);
049        this.field_96201_d.setText(this.field_96205_n.func_96398_b());
050        this.field_96203_c = new GuiTextField(this.fontRenderer, this.width / 2 - 100, 106, 200, 20);
051        this.field_96203_c.setMaxStringLength(32);
052        this.field_96203_c.setText(this.field_96205_n.func_96397_a());
053    }
054
055    /**
056     * Called when the screen is unloaded. Used to disable keyboard repeat events
057     */
058    public void onGuiClosed()
059    {
060        Keyboard.enableRepeatEvents(false);
061    }
062
063    /**
064     * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
065     */
066    protected void actionPerformed(GuiButton par1GuiButton)
067    {
068        if (par1GuiButton.enabled)
069        {
070            if (par1GuiButton.id == 1)
071            {
072                this.mc.displayGuiScreen(this.field_96204_a);
073            }
074            else if (par1GuiButton.id == 0)
075            {
076                this.func_96200_g();
077            }
078        }
079    }
080
081    private void func_96200_g()
082    {
083        McoClient mcoclient = new McoClient(this.mc.session);
084
085        try
086        {
087            String s = this.field_96203_c.getText() != null && !this.field_96203_c.getText().trim().equals("") ? this.field_96203_c.getText() : "";
088            mcoclient.func_96384_a(this.field_96205_n.field_96408_a, this.field_96201_d.getText(), s);
089            this.field_96205_n.func_96399_a(this.field_96201_d.getText());
090            this.field_96205_n.func_96400_b(this.field_96203_c.getText());
091            this.mc.displayGuiScreen(new GuiScreenConfigureWorld(this.field_96202_b, this.field_96205_n));
092        }
093        catch (Exception exception)
094        {
095            ;
096        }
097    }
098
099    /**
100     * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
101     */
102    protected void keyTyped(char par1, int par2)
103    {
104        this.field_96201_d.textboxKeyTyped(par1, par2);
105        this.field_96203_c.textboxKeyTyped(par1, par2);
106
107        if (par1 == 9)
108        {
109            if (this.field_96201_d.isFocused())
110            {
111                this.field_96201_d.setFocused(false);
112                this.field_96203_c.setFocused(true);
113            }
114            else
115            {
116                this.field_96201_d.setFocused(true);
117                this.field_96203_c.setFocused(false);
118            }
119        }
120
121        if (par1 == 13)
122        {
123            this.func_96200_g();
124        }
125
126        this.field_96206_o.enabled = this.field_96201_d.getText() != null && !this.field_96201_d.getText().trim().equals("");
127    }
128
129    /**
130     * Called when the mouse is clicked.
131     */
132    protected void mouseClicked(int par1, int par2, int par3)
133    {
134        super.mouseClicked(par1, par2, par3);
135        this.field_96203_c.mouseClicked(par1, par2, par3);
136        this.field_96201_d.mouseClicked(par1, par2, par3);
137    }
138
139    /**
140     * Draws the screen and all the components in it.
141     */
142    public void drawScreen(int par1, int par2, float par3)
143    {
144        StringTranslate stringtranslate = StringTranslate.getInstance();
145        this.drawDefaultBackground();
146        this.drawCenteredString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.edit.title"), this.width / 2, 17, 16777215);
147        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.name"), this.width / 2 - 100, 53, 10526880);
148        this.drawString(this.fontRenderer, stringtranslate.translateKey("mco.configure.world.description"), this.width / 2 - 100, 94, 10526880);
149        this.field_96201_d.drawTextBox();
150        this.field_96203_c.drawTextBox();
151        super.drawScreen(par1, par2, par3);
152    }
153}