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 {
64 enum class StartClearPlayerDataError :
int {
65 FailedToOpenDatabase = 0,
68 enum class ExportWorldStatus : uchar {
71 SelectingFileDestination = 2,
79 ::ll::TypedStorage<8, 8, ::LevelData&> cachedLevelData;
80 ::ll::TypedStorage<8, 8, ::LevelSummary&> cachedLevelSummary;
85 CachedWorldData& operator=(CachedWorldData
const&);
86 CachedWorldData(CachedWorldData
const&);
90 using ReadWorldResult =
91 ::std::variant<::World::IWorldStorageHandler::ReadWorldError, ::World::IWorldStorageHandler::CachedWorldData>;
96 virtual ~IWorldStorageHandler() =
default;
99 variant<::World::IWorldStorageHandler::ReadWorldError, ::World::IWorldStorageHandler::CachedWorldData>
100 readWorld(::World::WorldID
const&
id)
const = 0;
102 virtual ::std::optional<::World::IWorldStorageHandler::WriteWorldError> updateOrCreateWorld(
103 ::LevelData& levelData,
104 ::LevelSummary& levelSummary,
105 ::std::shared_ptr<::LevelSettings> levelSettings
108 virtual void deleteWorld(::World::WorldID
const&
id) = 0;
110 virtual void reloadWorld(::World::WorldID
const&
id) = 0;
112 virtual void duplicateWorld(
113 ::World::WorldID
const& worldId,
114 ::std::function<
void(::World::WorldID
const&, ::World::IWorldStorageHandler::DuplicateWorldResult)> onComplete
117 virtual void exportWorld(
118 ::World::WorldID
const& worldId,
119 ::World::ExportWorldFlags flags,
120 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
123 virtual void exportWorldAsTemplate(
124 ::World::WorldID
const& worldId,
125 ::World::ExportWorldFlags flags,
126 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
129 virtual ::World::IWorldStorageHandler::ExportWorldStatus exportWorldStatus()
const = 0;
131 virtual void updateWorldIcon(
132 ::World::WorldID
const& worldId,
133 ::Core::PathBuffer<::std::string>
const& screenshotPath,
134 ::std::string
const&
id,
135 ::std::function<
void(::World::WorldID
const&)> onComplete
139 resetWorldIcon(::World::WorldID
const& worldId, ::std::function<
void(::World::WorldID
const&)> onComplete) = 0;
141 virtual ::Bedrock::Threading::Async<void> clearPlayerData(
142 ::World::WorldID
const& worldId,
143 ::World::ClearPlayerDataType type,
144 ::std::optional<::World::IWorldStorageHandler::StartClearPlayerDataError>& error
Definition LevelData.h:55
Definition LevelSettings.h:38
Definition IWorldStorageHandler.h:7
Definition LevelSummary.h:30
Definition IWorldStorageHandler.h:27