001 package net.minecraft.src;
002
003 import java.io.DataInputStream;
004 import java.io.DataOutputStream;
005 import java.io.IOException;
006
007 public class Packet28EntityVelocity extends Packet
008 {
009 public int entityId;
010 public int motionX;
011 public int motionY;
012 public int motionZ;
013
014 public Packet28EntityVelocity() {}
015
016 public Packet28EntityVelocity(Entity par1Entity)
017 {
018 this(par1Entity.entityId, par1Entity.motionX, par1Entity.motionY, par1Entity.motionZ);
019 }
020
021 public Packet28EntityVelocity(int par1, double par2, double par4, double par6)
022 {
023 this.entityId = par1;
024 double var8 = 3.9D;
025
026 if (par2 < -var8)
027 {
028 par2 = -var8;
029 }
030
031 if (par4 < -var8)
032 {
033 par4 = -var8;
034 }
035
036 if (par6 < -var8)
037 {
038 par6 = -var8;
039 }
040
041 if (par2 > var8)
042 {
043 par2 = var8;
044 }
045
046 if (par4 > var8)
047 {
048 par4 = var8;
049 }
050
051 if (par6 > var8)
052 {
053 par6 = var8;
054 }
055
056 this.motionX = (int)(par2 * 8000.0D);
057 this.motionY = (int)(par4 * 8000.0D);
058 this.motionZ = (int)(par6 * 8000.0D);
059 }
060
061 /**
062 * Abstract. Reads the raw packet data from the data stream.
063 */
064 public void readPacketData(DataInputStream par1DataInputStream) throws IOException
065 {
066 this.entityId = par1DataInputStream.readInt();
067 this.motionX = par1DataInputStream.readShort();
068 this.motionY = par1DataInputStream.readShort();
069 this.motionZ = par1DataInputStream.readShort();
070 }
071
072 /**
073 * Abstract. Writes the raw packet data to the data stream.
074 */
075 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
076 {
077 par1DataOutputStream.writeInt(this.entityId);
078 par1DataOutputStream.writeShort(this.motionX);
079 par1DataOutputStream.writeShort(this.motionY);
080 par1DataOutputStream.writeShort(this.motionZ);
081 }
082
083 /**
084 * Passes this Packet on to the NetHandler for processing.
085 */
086 public void processPacket(NetHandler par1NetHandler)
087 {
088 par1NetHandler.handleEntityVelocity(this);
089 }
090
091 /**
092 * Abstract. Return the size of the packet (not counting the header).
093 */
094 public int getPacketSize()
095 {
096 return 10;
097 }
098
099 /**
100 * only false for the abstract Packet class, all real packets return true
101 */
102 public boolean isRealPacket()
103 {
104 return true;
105 }
106
107 /**
108 * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet
109 * class
110 */
111 public boolean containsSameEntityIDAs(Packet par1Packet)
112 {
113 Packet28EntityVelocity var2 = (Packet28EntityVelocity)par1Packet;
114 return var2.entityId == this.entityId;
115 }
116 }