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 }