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