diff options
Diffstat (limited to 'src/WorldStorage')
-rw-r--r-- | src/WorldStorage/NBTChunkSerializer.cpp | 3 | ||||
-rw-r--r-- | src/WorldStorage/WSSAnvil.cpp | 52 |
2 files changed, 32 insertions, 23 deletions
diff --git a/src/WorldStorage/NBTChunkSerializer.cpp b/src/WorldStorage/NBTChunkSerializer.cpp index e96acccef..dde6c299c 100644 --- a/src/WorldStorage/NBTChunkSerializer.cpp +++ b/src/WorldStorage/NBTChunkSerializer.cpp @@ -893,6 +893,9 @@ public: const cVillager *Villager = static_cast<const cVillager *>(a_Monster); mWriter.AddInt("Profession", Villager->GetVilType()); mWriter.AddInt("Age", Villager->GetAge()); + mWriter.BeginList("Inventory", TAG_Compound); + AddItemGrid(Villager->GetInventory()); + mWriter.EndList(); break; } case mtWither: diff --git a/src/WorldStorage/WSSAnvil.cpp b/src/WorldStorage/WSSAnvil.cpp index dbbd03daf..dfefb74d3 100644 --- a/src/WorldStorage/WSSAnvil.cpp +++ b/src/WorldStorage/WSSAnvil.cpp @@ -1663,29 +1663,29 @@ void cWSSAnvil::LoadEntityFromNBT(cEntityList & a_Entities, const cParsedNBT & a case mtHoglin: return LoadHoglinFromNBT(a_Entities, a_NBT, a_EntityTagIdx); case mtHusk: return LoadHuskFromNBT(a_Entities, a_NBT, a_EntityTagIdx); case mtIllusioner: return LoadIllusionerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtIronGolem: return LoadVillagerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtLlama: return LoadIronGolemFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtMagmaCube: return LoadLlamaFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtMooshroom: return LoadMagmaCubeFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtMule: return LoadMooshroomFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtOcelot: return LoadMuleFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPanda: return LoadOcelotFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtParrot: return LoadPandaFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPhantom: return LoadParrotFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPig: return LoadPhantomFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPiglin: return LoadPigFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPiglinBrute: return LoadPiglinFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPillager: return LoadPiglinBruteFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPolarBear: return LoadPillagerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtPufferfish: return LoadPolarBearFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtRabbit: return LoadPufferfishFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtRavager: return LoadRabbitFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtSalmon: return LoadRavagerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtSheep: return LoadSalmonFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtShulker: return LoadSheepFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtSilverfish: return LoadShulkerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtSkeleton: return LoadSilverfishFromNBT(a_Entities, a_NBT, a_EntityTagIdx); - case mtSkeletonHorse: return LoadSkeletonFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtIronGolem: return LoadIronGolemFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtLlama: return LoadLlamaFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtMagmaCube: return LoadMagmaCubeFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtMooshroom: return LoadMooshroomFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtMule: return LoadMuleFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtOcelot: return LoadOcelotFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPanda: return LoadPandaFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtParrot: return LoadParrotFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPhantom: return LoadPhantomFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPig: return LoadPigFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPiglin: return LoadPiglinFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPiglinBrute: return LoadPiglinBruteFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPillager: return LoadPillagerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPolarBear: return LoadPolarBearFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtPufferfish: return LoadPufferfishFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtRabbit: return LoadRabbitFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtRavager: return LoadRavagerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtSalmon: return LoadSalmonFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtSheep: return LoadSheepFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtShulker: return LoadShulkerFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtSilverfish: return LoadSilverfishFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtSkeleton: return LoadSkeletonFromNBT(a_Entities, a_NBT, a_EntityTagIdx); + case mtSkeletonHorse: return LoadSkeletonHorseFromNBT(a_Entities, a_NBT, a_EntityTagIdx); case mtSlime: return LoadSlimeFromNBT(a_Entities, a_NBT, a_EntityTagIdx); case mtSnowGolem: return LoadSnowGolemFromNBT(a_Entities, a_NBT, a_EntityTagIdx); case mtSpider: return LoadSpiderFromNBT(a_Entities, a_NBT, a_EntityTagIdx); @@ -3270,6 +3270,12 @@ void cWSSAnvil::LoadVillagerFromNBT(cEntityList & a_Entities, const cParsedNBT & Monster->SetAge(Age); } + int InventoryIdx = a_NBT.FindChildByName(a_TagIdx, "Inventory"); + if (InventoryIdx > 0) + { + LoadItemGridFromNBT(Monster->GetInventory(), a_NBT, InventoryIdx); + } + a_Entities.emplace_back(std::move(Monster)); } |