LeviLamina
Loading...
Searching...
No Matches
MainMenuScreenModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/StoreNavigationOrigin.h"
7#include "mc/client/gui/screens/controllers/SlotSelectedAction.h"
8#include "mc/client/gui/screens/models/IMainMenuScreenModel.h"
9#include "mc/client/gui/screens/models/InstantiationResult.h"
10#include "mc/client/gui/screens/models/MinecraftScreenModel.h"
11#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
12#include "mc/client/network/NetworkFilter.h"
13#include "mc/client/social/MultiplayerServiceIdentifier.h"
14#include "mc/deps/core/threading/SharedAsync.h"
15#include "mc/deps/core/threading/TaskGroup.h"
16#include "mc/deps/core/utility/NonOwnerPointer.h"
17#include "mc/identity/IdentityType.h"
18#include "mc/platform/brstd/move_only_function.h"
19#include "mc/util/DownloadError.h"
20#include "mc/util/UploadState.h"
21
22// auto generated forward declare list
23// clang-format off
27class DlcChecker;
28class DlcId;
29class DlcUIWrapper;
33class IStoreCatalogItem;
35class LessonItem;
38class LibraryItem;
41class PackManifest;
42class PlatformOfferTransactionContext;
43class PlayScreenModel;
44class ProgressHandler;
46class RealmsTransactionContext;
49class SearchQuery;
51class SkinPackModel;
52class SkinPickerUpsellTreatmentQuery;
53class StoreCatalogItem;
54class StoreCatalogRepository;
55class TransactionContext;
61struct LevelSummary;
62struct LinksToStyle;
63struct PackContentItem;
64struct Purchase;
67namespace Bedrock::PubSub { class Subscription; }
68namespace Clubs { struct FeedItem; }
69namespace Core { class Path; }
70namespace EduCloud { struct IEduCloudSaveSystem; }
71namespace Realms { class RealmsWorldContext; }
72namespace Realms { struct RealmId; }
73namespace Realms { struct World; }
74namespace Realms::Stories { class FacetStateManager; }
75namespace Realms::Stories { class RealmEvent; }
76namespace ResourcePackPathLifetimeHelpers { class ResourcePackPathCache; }
77namespace Social { class User; }
78namespace Social { struct EduDedicatedServerDetails; }
79namespace mce { class UUID; }
80// clang-format on
81
83public:
84 // member variables
85 // NOLINTBEGIN
86 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecoinCatalogModel>> mMinecoinCatalogModel;
88 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WorldSeedCatalogModel>> mWorldSeedCatalogModel;
89 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::WorldFileDownloadManager>> mFileDownloadManager;
90 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mFileUploadTaskGroup;
91 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::SharedAsync<void>>> mPreviousUpload;
92 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ResourcePackPathLifetimeHelpers::ResourcePackPathCache>>
93 mResourcePackPathCache;
94 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::WorldTemplateManager>> mWorldTemplateManager;
95 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::AnnouncementSurface>> mLoginAnnouncementSurface;
96 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::AnnouncementSurface>> mMarketplaceAnnouncementSurface;
97 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DlcChecker>> mDlcChecker;
98 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LegacyWorldConverter>> mLegacyWorldConverter;
99 // NOLINTEND
100
101public:
102 // prevent constructor by default
103 MainMenuScreenModel();
104
105public:
106 // virtual functions
107 // NOLINTBEGIN
108 virtual ~MainMenuScreenModel() /*override*/;
109
110 virtual void navigateToDlcProgressScreen(
111 ::std::vector<::DlcId> const& dlcIds,
112 ::std::function<void(bool, bool)> callback,
113 bool showCloseButton,
114 bool processingUpdates,
115 bool requireCancelToExit
116 ) /*override*/;
117
118 virtual ::std::string const& getLastPoppedScreenName() const /*override*/;
119
120 virtual ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> getStoreCatalogRepository() const /*override*/;
121
122 virtual bool doesPlatformSupportRealms() const /*override*/;
123
124 virtual bool isSelectedSkinInitialized() const /*override*/;
125
126 virtual void repopulateWorldTemplates() /*override*/;
127
128 virtual ::WorldTemplateInfo const* findWorldTemplateByUUID(::std::vector<::mce::UUID> const& packUUIDs) const
129 /*override*/;
130
131 virtual bool isPackIdInRealmsPlus(::std::string const& packId) const /*override*/;
132
133 virtual float getStoreNetworkFailureTimeout() const /*override*/;
134
135 virtual bool isInGame() const /*override*/;
136
137 virtual ::IMinecraftEventing& getMinecraftEventing() const;
138
139 virtual bool isAdhocEnabled() const /*override*/;
140
141 virtual bool isNetworkEnabled(::NetworkFilter withFilter) const /*override*/;
142
143 virtual bool platformTTSExists() const /*override*/;
144 // NOLINTEND
145
146public:
147 // member functions
148 // NOLINTBEGIN
149 MCAPI explicit MainMenuScreenModel(::MinecraftScreenModel::Context context);
150
151 MCFOLD ::std::weak_ptr<::MainMenuScreenModel> _getWeakPtr();
152
153 MCAPI void _showAnnouncementIfAvailable(::Bedrock::NonOwnerPointer<::AnnouncementSurface> surface);
154
155 MCAPI void checkAndPostUnpublishedRealmEventsToRealm(
156 ::Realms::RealmId realmId,
157 ::std::function<void(::Realms::Stories::RealmEvent, ::Clubs::FeedItem)> onSuccessfulPostToRealm
158 );
159
160 MCAPI bool checkStoreForAvailableUpdates() const;
161
162 MCAPI void clearAllUserCache();
163
164 MCAPI void clearScreenshotsCache();
165
166 MCAPI ::std::shared_ptr<::CatalogCollection>
167 createCatalogCollection(::std::vector<::std::shared_ptr<::SearchQuery>> const& queries, int maxVisibleOffers);
168
169 MCAPI ::std::vector<::EDULibraryCategory> createLibraryCategoryPage(::std::vector<::std::string> const& pages);
170
171 MCAPI ::std::shared_ptr<::LibraryCollection>
172 createLibraryCollection(::std::shared_ptr<::LibraryCollectionConfig> config);
173
174 MCAPI ::std::shared_ptr<::WorldFileDownloadManager> createLibraryWorldFileDownloadManager();
175
176 MCAPI ::std::shared_ptr<::ResourcePackFileUploadManager> createResourcePackFileUploadManager();
177
178 MCAPI ::std::shared_ptr<::WorldFileUploadManager> createWorldFileUploadManager();
179
180 MCAPI void fetchContentInRealmsPlus(::std::function<void()> callback);
181
182 MCAPI void fetchLibraryWorldSize(::std::shared_ptr<::LessonItem> lessonItem);
183
184 MCAPI void forcePersonaServiceSync() const;
185
186 MCFOLD bool fulfillPriorPlatformOfferPurchase(
187 ::std::weak_ptr<::Purchase> purchase,
188 ::std::unique_ptr<::PlatformOfferTransactionContext> context
189 );
190
191 MCAPI bool fulfillPriorRealmsPurchase(
192 ::std::weak_ptr<::Purchase> purchase,
193 ::std::unique_ptr<::RealmsTransactionContext> context
194 );
195
196 MCAPI ::Bedrock::NotNullNonOwnerPtr<::IContentAccessibilityProvider const> getAccessibilityProvider() const;
197
198 MCAPI ::EDULibraryCategory* getLibraryCategory(::std::string const& name);
199
200 MCAPI ::MinecoinCatalogModel& getMinecoinCatalogModel();
201
202 MCAPI ::std::shared_ptr<::Social::User> getPrimaryUser() const;
203
204 MCAPI ::std::shared_ptr<::Realms::Stories::FacetStateManager> const getRealmsStoriesFacetStateManager() const;
205
206 MCAPI ::std::shared_ptr<::Realms::RealmsWorldContext> const getRealmsWorldContext() const;
207
208 MCAPI ::SkinPackCollectionModel& getSkinPackCollection();
209
210 MCAPI ::std::shared_ptr<::SkinPickerUpsellTreatmentQuery>
211 getSkinPickerUpsellTreatmentQuery(::std::function<void(::SearchQuery const*)> callback) const;
212
213 MCAPI ::StoreCatalogItem& getStoreCatalogItemByProductId(::std::string const& productId);
214
215 MCAPI bool getStoreSupportsSubscriptions() const;
216
217 MCAPI ::std::string getSunsettingText();
218
219 MCAPI int getUserCoinBalance() const;
220
221 MCAPI ::std::string getUserCoinBalanceAsString() const;
222
223 MCAPI ::WorldFileDownloadManager& getWorldFileDownloadManager();
224
225 MCAPI ::WorldSeedCatalogModel& getWorldSeedCatalogModel();
226
227 MCAPI bool hasDismissedNewPlayerFlow() const;
228
229 MCAPI bool hasSeenSonyTokensPopup() const;
230
231 MCAPI void instantiateTemplate(
232 ::PackManifest const& manifest,
233 ::std::function<void(::LevelSummary*, ::InstantiationResult)> callback
234 );
235
236 MCAPI bool isAbleToFetch(bool signInFailed) const;
237
238 MCAPI bool isAppStoreReady() const;
239
240 MCAPI bool isNewPlayerPathV3ABCTest() const;
241
242 MCAPI bool isPlatformServiceMultiplayerConnected() const;
243
244 MCAPI bool isRealmsCachedTrialAvailable() const;
245
246 MCAPI bool isRealmsOreUIPurchaseEnabled() const;
247
248 MCAPI bool isRealmsTrialOfferAvailable() const;
249
250 MCAPI bool isServiceMultiplayerAvailableAndConnected(::Social::MultiplayerServiceIdentifier service) const;
251
252 MCAPI bool isSkinPackNew(::SkinPackModel const& skinPackModel) const;
253
254 MCAPI void launchSunsettingUri();
255
256 MCAPI void navigateToChooseRealmScreen(
257 ::std::function<void(::Realms::World)> callback,
258 ::SlotSelectedAction action,
259 ::std::function<void()> onCancelCallback
260 );
261
262 MCAPI void navigateToCoinPurchaseScreen(
263 ::std::string const& coinPurchaseScreenPageId,
264 int coinsNeeded,
265 ::std::function<void(bool, int)> callback
266 );
267
268 MCAPI void navigateToCreateRealmUpsellScreen(bool calledFromPlayScreen, ::std::string const& additionalScreenInfo);
269
270 MCAPI void navigateToCreateWorldUpsellScreen(bool firstTimeShown, ::std::string const& additionalScreenInfo);
271
272 MCAPI void navigateToEDUFetchProgressHandler(::std::shared_ptr<::PlayScreenModel> model);
273
274 MCAPI void navigateToEDUFetchServersProgressHandler(
275 ::Bedrock::NonOwnerPointer<::EDUServersScreenController> eduServersScreenController
276 );
277
278 MCAPI void navigateToEDULibraryRoot();
279
280 MCAPI void navigateToEDUServerResolvingProgressHandler(
281 ::Social::EduDedicatedServerDetails const& details,
282 ::std::string const& passcode,
283 ::std::shared_ptr<::PlayScreenModel> model,
284 ::brstd::move_only_function<void()>& reopenPasscodeEntry
285 );
286
287 MCAPI void navigateToEDUUploadProgressHandler(
288 ::std::string const& levelId,
289 ::std::string const& levelName,
290 ::Bedrock::NonOwnerPointer<::EduCloud::IEduCloudSaveSystem> eduCloudSaveSystem,
291 ::std::optional<::CloudSaveLevelInfo> cloudSaveInfo
292 );
293
294 MCAPI void navigateToEDUWorldsScreen(bool fromTemplatesScreen);
295
296 MCAPI void
297 navigateToExpandedSkinPackScreen(::SkinPackModel& skinPackModel, ::SkinPackCollectionModel& skinPackCollection);
298
299 MCAPI void navigateToFeaturedWorld();
300
301 MCAPI void navigateToFileDownloadScreenAsync(
302 uint64 estimatedDiskWriteSize,
303 ::std::string const& realmID,
304 int slotIndex,
305 ::std::string const& realmName,
306 ::std::string const& realmVersion,
307 ::std::string const& realmVersionName,
308 ::std::function<void(bool)> callback
309 );
310
311 MCAPI void navigateToLibraryItemScreen(::std::shared_ptr<::LibraryItem> item);
312
313 MCAPI void navigateToLibraryItemScreen(::std::string itemId);
314
315 MCAPI void navigateToManifestValidationScreen(
316 ::ResourceLocation const& resourceLocation,
317 ::std::shared_ptr<::PackContentItem const> const& contentItem
318 );
319
320 MCAPI void navigateToMarketplacePassPDPViewAllPacksScreen();
321
322 MCAPI void navigateToPlayScreen(::PlayScreenDefaultTab tab);
323
324 MCAPI void navigateToPurchaseOfferScreen(::IStoreCatalogItem const& item, ::StoreNavigationOrigin origin, bool);
325
326 MCAPI void navigateToPurchaseOfferScreen(
327 ::std::string const& productId,
328 ::StoreNavigationOrigin origin,
329 ::std::string const&,
330 bool
331 );
332
333 MCAPI void
334 navigateToPurchaseOfferScreen(::mce::UUID const& uuid, ::StoreNavigationOrigin origin, ::std::string const&, bool);
335
336 MCAPI void navigateToRealmsCreateScreen(::RealmsCreateParams const& createParams);
337
338 MCAPI bool navigateToRealmsOffers(::StoreDataDrivenScreenParams const& params);
339
340 MCAPI void navigateToRealmsPDPViewAllPacksScreen();
341
342 MCAPI void navigateToRealmsWorldProgressScreen(
343 ::std::string const& uniqueEventName,
344 ::std::unique_ptr<::ProgressHandler> connectHandler,
345 ::std::unique_ptr<::ProgressHandler> progressHandler,
346 ::std::function<void()> onlineSafetyCancelledCallback
347 );
348
349 MCAPI void navigateToStoreInventoryScreen();
350
351 MCAPI void navigateToStoreSearchScreen(::std::string const& searchText, ::std::string const& mPackTypeFilter);
352
353 MCAPI void navigateToStoreSearchScreen(
354 ::LinksToStyle const& linksToStyle,
355 ::std::string const& searchText,
356 ::std::string const& packTypeFilter
357 );
358
359 MCAPI void navigateToSunsettingScreen(::std::string title);
360
361 MCAPI void navigateToUploadPackFileProgressScreen(
362 ::std::string const& realmID,
363 ::Core::Path const& path,
364 int slotIndex,
365 bool archiveNeeded,
366 ::std::function<void(::UploadState, ::Realms::World)> uploadPackCallback
367 );
368
369 MCAPI void
370 navigateToWorldConversionCompleteScreen(::std::string const& levelId, ::std::function<void()> cancelCallback);
371
372 MCAPI ::std::unique_ptr<::DlcUIWrapper> newDlcUIWrapper(::MainMenuScreenController& controller);
373
374 MCAPI bool prepareAppStoreForPurchases(::std::function<void(bool)> callback);
375
376 MCAPI void
377 purchaseMarketplacePass(::std::string const& productSku, ::std::unique_ptr<::TransactionContext>&& context);
378
379 MCAPI void quickPlay();
380
381 MCAPI void redeemRealmsCatalogOffer(::std::string const& productId, ::std::function<void(bool)> outerCallback);
382
383 MCAPI void refreshUserInventory() const;
384
385 MCAPI ::Bedrock::PubSub::Subscription
386 registerPrimaryUserSignInSubscriber(::std::function<void(uint, ::Social::IdentityType)> listener);
387
388 MCAPI void setDeepLinkListenerMainMenuParameters(::std::function<void(::DownloadError const&)> onDownloadError);
389
390 MCAPI void setHasSeenSonyTokenPopup(bool newValue);
391
392 MCAPI void setStoreCatalogItemViewed(::IStoreCatalogItem const& item) const;
393
394 MCAPI void setStoreCatalogItemViewed(::std::string const& productId) const;
395
396 MCAPI void submitReviewFor(::std::string const& productId, int rating, ::std::function<void()> successCallback);
397
398 MCAPI void uploadLocalWorldFile(
399 ::std::string const& realmID,
400 ::std::string const& worldID,
401 int slotIndex,
402 ::std::function<void(::UploadState, ::Realms::World)> callback
403 );
404 // NOLINTEND
405
406public:
407 // constructor thunks
408 // NOLINTBEGIN
409 MCAPI void* $ctor(::MinecraftScreenModel::Context context);
410 // NOLINTEND
411
412public:
413 // destructor thunk
414 // NOLINTBEGIN
415 MCAPI void $dtor();
416 // NOLINTEND
417
418public:
419 // virtual function thunks
420 // NOLINTBEGIN
421 MCAPI void $navigateToDlcProgressScreen(
422 ::std::vector<::DlcId> const& dlcIds,
423 ::std::function<void(bool, bool)> callback,
424 bool showCloseButton,
425 bool processingUpdates,
426 bool requireCancelToExit
427 );
428
429 MCAPI ::std::string const& $getLastPoppedScreenName() const;
430
431 MCFOLD ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> $getStoreCatalogRepository() const;
432
433 MCFOLD bool $doesPlatformSupportRealms() const;
434
435 MCFOLD bool $isSelectedSkinInitialized() const;
436
437 MCAPI void $repopulateWorldTemplates();
438
439 MCAPI ::WorldTemplateInfo const* $findWorldTemplateByUUID(::std::vector<::mce::UUID> const& packUUIDs) const;
440
441 MCAPI bool $isPackIdInRealmsPlus(::std::string const& packId) const;
442
443 MCFOLD float $getStoreNetworkFailureTimeout() const;
444
445 MCFOLD bool $isInGame() const;
446
447 MCFOLD ::IMinecraftEventing& $getMinecraftEventing() const;
448
449 MCAPI bool $isAdhocEnabled() const;
450
451 MCAPI bool $isNetworkEnabled(::NetworkFilter withFilter) const;
452
453 MCFOLD bool $platformTTSExists() const;
454 // NOLINTEND
455
456public:
457 // vftables
458 // NOLINTBEGIN
459 MCNAPI static void** $vftableForIMinecraftScreenModel();
460
461 MCNAPI static void** $vftable();
462
463 MCNAPI static void** $vftableForIDlcBatcher();
464 // NOLINTEND
465};
Definition AnnouncementSurface.h:5
Definition Subscription.h:10
Definition CatalogCollection.h:5
Definition CloudSaveLevelInfo.h:10
Definition Path.h:17
Definition DlcChecker.h:5
Definition DlcId.h:5
Definition DlcUIWrapper.h:5
Definition EDUServersScreenController.h:5
Definition IContentAccessibilityProvider.h:13
Definition IMainMenuScreenModel.h:5
Definition IMinecraftEventing.h:134
Definition LegacyWorldConverter.h:5
Definition LessonItem.h:5
Definition LibraryCollectionConfig.h:5
Definition LibraryCollection.h:5
Definition LibraryItem.h:5
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
static MCAPI void ** $vftable()
static MCAPI void ** $vftableForIMinecraftScreenModel()
static MCAPI void ** $vftableForIDlcBatcher()
Definition MinecoinCatalogModel.h:5
Definition MinecraftScreenModel.h:5
Definition PackManifest.h:37
Definition PlayScreenModel.h:5
Definition ProgressHandler.h:5
Definition RealmsCreateParams.h:5
Definition RealmsWorldContext.h:7
Definition FacetStateManager.h:7
Definition RealmEvent.h:7
Definition ResourceLocation.h:15
Definition ResourcePackFileUploadManager.h:25
Definition ResourcePackPathCache.h:7
Definition SearchQuery.h:5
Definition SkinPackCollectionModel.h:5
Definition SkinPackModel.h:5
Definition User.h:7
Definition WorldFileDownloadManager.h:5
Definition WorldFileUploadManager.h:5
Definition WorldSeedCatalogModel.h:5
Definition WorldTemplateManager.h:21
Definition UUID.h:7
Definition FeedItem.h:7
Definition EDULibraryCategory.h:5
Definition IEduCloudSaveSystem.h:7
Definition LevelSummary.h:30
Definition MinecraftScreenModel.h:15
Definition PackContentItem.h:5
Definition RealmId.h:7
Definition World.h:7
Definition EduDedicatedServerDetails.h:15
Definition StoreDataDrivenScreenParams.h:5
Definition WorldTemplateInfo.h:12