3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/models/ContentType.h"
7#include "mc/client/world/AddWorldFromTemplateError.h"
8#include "mc/client/world/ClearPlayerDataType.h"
9#include "mc/client/world/DeleteWorldError.h"
10#include "mc/client/world/ExportWorldFlags.h"
11#include "mc/client/world/IWorldStorageHandler.h"
12#include "mc/client/world/PackActionError.h"
13#include "mc/client/world/PackDownloadError.h"
14#include "mc/client/world/SaveWorldError.h"
15#include "mc/client/world/WorldID.h"
16#include "mc/deps/core/file/PathBuffer.h"
17#include "mc/deps/core/threading/Async.h"
18#include "mc/deps/core/utility/pub_sub/Publisher.h"
19#include "mc/world/level/LevelListCacheObserver.h"
26namespace Bedrock::PubSub::ThreadModel {
struct MultiThreaded; }
28namespace Realms {
struct RealmId; }
29namespace Realms {
struct World; }
39class WorldEditor :
public ::LevelListCacheObserver {
43 ::ll::TypedStorage<4, 4, int> mNextModifier;
44 ::ll::TypedStorage<1, 1, bool const> mIsEduMode;
45 ::ll::TypedStorage<8, 8, ::ILevelListCache&> mLevelListCache;
46 ::ll::TypedStorage<8, 8, ::World::IWorldResourcePackHandler&> mWorldResourcePackHandler;
47 ::ll::TypedStorage<8, 8, ::World::IWorldStorageHandler&> mWorldStorageHandler;
48 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::World::IWorldTemplateHandler>> mWorldTemplateHandler;
53 ::Bedrock::PubSub::Publisher<void(::World::WorldID), ::Bedrock::PubSub::ThreadModel::SingleThreaded, 0>>>
54 mOnLevelDataUpdatedPublisher;
55 ::ll::TypedStorage<8, 64, ::std::function<void()>> mOnSaveCompletedCallback;
56 ::ll::TypedStorage<8, 64, ::std::function<void(::World::SaveWorldError)>> mOnSaveErrorCallback;
57 ::ll::TypedStorage<8, 24, ::std::vector<::World::WorldID>> mIDs;
58 ::ll::TypedStorage<8, 64, ::std::unordered_map<::World::WorldID, ::World::WorldData>> mWorlds;
59 ::ll::TypedStorage<8, 64, ::std::unordered_map<::World::WorldID, ::LevelData>> mLevelData;
60 ::ll::TypedStorage<8, 64, ::std::unordered_map<::World::WorldID, ::LevelSummary>> mLevelSummary;
61 ::ll::TypedStorage<8, 24, ::std::vector<::Realms::RealmId>> mRealmIDs;
62 ::ll::TypedStorage<8, 64, ::std::unordered_map<int64, ::Realms::World>> mRealmWorlds;
63 ::ll::TypedStorage<8, 128, ::Bedrock::PubSub::Publisher<void(), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
64 mNotifyWorldsInvalidated;
69 WorldEditor& operator=(WorldEditor
const&);
70 WorldEditor(WorldEditor
const&);
76 virtual void onLevelDeleted(::std::string
const& levelId) ;
78 virtual void onLevelUpdated(::std::string
const& levelId) ;
97 MCNAPI ::std::optional<::World::PackActionError>
103 ::std::string
const& templateId,
104 ::std::function<
void(::std::variant<::World::AddWorldFromTemplateError, ::World::WorldID>)> onComplete
109 ::ContentType contentType,
110 ::std::string
const& packId,
117 ::World::ClearPlayerDataType type,
118 ::std::optional<::World::IWorldStorageHandler::StartClearPlayerDataError>& error
125 MCNAPI ::std::optional<::World::PackActionError>
132 ::std::vector<::std::string>
const& packIds,
133 ::std::function<
void()> onCompleteCallback,
134 ::std::function<
void(::World::PackDownloadError)> onErrorCallback
139 ::std::function<
void()> onCompleteCallback,
140 ::std::function<
void()> onCancelCallback,
141 ::std::function<
void(::World::IWorldStorageHandler::DuplicateWorldResult)> onErrorCallback
146 ::World::ExportWorldFlags flags,
147 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
152 ::World::ExportWorldFlags flags,
153 ::std::function<
void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete
171 ::std::string
const&
id
176 ::std::function<
void()> onCompleteCallback,
177 ::std::function<
void(::World::SaveWorldError)> onErrorCallback,
Definition PathBuffer.h:8
Definition ILevelListCache.h:27
Definition LevelData.h:57
Definition IWorldResourcePackHandler.h:7
Definition IWorldStorageHandler.h:7
Definition IWorldTemplateHandler.h:7
Definition WorldEditor.h:7
MCAPI void exportWorld(::World::WorldID const &worldID, ::World::ExportWorldFlags flags, ::std::function< void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete) const
MCAPI void saveScreenshotAsWorldIcon(::World::WorldID const &worldID, ::Core::PathBuffer<::std::string > screenshotPath, ::std::string const &id)
MCAPI ::Bedrock::Threading::Async< void > clearPlayerData(::World::WorldID const &worldID, ::World::ClearPlayerDataType type, ::std::optional<::World::IWorldStorageHandler::StartClearPlayerDataError > &error) const
MCAPI::World::WorldData * getWorld(::World::WorldID const &worldID)
MCAPI::World::WorldPacksData getWorldPacksData(::World::WorldID const &worldID)
MCAPI ::std::optional<::World::PackActionError > changePackPriority(::World::WorldID const &worldID, ::ContentType contentType, ::std::string const &packId, int fromIndex, int toIndex)
MCAPI void addWorldFromTemplate(::std::string const &templateId, ::std::function< void(::std::variant<::World::AddWorldFromTemplateError, ::World::WorldID >)> onComplete)
MCAPI void exportWorldAsTemplate(::World::WorldID const &worldID, ::World::ExportWorldFlags flags, ::std::function< void(::World::IWorldStorageHandler::ExportWorldResult)> onComplete) const
MCAPI::LevelSummary & _addLevelSummary(::World::WorldID const &worldID)
MCAPI bool isWorldPlatformLocked(::World::WorldID const &id) const
MCAPI void duplicateWorld(::World::WorldID const &worldID, ::std::function< void()> onCompleteCallback, ::std::function< void()> onCancelCallback, ::std::function< void(::World::IWorldStorageHandler::DuplicateWorldResult)> onErrorCallback)
MCAPI bool hasNonAddonBehaviorPacks(::World::WorldID const &id) const
MCAPI::World::WorldID addWorld()
MCAPI void _addWorldEditorEntry(::World::WorldID const &worldID, ::World::IWorldStorageHandler::CachedWorldData const &cachedWorldData)
MCAPI ::std::optional<::World::PackActionError > continuePackActivation(::World::WorldID const &worldID)
MCAPI ::std::optional<::World::PackActionError > activatePack(::World::WorldID const &worldID, ::ContentType contentType, ::std::string const &packId, bool force)
MCAPI void saveWorld(::World::WorldID const &worldID, ::std::function< void()> onCompleteCallback, ::std::function< void(::World::SaveWorldError)> onErrorCallback, bool isTrialMode)
MCAPI bool isAchievementsDisabled(::World::WorldID const &id, bool isTrial) const
MCAPI void _onWorldIconUpdated(::World::WorldID const &worldID)
MCAPI void $onLevelDeleted(::std::string const &levelId)
MCAPI void $onLevelUpdated(::std::string const &levelId)
MCAPI ::std::optional<::World::PackActionError > continuePackDeactivation(::World::WorldID const &worldID)
MCAPI ::std::optional<::World::PackActionError > deactivatePack(::World::WorldID const &worldID, ::ContentType contentType, ::std::string const &packId, bool force)
MCAPI ::std::optional<::World::IWorldStorageHandler::ReadWorldError > loadWorld(::World::WorldID const &worldID)
MCAPI ::std::optional<::World::DeleteWorldError > deleteWorld(::World::WorldID const &worldID)
MCAPI void downloadPacks(::World::WorldID const &worldID, ::std::vector<::std::string > const &packIds, ::std::function< void()> onCompleteCallback, ::std::function< void(::World::PackDownloadError)> onErrorCallback)
MCAPI bool _closeWorld(::World::WorldID const &worldID)
MCAPI bool _refreshWorldData(::World::WorldID const &worldID)
Definition MultiThreaded.h:7
Definition SingleThreaded.h:7
Definition LevelSummary.h:30
Definition IWorldStorageHandler.h:27
Definition WorldPacksData.h:7