    001package net.minecraft.network.packet;
    002
    003import java.io.DataInputStream;
    004import java.io.DataOutputStream;
    005import java.io.IOException;
    006
    007public 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 i = 0; i < 4; ++i)
    039        {
    040            this.signLines[i] = 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 i = 0; i < 4; ++i)
    054        {
    055            writeString(this.signLines[i], 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 i = 0;
    073
    074        for (int j = 0; j < 4; ++j)
    075        {
    076            i += this.signLines[j].length();
    077        }
    078
    079        return i;
    080    }
    081}