#pragma once #include "DirectoryLevelStorageSource.h" #include "../../IO/Files/FileFilter.h" #include "../../IO/Files/FilenameFilter.h" class ProgressListener; class LevelStorage; class McRegionLevelStorageSource : public DirectoryLevelStorageSource { public: class ChunkFile; McRegionLevelStorageSource(File dir); virtual std::wstring getName(); virtual std::vector* getLevelList(); virtual void clearAll(); virtual std::shared_ptr selectLevel( ConsoleSaveFile* saveFile, const std::wstring& levelId, bool createPlayerDir); virtual bool isConvertible(ConsoleSaveFile* saveFile, const std::wstring& levelId); virtual bool requiresConversion(ConsoleSaveFile* saveFile, const std::wstring& levelId); virtual bool convertLevel(ConsoleSaveFile* saveFile, const std::wstring& levelId, ProgressListener* progress); private: void convertRegions(File& baseFolder, std::vector* chunkFiles, int currentCount, int totalCount, ProgressListener* progress); void eraseFolders(std::vector* folders, int currentCount, int totalCount, ProgressListener* progress); public: };