3#include "mc/_HeaderOutputPredefine.h"
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"
33class IStoreCatalogItem;
42class PlatformOfferTransactionContext;
46class RealmsTransactionContext;
52class SkinPickerUpsellTreatmentQuery;
53class StoreCatalogItem;
54class StoreCatalogRepository;
55class TransactionContext;
69namespace Core {
class Path; }
72namespace Realms {
struct RealmId; }
73namespace Realms {
struct World; }
77namespace Social {
class User; }
79namespace mce {
class UUID; }
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;
103 MainMenuScreenModel();
108 virtual ~MainMenuScreenModel() ;
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
118 virtual ::std::string
const& getLastPoppedScreenName() const ;
120 virtual ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> getStoreCatalogRepository() const ;
122 virtual
bool doesPlatformSupportRealms() const ;
124 virtual
bool isSelectedSkinInitialized() const ;
126 virtual
void repopulateWorldTemplates() ;
128 virtual ::WorldTemplateInfo const* findWorldTemplateByUUID(::std::vector<::mce::UUID> const& packUUIDs) const
131 virtual
bool isPackIdInRealmsPlus(::std::
string const& packId) const ;
133 virtual
float getStoreNetworkFailureTimeout() const ;
135 virtual
bool isInGame() const ;
137 virtual ::IMinecraftEventing& getMinecraftEventing() const;
139 virtual
bool isAdhocEnabled() const ;
141 virtual
bool isNetworkEnabled(::NetworkFilter withFilter) const ;
143 virtual
bool platformTTSExists() const ;
149 MCAPI explicit MainMenuScreenModel(::MinecraftScreenModel::
Context context);
151 MCFOLD ::std::weak_ptr<::MainMenuScreenModel> _getWeakPtr();
153 MCAPI
void _showAnnouncementIfAvailable(::Bedrock::NonOwnerPointer<::AnnouncementSurface> surface);
155 MCAPI
void checkAndPostUnpublishedRealmEventsToRealm(
156 ::Realms::RealmId realmId,
157 ::std::function<
void(::Realms::Stories::RealmEvent, ::Clubs::FeedItem)> onSuccessfulPostToRealm
160 MCAPI
bool checkStoreForAvailableUpdates() const;
162 MCAPI
void clearAllUserCache();
164 MCAPI
void clearScreenshotsCache();
166 MCAPI ::std::shared_ptr<::CatalogCollection>
167 createCatalogCollection(::std::vector<::std::shared_ptr<::SearchQuery>> const& queries,
int maxVisibleOffers);
169 MCAPI ::std::vector<::EDULibraryCategory> createLibraryCategoryPage(::std::vector<::std::
string> const& pages);
171 MCAPI ::std::shared_ptr<::LibraryCollection>
172 createLibraryCollection(::std::shared_ptr<::LibraryCollectionConfig> config);
174 MCAPI ::std::shared_ptr<::WorldFileDownloadManager> createLibraryWorldFileDownloadManager();
176 MCAPI ::std::shared_ptr<::ResourcePackFileUploadManager> createResourcePackFileUploadManager();
178 MCAPI ::std::shared_ptr<::WorldFileUploadManager> createWorldFileUploadManager();
180 MCAPI
void fetchContentInRealmsPlus(::std::function<
void()> callback);
182 MCAPI
void fetchLibraryWorldSize(::std::shared_ptr<::LessonItem> lessonItem);
184 MCAPI
void forcePersonaServiceSync() const;
186 MCFOLD
bool fulfillPriorPlatformOfferPurchase(
187 ::std::weak_ptr<::Purchase> purchase,
188 ::std::unique_ptr<::PlatformOfferTransactionContext> context
191 MCAPI
bool fulfillPriorRealmsPurchase(
192 ::std::weak_ptr<::Purchase> purchase,
193 ::std::unique_ptr<::RealmsTransactionContext> context
196 MCAPI ::Bedrock::NotNullNonOwnerPtr<::IContentAccessibilityProvider const> getAccessibilityProvider() const;
198 MCAPI ::EDULibraryCategory* getLibraryCategory(::std::
string const& name);
200 MCAPI ::MinecoinCatalogModel& getMinecoinCatalogModel();
202 MCAPI ::std::shared_ptr<::Social::User> getPrimaryUser() const;
204 MCAPI ::std::shared_ptr<::Realms::Stories::FacetStateManager> const getRealmsStoriesFacetStateManager() const;
206 MCAPI ::std::shared_ptr<::Realms::RealmsWorldContext> const getRealmsWorldContext() const;
208 MCAPI ::SkinPackCollectionModel& getSkinPackCollection();
210 MCAPI ::std::shared_ptr<::SkinPickerUpsellTreatmentQuery>
211 getSkinPickerUpsellTreatmentQuery(::std::function<
void(::SearchQuery const*)> callback) const;
213 MCAPI ::StoreCatalogItem& getStoreCatalogItemByProductId(::std::
string const& productId);
215 MCAPI
bool getStoreSupportsSubscriptions() const;
217 MCAPI ::std::
string getSunsettingText();
219 MCAPI
int getUserCoinBalance() const;
221 MCAPI ::std::
string getUserCoinBalanceAsString() const;
223 MCAPI ::WorldFileDownloadManager& getWorldFileDownloadManager();
225 MCAPI ::WorldSeedCatalogModel& getWorldSeedCatalogModel();
227 MCAPI
bool hasDismissedNewPlayerFlow() const;
229 MCAPI
bool hasSeenSonyTokensPopup() const;
231 MCAPI
void instantiateTemplate(
232 ::PackManifest const& manifest,
233 ::std::function<
void(::LevelSummary*, ::InstantiationResult)> callback
236 MCAPI
bool isAbleToFetch(
bool signInFailed) const;
238 MCAPI
bool isAppStoreReady() const;
240 MCAPI
bool isNewPlayerPathV3ABCTest() const;
242 MCAPI
bool isPlatformServiceMultiplayerConnected() const;
244 MCAPI
bool isRealmsCachedTrialAvailable() const;
246 MCAPI
bool isRealmsOreUIPurchaseEnabled() const;
248 MCAPI
bool isRealmsTrialOfferAvailable() const;
250 MCAPI
bool isServiceMultiplayerAvailableAndConnected(::Social::MultiplayerServiceIdentifier service) const;
252 MCAPI
bool isSkinPackNew(::SkinPackModel const& skinPackModel) const;
254 MCAPI
void launchSunsettingUri();
256 MCAPI
void navigateToChooseRealmScreen(
257 ::std::function<
void(::Realms::World)> callback,
258 ::SlotSelectedAction action,
259 ::std::function<
void()> onCancelCallback
262 MCAPI
void navigateToCoinPurchaseScreen(
263 ::std::
string const& coinPurchaseScreenPageId,
265 ::std::function<
void(
bool,
int)> callback
268 MCAPI
void navigateToCreateRealmUpsellScreen(
bool calledFromPlayScreen, ::std::
string const& additionalScreenInfo);
270 MCAPI
void navigateToCreateWorldUpsellScreen(
bool firstTimeShown, ::std::
string const& additionalScreenInfo);
272 MCAPI
void navigateToEDUFetchProgressHandler(::std::shared_ptr<::PlayScreenModel> model);
274 MCAPI
void navigateToEDUFetchServersProgressHandler(
275 ::Bedrock::NonOwnerPointer<::EDUServersScreenController> eduServersScreenController
278 MCAPI
void navigateToEDULibraryRoot();
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
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
294 MCAPI
void navigateToEDUWorldsScreen(
bool fromTemplatesScreen);
297 navigateToExpandedSkinPackScreen(::SkinPackModel& skinPackModel, ::SkinPackCollectionModel& skinPackCollection);
299 MCAPI
void navigateToFeaturedWorld();
301 MCAPI
void navigateToFileDownloadScreenAsync(
302 uint64 estimatedDiskWriteSize,
303 ::std::
string const& realmID,
305 ::std::
string const& realmName,
306 ::std::
string const& realmVersion,
307 ::std::
string const& realmVersionName,
308 ::std::function<
void(
bool)> callback
311 MCAPI
void navigateToLibraryItemScreen(::std::shared_ptr<::LibraryItem> item);
313 MCAPI
void navigateToLibraryItemScreen(::std::
string itemId);
315 MCAPI
void navigateToManifestValidationScreen(
316 ::ResourceLocation const& resourceLocation,
317 ::std::shared_ptr<::PackContentItem const> const& contentItem
320 MCAPI
void navigateToMarketplacePassPDPViewAllPacksScreen();
322 MCAPI
void navigateToPlayScreen(::PlayScreenDefaultTab tab);
324 MCAPI
void navigateToPurchaseOfferScreen(::IStoreCatalogItem const& item, ::StoreNavigationOrigin origin,
bool);
326 MCAPI
void navigateToPurchaseOfferScreen(
327 ::std::
string const& productId,
328 ::StoreNavigationOrigin origin,
329 ::std::
string const&,
334 navigateToPurchaseOfferScreen(::mce::UUID const& uuid, ::StoreNavigationOrigin origin, ::std::
string const&,
bool);
336 MCAPI
void navigateToRealmsCreateScreen(::RealmsCreateParams const& createParams);
338 MCAPI
bool navigateToRealmsOffers(::StoreDataDrivenScreenParams const& params);
340 MCAPI
void navigateToRealmsPDPViewAllPacksScreen();
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
349 MCAPI
void navigateToStoreInventoryScreen();
351 MCAPI
void navigateToStoreSearchScreen(::std::
string const& searchText, ::std::
string const& mPackTypeFilter);
353 MCAPI
void navigateToStoreSearchScreen(
354 ::LinksToStyle const& linksToStyle,
355 ::std::
string const& searchText,
356 ::std::
string const& packTypeFilter
359 MCAPI
void navigateToSunsettingScreen(::std::
string title);
361 MCAPI
void navigateToUploadPackFileProgressScreen(
362 ::std::
string const& realmID,
363 ::Core::Path const& path,
366 ::std::function<
void(::UploadState, ::Realms::World)> uploadPackCallback
370 navigateToWorldConversionCompleteScreen(::std::
string const& levelId, ::std::function<
void()> cancelCallback);
372 MCAPI ::std::unique_ptr<::DlcUIWrapper> newDlcUIWrapper(::MainMenuScreenController& controller);
374 MCAPI
bool prepareAppStoreForPurchases(::std::function<
void(
bool)> callback);
377 purchaseMarketplacePass(::std::
string const& productSku, ::std::unique_ptr<::TransactionContext>&& context);
379 MCAPI
void quickPlay();
381 MCAPI
void redeemRealmsCatalogOffer(::std::
string const& productId, ::std::function<
void(
bool)> outerCallback);
383 MCAPI
void refreshUserInventory() const;
385 MCAPI ::Bedrock::PubSub::Subscription
386 registerPrimaryUserSignInSubscriber(::std::function<
void(uint, ::Social::IdentityType)> listener);
388 MCAPI
void setDeepLinkListenerMainMenuParameters(::std::function<
void(::DownloadError const&)> onDownloadError);
390 MCAPI
void setHasSeenSonyTokenPopup(
bool newValue);
392 MCAPI
void setStoreCatalogItemViewed(::IStoreCatalogItem const& item) const;
394 MCAPI
void setStoreCatalogItemViewed(::std::
string const& productId) const;
396 MCAPI
void submitReviewFor(::std::
string const& productId,
int rating, ::std::function<
void()> successCallback);
398 MCAPI
void uploadLocalWorldFile(
399 ::std::
string const& realmID,
400 ::std::
string const& worldID,
402 ::std::function<
void(::UploadState, ::Realms::World)> callback
409 MCAPI
void* $ctor(::MinecraftScreenModel::
Context context);
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
429 MCAPI ::std::
string const& $getLastPoppedScreenName() const;
431 MCFOLD ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> $getStoreCatalogRepository() const;
433 MCFOLD
bool $doesPlatformSupportRealms() const;
435 MCFOLD
bool $isSelectedSkinInitialized() const;
437 MCAPI
void $repopulateWorldTemplates();
439 MCAPI ::WorldTemplateInfo const* $findWorldTemplateByUUID(::std::vector<::mce::UUID> const& packUUIDs) const;
441 MCAPI
bool $isPackIdInRealmsPlus(::std::
string const& packId) const;
443 MCFOLD
float $getStoreNetworkFailureTimeout() const;
445 MCFOLD
bool $isInGame() const;
447 MCFOLD ::IMinecraftEventing& $getMinecraftEventing() const;
449 MCAPI
bool $isAdhocEnabled() const;
451 MCAPI
bool $isNetworkEnabled(::NetworkFilter withFilter) const;
453 MCFOLD
bool $platformTTSExists() const;
Definition AnnouncementSurface.h:5
Definition Subscription.h:10
Definition CatalogCollection.h:5
Definition CloudSaveLevelInfo.h:10
Definition DlcChecker.h:5
Definition DlcUIWrapper.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 WorldFileDownloadManager.h:5
Definition WorldFileUploadManager.h:5
Definition WorldSeedCatalogModel.h:5
Definition WorldTemplateManager.h:21
Definition EDULibraryCategory.h:5
Definition IEduCloudSaveSystem.h:7
Definition LevelSummary.h:30
Definition MinecraftScreenModel.h:15
Definition PackContentItem.h:5
Definition EduDedicatedServerDetails.h:15
Definition StoreDataDrivenScreenParams.h:5
Definition WorldTemplateInfo.h:12