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
23// auto generated forward declare list
24// clang-format off
26class GatheringConfig;
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
55 virtual ~SignOutObserver() /*override*/ = default;
56 // NOLINTEND
57
58 public:
59 // virtual function thunks
60 // NOLINTBEGIN
61 MCAPI void $onUserRemoved(::std::shared_ptr<::Social::User> const& user);
62 // NOLINTEND
63
64 public:
65 // vftables
66 // NOLINTBEGIN
67 MCNAPI static void** $vftable();
68 // NOLINTEND
69 };
70
71public:
72 // member variables
73 // NOLINTBEGIN
74 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::SocialButtonScreenController>> mSocialButtonScreenController;
75 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager>> mEntitlementManager;
76 ::ll::TypedStorage<1, 1, bool> mDirty;
77 ::ll::TypedStorage<4, 4, int> mPendingInvites;
78 ::ll::TypedStorage<1, 1, bool> mSigningIn;
79 ::ll::TypedStorage<1, 1, bool> mNewStoreOffersAvailable;
80 ::ll::TypedStorage<1, 1, bool> mErrorButtonHovered;
81 ::ll::TypedStorage<4, 4, int> mAnimationCount;
82 ::ll::TypedStorage<8, 32, ::std::string> mAnimatedMessage;
83 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastSigningInAnimation;
84 ::ll::TypedStorage<8, 8, int64> mNextContentFetchTime;
85 ::ll::TypedStorage<8, 8, int64> mNextImportTime;
86 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistenceTracker;
87 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::StartMenuScreenController::SignOutObserver>> mSignOutObserver;
88 ::ll::TypedStorage<8, 72, ::Social::ProfileImageOptions> mProfileImage;
89 ::ll::TypedStorage<1, 1, bool> mSetFocusToSignInButton;
90 ::ll::TypedStorage<1, 1, bool> mCapabilitiesChanged;
91 ::ll::TypedStorage<8, 336, ::TaskGroup> mTaskGroup;
92 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mStoreButtonArtSurface;
93 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ButtonArtSurface>> mPlayButtonArtSurface;
94 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mStoreButtonArtData;
95 ::ll::TypedStorage<8, 640, ::std::optional<::MessageData>> mPlayButtonArtData;
96 ::ll::TypedStorage<1, 1, bool> mStoreButtonHovered;
97 ::ll::TypedStorage<1, 1, bool> mPlayButtonHovered;
98 ::ll::TypedStorage<4, 4, int> mUnreadInvites;
99 ::ll::TypedStorage<1, 1, bool> mInitialInboxAnimationPlayed;
100 ::ll::TypedStorage<1, 1, bool> mShowingNewPlayerFlowButtons;
101 ::ll::TypedStorage<1, 1, bool> mNeedToPlayMainButtonsShowAnimation;
102 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GatheringConfig const>> mActiveGathering;
103 ::ll::TypedStorage<1, 1, bool> mOwnsRealmsSubscription;
104 ::ll::TypedStorage<1, 1, bool> mRealmsFetched;
105 ::ll::TypedStorage<4, 4, ::Realms::GenericStatus> mRealmsStatus;
106 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPendingInviteCountSubscriber;
107 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPrimaryUserSignInSubscription;
108 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mTrialModeUpdateSubscription;
109 ::ll::TypedStorage<1, 1, bool> mIsTrialModeEnabled;
110 // NOLINTEND
111
112public:
113 // prevent constructor by default
114 StartMenuScreenController();
115
116public:
117 // virtual functions
118 // NOLINTBEGIN
119 virtual ~StartMenuScreenController() /*override*/;
120
121 virtual void handleLicenseChanged() /*override*/;
122
123 virtual ::ui::SceneType getSceneType() const /*override*/;
124
125 virtual void onCreation() /*override*/;
126
127 virtual void queueTitleNarration() /*override*/;
128
129 virtual void onOpen() /*override*/;
130
131 virtual void onEntered() /*override*/;
132
133 virtual void onInit() /*override*/;
134
135 virtual ::ui::DirtyFlag tick() /*override*/;
136
137 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) /*override*/;
138
139 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
140
141 virtual void
142 onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state) /*override*/;
143
144 virtual ::std::string _getButtonYDescription() /*override*/;
145
146 virtual ::std::string _getButtonXDescription() /*override*/;
147
148 virtual ::ui::ViewRequest promptConnect(
149 bool signInOnSuccess,
150 ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback
151 ) /*override*/;
152 // NOLINTEND
153
154public:
155 // member functions
156 // NOLINTBEGIN
157 MCAPI StartMenuScreenController(
158 ::std::shared_ptr<::MainMenuScreenModel> model,
159 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
160 );
161
162 MCAPI bool _YHelperVisible() const;
163
164 MCAPI void _createProxy();
165
166 MCFOLD void _displayOpenExternalBrowserDialog(::std::function<void(::ModalScreenButtonId)> callback);
167
168 MCAPI void _fetchRealms();
169
170 MCAPI void _fetchUserOrientedContent(bool signInFailed);
171
172 MCAPI bool _hasAnimatedGatheringBadge() const;
173
174 MCAPI bool _hasValidGathering() const;
175
176 MCAPI bool _isNxAdHocEnabled() const;
177
178 MCAPI bool _isProfileButtonBEnabled() const;
179
180 MCAPI bool _isSignInVisible();
181
182 MCAPI bool _isUserSigningIn() const;
183
184 MCAPI ::ui::ViewRequest _navigateToProfileScreen();
185
186 MCAPI bool _realmsPromoEnabled() const;
187
188 MCAPI void _registerBindings();
189
190 MCAPI void _registerEventHandlers();
191
192 MCAPI void _registerGatheringBindings();
193
194 MCAPI void _registerPlayButtonArtBindings();
195
196 MCAPI void _registerSilentSignInCallbacks();
197
198 MCAPI void _registerStoreButtonArtBindings();
199
200 MCAPI void _tryImportPacks();
201
202 MCAPI void _updateButtonArt();
203
204 MCAPI void _updateGatherings();
205
206 MCAPI void _updateProfileImage();
207
208 MCAPI void _updateUnreadMessageCount();
209
210 MCAPI void resetInboxAnimation();
211
212 MCAPI void startInboxAnimation();
213 // NOLINTEND
214
215public:
216 // constructor thunks
217 // NOLINTBEGIN
218 MCAPI void* $ctor(
219 ::std::shared_ptr<::MainMenuScreenModel> model,
220 ::Bedrock::NotNullNonOwnerPtr<::IEntitlementManager> entitlementManager
221 );
222 // NOLINTEND
223
224public:
225 // destructor thunk
226 // NOLINTBEGIN
227 MCAPI void $dtor();
228 // NOLINTEND
229
230public:
231 // virtual function thunks
232 // NOLINTBEGIN
233 MCAPI void $handleLicenseChanged();
234
235 MCAPI ::ui::SceneType $getSceneType() const;
236
237 MCAPI void $onCreation();
238
239 MCAPI void $queueTitleNarration();
240
241 MCAPI void $onOpen();
242
243 MCAPI void $onEntered();
244
245 MCAPI void $onInit();
246
247 MCAPI ::ui::DirtyFlag $tick();
248
249 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
250
251 MCAPI void $addStaticScreenVars(::Json::Value& globalVars);
252
253 MCAPI void $onNotify(::edu::auth::GenericCredentialsEvent<::edu::auth::CredsAuthComplete> const& state);
254
255 MCAPI ::std::string $_getButtonYDescription();
256
257 MCAPI ::std::string $_getButtonXDescription();
258
259 MCAPI ::ui::ViewRequest
260 $promptConnect(bool signInOnSuccess, ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback);
261 // NOLINTEND
262
263public:
264 // vftables
265 // NOLINTBEGIN
267
268 MCNAPI static void** $vftableForScreenController();
269
270 MCNAPI static void** $vftable();
271 // NOLINTEND
272};
Definition ButtonArtSurface.h:5
Definition GatheringConfig.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:25
Definition CredsAuthComplete.h:7