3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/SceneType.h"
9#include "mc/client/gui/ViewRequest.h"
10#include "mc/client/gui/screens/controllers/MainMenuScreenController.h"
11#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
12#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
13#include "mc/client/network/realms/RealmsAPI.h"
14#include "mc/client/world/LocalWorldInfo.h"
15#include "mc/client/world/NetworkWorldType.h"
16#include "mc/deps/core/threading/TaskGroup.h"
17#include "mc/deps/core/utility/pub_sub/Subscription.h"
28namespace Json {
class Value; }
36 enum class ConvertProgressState :
int {
42 enum class ServerCollectionName :
int {
51 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::PlayScreenModel>> mPlayScreenModel;
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DlcUIWrapper>> mDlcUIWrapper;
53 ::ll::TypedStorage<4, 4, ::PlayScreenDefaultTab> mActiveTabIndex;
54 ::ll::TypedStorage<1, 1, bool> mForceRefreshRealmsOnOpen;
55 ::ll::TypedStorage<1, 1, bool> mForceRefreshThirdPartyServersOnOpen;
56 ::ll::TypedStorage<1, 1, bool> mRealmsBindingsDirty;
57 ::ll::TypedStorage<1, 1, bool> mCheckUGCOnTabChange;
58 ::ll::TypedStorage<1, 1, bool> mRealmsCompatibilityCheckComplete;
59 ::ll::TypedStorage<4, 4, ::RealmsAPI::Compatibility> mRealmsCompatibility;
60 ::ll::TypedStorage<1, 1, bool> mStorageDropdownActive;
61 ::ll::TypedStorage<1, 1, bool> mUseTabs;
62 ::ll::TypedStorage<4, 4, uint> mIconBouncesInProgress;
63 ::ll::TypedStorage<1, 1, bool> mFriendsIconBouncing;
64 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mBounceCooldownTimer;
65 ::ll::TypedStorage<8, 8, ::std::chrono::seconds const> mBounceCooldownTimerDuration;
66 ::ll::TypedStorage<1, 1, bool> mInviteIconDisplayed;
67 ::ll::TypedStorage<1, 1, bool> mFriendTabViewed;
68 ::ll::TypedStorage<1, 1, bool> mPlatformRestrictsMultiplayer;
69 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PlatformMultiplayerRestrictions>> mPlatformMultiplayerRestrictions;
70 ::ll::TypedStorage<8, 32, ::std::string> mInviteCode;
71 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
72 ::ll::TypedStorage<4, 4, ::PlayScreenController::ServerCollectionName> mCurrentServerCollectionName;
73 ::ll::TypedStorage<4, 4, ::PlayScreenController::ConvertProgressState> mProgressScreenState;
74 ::ll::TypedStorage<8, 32, ::std::string> mDirtyLevelId;
75 ::ll::TypedStorage<1, 1, bool> mLayoutDirty;
76 ::ll::TypedStorage<4, 4, int> mCurrentServerIndex;
77 ::ll::TypedStorage<4, 4, int> mCurrentScreenshotIndex;
78 ::ll::TypedStorage<1, 1, bool> mIsDescriptionExpanded;
79 ::ll::TypedStorage<1, 1, bool> mIsNewsExpanded;
80 ::ll::TypedStorage<1, 1, bool> mAddServerInfoVisible;
81 ::ll::TypedStorage<1, 1, bool> mNavigatedToAddServer;
82 ::ll::TypedStorage<8, 32, ::std::string> mRealmsTrialRandomText;
83 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DlcChecker>> mDlcChecker;
84 ::ll::TypedStorage<8, 1040, ::LocalWorldInfo> mTempLocalWorldInfo;
85 ::ll::TypedStorage<8, 8, ::ui::ScreenTechStackSelector&> mScreenTechStackSelector;
86 ::ll::TypedStorage<1, 1, bool> mNeedsOfflineAuthCode;
87 ::ll::TypedStorage<1, 1, bool> mOwnershipVerificationAnimationVisibleState;
88 ::ll::TypedStorage<1, 1, bool> mDirty;
89 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mBuildGameListSubscription;
90 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mMCTokenUpdateSubscription;
95 PlayScreenController& operator=(PlayScreenController
const&);
96 PlayScreenController(PlayScreenController
const&);
97 PlayScreenController();
102 virtual ~PlayScreenController() ;
104 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
106 virtual void onOpen() ;
108 virtual void onLeave() ;
110 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
112 virtual ::ui::DirtyFlag tick() ;
114 virtual ::std::string getAdditionalScreenInfo() const ;
116 virtual ::ui::SceneType getSceneType() const ;
118 virtual ::std::
string _getButtonADescription() ;
120 virtual
void _registerEventHandlers();
126 MCNAPI PlayScreenController(
128 ::PlayScreenDefaultTab tab,
129 ::ui::ScreenTechStackSelector& screenTechStackSelector,
130 ::
std::
string const& dirtyLevelId
181 ::PlayScreenDefaultTab tab,
182 ::ui::ScreenTechStackSelector& screenTechStackSelector,
183 ::
std::
string const& dirtyLevelId
Definition DlcChecker.h:5
Definition DlcUIWrapper.h:5
Definition MainMenuScreenController.h:5
Definition PlayScreenController.h:5
MCAPI void _onMCTokenUpdated(::ServicesManager *)
MCAPI::std::string $_getButtonADescription()
MCAPI::ui::ViewRequest _startLocalWorld(::LocalWorldInfo const &world)
MCAPI void _navigateToCreateWorldScreen()
MCAPI::ui::ViewRequest _startNetworkWorld(::NetworkWorldInfo const &world, ::NetworkWorldType worldType)
MCAPI void _registerBindings()
MCAPI bool _worldHasHeader(::NetworkWorldType type, int collectionIndex)
MCAPI::ui::SceneType $getSceneType() const
MCAPI bool _checkIfPingIsLoading(int collectionIndex)
MCAPI::ui::ViewRequest _handleStartNetworkItem(int index, ::NetworkWorldType nwt)
MCAPI::std::string _getGeneralMultiplayerWarningText()
MCAPI void $addStaticScreenVars(::Json::Value &globalVars)
MCAPI bool _shouldShowLockIcon(::LocalWorldInfo const &world) const
MCAPI::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification)
MCAPI::ui::DirtyFlag $tick()
MCAPI void * $ctor(::std::shared_ptr<::PlayScreenModel > model, ::PlayScreenDefaultTab tab, ::ui::ScreenTechStackSelector &screenTechStackSelector, ::std::string const &dirtyLevelId)
MCAPI void $_registerEventHandlers()
MCAPI void _displayRealmsFailedToJoinModal(::std::function< void(::ModalScreenButtonId)> callback)
MCAPI::std::string $getAdditionalScreenInfo() const
MCAPI::std::string _getFriendsGridWarningText()
MCAPI::std::string _getCrossPlatformFriendsGridWarningText()
MCAPI void _navigatePlayScreenTechStack(::PlayScreenDefaultTab tab)
MCAPI::Social::PermissionCheckResult _parentalControlsDialogCheck()
static MCAPI ::NetworkWorldType _getNetworkWorldTypeFromCollection(::std::string const &collectionName)
MCAPI void _setOwnershipVerificationAnimationVisibleState()
MCAPI bool _worldHasImage(::NetworkWorldType type, int collectionIndex)
MCAPI::ui::ViewRequest _convertLegacyWorld(::LegacyWorldInfo const &world)
Definition PlayScreenModel.h:5
Definition ScreenTechStackSelector.h:7
Definition LegacyWorldInfo.h:5
Definition LocalWorldInfo.h:5
Definition NetworkWorldInfo.h:5
Definition PermissionCheckResult.h:7