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