4jcraft/targets/minecraft/network/packet/TileEntityDataPacket.cpp

54 lines
1.3 KiB
C++

#include "TileEntityDataPacket.h"
#include <stdint.h>
#include "PacketListener.h"
#include "java/InputOutputStream/DataInputStream.h"
#include "java/InputOutputStream/DataOutputStream.h"
#include "nbt/CompoundTag.h"
void TileEntityDataPacket::_init() {
x = y = z = 0;
type = TYPE_MOB_SPAWNER;
tag = nullptr;
}
TileEntityDataPacket::TileEntityDataPacket() {
_init();
shouldDelay = true;
}
TileEntityDataPacket::TileEntityDataPacket(int x, int y, int z, int type,
CompoundTag* tag) {
_init();
shouldDelay = true;
this->x = x;
this->y = y;
this->z = z;
this->type = type;
this->tag = tag;
}
TileEntityDataPacket::~TileEntityDataPacket() { delete tag; }
void TileEntityDataPacket::read(DataInputStream* dis) {
x = dis->readInt();
y = dis->readShort();
z = dis->readInt();
type = dis->readByte();
tag = readNbt(dis);
}
void TileEntityDataPacket::write(DataOutputStream* dos) {
dos->writeInt(x);
dos->writeShort(y);
dos->writeInt(z);
dos->writeByte((uint8_t)type);
writeNbt(tag, dos);
}
void TileEntityDataPacket::handle(PacketListener* listener) {
listener->handleTileEntityData(shared_from_this());
}
int TileEntityDataPacket::getEstimatedSize() { return 6 * 4 + 1; }