Files
minecraft-pe-0.6.1/src/network/packet/MoveEntityPacket.h
2026-03-02 22:04:18 +03:00

79 lines
1.9 KiB
C++
Executable File

#ifndef NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__
#define NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__
#include "../Packet.h"
class MoveEntityPacket: public Packet
{
public:
MoveEntityPacket()
: hasRot(false)
{}
// PACKET_MOVEENTITY is unknown and undefined (and not used)
void write(RakNet::BitStream* bitStream) {
bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MOVEENTITY));
}
void read(RakNet::BitStream* bitStream) {};
void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback)
{
callback->handle(source, (MoveEntityPacket*)this);
}
int entityId;
float x, y, z;
float xRot;
float yRot;
bool hasRot;
};
class MoveEntityPacket_PosRot: public MoveEntityPacket
{
typedef MoveEntityPacket super;
public:
MoveEntityPacket_PosRot() {
hasRot = true;
}
//MoveEntityPacket_PosRot(int entityId, float x, float y, float z, float yRot, float xRot) {
// set(entityId, x, y, z, yRot, xRot);
//}
MoveEntityPacket_PosRot(const Entity* e) {
set(e->entityId, e->x, e->y - e->heightOffset, e->z, e->yRot, e->xRot);
}
void set(int entityId, float x, float y, float z, float yRot, float xRot) {
this->entityId = entityId;
this->x = x;
this->y = y;
this->z = z;
this->xRot = xRot;
this->yRot = yRot;
}
void write(RakNet::BitStream* bitStream) {
bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_MOVEENTITY_POSROT));
bitStream->Write(entityId);
bitStream->Write(x);
bitStream->Write(y);
bitStream->Write(z);
bitStream->Write(yRot);
bitStream->Write(xRot);
}
void read(RakNet::BitStream* bitStream) {
bitStream->Read(entityId);
bitStream->Read(x);
bitStream->Read(y);
bitStream->Read(z);
bitStream->Read(yRot);
bitStream->Read(xRot);
}
};
#endif /*NET_MINECRAFT_NETWORK_PACKET__MoveEntityPacket_H__*/