summaryrefslogtreecommitdiffstats
path: root/src/WorldStorage/WSSAnvil.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2015-03-14 00:05:06 +0100
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2015-03-14 00:05:06 +0100
commit3d398baf355fd0dee0e282a73c61fe79f288db8f (patch)
treecc4fc49b1dbcbdf3b0bee969d4b3b5e3ac22ba99 /src/WorldStorage/WSSAnvil.cpp
parentFixed confusion over Item Frame directions (diff)
downloadcuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.gz
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.bz2
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.lz
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.xz
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.tar.zst
cuberite-3d398baf355fd0dee0e282a73c61fe79f288db8f.zip
Diffstat (limited to 'src/WorldStorage/WSSAnvil.cpp')
-rwxr-xr-xsrc/WorldStorage/WSSAnvil.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/WorldStorage/WSSAnvil.cpp b/src/WorldStorage/WSSAnvil.cpp
index 0aa26834c..7244bcb73 100755
--- a/src/WorldStorage/WSSAnvil.cpp
+++ b/src/WorldStorage/WSSAnvil.cpp
@@ -50,6 +50,7 @@
#include "../Entities/ExpOrb.h"
#include "../Entities/HangingEntity.h"
#include "../Entities/ItemFrame.h"
+#include "../Entities/Painting.h"
#include "../Protocol/MojangAPI.h"
#include "Server.h"
@@ -1337,6 +1338,10 @@ void cWSSAnvil::LoadEntityFromNBT(cEntityList & a_Entities, const cParsedNBT & a
{
LoadPickupFromNBT(a_Entities, a_NBT, a_EntityTagIdx);
}
+ else if (strncmp(a_IDTag, "Painting", a_IDTagLength) == 0)
+ {
+ LoadPaintingFromNBT(a_Entities, a_NBT, a_EntityTagIdx);
+ }
else if (strncmp(a_IDTag, "PrimedTnt", a_IDTagLength) == 0)
{
LoadTNTFromNBT(a_Entities, a_NBT, a_EntityTagIdx);
@@ -1808,6 +1813,29 @@ void cWSSAnvil::LoadItemFrameFromNBT(cEntityList & a_Entities, const cParsedNBT
+void cWSSAnvil::LoadPaintingFromNBT(cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx)
+{
+ // Load painting name:
+ int MotiveTag = a_NBT.FindChildByName(a_TagIdx, "Motive");
+ if ((MotiveTag < 0) || (a_NBT.GetType(MotiveTag) != TAG_String))
+ {
+ return;
+ }
+
+ std::unique_ptr<cPainting> Painting(new cPainting(a_NBT.GetString(MotiveTag), BLOCK_FACE_NONE, 0.0, 0.0, 0.0));
+ if (!LoadEntityBaseFromNBT(*Painting.get(), a_NBT, a_TagIdx))
+ {
+ return;
+ }
+
+ LoadHangingFromNBT(*Painting.get(), a_NBT, a_TagIdx);
+ a_Entities.push_back(Painting.release());
+}
+
+
+
+
+
void cWSSAnvil::LoadArrowFromNBT(cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx)
{
std::unique_ptr<cArrowEntity> Arrow(new cArrowEntity(nullptr, 0, 0, 0, Vector3d(0, 0, 0)));