    001    package net.minecraft.network.packet;
    002
    003    import java.io.DataInputStream;
    004    import java.io.DataOutputStream;
    005    import java.io.IOException;
    006
    007    public class Packet130UpdateSign extends Packet
    008    {
    009        public int xPosition;
    010        public int yPosition;
    011        public int zPosition;
    012        public String[] signLines;
    013
    014        public Packet130UpdateSign()
    015        {
    016            this.isChunkDataPacket = true;
    017        }
    018
    019        public Packet130UpdateSign(int par1, int par2, int par3, String[] par4ArrayOfStr)
    020        {
    021            this.isChunkDataPacket = true;
    022            this.xPosition = par1;
    023            this.yPosition = par2;
    024            this.zPosition = par3;
    025            this.signLines = new String[] {par4ArrayOfStr[0], par4ArrayOfStr[1], par4ArrayOfStr[2], par4ArrayOfStr[3]};
    026        }
    027
    028        /**
    029         * Abstract. Reads the raw packet data from the data stream.
    030         */
    031        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    032        {
    033            this.xPosition = par1DataInputStream.readInt();
    034            this.yPosition = par1DataInputStream.readShort();
    035            this.zPosition = par1DataInputStream.readInt();
    036            this.signLines = new String[4];
    037
    038            for (int var2 = 0; var2 < 4; ++var2)
    039            {
    040                this.signLines[var2] = readString(par1DataInputStream, 15);
    041            }
    042        }
    043
    044        /**
    045         * Abstract. Writes the raw packet data to the data stream.
    046         */
    047        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    048        {
    049            par1DataOutputStream.writeInt(this.xPosition);
    050            par1DataOutputStream.writeShort(this.yPosition);
    051            par1DataOutputStream.writeInt(this.zPosition);
    052
    053            for (int var2 = 0; var2 < 4; ++var2)
    054            {
    055                writeString(this.signLines[var2], par1DataOutputStream);
    056            }
    057        }
    058
    059        /**
    060         * Passes this Packet on to the NetHandler for processing.
    061         */
    062        public void processPacket(NetHandler par1NetHandler)
    063        {
    064            par1NetHandler.handleUpdateSign(this);
    065        }
    066
    067        /**
    068         * Abstract. Return the size of the packet (not counting the header).
    069         */
    070        public int getPacketSize()
    071        {
    072            int var1 = 0;
    073
    074            for (int var2 = 0; var2 < 4; ++var2)
    075            {
    076                var1 += this.signLines[var2].length();
    077            }
    078
    079            return var1;
    080        }
    081    }