001 package net.minecraft.client.gui;
002
003 import cpw.mods.fml.relauncher.Side;
004 import cpw.mods.fml.relauncher.SideOnly;
005 import net.minecraft.client.multiplayer.NetClientHandler;
006 import net.minecraft.network.packet.Packet0KeepAlive;
007 import net.minecraft.util.StringTranslate;
008
009 @SideOnly(Side.CLIENT)
010 public class GuiDownloadTerrain extends GuiScreen
011 {
012 /** Network object that downloads the terrain data. */
013 private NetClientHandler netHandler;
014
015 /** Counts the number of screen updates. */
016 private int updateCounter = 0;
017
018 public GuiDownloadTerrain(NetClientHandler par1NetClientHandler)
019 {
020 this.netHandler = par1NetClientHandler;
021 }
022
023 /**
024 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
025 */
026 protected void keyTyped(char par1, int par2) {}
027
028 /**
029 * Adds the buttons (and other controls) to the screen in question.
030 */
031 public void initGui()
032 {
033 this.controlList.clear();
034 }
035
036 /**
037 * Called from the main game loop to update the screen.
038 */
039 public void updateScreen()
040 {
041 ++this.updateCounter;
042
043 if (this.updateCounter % 20 == 0)
044 {
045 this.netHandler.addToSendQueue(new Packet0KeepAlive());
046 }
047
048 if (this.netHandler != null)
049 {
050 this.netHandler.processReadPackets();
051 }
052 }
053
054 /**
055 * Draws the screen and all the components in it.
056 */
057 public void drawScreen(int par1, int par2, float par3)
058 {
059 this.drawBackground(0);
060 StringTranslate var4 = StringTranslate.getInstance();
061 this.drawCenteredString(this.fontRenderer, var4.translateKey("multiplayer.downloadingTerrain"), this.width / 2, this.height / 2 - 50, 16777215);
062 super.drawScreen(par1, par2, par3);
063 }
064 }