diff options
Diffstat (limited to 'src/WorldStorage/SchematicFileSerializer.h')
-rw-r--r-- | src/WorldStorage/SchematicFileSerializer.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/WorldStorage/SchematicFileSerializer.h b/src/WorldStorage/SchematicFileSerializer.h new file mode 100644 index 000000000..05b6c74f4 --- /dev/null +++ b/src/WorldStorage/SchematicFileSerializer.h @@ -0,0 +1,54 @@ + +// SchematicFileSerializer.h + +// Declares the cSchematicFileSerializer class representing the interface to load and save cBlockArea to a .schematic file + + + + + +#pragma once + +#include "../BlockArea.h" + + + + + +// fwd: FastNBT.h +class cParsedNBT; + + + + + +class cSchematicFileSerializer +{ +public: + + /** Loads an area from a .schematic file. Returns true if successful. */ + static bool LoadFromSchematicFile(cBlockArea & a_BlockArea, const AString & a_FileName); + + /** Loads an area from a string containing the .schematic file data. Returns true if successful. */ + static bool LoadFromSchematicString(cBlockArea & a_BlockArea, const AString & a_SchematicData); + + /** Saves the area into a .schematic file. Returns true if successful. */ + static bool SaveToSchematicFile(const cBlockArea & a_BlockArea, const AString & a_FileName); + + /** Saves the area into a string containing the .schematic file data. + Returns true if successful, false on failure. The data is stored into a_Out. */ + static bool SaveToSchematicString(const cBlockArea & a_BlockArea, AString & a_Out); + +private: + /** Loads the area from a schematic file uncompressed and parsed into a NBT tree. + Returns true if successful. */ + static bool LoadFromSchematicNBT(cBlockArea & a_BlockArea, cParsedNBT & a_NBT); + + /** Saves the area into a NBT representation and returns the NBT data as a string. + Returns an empty string if failed. */ + static AString SaveToSchematicNBT(const cBlockArea & a_BlockArea); +}; + + + + |