3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/models/ContentType.h"
7#include "mc/client/world/IWorldResourcePackHandler.h"
8#include "mc/client/world/PackAction.h"
9#include "mc/client/world/PackActionError.h"
10#include "mc/client/world/PackDownloadError.h"
11#include "mc/client/world/PackStatus.h"
12#include "mc/client/world/PendingPackActionHash.h"
13#include "mc/client/world/PendingPackActionKey.h"
14#include "mc/client/world/PendingPackActivation.h"
15#include "mc/client/world/PendingPackRemoval.h"
16#include "mc/client/world/WorldID.h"
17#include "mc/deps/core/utility/NonOwnerPointer.h"
18#include "mc/deps/core/utility/pub_sub/Subscription.h"
19#include "mc/resources/PackScope.h"
28class IEntitlementManager;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IContentManagerContext>> mContext;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IContentManagerContext>> mGlobalContext;
63 using ConstContentItemPtr = ::std::shared_ptr<::ContentItem const>;
65 using ContentItemPtr = ::std::shared_ptr<::ContentItem>;
70 ::ll::TypedStorage<8, 8, ::IContentManager&> mContentManager;
71 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IResourcePackRepository>> mResourcePackRepository;
72 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
73 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IContentTierManager const>> mContentTierManager;
74 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::World::IWorldResourcePackDownloader>> mWorldResourcePackDownloader;
75 ::ll::TypedStorage<8, 8, ::IContentAcquisition&> mContentAcquisition;
76 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
77 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnSourcesReloadedSubscription;
78 ::ll::TypedStorage<8, 64, ::std::unordered_map<::World::WorldID, ::World::WorldPacks>> mWorldPacks;
83 ::World::PendingPackActionKey,
84 ::std::variant<::World::PendingPackActivation, ::World::PendingPackRemoval>,
85 ::World::PendingPackActionHash,
86 ::std::equal_to<::World::PendingPackActionKey>>>
88 ::ll::TypedStorage<1, 1, bool> mIsEditorWorld;
89 ::ll::TypedStorage<8, 32, ::World::WorldID> mCurrentWorldID;
90 ::ll::TypedStorage<1, 1, bool> mDirty;
91 ::ll::TypedStorage<1, 1, bool> mWorldPacksDirty;
96 WorldResourcePackHandler& operator=(WorldResourcePackHandler
const&);
97 WorldResourcePackHandler(WorldResourcePackHandler
const&);
98 WorldResourcePackHandler();
103 virtual ~WorldResourcePackHandler() =
default;
105 virtual ::World::WorldPacks& loadPackContentForWorld(::LevelSummary
const& levelSummary) ;
107 virtual ::World::PackCollection getWorldPackCollection(
108 ::LevelSummary
const& levelSummary,
109 ::ContentType
const contentType,
113 virtual ::std::optional<::World::PackActionError> activatePack(
114 ::LevelSummary
const& levelSummary,
115 ::ContentType
const contentType,
116 ::std::string
const& packId,
117 bool const isEduMode,
121 virtual ::std::optional<::World::PackActionError> deactivatePack(
122 ::LevelSummary
const& levelSummary,
123 ::ContentType
const contentType,
124 ::std::string
const& packId,
125 bool const isEduMode,
129 virtual ::std::optional<::World::PackActionError>
130 continuePackActivation(::LevelSummary
const& levelSummary) ;
132 virtual ::std::optional<::World::PackActionError>
133 continuePackDeactivation(::LevelSummary
const& levelSummary) ;
135 virtual void downloadPacks(
136 ::LevelSummary
const& levelSummary,
137 ::std::vector<::std::string>
const& packIds,
138 ::std::function<
void()> onCompleteCallback,
139 ::std::function<
void(::World::PackDownloadError)> onErrorCallback
142 virtual ::World::PackDownloadProgressInfo getDownloadPackProgress() ;
145 getDownloadingPackTitles(::std::function<
void(::std::vector<::std::string>)> packTitlesCallback) ;
147 virtual void cancelDownloadPack() ;
149 virtual void getPackSizes(
150 ::LevelSummary
const& levelSummary,
151 ::std::vector<::std::string>
const& packIds,
152 ::std::function<
void(uint64)> onCompleteCallback,
153 ::std::function<
void(::World::PackActionError)> onErrorCallback
156 virtual void savePacksData() ;
158 virtual void saveDirtyPacksData() ;
160 virtual bool hasNonAddonBehaviorPacks(::LevelSummary
const& levelSummary) ;
162 virtual bool hasBehaviorPacks(::LevelSummary
const& levelSummary) ;
164 virtual bool hasLockedPacks(::LevelSummary
const& levelSummary)
const ;
166 virtual ::std::optional<::World::PackActionError> changePackPriority(
167 ::LevelSummary
const& levelSummary,
168 ::ContentType
const contentType,
169 ::std::string
const& packId,
174 virtual ::World::PackCheckResult
175 checkDlc(::std::string
const& levelId, ::PackIdVersion
const& packIdVersion,
bool const isForRealms) ;
177 virtual ::std::vector<::World::PackDetails> getPackDetailsForWorld(
178 ::LevelSummary
const& levelSummary,
179 ::std::vector<::std::string>
const& packIds
182 virtual bool getResourcePacksDirty() ;
184 virtual void refreshPacksData() ;
190 MCNAPI ::World::WorldPacks&
195 ::ContentType contentType,
199 MCNAPI ::std::variant<::World::PackActionError, ::World::PackViewAndItem>
_findPackByType(
201 ::ContentType
const contentType,
202 ::std::string
const& packId
207 ::ContentType
const contentType,
208 ::World::PackStatus
const packStatus,
209 ::std::string
const& packId
214 ::std::vector<::std::string>
const& packIds,
215 ::std::function<
void(::World::PackActionError)> onErrorCallback,
216 ::std::function<
void(::std::vector<::std::string>
const&)> onCompleteCallback
221 ::std::shared_ptr<::ContentItem>
const& contentItem,
223 ::World::PackStatus
const packStatus,
227 MCNAPI ::World::WorldResourcePackHandler::Contexts
233 ::World::PackAction
const packAction,
235 ::ContentType
const contentType,
236 ::std::string
const& packId,
237 bool const isEduMode,
243 ::std::vector<::World::PackDetails>& packDetails,
247 ::World::PackStatus
const packStatus,
257 MCNAPI ::World::PackCollection
262 ::ContentType
const contentType,
263 ::std::string
const& packId,
264 bool const isEduMode,
270 ::ContentType
const contentType,
271 ::std::string
const& packId,
272 bool const isEduMode,
282 ::std::vector<::std::string>
const& packIds,
283 ::std::function<
void()> onCompleteCallback,
284 ::std::function<
void(::World::PackDownloadError)> onErrorCallback
295 ::std::vector<::std::string>
const& packIds,
296 ::std::function<
void(uint64)> onCompleteCallback,
297 ::std::function<
void(::World::PackActionError)> onErrorCallback
312 ::ContentType
const contentType,
313 ::std::string
const& packId,
318 MCNAPI ::World::PackCheckResult
321 MCNAPI ::std::vector<::World::PackDetails>
Definition NonOwnerPointer.h:9
Definition ContentView.h:5
Definition IContentAcquisition.h:5
Definition IContentManagerContext.h:5
Definition IContentManager.h:5
Definition IContentTierManager.h:13
Definition IMinecraftEventing.h:152
Definition IResourcePackRepository.h:36
Definition IWorldResourcePackDownloader.h:7
Definition WorldResourcePackHandler.h:7
MCAPI void $cancelDownloadPack()
MCAPI bool $hasLockedPacks(::LevelSummary const &levelSummary) const
MCAPI::World::PackDetails _getPackDetails(::World::WorldID const worldID, ::std::shared_ptr<::ContentItem > const &contentItem, ::ContentViews const &contentViews, ::World::PackStatus const packStatus, bool const isEduMode)
MCAPI::World::PackCollection $getWorldPackCollection(::LevelSummary const &levelSummary, ::ContentType const contentType, bool const isEduMode)
MCAPI void _getMissingPackIds(::LevelSummary const &levelSummary, ::std::vector<::std::string > const &packIds, ::std::function< void(::World::PackActionError)> onErrorCallback, ::std::function< void(::std::vector<::std::string > const &)> onCompleteCallback)
MCAPI void $downloadPacks(::LevelSummary const &levelSummary, ::std::vector<::std::string > const &packIds, ::std::function< void()> onCompleteCallback, ::std::function< void(::World::PackDownloadError)> onErrorCallback)
MCAPI ::std::optional<::World::PackActionError > $activatePack(::LevelSummary const &levelSummary, ::ContentType const contentType, ::std::string const &packId, bool const isEduMode, bool const force)
MCAPI void $getPackSizes(::LevelSummary const &levelSummary, ::std::vector<::std::string > const &packIds, ::std::function< void(uint64)> onCompleteCallback, ::std::function< void(::World::PackActionError)> onErrorCallback)
MCAPI void $saveDirtyPacksData()
MCAPI ::std::variant<::World::PackActionError, ::World::PackViewAndItem > _findPackByType(::World::WorldPacks &worldPacks, ::ContentType const contentType, ::std::string const &packId) const
MCAPI::World::PackDownloadProgressInfo $getDownloadPackProgress()
MCAPI bool $hasNonAddonBehaviorPacks(::LevelSummary const &levelSummary)
MCAPI ::std::variant<::World::PackActionError, ::World::PackViewAndItem > _findPackViewAndContent(::World::WorldPacks &worldPacks, ::ContentType const contentType, ::World::PackStatus const packStatus, ::std::string const &packId) const
MCAPI ::std::optional<::World::PackActionError > $continuePackActivation(::LevelSummary const &levelSummary)
MCAPI bool $getResourcePacksDirty()
MCAPI ::std::vector<::World::PackDetails > $getPackDetailsForWorld(::LevelSummary const &levelSummary, ::std::vector<::std::string > const &packIds)
MCAPI ::std::optional<::World::PackActionError > $changePackPriority(::LevelSummary const &levelSummary, ::ContentType const contentType, ::std::string const &packId, int const fromIndex, int const toIndex)
MCAPI void _populatePackDetails(::World::WorldID const worldID, ::std::vector<::World::PackDetails > &packDetails, ::Bedrock::NonOwnerPointer<::ContentView > contentView, ::World::PackCollection const &packCollection, ::ContentViews const &contentViews, ::World::PackStatus const packStatus, bool const isEduMode)
MCAPI void $getDownloadingPackTitles(::std::function< void(::std::vector<::std::string >)> packTitlesCallback)
MCAPI ::std::optional<::World::PackActionError > _performPackMovement(::World::PackAction const packAction, ::LevelSummary const &levelSummary, ::ContentType const contentType, ::std::string const &packId, bool const isEduMode, bool const force)
MCAPI ::std::optional<::World::PackActionError > $deactivatePack(::LevelSummary const &levelSummary, ::ContentType const contentType, ::std::string const &packId, bool const isEduMode, bool const force)
MCAPI::World::WorldResourcePackHandler::Contexts _initializeContentManagerForWorld(::LevelSummary const &levelSummary)
MCAPI void $savePacksData()
MCAPI void $refreshPacksData()
MCAPI ::std::unique_ptr<::ContentViews > _createContentViews(::World::WorldResourcePackHandler::Contexts &contexts, ::ContentType contentType, ::PackScope scope) const
MCAPI bool _needToDownloadPack(::std::shared_ptr<::ContentItem > const &contentItem) const
MCAPI ::std::optional<::World::PackActionError > $continuePackDeactivation(::LevelSummary const &levelSummary)
MCAPI::World::WorldPacks & _cacheWorldPackData(::World::WorldResourcePackHandler::Contexts &&contexts, ::LevelSummary const &levelSummary)
MCAPI::World::WorldPacks & $loadPackContentForWorld(::LevelSummary const &levelSummary)
MCAPI::World::PackCheckResult $checkDlc(::std::string const &levelId, ::PackIdVersion const &packIdVersion, bool const isForRealms)
MCAPI bool $hasBehaviorPacks(::LevelSummary const &levelSummary)
Definition ContentItem.h:5
Definition ContentViews.h:5
Definition LevelSummary.h:30
Definition PackIdVersion.h:10
Definition PackCheckResult.h:7
Definition PackCollection.h:7
Definition PackDetails.h:7
Definition PackDownloadProgressInfo.h:7
Definition PackViewAndItem.h:7
Definition WorldPacks.h:7
Definition WorldResourcePackHandler.h:15