From f8de67aace4e65ff4c34a1f46f6d8b258b6839aa Mon Sep 17 00:00:00 2001 From: 12xx12 <12xx12100@gmail.com> Date: Thu, 17 Sep 2020 16:16:20 +0200 Subject: Added end portal and enchanting table block entities --- src/WorldStorage/NBTChunkSerializer.cpp | 66 +++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 19 deletions(-) (limited to 'src/WorldStorage/NBTChunkSerializer.cpp') diff --git a/src/WorldStorage/NBTChunkSerializer.cpp b/src/WorldStorage/NBTChunkSerializer.cpp index 419115ea0..c78b04c66 100644 --- a/src/WorldStorage/NBTChunkSerializer.cpp +++ b/src/WorldStorage/NBTChunkSerializer.cpp @@ -18,7 +18,9 @@ #include "../BlockEntities/CommandBlockEntity.h" #include "../BlockEntities/DispenserEntity.h" #include "../BlockEntities/DropperEntity.h" +#include "../BlockEntities/EnchantingTableEntity.h" #include "../BlockEntities/EnderChestEntity.h" +#include "../BlockEntities/EndPortalEntity.h" #include "../BlockEntities/FurnaceEntity.h" #include "../BlockEntities/HopperEntity.h" #include "../BlockEntities/JukeboxEntity.h" @@ -208,25 +210,27 @@ public: // Add tile-entity into NBT: switch (a_Entity->GetBlockType()) { - case E_BLOCK_BEACON: AddBeaconEntity (static_cast (a_Entity)); break; - case E_BLOCK_BED: AddBedEntity (static_cast (a_Entity)); break; - case E_BLOCK_BREWING_STAND: AddBrewingstandEntity(static_cast(a_Entity)); break; - case E_BLOCK_CHEST: AddChestEntity (static_cast (a_Entity), a_Entity->GetBlockType()); break; - case E_BLOCK_COMMAND_BLOCK: AddCommandBlockEntity(static_cast(a_Entity)); break; - case E_BLOCK_DISPENSER: AddDispenserEntity (static_cast (a_Entity)); break; - case E_BLOCK_DROPPER: AddDropperEntity (static_cast (a_Entity)); break; - case E_BLOCK_ENDER_CHEST: AddEnderchestEntity (static_cast (a_Entity)); break; - case E_BLOCK_FLOWER_POT: AddFlowerPotEntity (static_cast (a_Entity)); break; - case E_BLOCK_FURNACE: AddFurnaceEntity (static_cast (a_Entity)); break; - case E_BLOCK_HEAD: AddMobHeadEntity (static_cast (a_Entity)); break; - case E_BLOCK_HOPPER: AddHopperEntity (static_cast (a_Entity)); break; - case E_BLOCK_JUKEBOX: AddJukeboxEntity (static_cast (a_Entity)); break; - case E_BLOCK_LIT_FURNACE: AddFurnaceEntity (static_cast (a_Entity)); break; - case E_BLOCK_MOB_SPAWNER: AddMobSpawnerEntity (static_cast (a_Entity)); break; - case E_BLOCK_NOTE_BLOCK: AddNoteEntity (static_cast (a_Entity)); break; - case E_BLOCK_SIGN_POST: AddSignEntity (static_cast (a_Entity)); break; - case E_BLOCK_TRAPPED_CHEST: AddChestEntity (static_cast (a_Entity), a_Entity->GetBlockType()); break; - case E_BLOCK_WALLSIGN: AddSignEntity (static_cast (a_Entity)); break; + case E_BLOCK_BEACON: AddBeaconEntity (static_cast (a_Entity)); break; + case E_BLOCK_BED: AddBedEntity (static_cast (a_Entity)); break; + case E_BLOCK_BREWING_STAND: AddBrewingstandEntity (static_cast (a_Entity)); break; + case E_BLOCK_CHEST: AddChestEntity (static_cast (a_Entity), a_Entity->GetBlockType()); break; + case E_BLOCK_COMMAND_BLOCK: AddCommandBlockEntity (static_cast (a_Entity)); break; + case E_BLOCK_DISPENSER: AddDispenserEntity (static_cast (a_Entity)); break; + case E_BLOCK_DROPPER: AddDropperEntity (static_cast (a_Entity)); break; + case E_BLOCK_ENCHANTMENT_TABLE: AddEnchantingTableEntity(static_cast(a_Entity)); break; + case E_BLOCK_ENDER_CHEST: AddEnderchestEntity (static_cast (a_Entity)); break; + case E_BLOCK_END_PORTAL: AddEndPortalEntity (static_cast (a_Entity)); break; + case E_BLOCK_FLOWER_POT: AddFlowerPotEntity (static_cast (a_Entity)); break; + case E_BLOCK_FURNACE: AddFurnaceEntity (static_cast (a_Entity)); break; + case E_BLOCK_HEAD: AddMobHeadEntity (static_cast (a_Entity)); break; + case E_BLOCK_HOPPER: AddHopperEntity (static_cast (a_Entity)); break; + case E_BLOCK_JUKEBOX: AddJukeboxEntity (static_cast (a_Entity)); break; + case E_BLOCK_LIT_FURNACE: AddFurnaceEntity (static_cast (a_Entity)); break; + case E_BLOCK_MOB_SPAWNER: AddMobSpawnerEntity (static_cast (a_Entity)); break; + case E_BLOCK_NOTE_BLOCK: AddNoteEntity (static_cast (a_Entity)); break; + case E_BLOCK_SIGN_POST: AddSignEntity (static_cast (a_Entity)); break; + case E_BLOCK_TRAPPED_CHEST: AddChestEntity (static_cast (a_Entity), a_Entity->GetBlockType()); break; + case E_BLOCK_WALLSIGN: AddSignEntity (static_cast (a_Entity)); break; default: { @@ -461,6 +465,20 @@ public: + void AddEnchantingTableEntity(cEnchantingTableEntity * a_Entity) + { + mWriter.BeginCompound(""); + AddBasicTileEntity(a_Entity, "EnchantingTable"); + if (!a_Entity->GetCustomName().empty()) + { + mWriter.AddString("CustomName", a_Entity->GetCustomName()); + } + mWriter.EndCompound(); + } + + + + void AddEnderchestEntity(cEnderChestEntity * a_Entity) { mWriter.BeginCompound(""); @@ -471,6 +489,16 @@ public: + void AddEndPortalEntity(cEndPortalEntity * a_Entity) + { + mWriter.BeginCompound(""); + AddBasicTileEntity(a_Entity, "EndPortal"); + mWriter.EndCompound(); + } + + + + void AddFurnaceEntity(cFurnaceEntity * a_Furnace) { -- cgit v1.2.3