Files
MinecraftConsoles/Minecraft.World/LevelStorageSource.h
2026-03-02 17:37:16 +07:00

37 lines
1.3 KiB
C++

#pragma once
using namespace std;
#include "stdafx.h"
class LevelSummary;
class ProgressListener;
class LevelData;
class LevelStorage;
class ConsoleSaveFile;
class LevelStorageSource
{
public:
virtual wstring getName() = 0;
virtual shared_ptr<LevelStorage> selectLevel(ConsoleSaveFile *saveFile, const wstring& levelId, bool createPlayerDir) = 0;
virtual vector<LevelSummary *> *getLevelList() = 0;
virtual void clearAll() = 0;
virtual LevelData *getDataTagFor(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
/**
* Tests if a levelId can be used to store a level. For example, a levelId
* can't be called COM1 on Windows systems, because that is a reserved file
* handle.
* <p>
* Also, a new levelId may not overwrite an existing one.
*
* @param levelId
* @return
*/
virtual bool isNewLevelIdAcceptable(const wstring& levelId) = 0;
virtual void deleteLevel(const wstring& levelId) = 0;
virtual void renameLevel(const wstring& levelId, const wstring& newLevelName) = 0;
virtual bool isConvertible(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
virtual bool requiresConversion(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
virtual bool convertLevel(ConsoleSaveFile *saveFile, const wstring &levelId, ProgressListener *progress) = 0;
};