4jcraft/Minecraft.World/Network/Packets/SetEntityDataPacket.cpp
2026-03-21 18:09:02 -05:00

47 lines
1.2 KiB
C++

#include "../../Platform/stdafx.h"
#include <iostream>
#include "../../IO/Streams/InputOutputStream.h"
#include "../../Headers/net.minecraft.world.entity.h"
#include "PacketListener.h"
#include "SetEntityDataPacket.h"
SetEntityDataPacket::SetEntityDataPacket() {
id = -1;
packedItems = NULL;
}
SetEntityDataPacket::~SetEntityDataPacket() { delete packedItems; }
SetEntityDataPacket::SetEntityDataPacket(
int id, std::shared_ptr<SynchedEntityData> entityData, bool notJustDirty) {
this->id = id;
if (notJustDirty) {
this->packedItems = entityData->getAll();
} else {
this->packedItems = entityData->packDirty();
}
}
void SetEntityDataPacket::read(DataInputStream* dis) // throws IOException
{
id = dis->readInt();
packedItems = SynchedEntityData::unpack(dis);
}
void SetEntityDataPacket::write(DataOutputStream* dos) // throws IOException
{
dos->writeInt(id);
SynchedEntityData::pack(packedItems, dos);
}
void SetEntityDataPacket::handle(PacketListener* listener) {
listener->handleSetEntityData(shared_from_this());
}
int SetEntityDataPacket::getEstimatedSize() { return 5; }
std::vector<std::shared_ptr<SynchedEntityData::DataItem> >*
SetEntityDataPacket::getUnpackedData() {
return packedItems;
}