LeviLamina
Loading...
Searching...
No Matches
WorldPackCollectionManagerImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/screens/models/ContentType.h"
7#include "mc/client/services/download/IMarketplacePackDownloader.h"
8#include "mc/client/world/IWorldPackCollectionManager.h"
9#include "mc/client/world/PackAction.h"
10#include "mc/client/world/PackActionError.h"
11#include "mc/client/world/WorldContentItemCollectionsModel.h"
12#include "mc/deps/core/utility/NonOwnerPointer.h"
13#include "mc/deps/core/utility/pub_sub/Publisher.h"
14#include "mc/deps/core/utility/pub_sub/Subscription.h"
15#include "mc/util/PublishedValue.h"
16
17// auto generated forward declare list
18// clang-format off
21class IEntitlementManager;
24struct ContentItem;
25struct ContentSource;
27struct PackIdVersion;
28struct PackSettingsInfo;
29namespace Bedrock::PubSub::ThreadModel { struct SingleThreaded; }
30namespace ContentItemCollectionViewUtils { struct SelectedReloadProps; }
31namespace World { struct PendingPackAction; }
32// clang-format on
33
34namespace World {
35
36class WorldPackCollectionManagerImpl : public ::World::IWorldPackCollectionManager {
37public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
41 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IContentTierManager const>> mContentTierManager;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IMarketplacePackDownloader>> mMarketplacePackDownloader;
43 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mMarketplacePackDownloaderStatusSub;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContentSource>> mContentSource;
45 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::MutableContentItemCollection>> mContentItemCollection;
46 ::ll::TypedStorage<8, 48, ::Bedrock::PubSub::Publisher<void(), ::Bedrock::PubSub::ThreadModel::SingleThreaded, 0>>
47 mContentItemCollectionDirtyPublisher;
48 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ContentItemCollectionViewUtils::SelectedReloadProps>>
49 mSelectedReloadProps;
50 ::ll::TypedStorage<1, 1, bool> mIsEditorEnabled;
51 ::ll::TypedStorage<8, 96, ::WorldContentItemCollectionsModel> mWorldContentItemCollectionsModel;
52 ::ll::TypedStorage<8, 136, ::PublishedValue<::std::optional<::World::PendingPackAction>>> mPendingPackAction;
53 // NOLINTEND
54
55public:
56 // prevent constructor by default
57 WorldPackCollectionManagerImpl();
58
59public:
60 // virtual functions
61 // NOLINTBEGIN
62 virtual void tick() /*override*/;
63
64 virtual void setContentSource(::std::unique_ptr<::ContentSource>&& contentSource) /*override*/;
65
66 virtual void resetContent() /*override*/;
67
68 virtual ::Bedrock::PubSub::Subscription
69 subscribeToContentItemCollectionDirtySubscription(::std::function<void()>&& callback) /*override*/;
70
71 virtual ::WorldContentItemCollectionsModel getWorldCollectionsModel() const /*override*/;
72
73 virtual ::std::optional<::World::PackActionError> changePackPriority(
74 ::std::string const& packIdVersion,
75 ::ContentType packType,
76 int fromPosition,
77 int toPosition
78 ) /*override*/;
79
80 virtual ::std::optional<::World::PackActionError>
81 activatePack(::std::string const& packIdVersion, ::ContentType packType, bool ignoreWarnings) /*override*/;
82
83 virtual ::std::optional<::World::PackActionError>
84 deactivatePack(::std::string const& packIdVersion, ::ContentType packType, bool ignoreWarnings) /*override*/;
85
86 virtual ::std::optional<::World::PackActionError> continuePendingPackAction() /*override*/;
87
88 virtual void clearPendingPackAction() /*override*/;
89
90 virtual ::Bedrock::PubSub::Subscription subscribeToPendingPackActionPublisher(
91 ::std::function<void(::std::optional<::World::PendingPackAction>)> callback
92 ) /*override*/;
93
94 virtual ::std::optional<::PackSettingsInfo>
95 getPackSettingsForPackIdVersion(::std::string const& packIdVersion) /*override*/;
96
97 virtual ::Bedrock::PubSub::Subscription subscribeToMarketplacePackDownloadStatus(
98 ::std::function<void(::IMarketplacePackDownloader::MarketplacePackDownloadStatus)>&& onDownloadStatusChange
99 ) /*override*/;
100
101 virtual ~WorldPackCollectionManagerImpl() /*override*/;
102 // NOLINTEND
103
104public:
105 // member functions
106 // NOLINTBEGIN
107 MCAPI WorldPackCollectionManagerImpl(
108 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
109 ::Bedrock::NotNullNonOwnerPtr<::IContentTierManager const> contentTierManager,
110 ::std::unique_ptr<::IMarketplacePackDownloader>&& marketplacePackDownloader
111 );
112
113 MCAPI void _completePackDownload();
114
115 MCAPI ::WorldContentItemCollectionsModel _generatePackCollectionsModel();
116
117 MCAPI ::std::shared_ptr<::ContentItemCollection>
118 _getAvailableContentItemCollection(::ContentType contentType) const;
119
120 MCAPI ::std::vector<::std::pair<::PackIdVersion, ::PackContentItemListPosition>> _getCurrentSelectedContent();
121
122 MCAPI ::std::shared_ptr<::ContentItemCollection>
123 _getMarketplacePassContentItemCollection(::ContentType contentType) const;
124
125 MCAPI ::std::optional<::World::PackActionError> _handlePackMoveContinue();
126
127 MCAPI ::std::optional<::World::PackActionError> _movePackContent(
128 ::std::string const& packIdVersion,
129 ::ContentType packType,
130 ::World::PackAction packAction,
131 bool ignoreWarnings
132 );
133
134 MCAPI void _populateDependencies(::std::vector<::std::shared_ptr<::ContentItem>>& sourceItems);
135
136 MCAPI void _reconcilePendingContent(
137 ::std::vector<::std::pair<::PackIdVersion, ::PackContentItemListPosition>> const& selectedPacks
138 );
139
140 MCAPI void _reloadContentSource();
141
142 MCAPI void _setInitialSelectedPacks(::std::vector<::std::shared_ptr<::ContentItem>> const& sourceItems);
143
144 MCAPI void _setupDownload(::std::string const& packIdVersion, ::ContentType packType);
145 // NOLINTEND
146
147public:
148 // constructor thunks
149 // NOLINTBEGIN
150 MCAPI void* $ctor(
151 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager,
152 ::Bedrock::NotNullNonOwnerPtr<::IContentTierManager const> contentTierManager,
153 ::std::unique_ptr<::IMarketplacePackDownloader>&& marketplacePackDownloader
154 );
155 // NOLINTEND
156
157public:
158 // destructor thunk
159 // NOLINTBEGIN
160 MCAPI void $dtor();
161 // NOLINTEND
162
163public:
164 // virtual function thunks
165 // NOLINTBEGIN
166 MCFOLD void $tick();
167
168 MCAPI void $setContentSource(::std::unique_ptr<::ContentSource>&& contentSource);
169
170 MCAPI void $resetContent();
171
172 MCAPI ::Bedrock::PubSub::Subscription
173 $subscribeToContentItemCollectionDirtySubscription(::std::function<void()>&& callback);
174
175 MCAPI ::WorldContentItemCollectionsModel $getWorldCollectionsModel() const;
176
177 MCAPI ::std::optional<::World::PackActionError>
178 $changePackPriority(::std::string const& packIdVersion, ::ContentType packType, int fromPosition, int toPosition);
179
180 MCAPI ::std::optional<::World::PackActionError>
181 $activatePack(::std::string const& packIdVersion, ::ContentType packType, bool ignoreWarnings);
182
183 MCAPI ::std::optional<::World::PackActionError>
184 $deactivatePack(::std::string const& packIdVersion, ::ContentType packType, bool ignoreWarnings);
185
186 MCAPI ::std::optional<::World::PackActionError> $continuePendingPackAction();
187
188 MCAPI void $clearPendingPackAction();
189
190 MCAPI ::Bedrock::PubSub::Subscription
191 $subscribeToPendingPackActionPublisher(::std::function<void(::std::optional<::World::PendingPackAction>)> callback);
192
193 MCAPI ::std::optional<::PackSettingsInfo> $getPackSettingsForPackIdVersion(::std::string const& packIdVersion);
194
195 MCAPI ::Bedrock::PubSub::Subscription $subscribeToMarketplacePackDownloadStatus(
196 ::std::function<void(::IMarketplacePackDownloader::MarketplacePackDownloadStatus)>&& onDownloadStatusChange
197 );
198 // NOLINTEND
199
200public:
201 // vftables
202 // NOLINTBEGIN
203 MCNAPI static void** $vftable();
204 // NOLINTEND
205};
206
207} // namespace World
Definition ContentItemCollection.h:5
Definition IContentTierManager.h:13
Definition IMarketplacePackDownloader.h:5
Definition MutableContentItemCollection.h:5
Definition WorldPackCollectionManagerImpl.h:7
Definition SelectedReloadProps.h:7
Definition ContentItem.h:5
Definition ContentSource.h:5
Definition PackContentItemListPosition.h:5
Definition PackIdVersion.h:10
Definition PackSettingsInfo.h:5
Definition PendingPackAction.h:7