diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/McRegionLevelStorageSource.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/McRegionLevelStorageSource.h')
| -rw-r--r-- | Minecraft.World/McRegionLevelStorageSource.h | 68 |
1 files changed, 68 insertions, 0 deletions
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<LevelSummary *> *getLevelList(); + virtual void clearAll(); + virtual shared_ptr<LevelStorage> 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<ChunkFile *> *dest, vector<File *> *firstLevelFolders); +#endif + void convertRegions(File &baseFolder, vector<ChunkFile *> *chunkFiles, int currentCount, int totalCount, ProgressListener *progress); + void eraseFolders(vector<File *> *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<ChunkFile> + { + 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 +}; |
