3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/resources/ImportFailure.h"
7#include "mc/client/world/DownloadWorldTemplateError.h"
8#include "mc/client/world/DownloadableTemplateManagerBase.h"
9#include "mc/deps/core/file/PathBuffer.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/core/utility/pub_sub/Publisher.h"
12#include "mc/deps/core/utility/pub_sub/Subscription.h"
20class GenericEntitlementChangeListener;
22class IEntitlementManager;
25class IStoreCatalogRepository;
30namespace Bedrock::PubSub::ThreadModel {
struct MultiThreaded; }
43 ::std::map<::std::string, ::std::function<void(::std::optional<::World::DownloadWorldTemplateError>)>>>
45 ::ll::TypedStorage<8, 8, ::IStoreCatalogRepository&> mStoreCatalogRepository;
46 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::WorldTemplateManager>> mWorldTemplateManager;
47 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::FileArchiver>> mFileArchiver;
48 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ExternalContentManager>> mContentManager;
49 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
50 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::AppPlatform>> mAppPlatform;
51 ::ll::TypedStorage<8, 128, ::Bedrock::PubSub::Publisher<void(), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
53 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mTemplateManagerModificationSubscription;
54 ::ll::TypedStorage<8, 24, ::std::vector<::World::OwnedWorldTemplateData>> mOwnedTemplateDataList;
55 ::ll::TypedStorage<8, 24, ::std::vector<::World::OwnedWorldTemplateData>> mTemporaryOwnedTemplateDataList;
56 ::ll::TypedStorage<8, 64, ::std::function<void(::std::optional<::ImportFailure>, ::std::string
const&)>>
57 mImportTemplateCallback;
58 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::CatalogCollection>> mCatalogCollection;
59 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ImportContext>> mImportContext;
60 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::Core::PathBuffer<::std::string>>> mCachedImagePaths;
61 ::ll::TypedStorage<4, 4, int> mItemsFoundOnMarketplace;
62 ::ll::TypedStorage<4, 4, int> mItemsThumbnailsFetched;
63 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GenericEntitlementChangeListener>> mEntitlementChangeListener;
68 OwnedWorldTemplateManager& operator=(OwnedWorldTemplateManager
const&);
69 OwnedWorldTemplateManager(OwnedWorldTemplateManager
const&);
70 OwnedWorldTemplateManager();
75 virtual ::std::optional<::World::DownloadWorldTemplateError> downloadWorldTemplate(
76 ::std::string
const&
id,
77 ::std::function<
void(::std::optional<::World::DownloadWorldTemplateError>)> callback
80 virtual void _templateDownloadedCallback(::std::string
const& templateId,
bool success) ;
82 virtual ~OwnedWorldTemplateManager() ;
88 MCAPI OwnedWorldTemplateManager(
89 ::IStoreCatalogRepository& storeCatalogRepository,
90 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver> fileArchiver,
91 ::Bedrock::NotNullNonOwnerPtr<::ExternalContentManager> contentManager,
92 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
93 ::Bedrock::NotNullNonOwnerPtr<::WorldTemplateManager> worldTemplateManager,
94 ::Bedrock::NotNullNonOwnerPtr<::AppPlatform> appPlatform,
95 ::IResourcePackRepository& resourcePackRepository,
96 ::ResourcePackManager& resourcePackManager,
97 ::IMinecraftEventing& eventing,
98 ::IToastManager& toastManager,
99 ::IContentAcquisition& contentAquisition
102 MCAPI
void _finalizeRefresh();
104 MCAPI
void _localWorldUpdateCallback(::std::pair<::std::string, bool>
const& updatedTemplateData);
106 MCAPI ::std::vector<::std::string> _populateListWithLocalTemplates();
108 MCAPI
void _populateListWithOwnedNonLocalTemplates(::std::vector<::std::string>
const& localPremiumTemplates);
110 MCAPI
void getMarketplaceIdFromLocalId(
111 ::std::string
const& localId,
112 ::std::function<
void(::std::optional<::std::string const>)> callback
116 importWorldTemplate(::std::function<
void(::std::optional<::ImportFailure>, ::std::string
const&)> callback);
118 MCAPI
void isTemplateOwned(::std::string
const& templateId, ::std::function<
void(
bool)> callback);
120 MCAPI
void refresh();
127 ::IStoreCatalogRepository& storeCatalogRepository,
128 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver> fileArchiver,
129 ::Bedrock::NotNullNonOwnerPtr<::ExternalContentManager> contentManager,
130 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
131 ::Bedrock::NotNullNonOwnerPtr<::WorldTemplateManager> worldTemplateManager,
132 ::Bedrock::NotNullNonOwnerPtr<::AppPlatform> appPlatform,
133 ::IResourcePackRepository& resourcePackRepository,
134 ::ResourcePackManager& resourcePackManager,
135 ::IMinecraftEventing& eventing,
136 ::IToastManager& toastManager,
137 ::IContentAcquisition& contentAquisition
150 MCAPI ::std::optional<::World::DownloadWorldTemplateError> $downloadWorldTemplate(
151 ::std::string
const&
id,
152 ::std::function<
void(::std::optional<::World::DownloadWorldTemplateError>)> callback
155 MCAPI
void $_templateDownloadedCallback(::std::string
const& templateId,
bool success);
Definition CatalogCollection.h:5
Definition ExternalContentManager.h:5
Definition FileArchiver.h:36
Definition IContentAcquisition.h:5
Definition IMinecraftEventing.h:134
Definition IResourcePackRepository.h:34
Definition IToastManager.h:5
Definition ImportContext.h:5
Definition ResourcePackManager.h:30
Definition WorldTemplateManager.h:21
Definition OwnedWorldTemplateManager.h:7
static MCAPI void ** $vftable()
Definition MultiThreaded.h:12
Definition OwnedWorldTemplateData.h:7