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