LeviLamina
Loading...
Searching...
No Matches
OwnedWorldTemplateManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
13
14// auto generated forward declare list
15// clang-format off
16class AppPlatform;
19class FileArchiver;
20class GenericEntitlementChangeListener;
22class IEntitlementManager;
25class IStoreCatalogRepository;
26class IToastManager;
27class ImportContext;
30namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
31namespace World { struct OwnedWorldTemplateData; }
32// clang-format on
33
34namespace World {
35
36class OwnedWorldTemplateManager : public ::World::DownloadableTemplateManagerBase {
37public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<
41 8,
42 16,
43 ::std::map<::std::string, ::std::function<void(::std::optional<::World::DownloadWorldTemplateError>)>>>
44 mDownloadCallbacks;
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>>
52 mRefreshPublishder;
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;
64 // NOLINTEND
65
66public:
67 // prevent constructor by default
68 OwnedWorldTemplateManager& operator=(OwnedWorldTemplateManager const&);
69 OwnedWorldTemplateManager(OwnedWorldTemplateManager const&);
70 OwnedWorldTemplateManager();
71
72public:
73 // virtual functions
74 // NOLINTBEGIN
75 virtual ::std::optional<::World::DownloadWorldTemplateError> downloadWorldTemplate(
76 ::std::string const& id,
77 ::std::function<void(::std::optional<::World::DownloadWorldTemplateError>)> callback
78 ) /*override*/;
79
80 virtual void _templateDownloadedCallback(::std::string const& templateId, bool success) /*override*/;
81
82 virtual ~OwnedWorldTemplateManager() /*override*/;
83 // NOLINTEND
84
85public:
86 // member functions
87 // NOLINTBEGIN
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
100 );
101
102 MCAPI void _finalizeRefresh();
103
104 MCAPI void _localWorldUpdateCallback(::std::pair<::std::string, bool> const& updatedTemplateData);
105
106 MCAPI ::std::vector<::std::string> _populateListWithLocalTemplates();
107
108 MCAPI void _populateListWithOwnedNonLocalTemplates(::std::vector<::std::string> const& localPremiumTemplates);
109
110 MCAPI void getMarketplaceIdFromLocalId(
111 ::std::string const& localId,
112 ::std::function<void(::std::optional<::std::string const>)> callback
113 );
114
115 MCAPI void
116 importWorldTemplate(::std::function<void(::std::optional<::ImportFailure>, ::std::string const&)> callback);
117
118 MCAPI void isTemplateOwned(::std::string const& templateId, ::std::function<void(bool)> callback);
119
120 MCAPI void refresh();
121 // NOLINTEND
122
123public:
124 // constructor thunks
125 // NOLINTBEGIN
126 MCAPI void* $ctor(
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
138 );
139 // NOLINTEND
140
141public:
142 // destructor thunk
143 // NOLINTBEGIN
144 MCAPI void $dtor();
145 // NOLINTEND
146
147public:
148 // virtual function thunks
149 // NOLINTBEGIN
150 MCAPI ::std::optional<::World::DownloadWorldTemplateError> $downloadWorldTemplate(
151 ::std::string const& id,
152 ::std::function<void(::std::optional<::World::DownloadWorldTemplateError>)> callback
153 );
154
155 MCAPI void $_templateDownloadedCallback(::std::string const& templateId, bool success);
156 // NOLINTEND
157
158public:
159 // vftables
160 // NOLINTBEGIN
161 MCNAPI static void** $vftable();
162 // NOLINTEND
163};
164
165} // namespace World
Definition AppPlatform.h:91
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