4jcraft/Minecraft.World/Network/Packets/SignUpdatePacket.cpp
2026-03-13 17:06:56 -05:00

65 lines
1.7 KiB
C++

#include "../../Platform/stdafx.h"
#include <iostream>
#include "../../IO/Streams/InputOutputStream.h"
#include "PacketListener.h"
#include "../../Headers/net.minecraft.world.level.tile.entity.h"
#include "SignUpdatePacket.h"
SignUpdatePacket::SignUpdatePacket() {
shouldDelay = true;
m_bVerified = false;
m_bCensored = false;
x = 0;
y = 0;
z = 0;
}
SignUpdatePacket::SignUpdatePacket(int x, int y, int z, bool bVerified,
bool bCensored, std::wstring lines[]) {
shouldDelay = true;
this->m_bVerified = bVerified;
this->m_bCensored = bCensored;
this->x = x;
this->y = y;
this->z = z;
for (int i = 0; i < MAX_SIGN_LINES; i++) this->lines[i] = lines[i];
}
void SignUpdatePacket::read(DataInputStream* dis) // throws IOException
{
x = dis->readInt();
y = dis->readShort();
z = dis->readInt();
this->m_bVerified = dis->readBoolean();
this->m_bCensored = dis->readBoolean();
;
for (int i = 0; i < MAX_SIGN_LINES; i++)
lines[i] = readUtf(dis, SignTileEntity::MAX_LINE_LENGTH);
}
void SignUpdatePacket::write(DataOutputStream* dos) // throws IOException
{
dos->writeInt(x);
dos->writeShort(y);
dos->writeInt(z);
dos->writeBoolean(m_bVerified);
dos->writeBoolean(m_bCensored);
for (int i = 0; i < MAX_SIGN_LINES; i++) writeUtf(lines[i], dos);
}
void SignUpdatePacket::handle(PacketListener* listener) {
listener->handleSignUpdate(shared_from_this());
}
int SignUpdatePacket::getEstimatedSize() {
int l = 0;
l += sizeof(int);
l += sizeof(short);
l += sizeof(int);
l += sizeof(uint8_t);
l += sizeof(uint8_t);
for (int i = 0; i < MAX_SIGN_LINES; i++) l += (int)lines[i].length();
return l;
}