    001    package net.minecraft.client.gui;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.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    }