diff options
Diffstat (limited to 'Minecraft.World/DirectoryLevelStorageSource.h')
| -rw-r--r-- | Minecraft.World/DirectoryLevelStorageSource.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Minecraft.World/DirectoryLevelStorageSource.h b/Minecraft.World/DirectoryLevelStorageSource.h new file mode 100644 index 00000000..9f6069ab --- /dev/null +++ b/Minecraft.World/DirectoryLevelStorageSource.h @@ -0,0 +1,34 @@ +#pragma once +using namespace std; + +#include "LevelStorageSource.h" +#include "File.h" + +class ProgressListener; +class LevelData; +class ConsoleSaveFile; + +class DirectoryLevelStorageSource : public LevelStorageSource +{ +protected: + const File baseDir; + +public: + DirectoryLevelStorageSource(const File dir); + virtual wstring getName(); + virtual vector<LevelSummary *> *getLevelList(); + virtual void clearAll(); + virtual LevelData *getDataTagFor(ConsoleSaveFile *saveFile, const wstring& levelId); + virtual void renameLevel(const wstring& levelId, const wstring& newLevelName); + virtual bool isNewLevelIdAcceptable(const wstring& levelId); + virtual void deleteLevel(const wstring& levelId); + +protected: + static void deleteRecursive(vector<File *> *files); + +public: + 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); +};
\ No newline at end of file |
