LeviLamina
Loading...
Searching...
No Matches
StartMenuScreenController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/certificates/identity/edu/CredentialsObserver.h"
7#include "mc/certificates/identity/edu/GenericCredentialsEvent.h"
8#include "mc/client/gui/DirtyFlag.h"
9#include "mc/client/gui/GameEventNotification.h"
10#include "mc/client/gui/SceneType.h"
11#include "mc/client/gui/ViewRequest.h"
12#include "mc/client/gui/screens/controllers/MainMenuScreenController.h"
13#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
14#include "mc/client/network/realms/GenericStatus.h"
15#include "mc/client/services/messaging/MessageData.h"
16#include "mc/client/social/ProfileImageOptions.h"
17#include "mc/client/social/UserListObserver.h"
18#include "mc/client/social/UserPlatformConnectionResult.h"
19#include "mc/deps/core/threading/TaskGroup.h"
20#include "mc/deps/core/utility/NonOwnerPointer.h"
21#include "mc/deps/core/utility/pub_sub/Subscription.h"
22#include "mc/network/ExperiencePromotion.h"
23
24// auto generated forward declare list
25// clang-format off
27class IEntitlementManager;
30namespace Json { class Value; }
31namespace Social { class User; }
32namespace edu::auth { struct CredsAuthComplete; }
33// clang-format on
34
36public:
37 // StartMenuScreenController inner types declare
38 // clang-format off
39 class SignOutObserver;
40 // clang-format on
41
42 // StartMenuScreenController inner types define
43 class SignOutObserver : public ::Social::UserListObserver {
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::StartMenuScreenController>> mStartMenuScreenController;
48 // NOLINTEND
49
50 public:
51 // virtual functions
52 // NOLINTBEGIN
53 virtual void onUserRemoved(::std::shared_ptr<::Social::User> const& user) /*override*/;
54 // NOLINTEND
55
56 public:
57 // virtual function thunks
58 // NOLINTBEGIN
59 MCAPI void $onUserRemoved(::std::shared_ptr<::Social::User> const& user);
60 // NOLINTEND
61
62 public:
63 // vftables
64 // NOLINTBEGIN
65 MCNAPI static void** $vftable();
66 // NOLINTEND
67 };
68
69public:
70 // member variables
71 // NOLINTBEGIN
72 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SocialButtonScreenController>> mSocialButtonScreenController;
73 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
74 ::ll::TypedStorage<1, 1, bool> mDirty;
75 ::ll::TypedStorage<4, 4, int> mPendingInvites;
76 ::ll::TypedStorage<1, 1, bool> mSigningIn;
77 ::ll::TypedStorage<1, 1, bool> mNewStoreOffersAvailable;
78 ::ll::TypedStorage<1, 1, bool> mErrorButtonHovered;
79 ::ll::TypedStorage<4, 4, int> mAnimationCount;
80 ::ll::TypedStorage<8, 32, ::std::string> mAnimatedMessage;
81 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastSigningInAnimation;
82 ::ll::TypedStorage<8, 8, int64> mNextContentFetchTime;
83 ::ll::TypedStorage<8, 8, int64> mNextImportTime;
84 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistenceTracker;
85 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::StartMenuScreenController::SignOutObserver>> mSignOutObserver;
86 ::ll::TypedStorage<8, 72, ::Social::ProfileImageOptions> mProfileImage;
87 ::ll::TypedStorage<1, 1, bool> mSetFocusToSignInButton;
88 ::ll::TypedStorage<1, 1, bool> mCapabilitiesChanged;
89 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
90 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mStoreButtonArtSurface;
91 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mPlayButtonArtSurface;
92 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mStoreButtonArtData;
93 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mPlayButtonArtData;
94 ::ll::TypedStorage<1, 1, bool> mStoreButtonHovered;
95 ::ll::TypedStorage<1, 1, bool> mPlayButtonHovered;
96 ::ll::TypedStorage<4, 4, int> mUnreadInvites;
97 ::ll::TypedStorage<1, 1, bool> mInitialInboxAnimationPlayed;
98 ::ll::TypedStorage<1, 1, bool> mShowingNewPlayerFlowButtons;
99 ::ll::TypedStorage<1, 1, bool> mNeedToPlayMainButtonsShowAnimation;
100 ::ll::TypedStorage<8, 248, ::std::optional<::ExperiencePromotion>> mActivePromotion;
101 ::ll::TypedStorage<1, 1, bool> mOwnsRealmsSubscription;
102 ::ll::TypedStorage<1, 1, bool> mRealmsFetched;
103 ::ll::TypedStorage<4, 4, ::Realms::GenericStatus> mRealmsStatus;
104 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPendingInviteCountSubscriber;
105 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPrimaryUserSignInSubscription;
106 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mTrialModeUpdateSubscription;
107 ::ll::TypedStorage<1, 1, bool> mIsTrialModeEnabled;
108 // NOLINTEND
109
110public:
111 // prevent constructor by default
112 StartMenuScreenController();
113
114public:
115 // virtual functions
116 // NOLINTBEGIN
117 virtual ~StartMenuScreenController() /*override*/;
118
119 virtual void handleLicenseChanged() /*override*/;
120
121 virtual ::ui::SceneType getSceneType() const /*override*/;
122
123 virtual void onCreation() /*override*/;
124
125 virtual void queueTitleNarration() /*override*/;
126
127 virtual void onOpen() /*override*/;
128
129 virtual void onEntered() /*override*/;
130
131 virtual void onInit() /*override*/;
132
133 virtual ::ui::DirtyFlag tick() /*override*/;
134
135 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) /*override*/;
136
137 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
138
139 virtual void
140 onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state) /*override*/;
141
142 virtual ::std::string _getButtonYDescription() /*override*/;
143
144 virtual ::std::string _getButtonXDescription() /*override*/;
145
146 virtual ::ui::ViewRequest promptConnect(
147 bool signInOnSuccess,
148 ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback
149 ) /*override*/;
150 // NOLINTEND
151
152public:
153 // member functions
154 // NOLINTBEGIN
155 MCAPI StartMenuScreenController(
156 ::std::shared_ptr<::MainMenuScreenModel> model,
157 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
158 );
159
160 MCAPI bool _YHelperVisible() const;
161
162 MCAPI void _createProxy();
163
164 MCFOLD void _displayBetaFeedbackDialog(::std::function<void(::ModalScreenButtonId)> callback);
165
166 MCAPI void _displayOpenExternalBrowserDialog(::std::function<void(::ModalScreenButtonId)> callback);
167
168 MCAPI void _fetchRealms();
169
170 MCAPI void _fetchUserOrientedContent(bool signInFailed);
171
172 MCAPI bool _isNxAdHocEnabled() const;
173
174 MCAPI bool _isProfileButtonAEnabled() const;
175
176 MCAPI bool _isProfileButtonBEnabled() const;
177
178 MCAPI bool _isSignInVisible();
179
180 MCAPI ::ui::ViewRequest _navigateToProfileScreen();
181
182 MCAPI bool _realmsPromoEnabled() const;
183
184 MCAPI void _registerBindings();
185
186 MCAPI void _registerEventHandlers();
187
188 MCAPI void _registerGatheringBindings();
189
190 MCAPI void _registerPlayButtonArtBindings();
191
192 MCAPI void _registerSilentSignInCallbacks();
193
194 MCAPI void _registerStoreButtonArtBindings();
195
196 MCAPI void _showDeviceSunsettingIfNeeded();
197
198 MCAPI void _tryImportPacks();
199
200 MCAPI void _updateButtonArt();
201
202 MCAPI void _updateProfileImage();
203
204 MCAPI void _updatePromotion();
205
206 MCAPI void _updateUnreadMessageCount();
207
208 MCAPI void resetInboxAnimation();
209
210 MCAPI void startInboxAnimation();
211
212 MCAPI void startMainMenuShowButtonsAnimation();
213
214 MCAPI void startNewPlayerHideButtonsAnimation();
215 // NOLINTEND
216
217public:
218 // constructor thunks
219 // NOLINTBEGIN
220 MCAPI void* $ctor(
221 ::std::shared_ptr<::MainMenuScreenModel> model,
222 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
223 );
224 // NOLINTEND
225
226public:
227 // destructor thunk
228 // NOLINTBEGIN
229 MCAPI void $dtor();
230 // NOLINTEND
231
232public:
233 // virtual function thunks
234 // NOLINTBEGIN
235 MCAPI void $handleLicenseChanged();
236
237 MCAPI ::ui::SceneType $getSceneType() const;
238
239 MCAPI void $onCreation();
240
241 MCAPI void $queueTitleNarration();
242
243 MCAPI void $onOpen();
244
245 MCAPI void $onEntered();
246
247 MCAPI void $onInit();
248
249 MCAPI ::ui::DirtyFlag $tick();
250
251 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
252
253 MCAPI void $addStaticScreenVars(::Json::Value& globalVars);
254
255 MCAPI void $onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state);
256
257 MCAPI ::std::string $_getButtonYDescription();
258
259 MCAPI ::std::string $_getButtonXDescription();
260
261 MCAPI ::ui::ViewRequest
262 $promptConnect(bool signInOnSuccess, ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback);
263 // NOLINTEND
264
265public:
266 // vftables
267 // NOLINTBEGIN
269
270 MCNAPI static void** $vftableForScreenController();
271
272 MCNAPI static void** $vftable();
273 // NOLINTEND
274};
Definition ButtonArtSurface.h:5
Definition Value.h:16
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
Definition SocialButtonScreenController.h:5
Definition User.h:7
Definition StartMenuScreenController.h:13
Definition StartMenuScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftable()
STL namespace.
Definition CredentialsObserver.h:7
Definition CredsAuthComplete.h:7