001package net.minecraft.client.gui;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import java.net.URI;
006import net.minecraft.client.settings.GameSettings;
007import net.minecraft.util.StatCollector;
008import org.lwjgl.input.Keyboard;
009import org.lwjgl.opengl.GL11;
010
011@SideOnly(Side.CLIENT)
012public class GuiScreenDemo extends GuiScreen
013{
014    /**
015     * Adds the buttons (and other controls) to the screen in question.
016     */
017    public void initGui()
018    {
019        this.buttonList.clear();
020        byte b0 = -16;
021        this.buttonList.add(new GuiButton(1, this.width / 2 - 116, this.height / 2 + 62 + b0, 114, 20, StatCollector.translateToLocal("demo.help.buy")));
022        this.buttonList.add(new GuiButton(2, this.width / 2 + 2, this.height / 2 + 62 + b0, 114, 20, StatCollector.translateToLocal("demo.help.later")));
023    }
024
025    /**
026     * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
027     */
028    protected void actionPerformed(GuiButton par1GuiButton)
029    {
030        switch (par1GuiButton.id)
031        {
032            case 1:
033                par1GuiButton.enabled = false;
034
035                try
036                {
037                    Class oclass = Class.forName("java.awt.Desktop");
038                    Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
039                    oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI("http://www.minecraft.net/store?source=demo")});
040                }
041                catch (Throwable throwable)
042                {
043                    throwable.printStackTrace();
044                }
045
046                break;
047            case 2:
048                this.mc.displayGuiScreen((GuiScreen)null);
049                this.mc.setIngameFocus();
050        }
051    }
052
053    /**
054     * Called from the main game loop to update the screen.
055     */
056    public void updateScreen()
057    {
058        super.updateScreen();
059    }
060
061    /**
062     * Draws either a gradient over the background screen (when it exists) or a flat gradient over background.png
063     */
064    public void drawDefaultBackground()
065    {
066        super.drawDefaultBackground();
067        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
068        this.mc.renderEngine.func_98187_b("/gui/demo_bg.png");
069        int i = (this.width - 248) / 2;
070        int j = (this.height - 166) / 2;
071        this.drawTexturedModalRect(i, j, 0, 0, 248, 166);
072    }
073
074    /**
075     * Draws the screen and all the components in it.
076     */
077    public void drawScreen(int par1, int par2, float par3)
078    {
079        this.drawDefaultBackground();
080        int k = (this.width - 248) / 2 + 10;
081        int l = (this.height - 166) / 2 + 8;
082        this.fontRenderer.drawString(StatCollector.translateToLocal("demo.help.title"), k, l, 2039583);
083        l += 12;
084        GameSettings gamesettings = this.mc.gameSettings;
085        String s = StatCollector.translateToLocal("demo.help.movementShort");
086        s = String.format(s, new Object[] {Keyboard.getKeyName(gamesettings.keyBindForward.keyCode), Keyboard.getKeyName(gamesettings.keyBindLeft.keyCode), Keyboard.getKeyName(gamesettings.keyBindBack.keyCode), Keyboard.getKeyName(gamesettings.keyBindRight.keyCode)});
087        this.fontRenderer.drawString(s, k, l, 5197647);
088        s = StatCollector.translateToLocal("demo.help.movementMouse");
089        this.fontRenderer.drawString(s, k, l + 12, 5197647);
090        s = StatCollector.translateToLocal("demo.help.jump");
091        s = String.format(s, new Object[] {Keyboard.getKeyName(gamesettings.keyBindJump.keyCode)});
092        this.fontRenderer.drawString(s, k, l + 24, 5197647);
093        s = StatCollector.translateToLocal("demo.help.inventory");
094        s = String.format(s, new Object[] {Keyboard.getKeyName(gamesettings.keyBindInventory.keyCode)});
095        this.fontRenderer.drawString(s, k, l + 36, 5197647);
096        this.fontRenderer.drawSplitString(StatCollector.translateToLocal("demo.help.fullWrapped"), k, l + 68, 218, 2039583);
097        super.drawScreen(par1, par2, par3);
098    }
099}