Cuberite
A lightweight, fast and extensible game server for Minecraft
WSSAnvil.h
Go to the documentation of this file.
1 
2 // WSSAnvil.h
3 
4 // Interfaces to the cWSSAnvil class representing the Anvil world storage scheme
5 
6 
7 
8 
9 #pragma once
10 
11 #include "../BlockEntities/BlockEntity.h"
12 #include "WorldStorage.h"
13 #include "FastNBT.h"
14 #include "StringCompression.h"
15 
16 
17 
18 
19 
20 // fwd:
21 class cItem;
22 class cItemGrid;
23 class cMonster;
24 class cProjectileEntity;
25 class cHangingEntity;
26 class cUUID;
27 class ChunkBlockData;
28 
29 
30 
31 
32 
33 enum
34 {
36  MCA_MAX_CHUNKS = 32 * 32,
37 
40 
43 } ;
44 
45 
46 
47 
48 
49 class cWSSAnvil:
50  public cWSSchema
51 {
52  using Super = cWSSchema;
53 
54 public:
55 
56  cWSSAnvil(cWorld * a_World, int a_CompressionFactor);
57  virtual ~cWSSAnvil() override;
58 
59 protected:
60 
61  class cMCAFile
62  {
63  public:
64 
65  cMCAFile(cWSSAnvil & a_ParentSchema, const AString & a_FileName, int a_RegionX, int a_RegionZ);
66 
67  bool GetChunkData (const cChunkCoords & a_Chunk, ContiguousByteBuffer & a_Data);
68  bool SetChunkData (const cChunkCoords & a_Chunk, ContiguousByteBufferView a_Data);
69 
70  int GetRegionX (void) const {return m_RegionX; }
71  int GetRegionZ (void) const {return m_RegionZ; }
72  const AString & GetFileName(void) const {return m_FileName; }
73 
74  protected:
75 
77 
78  int m_RegionX;
79  int m_RegionZ;
82 
83  // The header, copied from the file so we don't have to seek to it all the time
84  // First 1024 entries are chunk locations - the 3 + 1 byte sector-offset and sector-count
86 
87  // Chunk timestamps, following the chunk headers
89 
91  unsigned FindFreeLocation(int a_LocalX, int a_LocalZ, size_t a_DataSize);
92 
94  bool OpenFile(bool a_IsForReading);
95  } ;
96  typedef std::list<cMCAFile *> cMCAFiles;
97 
99  cMCAFiles m_Files; // a MRU cache of MCA files
100 
103 
105  void ChunkLoadFailed(int a_ChunkX, int a_ChunkZ, const AString & a_Reason, ContiguousByteBufferView a_ChunkDataToSave);
106 
108  bool GetChunkData(const cChunkCoords & a_Chunk, ContiguousByteBuffer & a_Data);
109 
111  const std::byte * GetSectionData(const cParsedNBT & a_NBT, int a_Tag, const AString & a_ChildName, size_t a_Length);
112 
114  bool SetChunkData(const cChunkCoords & a_Chunk, ContiguousByteBufferView a_Data);
115 
117  bool LoadChunkFromData(const cChunkCoords & a_Chunk, ContiguousByteBufferView a_Data);
118 
121 
124  bool LoadChunkFromNBT(const cChunkCoords & a_Chunk, const cParsedNBT & a_NBT, ContiguousByteBufferView a_RawChunkData);
125 
127  bool LoadBiomeMapFromNBT(cChunkDef::BiomeMap & a_BiomeMap, const cParsedNBT & a_NBT, int a_TagIdx);
128 
130  bool LoadHeightMapFromNBT(cChunkDef::HeightMap & a_HeightMap, const cParsedNBT & a_NBT, int a_TagIdx);
131 
133  void LoadEntitiesFromNBT(cEntityList & a_Entitites, const cParsedNBT & a_NBT, int a_Tag);
134 
136  void LoadBlockEntitiesFromNBT(cBlockEntities & a_BlockEntitites, const cParsedNBT & a_NBT, int a_Tag, const ChunkBlockData & a_BlockData);
137 
140  OwnedBlockEntity LoadBlockEntityFromNBT(const cParsedNBT & a_NBT, int a_Tag, Vector3i a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta);
141 
143  bool LoadItemFromNBT(cItem & a_Item, const cParsedNBT & a_NBT, int a_TagIdx);
144 
148  void LoadItemGridFromNBT(cItemGrid & a_ItemGrid, const cParsedNBT & a_NBT, int a_ItemsTagIdx, int s_SlotOffset = 0);
149 
153  AString DecodeSignLine(const AString & a_Line);
154 
158  bool CheckBlockEntityType(const cParsedNBT & a_NBT, int a_TagIdx, const AStringVector & a_ExpectedTypes, Vector3i a_Pos);
159 
160  OwnedBlockEntity LoadBannerFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
161  OwnedBlockEntity LoadBeaconFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
162  OwnedBlockEntity LoadBedFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
163  OwnedBlockEntity LoadBrewingstandFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
164  OwnedBlockEntity LoadChestFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
165  OwnedBlockEntity LoadCommandBlockFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
166  OwnedBlockEntity LoadDispenserFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
167  OwnedBlockEntity LoadDropperFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
168  OwnedBlockEntity LoadEnchantingTableFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
169  OwnedBlockEntity LoadEnderChestFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
170  OwnedBlockEntity LoadEndPortalFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
171  OwnedBlockEntity LoadFlowerPotFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
172  OwnedBlockEntity LoadFurnaceFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
173  OwnedBlockEntity LoadHopperFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
174  OwnedBlockEntity LoadJukeboxFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
175  OwnedBlockEntity LoadMobHeadFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
176  OwnedBlockEntity LoadMobSpawnerFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
177  OwnedBlockEntity LoadNoteBlockFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
178  OwnedBlockEntity LoadSignFromNBT (const cParsedNBT & a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos);
179 
180  void LoadEntityFromNBT(cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_EntityTagIdx, std::string_view a_EntityName);
181 
182  void LoadBoatFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
183  void LoadEnderCrystalFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
184  void LoadFallingBlockFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
185  void LoadPickupFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
186  void LoadTNTFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
187  void LoadExpOrbFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
188  void LoadHangingFromNBT (cHangingEntity & a_Hanging, const cParsedNBT & a_NBT, int a_TagIdx);
189  void LoadItemFrameFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
190  void LoadLeashKnotFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
191  void LoadPaintingFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
192 
193  void LoadOldMinecartFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
194  void LoadMinecartRFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
195  void LoadMinecartCFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
196  void LoadMinecartFFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
197  void LoadMinecartTFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
198  void LoadMinecartHFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
199 
200  void LoadArrowFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
201  void LoadSplashPotionFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
202  void LoadSnowballFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
203  void LoadEggFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
204  void LoadFireballFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
205  void LoadFireChargeFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
206  void LoadThrownEnderpearlFromNBT(cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
207 
208  void LoadBatFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
209  void LoadBlazeFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
210  void LoadCatFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
211  void LoadCaveSpiderFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
212  void LoadChickenFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
213  void LoadCodFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
214  void LoadCowFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
215  void LoadCreeperFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
216  void LoadDolphinFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
217  void LoadDonkeyFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
218  void LoadDrownedFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
219  void LoadElderGuardianFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
220  void LoadEnderDragonFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
221  void LoadEndermanFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
222  void LoadEndermiteFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
223  void LoadEvokerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
224  void LoadFoxFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
225  void LoadGhastFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
226  void LoadGiantFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
227  void LoadGuardianFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
228  void LoadHorseFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
229  void LoadHoglinFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
230  void LoadHuskFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
231  void LoadIllusionerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
232  void LoadIronGolemFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
233  void LoadLlamaFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
234  void LoadMagmaCubeFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
235  void LoadMooshroomFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
236  void LoadMuleFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
237  void LoadOcelotFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
238  void LoadPandaFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
239  void LoadParrotFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
240  void LoadPhantomFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
241  void LoadPigFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
242  void LoadPiglinFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
243  void LoadPiglinBruteFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
244  void LoadPillagerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
245  void LoadPolarBearFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
246  void LoadPufferfishFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
247  void LoadRabbitFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
248  void LoadRavagerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
249  void LoadSalmonFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
250  void LoadSheepFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
251  void LoadShulkerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
252  void LoadSilverfishFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
253  void LoadSkeletonFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
254  void LoadSkeletonHorseFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
255  void LoadSlimeFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
256  void LoadSnowGolemFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
257  void LoadSpiderFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
258  void LoadSquidFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
259  void LoadStrayFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
260  void LoadStriderFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
261  void LoadTraderLlamaFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
262  void LoadTropicalFishFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
263  void LoadTurtleFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
264  void LoadVexFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
265  void LoadVillagerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
266  void LoadVindicatorFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
267  void LoadWanderingTraderFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
268  void LoadWitchFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
269  void LoadWitherFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
270  void LoadWitherSkeletonFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
271  void LoadWolfFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
272  void LoadZoglinFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
273  void LoadZombieFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
274  void LoadZombieHorseFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
275  void LoadZombifiedPiglinFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
276  void LoadZombieVillagerFromNBT (cEntityList & a_Entities, const cParsedNBT & a_NBT, int a_TagIdx);
277 
280  std::pair<AString, cUUID> LoadEntityOwner(const cParsedNBT & a_NBT, int a_TagIdx);
281 
283  bool LoadEntityBaseFromNBT(cEntity & a_Entity, const cParsedNBT & a_NBT, int a_TagIdx);
284 
286  bool LoadMonsterBaseFromNBT(cMonster & a_Monster, const cParsedNBT & a_NBT, int a_TagIdx);
287 
289  void LoadLeashToPosition(cMonster & a_Monster, const cParsedNBT & a_NBT, int a_TagIdx);
290 
292  bool LoadProjectileBaseFromNBT(cProjectileEntity & a_Entity, const cParsedNBT & a_NBT, int a_TagIx);
293 
295  bool LoadDoublesListFromNBT(double * a_Doubles, int a_NumDoubles, const cParsedNBT & a_NBT, int a_TagIdx);
296 
298  bool LoadFloatsListFromNBT(float * a_Floats, int a_NumFloats, const cParsedNBT & a_NBT, int a_TagIdx);
299 
301  bool GetBlockEntityNBTPos(const cParsedNBT & a_NBT, int a_TagIdx, Vector3i & a_AbsPos);
302 
304  cMCAFile * LoadMCAFile(const cChunkCoords & a_Chunk);
305 
306  // cWSSchema overrides:
307  virtual bool LoadChunk(const cChunkCoords & a_Chunk) override;
308  virtual bool SaveChunk(const cChunkCoords & a_Chunk) override;
309  virtual const AString GetName(void) const override {return "anvil"; }
310 } ;
WorldStorage.h
cWSSAnvil::LoadChunkFromData
bool LoadChunkFromData(const cChunkCoords &a_Chunk, ContiguousByteBufferView a_Data)
Loads the chunk from the data (no locking needed)
Definition: WSSAnvil.cpp:315
cWSSAnvil::LoadMCAFile
cMCAFile * LoadMCAFile(const cChunkCoords &a_Chunk)
Gets the correct MCA file either from cache or from disk, manages the m_MCAFiles cache; assumes m_CS ...
Definition: WSSAnvil.cpp:262
cWSSAnvil::LoadHopperFromNBT
OwnedBlockEntity LoadHopperFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1307
cWSSAnvil::LoadLeashToPosition
void LoadLeashToPosition(cMonster &a_Monster, const cParsedNBT &a_NBT, int a_TagIdx)
Loads the position to where is leashed the monster.
Definition: WSSAnvil.cpp:3743
cWSSAnvil::LoadHoglinFromNBT
void LoadHoglinFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2644
cWSSAnvil::LoadZombieFromNBT
void LoadZombieFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3456
cUUID
Definition: UUID.h:10
cWSSAnvil::LoadZombifiedPiglinFromNBT
void LoadZombifiedPiglinFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3498
cWSSAnvil::GetBlockEntityNBTPos
bool GetBlockEntityNBTPos(const cParsedNBT &a_NBT, int a_TagIdx, Vector3i &a_AbsPos)
Helper function for extracting the X, Y, and Z int subtags of a NBT compound; returns true if success...
Definition: WSSAnvil.cpp:3849
cWSSAnvil::cMCAFile
Definition: WSSAnvil.h:61
ContiguousByteBuffer
std::basic_string< std::byte > ContiguousByteBuffer
Definition: Globals.h:372
cWSSAnvil::LoadSignFromNBT
OwnedBlockEntity LoadSignFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1532
cWSSAnvil::LoadSpiderFromNBT
void LoadSpiderFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3145
cWSSAnvil::LoadPiglinFromNBT
void LoadPiglinFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2872
cWSSAnvil::LoadDolphinFromNBT
void LoadDolphinFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2435
cWSSAnvil::LoadEggFromNBT
void LoadEggFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2233
cWSSAnvil::ChunkLoadFailed
void ChunkLoadFailed(int a_ChunkX, int a_ChunkZ, const AString &a_Reason, ContiguousByteBufferView a_ChunkDataToSave)
Reports that the specified chunk failed to load and saves the chunk data to an external file.
Definition: WSSAnvil.cpp:182
cWSSAnvil::LoadThrownEnderpearlFromNBT
void LoadThrownEnderpearlFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2281
cWSSAnvil::LoadDrownedFromNBT
void LoadDrownedFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2453
cWSSAnvil::GetName
virtual const AString GetName(void) const override
Definition: WSSAnvil.h:309
cWSSAnvil::LoadPandaFromNBT
void LoadPandaFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2812
cWSSAnvil::LoadEnderDragonFromNBT
void LoadEnderDragonFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2471
cChunkDef::BiomeMap
EMCSBiome BiomeMap[Width *Width]
The type used for any biomemap operations and storage inside Cuberite, using Cuberite biomes (need no...
Definition: ChunkDef.h:120
cWSSAnvil::LoadBatFromNBT
void LoadBatFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2297
cWSSAnvil::m_CS
cCriticalSection m_CS
Definition: WSSAnvil.h:98
cWSSAnvil::LoadZoglinFromNBT
void LoadZoglinFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3447
cWSSAnvil::LoadRabbitFromNBT
void LoadRabbitFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2917
cWSSAnvil::LoadEntityBaseFromNBT
bool LoadEntityBaseFromNBT(cEntity &a_Entity, const cParsedNBT &a_NBT, int a_TagIdx)
Loads entity common data from the NBT compound; returns true if successful.
Definition: WSSAnvil.cpp:3627
cWSSAnvil::m_Compressor
Compression::Compressor m_Compressor
Definition: WSSAnvil.h:102
MCA_CHUNK_HEADER_LENGTH
@ MCA_CHUNK_HEADER_LENGTH
There are 5 bytes of header in front of each chunk.
Definition: WSSAnvil.h:42
cWSSAnvil::LoadEvokerFromNBT
void LoadEvokerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2520
cWSSAnvil::LoadFireChargeFromNBT
void LoadFireChargeFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2265
cWSSAnvil::LoadCowFromNBT
void LoadCowFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2395
cWSSAnvil::CheckBlockEntityType
bool CheckBlockEntityType(const cParsedNBT &a_NBT, int a_TagIdx, const AStringVector &a_ExpectedTypes, Vector3i a_Pos)
Returns true iff the "id" child tag inside the specified tag equals (case-sensitive) any of the speci...
Definition: WSSAnvil.cpp:847
cWSSAnvil::LoadBlockEntitiesFromNBT
void LoadBlockEntitiesFromNBT(cBlockEntities &a_BlockEntitites, const cParsedNBT &a_NBT, int a_Tag, const ChunkBlockData &a_BlockData)
Loads the chunk's BlockEntities from NBT data (a_Tag is the Level\TileEntities list tag; may be -1)
Definition: WSSAnvil.cpp:577
cWSSAnvil::LoadDonkeyFromNBT
void LoadDonkeyFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2444
MCA_MAX_CHUNKS
@ MCA_MAX_CHUNKS
Maximum number of chunks in an MCA file - also the count of the header items.
Definition: WSSAnvil.h:36
cProjectileEntity
Definition: ProjectileEntity.h:20
cWSSAnvil::LoadSkeletonFromNBT
void LoadSkeletonFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3054
cWSSAnvil::cWSSAnvil
cWSSAnvil(cWorld *a_World, int a_CompressionFactor)
Definition: WSSAnvil.cpp:88
cWSSAnvil::cMCAFile::cMCAFile
cMCAFile(cWSSAnvil &a_ParentSchema, const AString &a_FileName, int a_RegionX, int a_RegionZ)
Definition: WSSAnvil.cpp:3881
cWSSAnvil::LoadSalmonFromNBT
void LoadSalmonFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2970
cWSSAnvil::LoadVillagerFromNBT
void LoadVillagerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3239
cWSSAnvil::LoadPillagerFromNBT
void LoadPillagerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2890
cWSSAnvil::LoadMobHeadFromNBT
OwnedBlockEntity LoadMobHeadFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1436
cWSSAnvil::LoadShulkerFromNBT
void LoadShulkerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3025
cWSSAnvil::LoadEntitiesFromNBT
void LoadEntitiesFromNBT(cEntityList &a_Entitites, const cParsedNBT &a_NBT, int a_Tag)
Loads the chunk's entities from NBT data (a_Tag is the Level\Entities list tag; may be -1)
Definition: WSSAnvil.cpp:543
cWSSAnvil::LoadChunkFromNBT
bool LoadChunkFromNBT(const cChunkCoords &a_Chunk, const cParsedNBT &a_NBT, ContiguousByteBufferView a_RawChunkData)
Loads the chunk from NBT data (no locking needed).
Definition: WSSAnvil.cpp:355
cWSSAnvil::LoadTNTFromNBT
void LoadTNTFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1965
cWSSAnvil::LoadBeaconFromNBT
OwnedBlockEntity LoadBeaconFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:919
NIBBLETYPE
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
Definition: ChunkDef.h:44
cWSSAnvil::LoadGhastFromNBT
void LoadGhastFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2538
cWSSAnvil::LoadBiomeMapFromNBT
bool LoadBiomeMapFromNBT(cChunkDef::BiomeMap &a_BiomeMap, const cParsedNBT &a_NBT, int a_TagIdx)
Loads the chunk's biome map into a_BiomeMap if biomes present and valid; returns false otherwise.
Definition: WSSAnvil.cpp:477
cWSSAnvil::LoadHuskFromNBT
void LoadHuskFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2653
cWSSAnvil::LoadBlockEntityFromNBT
OwnedBlockEntity LoadBlockEntityFromNBT(const cParsedNBT &a_NBT, int a_Tag, Vector3i a_Pos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)
Loads the data for a block entity from the specified NBT tag.
Definition: WSSAnvil.cpp:632
cWSSAnvil::cMCAFile::GetFileName
const AString & GetFileName(void) const
Definition: WSSAnvil.h:72
cWSSAnvil::LoadRavagerFromNBT
void LoadRavagerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2961
cWSSAnvil::LoadFireballFromNBT
void LoadFireballFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2249
cWSSAnvil::LoadPhantomFromNBT
void LoadPhantomFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2830
cWSSAnvil::LoadIronGolemFromNBT
void LoadIronGolemFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2671
cWSSAnvil::LoadFloatsListFromNBT
bool LoadFloatsListFromNBT(float *a_Floats, int a_NumFloats, const cParsedNBT &a_NBT, int a_TagIdx)
Loads an array of floats of the specified length from the specified NBT list tag a_TagIdx; returns tr...
Definition: WSSAnvil.cpp:3831
cHangingEntity
Definition: HangingEntity.h:11
cWSSAnvil::cMCAFile::m_File
cFile m_File
Definition: WSSAnvil.h:80
cWSSAnvil::LoadEnderCrystalFromNBT
void LoadEnderCrystalFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1763
cWSSAnvil::LoadCodFromNBT
void LoadCodFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2386
cWSSAnvil::LoadMagmaCubeFromNBT
void LoadMagmaCubeFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2700
cWSSAnvil::LoadBrewingstandFromNBT
OwnedBlockEntity LoadBrewingstandFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:987
cWSSAnvil::LoadChunk
virtual bool LoadChunk(const cChunkCoords &a_Chunk) override
Definition: WSSAnvil.cpp:142
cWSSAnvil::cMCAFile::m_RegionZ
int m_RegionZ
Definition: WSSAnvil.h:79
cFile
Definition: File.h:37
cWSSAnvil::LoadBoatFromNBT
void LoadBoatFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1743
Compression::Compressor
Contains routines for data compression.
Definition: StringCompression.h:43
cWSSAnvil::LoadProjectileBaseFromNBT
bool LoadProjectileBaseFromNBT(cProjectileEntity &a_Entity, const cParsedNBT &a_NBT, int a_TagIx)
Loads projectile common data from the NBT compound; returns true if successful.
Definition: WSSAnvil.cpp:3791
cWSSAnvil::GetSectionData
const std::byte * GetSectionData(const cParsedNBT &a_NBT, int a_Tag, const AString &a_ChildName, size_t a_Length)
Copies a_Length bytes of data from the specified NBT Tag's Child into the a_Destination buffer.
Definition: WSSAnvil.cpp:4024
cWSSAnvil::LoadNoteBlockFromNBT
OwnedBlockEntity LoadNoteBlockFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1510
cWSSAnvil::LoadDispenserFromNBT
OwnedBlockEntity LoadDispenserFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1107
cWorld
Definition: World.h:47
cWSSAnvil::LoadFlowerPotFromNBT
OwnedBlockEntity LoadFlowerPotFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1208
cWSSAnvil::LoadMinecartHFromNBT
void LoadMinecartHFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1914
cWSSAnvil::cMCAFile::SetChunkData
bool SetChunkData(const cChunkCoords &a_Chunk, ContiguousByteBufferView a_Data)
Definition: WSSAnvil.cpp:4038
cWSSAnvil::LoadEntityOwner
std::pair< AString, cUUID > LoadEntityOwner(const cParsedNBT &a_NBT, int a_TagIdx)
Loads the owner name and UUID from the entity at the specified NBT tag.
Definition: WSSAnvil.cpp:3574
cWSSAnvil::LoadGuardianFromNBT
void LoadGuardianFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2578
cWSSAnvil::LoadEnderChestFromNBT
OwnedBlockEntity LoadEnderChestFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1178
cWSSAnvil::LoadIllusionerFromNBT
void LoadIllusionerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2662
cWSSAnvil::LoadSkeletonHorseFromNBT
void LoadSkeletonHorseFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3087
cWSSAnvil::LoadLeashKnotFromNBT
void LoadLeashKnotFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2081
cWSSAnvil::cMCAFile::m_ParentSchema
cWSSAnvil & m_ParentSchema
Definition: WSSAnvil.h:76
cWSSAnvil::LoadHorseFromNBT
void LoadHorseFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2598
cWSSAnvil::LoadPigFromNBT
void LoadPigFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2839
FastNBT.h
cMonster
Definition: Monster.h:16
cItem
Definition: Item.h:36
cWSSAnvil::LoadMinecartCFromNBT
void LoadMinecartCFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1848
ContiguousByteBufferView
std::basic_string_view< std::byte > ContiguousByteBufferView
Definition: Globals.h:373
cWSSAnvil::LoadPufferfishFromNBT
void LoadPufferfishFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2908
cWSSAnvil::cMCAFile::GetChunkData
bool GetChunkData(const cChunkCoords &a_Chunk, ContiguousByteBuffer &a_Data)
Definition: WSSAnvil.cpp:3956
cWSSAnvil
Definition: WSSAnvil.h:49
Compression::Result
Contains the result of a compression or extraction operation.
Definition: StringCompression.h:22
cWSSAnvil::cMCAFile::GetRegionX
int GetRegionX(void) const
Definition: WSSAnvil.h:70
cWSSAnvil::LoadCreeperFromNBT
void LoadCreeperFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2415
MCA_HEADER_SIZE
@ MCA_HEADER_SIZE
The MCA header is 8 KiB.
Definition: WSSAnvil.h:39
cWSSAnvil::LoadEndPortalFromNBT
OwnedBlockEntity LoadEndPortalFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1193
cWSSAnvil::LoadArrowFromNBT
void LoadArrowFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2122
cWSSAnvil::LoadExpOrbFromNBT
void LoadExpOrbFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1987
cWSSAnvil::LoadStriderFromNBT
void LoadStriderFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3194
cWSSAnvil::SaveChunk
virtual bool SaveChunk(const cChunkCoords &a_Chunk) override
Definition: WSSAnvil.cpp:158
OwnedBlockEntity
std::unique_ptr< cBlockEntity > OwnedBlockEntity
Definition: BlockEntity.h:16
cWSSAnvil::LoadOldMinecartFromNBT
void LoadOldMinecartFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1719
cWSSAnvil::LoadOcelotFromNBT
void LoadOcelotFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2758
cWSSAnvil::Super
cWSSchema Super
Definition: WSSAnvil.h:52
cWSSAnvil::LoadMinecartRFromNBT
void LoadMinecartRFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1834
cWSSAnvil::cMCAFile::m_RegionX
int m_RegionX
Definition: WSSAnvil.h:78
cWSSAnvil::DecodeSignLine
AString DecodeSignLine(const AString &a_Line)
Decodes the text contained within a sign.
Definition: WSSAnvil.cpp:818
cWSSAnvil::LoadVexFromNBT
void LoadVexFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3230
cWSSAnvil::LoadParrotFromNBT
void LoadParrotFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2821
cWSSAnvil::LoadSlimeFromNBT
void LoadSlimeFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3096
cWSSAnvil::LoadDropperFromNBT
OwnedBlockEntity LoadDropperFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1130
cWSSAnvil::LoadPaintingFromNBT
void LoadPaintingFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2099
cBlockEntities
std::unordered_map< size_t, OwnedBlockEntity > cBlockEntities
Definition: BlockEntity.h:17
cWSSAnvil::LoadPolarBearFromNBT
void LoadPolarBearFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2899
cChunkDef::HeightMap
HEIGHTTYPE HeightMap[Width *Width]
The type used for any heightmap operations and storage; idx = x + Width * z; Height points to the hig...
Definition: ChunkDef.h:115
cWSSAnvil::cMCAFile::m_FileName
AString m_FileName
Definition: WSSAnvil.h:81
cWSSAnvil::LoadWolfFromNBT
void LoadWolfFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3371
cWSSAnvil::LoadDoublesListFromNBT
bool LoadDoublesListFromNBT(double *a_Doubles, int a_NumDoubles, const cParsedNBT &a_NBT, int a_TagIdx)
Loads an array of doubles of the specified length from the specified NBT list tag a_TagIdx; returns t...
Definition: WSSAnvil.cpp:3813
cWSSAnvil::LoadEndermanFromNBT
void LoadEndermanFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2491
cWSSAnvil::LoadBannerFromNBT
OwnedBlockEntity LoadBannerFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:896
Compression::Extractor
Contains routines for data extraction.
Definition: StringCompression.h:64
cWSSAnvil::cMCAFile::m_TimeStamps
unsigned m_TimeStamps[MCA_MAX_CHUNKS]
Definition: WSSAnvil.h:88
cWSSAnvil::LoadMobSpawnerFromNBT
OwnedBlockEntity LoadMobSpawnerFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1352
cWSSAnvil::LoadBlazeFromNBT
void LoadBlazeFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2317
BLOCKTYPE
unsigned char BLOCKTYPE
The datatype used by blockdata.
Definition: ChunkDef.h:41
cWSSAnvil::m_Files
cMCAFiles m_Files
Definition: WSSAnvil.h:99
cWSSAnvil::LoadGiantFromNBT
void LoadGiantFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2558
cWSSAnvil::m_Extractor
Compression::Extractor m_Extractor
Definition: WSSAnvil.h:101
cWSSAnvil::LoadBedFromNBT
OwnedBlockEntity LoadBedFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:962
StringCompression.h
cWSSAnvil::LoadMinecartFFromNBT
void LoadMinecartFFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1880
cWSSAnvil::LoadCatFromNBT
void LoadCatFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2337
cWSSAnvil::LoadTurtleFromNBT
void LoadTurtleFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3221
cWSSAnvil::LoadTraderLlamaFromNBT
void LoadTraderLlamaFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3203
cWSSAnvil::LoadMooshroomFromNBT
void LoadMooshroomFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2729
cWSSAnvil::cMCAFile::GetRegionZ
int GetRegionZ(void) const
Definition: WSSAnvil.h:71
cWSSAnvil::LoadWitherFromNBT
void LoadWitherFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3325
cWSSAnvil::LoadLlamaFromNBT
void LoadLlamaFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2691
cCriticalSection
Definition: CriticalSection.h:8
cWSSAnvil::LoadCaveSpiderFromNBT
void LoadCaveSpiderFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2346
cWSSAnvil::cMCAFile::OpenFile
bool OpenFile(bool a_IsForReading)
Opens a MCA file either for a Read operation (fails if doesn't exist) or for a Write operation (creat...
Definition: WSSAnvil.cpp:3893
cWSSAnvil::LoadMinecartTFromNBT
void LoadMinecartTFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1897
cWSSAnvil::LoadJukeboxFromNBT
OwnedBlockEntity LoadJukeboxFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1330
cWSSAnvil::cMCAFile::FindFreeLocation
unsigned FindFreeLocation(int a_LocalX, int a_LocalZ, size_t a_DataSize)
Finds a free location large enough to hold a_Data.
Definition: WSSAnvil.cpp:4126
cWSSAnvil::LoadWitherSkeletonFromNBT
void LoadWitherSkeletonFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3351
cWSSAnvil::LoadItemFrameFromNBT
void LoadItemFrameFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2044
cEntity
Definition: Entity.h:75
cWSSAnvil::LoadSquidFromNBT
void LoadSquidFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3165
cChunkCoords
Definition: ChunkDef.h:55
cItemGrid
Definition: ItemGrid.h:19
cWSSAnvil::~cWSSAnvil
virtual ~cWSSAnvil() override
Definition: WSSAnvil.cpp:129
cWSSAnvil::LoadItemGridFromNBT
void LoadItemGridFromNBT(cItemGrid &a_ItemGrid, const cParsedNBT &a_NBT, int a_ItemsTagIdx, int s_SlotOffset=0)
Loads contentents of an Items[] list tag into a cItemGrid ItemGrid begins at the specified slot offse...
Definition: WSSAnvil.cpp:790
cWSSAnvil::LoadChestFromNBT
OwnedBlockEntity LoadChestFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1045
cWSSAnvil::LoadPickupFromNBT
void LoadPickupFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1931
ChunkBlockData
Definition: ChunkData.h:55
cWSSAnvil::LoadWanderingTraderFromNBT
void LoadWanderingTraderFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3296
cWSSAnvil::LoadEntityFromNBT
void LoadEntityFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_EntityTagIdx, std::string_view a_EntityName)
Definition: WSSAnvil.cpp:1574
cWSSAnvil::LoadSplashPotionFromNBT
void LoadSplashPotionFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2193
cWSSAnvil::SaveChunkToData
Compression::Result SaveChunkToData(const cChunkCoords &a_Chunk)
Saves the chunk into datastream (no locking needed)
Definition: WSSAnvil.cpp:342
cWSSAnvil::LoadItemFromNBT
bool LoadItemFromNBT(cItem &a_Item, const cParsedNBT &a_NBT, int a_TagIdx)
Loads a cItem contents from the specified NBT tag; returns true if successful.
Definition: WSSAnvil.cpp:684
cWSSAnvil::LoadSilverfishFromNBT
void LoadSilverfishFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3034
cWSSAnvil::LoadSheepFromNBT
void LoadSheepFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2979
cWSSAnvil::LoadFallingBlockFromNBT
void LoadFallingBlockFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:1809
cWSSAnvil::cMCAFile::m_Header
unsigned m_Header[MCA_MAX_CHUNKS]
Definition: WSSAnvil.h:85
cWSSAnvil::LoadZombieVillagerFromNBT
void LoadZombieVillagerFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3531
cWSSAnvil::LoadMuleFromNBT
void LoadMuleFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2749
cWSSAnvil::LoadVindicatorFromNBT
void LoadVindicatorFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3287
cWSSAnvil::cMCAFiles
std::list< cMCAFile * > cMCAFiles
Definition: WSSAnvil.h:96
cWSSAnvil::LoadFoxFromNBT
void LoadFoxFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2529
cWSSAnvil::LoadEnchantingTableFromNBT
OwnedBlockEntity LoadEnchantingTableFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1153
cWSSAnvil::LoadFurnaceFromNBT
OwnedBlockEntity LoadFurnaceFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1247
cParsedNBT
Parses and contains the parsed data Also implements data accessor functions for tree traversal and va...
Definition: FastNBT.h:152
AString
std::string AString
Definition: StringUtils.h:11
cWSSAnvil::LoadElderGuardianFromNBT
void LoadElderGuardianFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2462
Vector3< int >
cWSSAnvil::SetChunkData
bool SetChunkData(const cChunkCoords &a_Chunk, ContiguousByteBufferView a_Data)
Sets chunk data into the correct file; locks file CS as needed.
Definition: WSSAnvil.cpp:247
cWSSAnvil::LoadChickenFromNBT
void LoadChickenFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2366
cWSSAnvil::LoadStrayFromNBT
void LoadStrayFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3185
cWSSAnvil::LoadWitchFromNBT
void LoadWitchFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3305
cWSSAnvil::LoadEndermiteFromNBT
void LoadEndermiteFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2511
cWSSAnvil::LoadHangingFromNBT
void LoadHangingFromNBT(cHangingEntity &a_Hanging, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2016
cWSSAnvil::LoadSnowballFromNBT
void LoadSnowballFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2217
cWSSAnvil::LoadZombieHorseFromNBT
void LoadZombieHorseFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3489
cEntityList
std::vector< OwnedEntity > cEntityList
Definition: ChunkDef.h:33
cWSSAnvil::LoadMonsterBaseFromNBT
bool LoadMonsterBaseFromNBT(cMonster &a_Monster, const cParsedNBT &a_NBT, int a_TagIdx)
Loads monster common data from the NBT compound; returns true if successful.
Definition: WSSAnvil.cpp:3686
cWSSAnvil::LoadCommandBlockFromNBT
OwnedBlockEntity LoadCommandBlockFromNBT(const cParsedNBT &a_NBT, int a_TagIdx, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos)
Definition: WSSAnvil.cpp:1069
cWSSAnvil::GetChunkData
bool GetChunkData(const cChunkCoords &a_Chunk, ContiguousByteBuffer &a_Data)
Gets chunk data from the correct file; locks file CS as needed.
Definition: WSSAnvil.cpp:232
cWSSAnvil::LoadHeightMapFromNBT
bool LoadHeightMapFromNBT(cChunkDef::HeightMap &a_HeightMap, const cParsedNBT &a_NBT, int a_TagIdx)
Loads the chunk's height map into a_HeightMap if heights present and valid; returns false otherwise.
Definition: WSSAnvil.cpp:507
cWSSAnvil::LoadPiglinBruteFromNBT
void LoadPiglinBruteFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:2881
AStringVector
std::vector< AString > AStringVector
Definition: StringUtils.h:12
cWSSAnvil::LoadTropicalFishFromNBT
void LoadTropicalFishFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3212
cWSSAnvil::LoadSnowGolemFromNBT
void LoadSnowGolemFromNBT(cEntityList &a_Entities, const cParsedNBT &a_NBT, int a_TagIdx)
Definition: WSSAnvil.cpp:3125