summaryrefslogtreecommitdiffstats
path: root/Tools/AnvilStats/ChunkExtract.h
diff options
context:
space:
mode:
authormadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-07-06 21:56:03 +0200
committermadmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6>2013-07-06 21:56:03 +0200
commit8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d (patch)
tree786de8ccf882511206a8113eb3cad5b7e19a80b3 /Tools/AnvilStats/ChunkExtract.h
parentProtoProxy: moved into the Tools folder (diff)
downloadcuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar.gz
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar.bz2
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar.lz
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar.xz
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.tar.zst
cuberite-8f18510dec4eab5f00e0ff311cf31ae2ce4f2d4d.zip
Diffstat (limited to 'Tools/AnvilStats/ChunkExtract.h')
-rw-r--r--Tools/AnvilStats/ChunkExtract.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/Tools/AnvilStats/ChunkExtract.h b/Tools/AnvilStats/ChunkExtract.h
new file mode 100644
index 000000000..5e0ed8a9a
--- /dev/null
+++ b/Tools/AnvilStats/ChunkExtract.h
@@ -0,0 +1,66 @@
+
+// ChunkExtract.h
+
+// Declares the cChunkExtract class representing a cCallback descendant that extracts raw chunk data into separate .chunk files
+
+
+
+
+
+#pragma once
+
+#include "Callback.h"
+
+
+
+
+
+class cChunkExtract :
+ public cCallback
+{
+public:
+ cChunkExtract(const AString & iWorldFolder);
+
+protected:
+ AString mWorldFolder;
+ cFile mAnvilFile;
+ int mCurAnvilX; // X-coord of mAnvilFile, in Anvil-coords (1 Anvil-coord = 32 chunks)
+ int mCurAnvilZ; // Z-coord of mAnvilFile, -"-
+ int mCurChunkX; // X-coord of the chunk being processed
+ int mCurChunkZ; // Z-coord of the chunk being processed
+
+ /// Opens new anvil file into mAnvilFile, sets mCurAnvilX and mCurAnvilZ
+ void OpenAnvilFile(int a_AnvilX, int a_AnvilZ);
+
+ // cCallback overrides:
+ virtual bool OnNewChunk(int a_ChunkX, int a_ChunkZ) override;
+ virtual bool OnHeader(int a_FileOffset, unsigned char a_NumSectors, int a_Timestamp) override { return false; }
+ virtual bool OnCompressedDataSizePos(int a_CompressedDataSize, int a_DataOffset, char a_CompressionMethod) override;
+ virtual bool OnDecompressedData(const char * a_DecompressedNBT, int a_DataSize) override;
+} ;
+
+
+
+
+
+class cChunkExtractFactory :
+ public cCallbackFactory
+{
+public:
+ cChunkExtractFactory(const AString & iWorldFolder) :
+ mWorldFolder(iWorldFolder)
+ {
+ }
+
+ virtual cCallback * CreateNewCallback(void) override
+ {
+ return new cChunkExtract(mWorldFolder);
+ }
+
+protected:
+ AString mWorldFolder;
+} ;
+
+
+
+