3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/world/ClearPlayerDataType.h"
7#include "mc/client/world/ExportWorldFlags.h"
8#include "mc/deps/core/file/PathBuffer.h"
9#include "mc/deps/core/threading/Async.h"
16namespace World {
struct WorldID; }
29 enum class ReadWorldError : uchar {
34 enum class WriteWorldError : uchar {
36 UnableToCreateWorldDirectoryPath = 1,
37 UnableToCreateResourcePackDirectoryPath = 2,
38 UnableToCreateBehaviorDirectoryPath = 3,
39 InsufficientDiskSpace = 4,
42 enum class DuplicateWorldResult : uchar {
45 InsufficientDiskSpace = 2,
46 WorldCopyCancelled = 3,
50 enum class ExportWorldResult : uchar {
63 enum class StartClearPlayerDataError :
int {
64 FailedToOpenDatabase = 0,
67 enum class ExportWorldStatus : uchar {
70 SelectingFileDestination = 2,
78 ::ll::TypedStorage<8, 8, ::LevelData&> cachedLevelData;
79 ::ll::TypedStorage<8, 8, ::LevelSummary&> cachedLevelSummary;
84 CachedWorldData& operator=(CachedWorldData
const&);
85 CachedWorldData(CachedWorldData
const&);
89 using ReadWorldResult =
90 ::std::variant<::World::IWorldStorageHandler::ReadWorldError, ::World::IWorldStorageHandler::CachedWorldData>;
95 virtual ~IWorldStorageHandler() =
default;
98 variant<::World::IWorldStorageHandler::ReadWorldError, ::World::IWorldStorageHandler::CachedWorldData>
99 readWorld(::World::WorldID
const&
id)
const = 0;
101 virtual ::std::optional<::World::IWorldStorageHandler::WriteWorldError> updateOrCreateWorld(
102 ::LevelData& levelData,
103 ::LevelSummary& levelSummary,
104 ::std::shared_ptr<::LevelSettings> levelSettings
107 virtual void deleteWorld(::World::WorldID
const&
id) = 0;
109 virtual void reloadWorld(::World::WorldID
const&
id) = 0;
111 virtual void duplicateWorld(
112 ::World::WorldID
const& worldId,
113 ::std::function<
void(::World::WorldID
const&, ::World::IWorldStorageHandler::DuplicateWorldResult)> onComplete
116 virtual void exportWorld(
117 ::World::WorldID
const& worldId,
118 ::World::ExportWorldFlags flags,
119 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
122 virtual void exportWorldAsTemplate(
123 ::World::WorldID
const& worldId,
124 ::World::ExportWorldFlags flags,
125 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
128 virtual ::World::IWorldStorageHandler::ExportWorldStatus exportWorldStatus()
const = 0;
130 virtual void updateWorldIcon(
131 ::World::WorldID
const& worldId,
132 ::Core::PathBuffer<::std::string>
const& screenshotPath,
133 ::std::string
const&
id,
134 ::std::function<
void(::World::WorldID
const&)> onComplete
138 resetWorldIcon(::World::WorldID
const& worldId, ::std::function<
void(::World::WorldID
const&)> onComplete) = 0;
140 virtual ::Bedrock::Threading::Async<void> clearPlayerData(
141 ::World::WorldID
const& worldId,
142 ::World::ClearPlayerDataType type,
143 ::std::optional<::World::IWorldStorageHandler::StartClearPlayerDataError>& error
Definition LevelData.h:52
Definition LevelSettings.h:39
Definition IWorldStorageHandler.h:7
static MCAPI void ** $vftable()
Definition LevelSummary.h:30
Definition IWorldStorageHandler.h:27