Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
PlayScreenController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
18
19// auto generated forward declare list
20// clang-format off
21class DlcChecker;
22class DlcUIWrapper;
24class PlayScreenModel;
25class ServicesManager;
26struct LegacyWorldInfo;
27struct NetworkWorldInfo;
28namespace Json { class Value; }
29namespace Social { struct PermissionCheckResult; }
30namespace ui { class ScreenTechStackSelector; }
31// clang-format on
32
34public:
35 // PlayScreenController inner types define
36 enum class ConvertProgressState : int {
37 Closed = 0,
38 Active = 1,
39 TryClose = 2,
40 };
41
42 enum class ServerCollectionName : int {
43 ThirdParty = 0,
44 External = 1,
45 Invalid = 2,
46 };
47
48public:
49 // member variables
50 // NOLINTBEGIN
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;
91 // NOLINTEND
92
93public:
94 // prevent constructor by default
95 PlayScreenController& operator=(PlayScreenController const&);
96 PlayScreenController(PlayScreenController const&);
97 PlayScreenController();
98
99public:
100 // virtual functions
101 // NOLINTBEGIN
102 virtual ~PlayScreenController() /*override*/;
103
104 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
105
106 virtual void onOpen() /*override*/;
107
108 virtual void onLeave() /*override*/;
109
110 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) /*override*/;
111
112 virtual ::ui::DirtyFlag tick() /*override*/;
113
114 virtual ::std::string getAdditionalScreenInfo() const /*override*/;
115
116 virtual ::ui::SceneType getSceneType() const /*override*/;
117
118 virtual ::std::string _getButtonADescription() /*override*/;
119
120 virtual void _registerEventHandlers();
121 // NOLINTEND
122
123public:
124 // member functions
125 // NOLINTBEGIN
126 MCNAPI PlayScreenController(
127 ::std::shared_ptr<::PlayScreenModel> model,
128 ::PlayScreenDefaultTab tab,
129 ::ui::ScreenTechStackSelector& screenTechStackSelector,
130 ::std::string const& dirtyLevelId
131 );
132
133 MCNAPI bool _checkIfPingIsLoading(int collectionIndex);
134
135 MCNAPI ::ui::ViewRequest _convertLegacyWorld(::LegacyWorldInfo const& world);
136
137 MCNAPI void _displayRealmsFailedToJoinModal(::std::function<void(::ModalScreenButtonId)> callback);
138
140
141 MCNAPI ::std::string _getFriendsGridWarningText();
142
144
145 MCNAPI ::ui::ViewRequest _handleStartNetworkItem(int index, ::NetworkWorldType nwt);
146
147 MCNAPI void _navigatePlayScreenTechStack(::PlayScreenDefaultTab tab);
148
150
151 MCNAPI void _onMCTokenUpdated(::ServicesManager*);
152
153 MCNAPI ::Social::PermissionCheckResult _parentalControlsDialogCheck();
154
155 MCNAPI void _registerBindings();
156
158
159 MCNAPI bool _shouldShowLockIcon(::LocalWorldInfo const& world) const;
160
161 MCNAPI ::ui::ViewRequest _startLocalWorld(::LocalWorldInfo const& world);
162
163 MCNAPI ::ui::ViewRequest _startNetworkWorld(::NetworkWorldInfo const& world, ::NetworkWorldType worldType);
164
165 MCNAPI bool _worldHasHeader(::NetworkWorldType type, int collectionIndex);
166
167 MCNAPI bool _worldHasImage(::NetworkWorldType type, int collectionIndex);
168 // NOLINTEND
169
170public:
171 // static functions
172 // NOLINTBEGIN
173 MCNAPI static ::NetworkWorldType _getNetworkWorldTypeFromCollection(::std::string const& collectionName);
174 // NOLINTEND
175
176public:
177 // constructor thunks
178 // NOLINTBEGIN
179 MCNAPI void* $ctor(
180 ::std::shared_ptr<::PlayScreenModel> model,
181 ::PlayScreenDefaultTab tab,
182 ::ui::ScreenTechStackSelector& screenTechStackSelector,
183 ::std::string const& dirtyLevelId
184 );
185 // NOLINTEND
186
187public:
188 // destructor thunk
189 // NOLINTBEGIN
190 MCNAPI void $dtor();
191 // NOLINTEND
192
193public:
194 // virtual function thunks
195 // NOLINTBEGIN
196 MCNAPI void $addStaticScreenVars(::Json::Value& globalVars);
197
198 MCNAPI void $onOpen();
199
200 MCNAPI void $onLeave();
201
202 MCNAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
203
204 MCNAPI ::ui::DirtyFlag $tick();
205
206 MCNAPI ::std::string $getAdditionalScreenInfo() const;
207
208 MCNAPI ::ui::SceneType $getSceneType() const;
209
210 MCNAPI ::std::string $_getButtonADescription();
211
213 // NOLINTEND
214};
Definition DlcChecker.h:5
Definition DlcUIWrapper.h:5
Definition Value.h:16
Definition MainMenuScreenController.h:5
Definition PlatformMultiplayerRestrictions.h:5
Definition PlayScreenController.h:5
MCAPI void _onMCTokenUpdated(::ServicesManager *)
MCAPI void $onLeave()
MCAPI::std::string $_getButtonADescription()
MCAPI void $dtor()
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 $onOpen()
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
STL namespace.
Definition LegacyWorldInfo.h:5
Definition LocalWorldInfo.h:5
Definition NetworkWorldInfo.h:5
Definition PermissionCheckResult.h:7