From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/McRegionLevelStorageSource.h | 68 ++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Minecraft.World/McRegionLevelStorageSource.h (limited to 'Minecraft.World/McRegionLevelStorageSource.h') diff --git a/Minecraft.World/McRegionLevelStorageSource.h b/Minecraft.World/McRegionLevelStorageSource.h new file mode 100644 index 00000000..d1a4bf30 --- /dev/null +++ b/Minecraft.World/McRegionLevelStorageSource.h @@ -0,0 +1,68 @@ +#pragma once +using namespace std; + +#include "DirectoryLevelStorageSource.h" +#include "FileFilter.h" +#include "FilenameFilter.h" + +class ProgressListener; +class LevelStorage; + +class McRegionLevelStorageSource : public DirectoryLevelStorageSource +{ +public: + class ChunkFile; + + McRegionLevelStorageSource(File dir); + virtual wstring getName(); + virtual vector *getLevelList(); + virtual void clearAll(); + virtual shared_ptr selectLevel(ConsoleSaveFile *saveFile, const wstring& levelId, bool createPlayerDir); + virtual bool isConvertible(ConsoleSaveFile *saveFile, const wstring& levelId); + virtual bool requiresConversion(ConsoleSaveFile *saveFile, const wstring& levelId); + virtual bool convertLevel(ConsoleSaveFile *saveFile, const wstring& levelId, ProgressListener *progress); + +private: +#if 0 + // 4J - not required anymore + void addRegions(File &baseFolder, vector *dest, vector *firstLevelFolders); +#endif + void convertRegions(File &baseFolder, vector *chunkFiles, int currentCount, int totalCount, ProgressListener *progress); + void eraseFolders(vector *folders, int currentCount, int totalCount, ProgressListener *progress); + +public: +#if 0 + // 4J - not required anymore + static class FolderFilter : public FileFilter + { + public: + static const std::tr1::wregex chunkFolderPattern; // was Pattern + bool accept(File *file); + }; + + static class ChunkFilter : public FilenameFilter + { + public: + static const std::tr1::wregex chunkFilePattern; // was Pattern + bool accept(File *dir, const wstring& name); + }; + + static class ChunkFile // implements Comparable + { + private: + /* const */ File *file; + /* const */ int x; + /* const */ int z; + + public: + ChunkFile(File *file); + int compareTo(ChunkFile *rhs); + File *getFile(); + int getX(); + int getZ(); + + // a < b + bool operator<( ChunkFile *b ); + }; +#endif +}; -- cgit v1.2.3