001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005
006 @SideOnly(Side.CLIENT)
007 public class GuiMemoryErrorScreen extends GuiScreen
008 {
009 /**
010 * Adds the buttons (and other controls) to the screen in question.
011 */
012 public void initGui()
013 {
014 StringTranslate var1 = StringTranslate.getInstance();
015 this.controlList.clear();
016 this.controlList.add(new GuiSmallButton(0, this.width / 2 - 155, this.height / 4 + 120 + 12, var1.translateKey("gui.toMenu")));
017 this.controlList.add(new GuiSmallButton(1, this.width / 2 - 155 + 160, this.height / 4 + 120 + 12, var1.translateKey("menu.quit")));
018 }
019
020 /**
021 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
022 */
023 protected void actionPerformed(GuiButton par1GuiButton)
024 {
025 if (par1GuiButton.id == 0)
026 {
027 this.mc.displayGuiScreen(new GuiMainMenu());
028 }
029 else if (par1GuiButton.id == 1)
030 {
031 this.mc.shutdown();
032 }
033 }
034
035 /**
036 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
037 */
038 protected void keyTyped(char par1, int par2) {}
039
040 /**
041 * Draws the screen and all the components in it.
042 */
043 public void drawScreen(int par1, int par2, float par3)
044 {
045 this.drawDefaultBackground();
046 this.drawCenteredString(this.fontRenderer, "Out of memory!", this.width / 2, this.height / 4 - 60 + 20, 16777215);
047 this.drawString(this.fontRenderer, "Minecraft has run out of memory.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 0, 10526880);
048 this.drawString(this.fontRenderer, "This could be caused by a bug in the game or by the", this.width / 2 - 140, this.height / 4 - 60 + 60 + 18, 10526880);
049 this.drawString(this.fontRenderer, "Java Virtual Machine not being allocated enough", this.width / 2 - 140, this.height / 4 - 60 + 60 + 27, 10526880);
050 this.drawString(this.fontRenderer, "memory. If you are playing in a web browser, try", this.width / 2 - 140, this.height / 4 - 60 + 60 + 36, 10526880);
051 this.drawString(this.fontRenderer, "downloading the game and playing it offline.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 45, 10526880);
052 this.drawString(this.fontRenderer, "To prevent level corruption, the current game has quit.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 63, 10526880);
053 this.drawString(this.fontRenderer, "We\'ve tried to free up enough memory to let you go back to", this.width / 2 - 140, this.height / 4 - 60 + 60 + 81, 10526880);
054 this.drawString(this.fontRenderer, "the main menu and back to playing, but this may not have worked.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 90, 10526880);
055 this.drawString(this.fontRenderer, "Please restart the game if you see this message again.", this.width / 2 - 140, this.height / 4 - 60 + 60 + 99, 10526880);
056 super.drawScreen(par1, par2, par3);
057 }
058 }