From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/SkullTileEntity.cpp | 72 +++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Minecraft.World/SkullTileEntity.cpp (limited to 'Minecraft.World/SkullTileEntity.cpp') diff --git a/Minecraft.World/SkullTileEntity.cpp b/Minecraft.World/SkullTileEntity.cpp new file mode 100644 index 00000000..ea19b446 --- /dev/null +++ b/Minecraft.World/SkullTileEntity.cpp @@ -0,0 +1,72 @@ +#include "stdafx.h" +#include "com.mojang.nbt.h" +#include "net.minecraft.network.packet.h" +#include "SkullTileEntity.h" + +SkullTileEntity::SkullTileEntity() +{ + skullType = 0; + rotation = 0; + extraType = L""; +} + +void SkullTileEntity::save(CompoundTag *tag) +{ + TileEntity::save(tag); + tag->putByte(L"SkullType", (BYTE) (skullType & 0xff)); + tag->putByte(L"Rot", (BYTE) (rotation & 0xff)); + tag->putString(L"ExtraType", extraType); +} + +void SkullTileEntity::load(CompoundTag *tag) +{ + TileEntity::load(tag); + skullType = tag->getByte(L"SkullType"); + rotation = tag->getByte(L"Rot"); + if (tag->contains(L"ExtraType")) extraType = tag->getString(L"ExtraType"); +} + +shared_ptr SkullTileEntity::getUpdatePacket() +{ + CompoundTag *tag = new CompoundTag(); + save(tag); + return shared_ptr(new TileEntityDataPacket(x, y, z, TileEntityDataPacket::TYPE_SKULL, tag)); +} + +void SkullTileEntity::setSkullType(int skullType, const wstring &extra) +{ + this->skullType = skullType; + this->extraType = extra; +} + +int SkullTileEntity::getSkullType() +{ + return skullType; +} + +int SkullTileEntity::getRotation() +{ + return rotation; +} + +void SkullTileEntity::setRotation(int rot) +{ + rotation = rot; +} + +wstring SkullTileEntity::getExtraType() +{ + return extraType; +} + +// 4J Added +shared_ptr SkullTileEntity::clone() +{ + shared_ptr result = shared_ptr( new SkullTileEntity() ); + TileEntity::clone(result); + + result->skullType = skullType; + result->rotation = rotation; + result->extraType = extraType; + return result; +} \ No newline at end of file -- cgit v1.2.3