001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import org.lwjgl.input.Keyboard; 006 007 @SideOnly(Side.CLIENT) 008 public class GuiRenameWorld extends GuiScreen 009 { 010 private GuiScreen parentGuiScreen; 011 private GuiTextField theGuiTextField; 012 private final String worldName; 013 014 public GuiRenameWorld(GuiScreen par1GuiScreen, String par2Str) 015 { 016 this.parentGuiScreen = par1GuiScreen; 017 this.worldName = par2Str; 018 } 019 020 /** 021 * Called from the main game loop to update the screen. 022 */ 023 public void updateScreen() 024 { 025 this.theGuiTextField.updateCursorCounter(); 026 } 027 028 /** 029 * Adds the buttons (and other controls) to the screen in question. 030 */ 031 public void initGui() 032 { 033 StringTranslate var1 = StringTranslate.getInstance(); 034 Keyboard.enableRepeatEvents(true); 035 this.controlList.clear(); 036 this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + 12, var1.translateKey("selectWorld.renameButton"))); 037 this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + 12, var1.translateKey("gui.cancel"))); 038 ISaveFormat var2 = this.mc.getSaveLoader(); 039 WorldInfo var3 = var2.getWorldInfo(this.worldName); 040 String var4 = var3.getWorldName(); 041 this.theGuiTextField = new GuiTextField(this.fontRenderer, this.width / 2 - 100, 60, 200, 20); 042 this.theGuiTextField.setFocused(true); 043 this.theGuiTextField.setText(var4); 044 } 045 046 /** 047 * Called when the screen is unloaded. Used to disable keyboard repeat events 048 */ 049 public void onGuiClosed() 050 { 051 Keyboard.enableRepeatEvents(false); 052 } 053 054 /** 055 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e). 056 */ 057 protected void actionPerformed(GuiButton par1GuiButton) 058 { 059 if (par1GuiButton.enabled) 060 { 061 if (par1GuiButton.id == 1) 062 { 063 this.mc.displayGuiScreen(this.parentGuiScreen); 064 } 065 else if (par1GuiButton.id == 0) 066 { 067 ISaveFormat var2 = this.mc.getSaveLoader(); 068 var2.renameWorld(this.worldName, this.theGuiTextField.getText().trim()); 069 this.mc.displayGuiScreen(this.parentGuiScreen); 070 } 071 } 072 } 073 074 /** 075 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e). 076 */ 077 protected void keyTyped(char par1, int par2) 078 { 079 this.theGuiTextField.textboxKeyTyped(par1, par2); 080 ((GuiButton)this.controlList.get(0)).enabled = this.theGuiTextField.getText().trim().length() > 0; 081 082 if (par1 == 13) 083 { 084 this.actionPerformed((GuiButton)this.controlList.get(0)); 085 } 086 } 087 088 /** 089 * Called when the mouse is clicked. 090 */ 091 protected void mouseClicked(int par1, int par2, int par3) 092 { 093 super.mouseClicked(par1, par2, par3); 094 this.theGuiTextField.mouseClicked(par1, par2, par3); 095 } 096 097 /** 098 * Draws the screen and all the components in it. 099 */ 100 public void drawScreen(int par1, int par2, float par3) 101 { 102 StringTranslate var4 = StringTranslate.getInstance(); 103 this.drawDefaultBackground(); 104 this.drawCenteredString(this.fontRenderer, var4.translateKey("selectWorld.renameTitle"), this.width / 2, this.height / 4 - 60 + 20, 16777215); 105 this.drawString(this.fontRenderer, var4.translateKey("selectWorld.enterName"), this.width / 2 - 100, 47, 10526880); 106 this.theGuiTextField.drawTextBox(); 107 super.drawScreen(par1, par2, par3); 108 } 109 }