Added support for sending velocity and rotation in PACKET_SPAWN_MOB and PACKET_SPAWN_OBJECT
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1427 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
16370ff4eb
commit
9e38229b0d
@ -711,12 +711,14 @@ void cProtocol125::SendSpawnObject(const cEntity & a_Entity, char a_ObjectType,
|
|||||||
WriteInt ((int)(a_Entity.GetPosX() * 32));
|
WriteInt ((int)(a_Entity.GetPosX() * 32));
|
||||||
WriteInt ((int)(a_Entity.GetPosY() * 32));
|
WriteInt ((int)(a_Entity.GetPosY() * 32));
|
||||||
WriteInt ((int)(a_Entity.GetPosZ() * 32));
|
WriteInt ((int)(a_Entity.GetPosZ() * 32));
|
||||||
|
WriteByte(a_Pitch);
|
||||||
|
WriteByte(a_Yaw);
|
||||||
WriteInt (a_ObjectData);
|
WriteInt (a_ObjectData);
|
||||||
if (a_ObjectData != 0)
|
if (a_ObjectData != 0)
|
||||||
{
|
{
|
||||||
WriteShort((short)a_Entity.GetSpeedX());
|
WriteShort((short)(a_Entity.GetSpeedX() * 400));
|
||||||
WriteShort((short)a_Entity.GetSpeedY());
|
WriteShort((short)(a_Entity.GetSpeedY() * 400));
|
||||||
WriteShort((short)a_Entity.GetSpeedZ());
|
WriteShort((short)(a_Entity.GetSpeedZ() * 400));
|
||||||
}
|
}
|
||||||
Flush();
|
Flush();
|
||||||
}
|
}
|
||||||
@ -734,10 +736,12 @@ void cProtocol125::SendSpawnVehicle(const cEntity & a_Vehicle, char a_VehicleTyp
|
|||||||
WriteInt ((int)(a_Vehicle.GetPosX() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosX() * 32));
|
||||||
WriteInt ((int)(a_Vehicle.GetPosY() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosY() * 32));
|
||||||
WriteInt ((int)(a_Vehicle.GetPosZ() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosZ() * 32));
|
||||||
|
WriteByte ((BYTE)((a_Vehicle.GetPitch() / 360.f) * 256));
|
||||||
|
WriteByte ((BYTE)((a_Vehicle.GetRotation() / 360.f) * 256));
|
||||||
WriteInt (1);
|
WriteInt (1);
|
||||||
WriteShort(0); // TODO: SpeedX
|
WriteShort((short)(a_Vehicle.GetSpeedX() * 400));
|
||||||
WriteShort(0); // TODO: SpeedY
|
WriteShort((short)(a_Vehicle.GetSpeedY() * 400));
|
||||||
WriteShort(0); // TODO: SpeedZ
|
WriteShort((short)(a_Vehicle.GetSpeedZ() * 400));
|
||||||
Flush();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,12 +406,12 @@ void cProtocol132::SendSpawnMob(const cMonster & a_Mob)
|
|||||||
WriteInt (a_Mob.GetUniqueID());
|
WriteInt (a_Mob.GetUniqueID());
|
||||||
WriteByte (a_Mob.GetMobType());
|
WriteByte (a_Mob.GetMobType());
|
||||||
WriteVectorI((Vector3i)(a_Mob.GetPosition() * 32));
|
WriteVectorI((Vector3i)(a_Mob.GetPosition() * 32));
|
||||||
WriteByte (0); // yaw
|
WriteByte ((BYTE)((a_Mob.GetRotation() / 360.f) * 256));
|
||||||
WriteByte (0); // pitch
|
WriteByte ((BYTE)((a_Mob.GetPitch() / 360.f) * 256));
|
||||||
WriteByte (0); // head yaw
|
WriteByte ((BYTE)((a_Mob.GetHeadYaw() / 360.f) * 256));
|
||||||
WriteShort (0); // Velocity Z
|
WriteShort ((short)(a_Mob.GetSpeedX() * 400));
|
||||||
WriteShort (0); // Velocity X
|
WriteShort ((short)(a_Mob.GetSpeedY() * 400));
|
||||||
WriteShort (0); // Velocity Y
|
WriteShort ((short)(a_Mob.GetSpeedZ() * 400));
|
||||||
AString MetaData = GetEntityMetaData(a_Mob);
|
AString MetaData = GetEntityMetaData(a_Mob);
|
||||||
SendData (MetaData.data(), MetaData.size());
|
SendData (MetaData.data(), MetaData.size());
|
||||||
Flush();
|
Flush();
|
||||||
|
@ -191,12 +191,12 @@ void cProtocol146::SendSpawnFallingBlock(const cFallingBlock & a_FallingBlock)
|
|||||||
WriteInt ((int)(a_FallingBlock.GetPosX() * 32));
|
WriteInt ((int)(a_FallingBlock.GetPosX() * 32));
|
||||||
WriteInt ((int)(a_FallingBlock.GetPosY() * 32));
|
WriteInt ((int)(a_FallingBlock.GetPosY() * 32));
|
||||||
WriteInt ((int)(a_FallingBlock.GetPosZ() * 32));
|
WriteInt ((int)(a_FallingBlock.GetPosZ() * 32));
|
||||||
WriteByte (0); // Yaw
|
|
||||||
WriteByte (0); // Pitch
|
WriteByte (0); // Pitch
|
||||||
|
WriteByte (0); // Yaw
|
||||||
WriteInt (a_FallingBlock.GetBlockType()); // data indicator = blocktype
|
WriteInt (a_FallingBlock.GetBlockType()); // data indicator = blocktype
|
||||||
WriteShort(0); // SpeedX
|
WriteShort((short)(a_FallingBlock.GetSpeedX() * 400));
|
||||||
WriteShort(0); // SpeedY
|
WriteShort((short)(a_FallingBlock.GetSpeedY() * 400));
|
||||||
WriteShort(0); // SpeedZ
|
WriteShort((short)(a_FallingBlock.GetSpeedZ() * 400));
|
||||||
Flush();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,15 +213,14 @@ void cProtocol146::SendSpawnObject(const cEntity & a_Entity, char a_ObjectType,
|
|||||||
WriteInt ((int)(a_Entity.GetPosX() * 32));
|
WriteInt ((int)(a_Entity.GetPosX() * 32));
|
||||||
WriteInt ((int)(a_Entity.GetPosY() * 32));
|
WriteInt ((int)(a_Entity.GetPosY() * 32));
|
||||||
WriteInt ((int)(a_Entity.GetPosZ() * 32));
|
WriteInt ((int)(a_Entity.GetPosZ() * 32));
|
||||||
|
WriteByte(a_Pitch);
|
||||||
|
WriteByte(a_Yaw);
|
||||||
WriteInt (a_ObjectData);
|
WriteInt (a_ObjectData);
|
||||||
if (a_ObjectData != 0)
|
if (a_ObjectData != 0)
|
||||||
{
|
{
|
||||||
// TODO: Proper speed units
|
WriteShort((short)(a_Entity.GetSpeedX() * 400));
|
||||||
WriteShort((short)a_Entity.GetSpeedX());
|
WriteShort((short)(a_Entity.GetSpeedY() * 400));
|
||||||
WriteShort((short)a_Entity.GetSpeedY());
|
WriteShort((short)(a_Entity.GetSpeedZ() * 400));
|
||||||
WriteShort((short)a_Entity.GetSpeedZ());
|
|
||||||
WriteByte(a_Yaw);
|
|
||||||
WriteByte(a_Pitch);
|
|
||||||
}
|
}
|
||||||
Flush();
|
Flush();
|
||||||
}
|
}
|
||||||
@ -239,12 +238,12 @@ void cProtocol146::SendSpawnVehicle(const cEntity & a_Vehicle, char a_VehicleTyp
|
|||||||
WriteInt ((int)(a_Vehicle.GetPosX() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosX() * 32));
|
||||||
WriteInt ((int)(a_Vehicle.GetPosY() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosY() * 32));
|
||||||
WriteInt ((int)(a_Vehicle.GetPosZ() * 32));
|
WriteInt ((int)(a_Vehicle.GetPosZ() * 32));
|
||||||
|
WriteByte ((BYTE)((a_Vehicle.GetPitch() / 360.f) * 256));
|
||||||
|
WriteByte ((BYTE)((a_Vehicle.GetRotation() / 360.f) * 256));
|
||||||
WriteInt (1);
|
WriteInt (1);
|
||||||
WriteShort(0); // TODO: SpeedX
|
WriteShort((short)(a_Vehicle.GetSpeedX() * 400));
|
||||||
WriteShort(0); // TODO: SpeedY
|
WriteShort((short)(a_Vehicle.GetSpeedY() * 400));
|
||||||
WriteShort(0); // TODO: SpeedZ
|
WriteShort((short)(a_Vehicle.GetSpeedZ() * 400));
|
||||||
WriteByte (0); // TODO: Yaw
|
|
||||||
WriteByte (0); // TODO: Pitch
|
|
||||||
Flush();
|
Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user