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

79 lines
2.1 KiB
C++
Executable File

#ifndef NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__
#define NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__
//package net.minecraft.network.packet;
#include "../Packet.h"
#include "../../world/entity/item/ItemEntity.h"
#include "../../world/item/ItemInstance.h"
#include "../../util/Mth.h"
class AddItemEntityPacket: public Packet {
public:
AddItemEntityPacket() {
}
AddItemEntityPacket(const ItemEntity* itemEntity)
: id(itemEntity->entityId),
itemId(itemEntity->item.id),
itemCount(itemEntity->item.count),
auxValue(itemEntity->item.getAuxValue()),
x(itemEntity->x),
y(itemEntity->y),
z(itemEntity->z),
_xa((signed char) (itemEntity->xd * 128.0)),
_ya((signed char) (itemEntity->yd * 128.0)),
_za((signed char) (itemEntity->zd * 128.0))
{
}
void read(RakNet::BitStream* bitStream)
{
bitStream->Read(id);
bitStream->Read(itemId);
bitStream->Read(itemCount);
bitStream->Read(auxValue);
bitStream->Read(x);
bitStream->Read(y);
bitStream->Read(z);
bitStream->Read(_xa);
bitStream->Read(_ya);
bitStream->Read(_za);
}
void write(RakNet::BitStream* bitStream)
{
bitStream->Write((RakNet::MessageID)(ID_USER_PACKET_ENUM + PACKET_ADDITEMENTITY));
bitStream->Write(id);
bitStream->Write(itemId);
bitStream->Write(itemCount);
bitStream->Write(auxValue);
bitStream->Write(x);
bitStream->Write(y);
bitStream->Write(z);
bitStream->Write(_xa);
bitStream->Write(_ya);
bitStream->Write(_za);
}
void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback)
{
callback->handle(source, (AddItemEntityPacket*)this);
}
float xa() { return (float)(_xa) / 128.0f; }
float ya() { return (float)(_ya) / 128.0f; }
float za() { return (float)(_za) / 128.0f; }
int id;
float x, y, z;
short itemId;
short auxValue;
unsigned char itemCount;
private:
signed char _xa, _ya, _za;
};
#endif /*NET_MINECRAFT_NETWORK_PACKET__AddItemEntityPacket_H__*/