001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.util.Iterator; 006 import org.lwjgl.opengl.GL11; 007 008 @SideOnly(Side.CLIENT) 009 public class GuiGameOver extends GuiScreen 010 { 011 /** 012 * The cooldown timer for the buttons, increases every tick and enables all buttons when reaching 20. 013 */ 014 private int cooldownTimer; 015 016 /** 017 * Adds the buttons (and other controls) to the screen in question. 018 */ 019 public void initGui() 020 { 021 this.controlList.clear(); 022 023 if (this.mc.theWorld.getWorldInfo().isHardcoreModeEnabled()) 024 { 025 if (this.mc.isIntegratedServerRunning()) 026 { 027 this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 96, StatCollector.translateToLocal("deathScreen.deleteWorld"))); 028 } 029 else 030 { 031 this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 96, StatCollector.translateToLocal("deathScreen.leaveServer"))); 032 } 033 } 034 else 035 { 036 this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 72, StatCollector.translateToLocal("deathScreen.respawn"))); 037 this.controlList.add(new GuiButton(2, this.width / 2 - 100, this.height / 4 + 96, StatCollector.translateToLocal("deathScreen.titleScreen"))); 038 039 if (this.mc.session == null) 040 { 041 ((GuiButton)this.controlList.get(1)).enabled = false; 042 } 043 } 044 045 GuiButton var2; 046 047 for (Iterator var1 = this.controlList.iterator(); var1.hasNext(); var2.enabled = false) 048 { 049 var2 = (GuiButton)var1.next(); 050 } 051 } 052 053 /** 054 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). 055 */ 056 protected void keyTyped(char par1, int par2) {} 057 058 /** 059 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 060 */ 061 protected void actionPerformed(GuiButton par1GuiButton) 062 { 063 switch (par1GuiButton.id) 064 { 065 case 1: 066 this.mc.thePlayer.respawnPlayer(); 067 this.mc.displayGuiScreen((GuiScreen)null); 068 break; 069 case 2: 070 this.mc.theWorld.sendQuittingDisconnectingPacket(); 071 this.mc.loadWorld((WorldClient)null); 072 this.mc.displayGuiScreen(new GuiMainMenu()); 073 } 074 } 075 076 /** 077 * Draws the screen and all the components in it. 078 */ 079 public void drawScreen(int par1, int par2, float par3) 080 { 081 this.drawGradientRect(0, 0, this.width, this.height, 1615855616, -1602211792); 082 GL11.glPushMatrix(); 083 GL11.glScalef(2.0F, 2.0F, 2.0F); 084 boolean var4 = this.mc.theWorld.getWorldInfo().isHardcoreModeEnabled(); 085 String var5 = var4 ? StatCollector.translateToLocal("deathScreen.title.hardcore") : StatCollector.translateToLocal("deathScreen.title"); 086 this.drawCenteredString(this.fontRenderer, var5, this.width / 2 / 2, 30, 16777215); 087 GL11.glPopMatrix(); 088 089 if (var4) 090 { 091 this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("deathScreen.hardcoreInfo"), this.width / 2, 144, 16777215); 092 } 093 094 this.drawCenteredString(this.fontRenderer, StatCollector.translateToLocal("deathScreen.score") + ": \u00a7e" + this.mc.thePlayer.getScore(), this.width / 2, 100, 16777215); 095 super.drawScreen(par1, par2, par3); 096 } 097 098 /** 099 * Returns true if this GUI should pause the game when it is displayed in single-player 100 */ 101 public boolean doesGuiPauseGame() 102 { 103 return false; 104 } 105 106 /** 107 * Called from the main game loop to update the screen. 108 */ 109 public void updateScreen() 110 { 111 super.updateScreen(); 112 ++this.cooldownTimer; 113 GuiButton var2; 114 115 if (this.cooldownTimer == 20) 116 { 117 for (Iterator var1 = this.controlList.iterator(); var1.hasNext(); var2.enabled = true) 118 { 119 var2 = (GuiButton)var1.next(); 120 } 121 } 122 } 123 }