3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/StoreNavigationOrigin.h"
7#include "mc/client/gui/StoreOfferNavigationResult.h"
8#include "mc/client/gui/screens/controllers/MarketplacePassTabIndex.h"
9#include "mc/client/gui/screens/controllers/SlotSelectedAction.h"
10#include "mc/client/gui/screens/models/IMainMenuScreenModel.h"
11#include "mc/client/gui/screens/models/InstantiationResult.h"
12#include "mc/client/gui/screens/models/MinecraftScreenModel.h"
13#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
14#include "mc/client/network/NetworkFilter.h"
15#include "mc/client/social/MultiplayerServiceIdentifier.h"
16#include "mc/client/store/iap/PurchasePath.h"
17#include "mc/client/store/sidebar/Type.h"
18#include "mc/deps/core/threading/Async.h"
19#include "mc/deps/core/threading/SharedAsync.h"
20#include "mc/deps/core/threading/TaskGroup.h"
21#include "mc/deps/core/utility/NonOwnerPointer.h"
22#include "mc/identity/IdentityType.h"
23#include "mc/options/FeedbackType.h"
24#include "mc/platform/brstd/move_only_function.h"
25#include "mc/util/DownloadError.h"
26#include "mc/util/UploadState.h"
39class IStoreCatalogItem;
47class OfferCollectionComponent;
50class PlatformOfferTransactionContext;
53class RealmsTransactionContext;
58class StoreCatalogItem;
59class StoreCatalogRepository;
60class StoreSearchQuery;
61class TransactionContext;
74struct PlatformOfferPurchaseDetails;
76struct RealmsPurchaseDetails;
78struct SubmitItemRatingResult;
81namespace Core {
class Path; }
84namespace Realms {
struct World; }
88namespace Social {
class User; }
90namespace mce {
class UUID; }
97 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
98 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MinecoinCatalogModel>> mMinecoinCatalogModel;
99 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WorldSeedCatalogModel>> mWorldSeedCatalogModel;
100 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::WorldFileDownloadManager>> mFileDownloadManager;
101 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mFileUploadTaskGroup;
102 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::SharedAsync<void>>> mPreviousUpload;
103 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ResourcePackPathLifetimeHelpers::ResourcePackPathCache>>
104 mResourcePackPathCache;
105 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::WorldTemplateManager>> mWorldTemplateManager;
106 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::AnnouncementSurface>> mLoginAnnouncementSurface;
107 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::AnnouncementSurface>> mMarketplaceAnnouncementSurface;
108 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DlcChecker>> mDlcChecker;
109 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LegacyWorldConverter>> mLegacyWorldConverter;
114 MainMenuScreenModel();
119 virtual ~MainMenuScreenModel() ;
121 virtual void navigateToDlcProgressScreen(
122 ::std::vector<::DlcId>
const& dlcIds,
123 ::std::function<
void(
bool,
bool)> callback,
124 bool showCloseButton,
125 bool processingUpdates,
126 bool requireCancelToExit
129 virtual ::std::string
const& getLastPoppedScreenName() const ;
131 virtual ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> getStoreCatalogRepository() const ;
133 virtual
bool doesPlatformSupportRealms() const ;
135 virtual
bool isSelectedSkinInitialized() const ;
137 virtual
void repopulateWorldTemplates() ;
139 virtual ::WorldTemplateInfo const* findWorldTemplateByUUID(::std::vector<::mce::UUID> const& packUUIDs) const
142 virtual
bool isPackIdInRealmsPlus(::std::
string const& packId) const ;
144 virtual
float getStoreNetworkFailureTimeout() const ;
146 virtual
bool isInGame() const ;
148 virtual ::IMinecraftEventing& getMinecraftEventing() const;
150 virtual
bool isAdhocEnabled() const ;
152 virtual
bool isNetworkEnabled(::NetworkFilter withFilter) const ;
154 virtual
bool platformTTSExists() const ;
204 ::
std::weak_ptr<::Purchase> purchase,
205 ::
std::unique_ptr<::PlatformOfferTransactionContext>
context
209 ::
std::weak_ptr<::Purchase> purchase,
210 ::
std::unique_ptr<::RealmsTransactionContext>
context
283 ::IStoreCatalogItem const& catalogItem,
284 ::OfferCollectionComponent const& bundle,
285 ::
std::function<
void()> onPurchaseCallback
289 ::
std::function<
void(::Realms::World)> callback,
290 ::SlotSelectedAction action,
291 ::
std::function<
void()> onCancelCallback
295 ::
std::
string const& coinPurchaseScreenPageId,
297 ::
std::function<
void(
bool,
int)> callback
311 ::Social::EduDedicatedServerDetails const& details,
312 ::
std::
string const& passcode,
314 ::brstd::move_only_function<
void()>& reopenPasscodeEntry
320 ::
std::
string const& levelId,
321 ::
std::
string const& levelName,
322 ::Bedrock::NonOwnerPointer<::EduCloud::IEduCloudSaveSystem> eduCloudSaveSystem,
329 uint64 estimatedDiskWriteSize,
330 ::
std::
string const& realmID,
332 ::
std::
string const& realmName,
333 ::
std::
string const& realmVersion,
334 ::
std::
string const& realmVersionName,
335 ::
std::function<
void(
bool)> callback
344 ::
std::
string const& libraryTitle,
345 ::
std::
string const& libraryIcon
350 ::
std::
string const& libraryTitle,
351 ::
std::
string const& libraryIcon,
352 ::
std::
string const& libraryPageDescription
357 ::
std::
string const& libraryTitle,
358 ::
std::
string const& libraryIcon,
359 ::
std::
string const& libraryPageDescription,
360 ::
std::
string const& categoryTitle
364 ::
std::
string const& realmID,
366 ::
std::function<
void(::UploadState, ::Realms::World)> callback
375 ::MarketplacePassTabIndex tabIndex,
376 ::sidebar::navigationLayout::Type sidebarLayoutType
397 ::mce::UUID const& uuid,
398 ::StoreNavigationOrigin origin,
399 ::
std::
string const& contentType,
400 ::
std::function<
void(::StoreOfferNavigationResult)> onNavigationComplete
413 ::
std::
string const& uniqueEventName,
416 ::
std::function<
void()> onlineSafetyCancelledCallback
426 ::LinksToStyle const& linksToStyle,
427 ::
std::
string const& searchText,
428 ::
std::
string const& packTypeFilter
436 ::
std::function<
void(::
std::
string const&, ::
std::
string const&, ::Core::
Path const&)> closeCallback
440 ::
std::
string const& realmID,
441 ::Core::
Path const& path,
444 ::
std::function<
void(::UploadState, ::Realms::World)> uploadPackCallback
452 MCNAPI ::Bedrock::Threading::Async<::Safety::TextScanResult>
462 ::
std::unique_ptr<::TransactionContext>&&
context,
472 MCNAPI ::Bedrock::PubSub::Subscription
485 MCNAPI ::Bedrock::Threading::Async<::SubmitItemRatingResult>
493 ::
std::
string const& realmID,
494 ::
std::
string const& worldID,
496 ::
std::function<
void(::UploadState, ::Realms::World)> callback
516 ::
std::vector<::
DlcId> const& dlcIds,
517 ::
std::function<
void(
bool,
bool)> callback,
518 bool showCloseButton,
519 bool processingUpdates,
520 bool requireCancelToExit
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:152
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
MCAPI bool $isSelectedSkinInitialized() const
MCAPI::std::string getSunsettingText()
MCAPI bool prepareAppStoreForPurchases(::std::function< void(bool)> callback)
MCAPI ::std::shared_ptr<::Realms::Stories::FacetStateManager > const getRealmsStoriesFacetStateManager() const
MCAPI::IMinecraftEventing & $getMinecraftEventing() const
MCAPI void clearLayoutCache()
MCAPI void navigateToSubmitFeedbackScreen(::FeedbackType feedbackType, ::std::string const &identifier)
MCAPI void submitReviewFor(::std::string const &productId, int rating, ::std::function< void()> successCallback)
MCAPI bool fulfillPriorPlatformOfferPurchase(::std::weak_ptr<::Purchase > purchase, ::std::unique_ptr<::PlatformOfferTransactionContext > context)
MCAPI ::Bedrock::NotNullNonOwnerPtr<::IContentAccessibilityProvider const > getAccessibilityProvider() const
MCAPI bool hasDismissedNewPlayerFlow() const
MCAPI bool $doesPlatformSupportRealms() const
MCAPI void navigateToMarketplacePassPDPViewAllPacksScreen()
MCAPI bool isSidebarNavigationLayoutActive(::sidebar::navigationLayout::Type layoutType) const
MCAPI::std::string const & $getLastPoppedScreenName() const
MCAPI bool isServiceMultiplayerAvailableAndConnected(::Social::MultiplayerServiceIdentifier service) const
MCAPI void navigateToCoinPurchaseScreen(::std::string const &coinPurchaseScreenPageId, int coinsNeeded, ::std::function< void(bool, int)> callback)
MCAPI void navigateToFeaturedWorld()
MCAPI void navigateToOreUIChooseRealmSubscriptionScreen()
MCAPI ::Bedrock::Threading::Async<::Safety::TextScanResult > performPlayerSafetyScanRequest(::std::string const &feedback)
MCAPI void clearAllUserCache()
MCAPI void navigateToRealmsAllowListScreen(::Realms::World const &world, ::std::function< void()> followUpActionAfterCreation)
MCAPI void clearScreenshotsCache()
MCAPI void navigateToEduServersScreen()
MCAPI ::std::shared_ptr<::Realms::RealmsWorldContext > const getRealmsWorldContext() const
MCAPI float $getStoreNetworkFailureTimeout() const
MCAPI void $repopulateWorldTemplates()
MCAPI::SkinPackCollectionModel & getSkinPackCollection()
MCAPI bool supportsXboxLiveAchievements() const
MCAPI void navigateToEduFetchServersProgressHandler(::Bedrock::NonOwnerPointer<::EduServersScreenController > eduServersScreenController)
MCAPI void navigateToStoreSearchScreen(::std::string const &searchText, ::std::string const &mPackTypeFilter)
MCAPI void launchSunsettingUri()
MCAPI void navigateToLibrarySearchScreen(::std::shared_ptr<::LibraryCollection > collection, ::std::string const &libraryTitle, ::std::string const &libraryIcon)
MCAPI void forcePersonaServiceSync() const
MCAPI bool navigateToRealmsOffers(::StoreDataDrivenScreenParams const ¶ms)
MCAPI void instantiateTemplate(::PackManifest const &manifest, ::std::function< void(::LevelSummary *, ::InstantiationResult)> callback)
MCAPI void joinExperienceWorld(::ExperienceJoinRequestInfo const &connectionData)
MCAPI bool getStoreSupportsSubscriptions() const
MCAPI bool getUnfulfilledPlatformOfferPurchase(::PlatformOfferPurchaseDetails &details)
MCAPI int getUserCoinBalance() const
MCAPI bool isRealmsCachedTrialAvailable() const
MCAPI void navigateToMarketplacePassPDPScreen(::MarketplacePassTabIndex tabIndex, ::sidebar::navigationLayout::Type sidebarLayoutType)
MCAPI void * $ctor(::MinecraftScreenModelContext context)
MCAPI void setStoreCatalogItemViewed(::IStoreCatalogItem const &item) const
MCAPI void fetchLibraryWorldSize(::std::shared_ptr<::LessonItem > lessonItem)
MCAPI void cancelCreateRealmsWorld()
MCAPI ::std::shared_ptr<::Social::User > getPrimaryUser() const
MCAPI bool $isAdhocEnabled() const
MCAPI void navigateToPromotionAction(::ExperiencePromotion const &promotion)
MCAPI void uploadLocalWorldFile(::std::string const &realmID, ::std::string const &worldID, int slotIndex, ::std::function< void(::UploadState, ::Realms::World)> callback)
MCAPI void navigateToLocalWorldPickerScreen(::std::string const &realmID, int slotIndex, ::std::function< void(::UploadState, ::Realms::World)> callback)
MCAPI void fetchContentInRealmsPlus(::std::function< void()> callback)
MCAPI void navigateToPlayScreen(::PlayScreenDefaultTab tab)
MCAPI bool isAbleToFetch(bool signInFailed) const
MCAPI bool $isNetworkEnabled(::NetworkFilter withFilter) const
MCAPI void navigateToLibraryItemScreen(::std::shared_ptr<::LibraryItem > item)
MCAPI::EduLibraryCategory * getLibraryCategory(::std::string const &name)
MCAPI void navigateToApplyResourcePacksScreen(::std::function< void(::MinecraftScreenModel &)> applyPacks)
MCAPI ::std::unique_ptr<::DlcUIWrapper > newDlcUIWrapper(::MainMenuScreenController &controller)
MCAPI ::std::shared_ptr<::ResourcePackFileUploadManager > createResourcePackFileUploadManager()
MCAPI void navigateToPackSettingsScreen(::PackSettingsInfo packSettingsInfo)
MCAPI bool isMarketplacePassTrialAvailable() const
MCAPI bool $platformTTSExists() const
MCAPI void setDeepLinkListenerMainMenuParameters(::std::function< void(::DownloadError const &)> onDownloadError)
MCAPI void navigateToSunsettingScreen(::std::string title)
MCAPI bool getStoreRequiresRestoreButton() const
MCAPI void navigateToRealmsPDPViewAllPacksScreen()
MCAPI::WorldSeedCatalogModel & getWorldSeedCatalogModel()
MCAPI void navigateToEduFetchProgressHandler(::std::shared_ptr<::PlayScreenModel > model)
MCAPI ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository > $getStoreCatalogRepository() const
MCAPI void navigateToUGCViewerScreen(::std::function< void(::std::string const &, ::std::string const &, ::Core::Path const &)> closeCallback)
MCAPI void $navigateToDlcProgressScreen(::std::vector<::DlcId > const &dlcIds, ::std::function< void(bool, bool)> callback, bool showCloseButton, bool processingUpdates, bool requireCancelToExit)
MCAPI::WorldTemplateInfo const * $findWorldTemplateByUUID(::std::vector<::mce::UUID > const &packUUIDs) const
MCAPI void navigateToFileDownloadScreenAsync(uint64 estimatedDiskWriteSize, ::std::string const &realmID, int slotIndex, ::std::string const &realmName, ::std::string const &realmVersion, ::std::string const &realmVersionName, ::std::function< void(bool)> callback)
MCAPI ::Bedrock::Threading::Async<::SubmitItemRatingResult > submitReviewForEntitlementManager(::std::string const &productId, int rating)
MCAPI ::std::shared_ptr<::CatalogCollection > createCatalogCollection(::std::vector<::std::shared_ptr<::SearchQuery > > const &queries, int maxVisibleOffers)
MCAPI::MinecoinCatalogModel & getMinecoinCatalogModel()
MCAPI void redeemRealmsCatalogOffer(::std::string const &productId, ::std::function< void(bool)> outerCallback)
MCAPI void navigateToManifestValidationScreen(::ResourceLocation const &resourceLocation, ::std::shared_ptr<::PackContentItem const > const &contentItem)
MCAPI bool supportsFliteTTS() const
MCAPI bool $isInGame() const
MCAPI void navigateToRealmsPlusPurchaseWarningScreen(::std::function< void()> callback)
MCAPI ::std::vector<::EduLibraryCategory > createLibraryCategoryPage(::std::vector<::std::string > const &pages)
MCAPI void setHasSeenSonyTokenPopup(bool newValue)
MCAPI ::std::shared_ptr<::WorldFileUploadManager > createWorldFileUploadManager()
MCAPI void navigateToChooseRealmScreen(::std::function< void(::Realms::World)> callback, ::SlotSelectedAction action, ::std::function< void()> onCancelCallback)
MCAPI bool checkStoreForAvailableUpdates() const
MCAPI void _showAnnouncementIfAvailable(::Bedrock::NonOwnerPointer<::AnnouncementSurface > surface)
MCAPI void navigateToStoreInventoryScreen()
MCAPI bool canDisableRecipeUnlockingAsDefault() const
MCAPI void navigateToBundleWarningScreen(::IStoreCatalogItem const &catalogItem, ::OfferCollectionComponent const &bundle, ::std::function< void()> onPurchaseCallback)
MCAPI void navigateToLibraryWorldScreen(::std::shared_ptr<::LibraryCollection > collection, ::std::string const &libraryTitle, ::std::string const &libraryIcon, ::std::string const &libraryPageDescription, ::std::string const &categoryTitle)
MCAPI bool isAppStoreReady() const
MCAPI void navigateToEduServerResolvingProgressHandler(::Social::EduDedicatedServerDetails const &details, ::std::string const &passcode, ::std::shared_ptr<::PlayScreenModel > model, ::brstd::move_only_function< void()> &reopenPasscodeEntry)
MCAPI void purchaseMarketplacePass(::std::string const &productSku, ::std::unique_ptr<::TransactionContext > &&context)
MCAPI void refreshUserInventory() const
MCAPI bool purchasePlatformOffer(::PlatformOfferModel const &platformOfferModel, ::std::unique_ptr<::TransactionContext > &&context, ::PurchasePath path)
MCAPI::WorldFileDownloadManager & getWorldFileDownloadManager()
MCAPI bool fulfillPriorRealmsPurchase(::std::weak_ptr<::Purchase > purchase, ::std::unique_ptr<::RealmsTransactionContext > context)
MCAPI bool getUnfulfilledRealmsPurchase(::RealmsPurchaseDetails &details)
MCAPI void navigateToEduUploadProgressHandler(::std::string const &levelId, ::std::string const &levelName, ::Bedrock::NonOwnerPointer<::EduCloud::IEduCloudSaveSystem > eduCloudSaveSystem, ::std::optional<::CloudSaveLevelInfo > cloudSaveInfo)
MCAPI void navigateToPurchaseOfferScreen(::IStoreCatalogItem const &item, ::StoreNavigationOrigin origin)
MCAPI void navigateToWorldConversionCompleteScreen(::std::string const &levelId, ::std::function< void()> cancelCallback)
MCAPI::Bedrock::PubSub::Subscription registerPrimaryUserSignInSubscriber(::std::function< void(uint, ::Social::IdentityType)> listener)
MCAPI bool isNewPlayerPathV3ABCTest() const
MCAPI void navigateToLibraryTagScreen(::std::shared_ptr<::LibraryCollection > collection, ::std::string const &libraryTitle, ::std::string const &libraryIcon, ::std::string const &libraryPageDescription)
MCAPI void navigateToOreUIRealmsCreatePreviewWithOnlyOneSubscriptionScreen()
MCAPI::std::string _pushPurchaseOfferScreen(::IStoreCatalogItem const &item, ::StoreNavigationOrigin origin)
MCAPI void navigateToEduLibraryRoot()
MCAPI void navigateToRedeem5x5Screen()
MCAPI void navigateToUploadPackFileProgressScreen(::std::string const &realmID, ::Core::Path const &path, int slotIndex, bool archiveNeeded, ::std::function< void(::UploadState, ::Realms::World)> uploadPackCallback)
MCAPI bool $isPackIdInRealmsPlus(::std::string const &packId) const
MCAPI void navigateToCreateWorldUpsellScreen(bool firstTimeShown, ::std::string const &additionalScreenInfo)
MCAPI::std::string_view getNewPlayerFlowTargetRoute() const
MCAPI void navigateToRealmsWorldProgressScreen(::std::string const &uniqueEventName, ::std::unique_ptr<::ProgressHandler > connectHandler, ::std::unique_ptr<::ProgressHandler > progressHandler, ::std::function< void()> onlineSafetyCancelledCallback)
MCAPI bool isPlatformServiceMultiplayerConnected() const
MCAPI ::std::shared_ptr<::LibraryCollection > createLibraryCollection(::std::shared_ptr<::LibraryCollectionConfig > config)
MCAPI bool hasSeenSonyTokensPopup() const
MCAPI::std::string getUserCoinBalanceAsString() const
MCAPI::StoreCatalogItem & getStoreCatalogItemByProductId(::std::string const &productId)
MCAPI bool getStoreShouldHideUpdateRow() const
MCAPI ::std::shared_ptr<::WorldFileDownloadManager > createLibraryWorldFileDownloadManager()
MCAPI void dismissNewPlayerFlow()
Definition MinecoinCatalogModel.h:5
Definition MinecraftScreenModel.h:5
Definition PackManifest.h:39
Definition PlayScreenModel.h:5
Definition ProgressHandler.h:5
Definition RealmsWorldContext.h:7
Definition FacetStateManager.h:7
Definition ResourceLocation.h:15
Definition ResourcePackFileUploadManager.h:26
Definition ResourcePackPathCache.h:7
Definition SearchQuery.h:5
Definition SkinPackCollectionModel.h:5
Definition WorldFileDownloadManager.h:5
Definition WorldFileUploadManager.h:5
Definition WorldSeedCatalogModel.h:5
Definition WorldTemplateManager.h:20
Definition IEduCloudSaveSystem.h:7
Definition EDULibraryCategory.h:5
Definition ExperienceJoinRequestInfo.h:5
Definition LevelSummary.h:30
Definition MinecraftScreenModelContext.h:5
Definition PackContentItem.h:5
Definition PackSettingsInfo.h:5
Definition TextScanResult.h:7
Definition EduDedicatedServerDetails.h:15
Definition StoreDataDrivenScreenParams.h:5
Definition WorldTemplateInfo.h:12