the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2using namespace std;
3
4#include "stdafx.h"
5
6class LevelSummary;
7class ProgressListener;
8class LevelData;
9class LevelStorage;
10class ConsoleSaveFile;
11
12class LevelStorageSource
13{
14public:
15 virtual wstring getName() = 0;
16 virtual shared_ptr<LevelStorage> selectLevel(ConsoleSaveFile *saveFile, const wstring& levelId, bool createPlayerDir) = 0;
17 virtual vector<LevelSummary *> *getLevelList() = 0;
18 virtual void clearAll() = 0;
19 virtual LevelData *getDataTagFor(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
20
21 /**
22 * Tests if a levelId can be used to store a level. For example, a levelId
23 * can't be called COM1 on Windows systems, because that is a reserved file
24 * handle.
25 * <p>
26 * Also, a new levelId may not overwrite an existing one.
27 *
28 * @param levelId
29 * @return
30 */
31 virtual bool isNewLevelIdAcceptable(const wstring& levelId) = 0;
32 virtual void deleteLevel(const wstring& levelId) = 0;
33 virtual void renameLevel(const wstring& levelId, const wstring& newLevelName) = 0;
34 virtual bool isConvertible(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
35 virtual bool requiresConversion(ConsoleSaveFile *saveFile, const wstring& levelId) = 0;
36 virtual bool convertLevel(ConsoleSaveFile *saveFile, const wstring &levelId, ProgressListener *progress) = 0;
37};