LeviLamina
Loading...
Searching...
No Matches
MinecraftScreenController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/certificates/identity/LastClickedSource.h"
7#include "mc/client/gui/DirtyFlag.h"
8#include "mc/client/gui/ViewRequest.h"
9#include "mc/client/gui/screens/ScreenController.h"
10#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
11#include "mc/client/gui/screens/controllers/ModalScreenButtonMode.h"
12#include "mc/client/gui/screens/controllers/SafeZoneBuffer.h"
13#include "mc/client/gui/screens/controllers/ScreenExitBehavior.h"
14#include "mc/client/gui/screens/controllers/UpdateSliderProgressMode.h"
15#include "mc/client/social/UserPlatformConnectionResult.h"
16#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
17#include "mc/deps/input/InputMode.h"
18#include "mc/identity/IdentitySignInTrigger.h"
19#include "mc/options/option_types/OptionID.h"
20#include "mc/world/level/FileArchiver.h"
21
22// auto generated forward declare list
23// clang-format off
26class ItemInstance;
28class UIPropertyBag;
29struct ModalScreenData;
30struct PDFOptions;
31namespace Core { class Path; }
32namespace Social { struct MultiIdentitySigninResult; }
33// clang-format on
34
37 public ::std::enable_shared_from_this<::MinecraftScreenController> {
38public:
39 // MinecraftScreenController inner types declare
40 // clang-format off
41 struct LeaveScreenInfo;
42 // clang-format on
43
44 // MinecraftScreenController inner types define
45 struct LeaveScreenInfo {
46 public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<1, 1, bool> mShouldLeave;
50 ::ll::TypedStorage<8, 32, ::std::string> mExpectedScreenName;
51 // NOLINTEND
52
53 public:
54 // member functions
55 // NOLINTBEGIN
56 MCAPI ~LeaveScreenInfo();
57 // NOLINTEND
58
59 public:
60 // destructor thunk
61 // NOLINTBEGIN
62 MCFOLD void $dtor();
63 // NOLINTEND
64 };
65
66 using BooleanOptionGetter = ::std::function<bool()>;
67
68 using IntegerOptionGetter = ::std::function<int()>;
69
70 using IntegerOptionSetter = ::std::function<void(int)>;
71
72 using CollectionBooleanOptionGetter = ::std::function<bool(int)>;
73
74 using CollectionIntegerOptionGetter = ::std::function<int(int)>;
75
76 using CollectionIntegerOptionSetter = ::std::function<void(int, int)>;
77
78 using StepSliderOptionLabeller = ::std::function<::std::string(int)>;
79
80 using IntValuesVectorGetter = ::std::function<::std::vector<int>()>;
81
82 using StringOptionGetter = ::std::function<::std::string()>;
83
84 using ProgressSliderOptionLabeller = ::std::function<::std::string(::std::string const&, float, bool)>;
85
86 using FloatOptionGetter = ::std::function<float()>;
87
88 using FloatOptionSetter = ::std::function<void(float)>;
89
90public:
91 // member variables
92 // NOLINTBEGIN
93 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::MinecraftScreenModel>> mMinecraftScreenModel;
94 ::ll::TypedStorage<4, 4, ::ScreenExitBehavior> mExitBehavior;
95 ::ll::TypedStorage<4, 4, ::InputMode> mInputMode;
96 ::ll::TypedStorage<4, 4, ::InputMode> mPreviousInputMode;
97 ::ll::TypedStorage<1, 1, bool> mPlayerDied;
98 ::ll::TypedStorage<8, 64, ::std::function<void(::ModalScreenButtonId)>> mModalDialogResultCallback;
99 ::ll::TypedStorage<8, 32, ::std::string> mTTSTitle;
100 ::ll::TypedStorage<8, 32, ::std::string> mTTSDialogMessage;
101 ::ll::TypedStorage<8, 40, ::MinecraftScreenController::LeaveScreenInfo> mLeaveScreen;
102 ::ll::TypedStorage<1, 1, bool> mRayTracingActive;
103 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::vector<bool>>> mDropDownActive;
104 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, int>> mStepSliderValues;
105 ::ll::TypedStorage<1, 1, bool> mIsShowErrorScreenInProgress;
106 // NOLINTEND
107
108public:
109 // prevent constructor by default
110 MinecraftScreenController();
111
112public:
113 // virtual functions
114 // NOLINTBEGIN
115 virtual ~MinecraftScreenController() /*override*/;
116
117 virtual ::ui::ViewRequest tryExit() /*override*/;
118
119 virtual ::ui::DirtyFlag tick() /*override*/;
120
121 virtual uint getSceneId() const /*override*/;
122
123 virtual void setSuspendInput(bool suspendInput) /*override*/;
124
125 virtual void setSuspendDirectionalInput(bool suspendDirectionalInput) /*override*/;
126
127 virtual void leaveScreen(::std::string const& expectedScreenName) /*override*/;
128
129 virtual void onInit() /*override*/;
130
131 virtual void onDelete() /*override*/;
132
133 virtual void onOpen() /*override*/;
134
135 virtual bool bind(
136 ::std::string const& collectionName,
137 uint collectionNameHash,
138 int collectionIndex,
139 ::std::string const& bindingName,
140 uint bindingNameHash,
141 ::std::string const& bindingNameOverride,
142 ::UIPropertyBag& bag
143 ) /*override*/;
144
145 virtual bool bind(
146 ::std::string const& bindingName,
147 uint bindingNameHash,
148 ::std::string const& bindingNameOverride,
149 ::UIPropertyBag& bag
150 ) /*override*/;
151
152 virtual bool _doesScreenHaveExitBehavior() const /*override*/;
153
154 virtual bool _isStillValid() const;
155
156 virtual bool _getGamepadHelperVisible() const;
157
158 virtual bool _getMixedHelperVisible() const;
159
160 virtual bool _getKeyboardHelperVisible() const;
161
162 virtual bool _getGestureControlEnabled() const;
163
164 virtual ::std::string _getButtonStartDescription();
165
166 virtual ::std::string _getButtonADescription();
167
168 virtual ::std::string _getButtonBDescription();
169
170 virtual ::std::string _getButtonXDescription();
171
172 virtual ::std::string _getButtonYDescription();
173
174 virtual ::std::string _getButtonKeyboardDescription();
175
176 virtual ::std::string _getScreenName() const;
177
178 virtual ::ui::ViewRequest
179 promptConnect(bool signInOnSuccess, ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback);
180 // NOLINTEND
181
182public:
183 // member functions
184 // NOLINTBEGIN
185 MCAPI MinecraftScreenController(
186 ::std::shared_ptr<::MinecraftScreenModel> model,
187 ::ScreenExitBehavior exitBehavior,
188 bool usesErrorPopupInfo
189 );
190
191 MCAPI void _attemptAddFriends(::std::function<void()> callback);
192
193 MCAPI void _attemptConnect(::std::function<void(::Social::UserPlatformConnectionResult)> callback);
194
195 MCAPI bool _attemptSignIn(
196 ::Social::IdentitySignInTrigger signInTrigger,
197 ::std::string const& signInSource,
198 ::std::function<void(::Social::MultiIdentitySigninResult)> callback
199 );
200
201 MCAPI void _attemptSigninOrSignup(
202 ::Social::IdentitySignInTrigger signInTrigger,
203 ::std::string const& signInSource,
204 ::std::function<void(::Social::MultiIdentitySigninResult)> signInCallback
205 );
206
207 MCAPI bool _checkRealmCreatePermissions();
208
209 MCAPI void _closeModalDialog();
210
211 MCAPI void
212 _displayCustomModalPopup(::ModalScreenData const& modalData, ::std::function<void(::ModalScreenButtonId)> callback);
213
214 MCAPI void _displayJsonDefinedControlPopup(
215 ::UIPropertyBag const& popupBag,
216 ::std::string const& factory,
217 ::std::string const& ttsTitle,
218 ::std::string const& ttsContent
219 );
220
221 MCAPI void _displayJsonDefinedControlPopup(
222 ::std::string const& controlId,
223 ::std::string const& factory,
224 ::std::string const& name,
225 ::std::string const& ttsTitle,
226 ::std::string const& ttsContent
227 );
228
229 MCAPI void _displayPrivilegesBlockedModalPopup(
230 ::std::string const& messageString,
231 ::std::string const& closeButtonTitle,
232 bool showOpenAccountSettingButton
233 );
234
235 MCAPI void _displaySignOutFailedModalPopup(::std::string const& error);
236
237 MCAPI void _displayStandardModalPopup(
238 ::std::string const& title,
239 ::std::string const& message,
240 ::ModalScreenButtonMode buttonNumber,
241 ::std::function<void(bool)> callback,
242 ::std::string const& telemetryOverride
243 );
244
245 MCAPI void _gateRealmsWhenCrossPlatformIsDisabled(::std::function<void()> callback);
246
247 MCAPI int
248 _getStepSliderValue(::std::function<int()> getValue, ::std::string const& valueBindingName, bool continuousUpdate);
249
250 MCAPI void _handleSignIn(
251 ::Social::IdentitySignInTrigger signInTrigger,
252 ::std::string const& signInSource,
253 ::std::function<void(::Social::MultiIdentitySigninResult)> signInCallback
254 );
255
256 MCAPI void _handleSignInFailure(
257 ::Social::MultiIdentitySigninResult const& signInResult,
258 ::std::function<void(::Social::MultiIdentitySigninResult)> callback,
259 bool isAutoSignIn
260 );
261
262 MCAPI bool _isApprovedLink(::std::string const& hyperlink) const;
263
264 MCAPI void _onAttemptSignInResult(
265 ::Social::MultiIdentitySigninResult const& result,
266 ::std::function<void(::Social::MultiIdentitySigninResult)> callback
267 );
268
269 MCAPI ::ui::ViewRequest _onModalEventReceived(::ModalScreenButtonId modalResult, bool buttonClosesModal);
270
271 MCAPI void
272 _promptEduSwitchAccounts(bool showModal, ::std::string const& buttonName, ::LastClickedSource lastClickedSource);
273
274 MCAPI void _registerEventHandlers();
275
276 MCAPI bool _resolveSafeZoneVisibility(::SafeZoneBuffer buffer) const;
277
278 MCAPI ::std::string const
279 _retrieveBindingValueFromPropertyBag(::std::string const& bindingName, ::UIPropertyBag& propertyBag) const;
280
281 MCAPI void _showLiveMultiplayerModal();
282
283 MCAPI void _showNoWifiModal();
284
285 MCAPI bool _tryNavigateToXblUpsellScreen();
286
287 MCAPI bool _tryShowSuspendWarningModal(::std::function<void()> onConfirm);
288
289 MCAPI void displayJsonDefinedControlPopup(
290 ::std::string const& controlId,
291 ::std::string const& factory,
292 ::std::string const& name
293 );
294
295 MCAPI void
296 exportPDF(::PDFOptions options, ::std::string const& defaultOutName, ::std::function<void(bool)> onComplete);
297
298 MCAPI void
299 exportWorld(::std::string const& levelId, ::std::string const& levelName, ::FileArchiver::ExportType type);
300
301 MCAPI void gateOnPlatformSignInForStoreAccess(::std::function<void()> callback);
302
303 MCAPI ::ui::ViewRequest promptSignIn(
304 ::Social::IdentitySignInTrigger signInTrigger,
305 ::std::string const& signInSource,
306 ::std::function<void(::Social::MultiIdentitySigninResult)> signInCallback
307 );
308
309 MCAPI ::std::shared_ptr<::DropdownScreenController> setUpCallbacksForCollectionDropdownOption(
310 ::std::string const& collectionName,
311 int const& collectionSize,
312 ::std::string const& dropdownName,
313 ::std::string const& dropdownToggleLabelBindingName,
314 ::std::unordered_map<::std::string, int> const& nameValuePairs,
315 ::std::unordered_map<int, ::std::string> const& valueLabelPairs,
316 ::std::string const& enabledBindingName,
317 ::std::function<bool(int)> isEnabled,
318 ::std::function<int(int)> getValue,
319 ::std::function<void(int, int)> setValue
320 );
321
322 MCAPI void setUpCallbacksForDropdownOption(
323 ::OptionID optionID,
324 ::std::string const& dropdownName,
325 ::std::unordered_map<::std::string, int> const& nameValuePairs,
326 ::std::unordered_map<int, ::std::string> const& valueLabelPairs
327 );
328
329 MCAPI void setUpCallbacksForDropdownOption(
330 ::std::string const& dropdownName,
331 ::std::string const& dropdownToggleLabelBindingName,
332 ::std::unordered_map<::std::string, int> const& nameValuePairs,
333 ::std::unordered_map<int, ::std::string> const& nameLabelPairs,
334 ::std::function<int()> getValue,
335 ::std::function<void(int)> setValue
336 );
337
338 MCAPI void setUpCallbacksForDropdownOption(
339 ::std::string const& dropdownName,
340 ::std::string const& dropdownToggleLabelBindingName,
341 ::std::unordered_map<::std::string, int> const& nameValuePairs,
342 ::std::unordered_map<int, ::std::string> const& valueLabelPairs,
343 ::std::string const& enabledBindingName,
344 ::std::function<bool()> isEnabled,
345 ::std::function<int()> getValue,
346 ::std::function<void(int)> setValue
347 );
348
349 MCAPI void setUpCallbacksForFloatOption(
350 ::OptionID optionID,
351 ::std::string const& sliderName,
352 ::std::string const& optionFormat,
353 ::std::function<::std::string(::std::string const&, float, bool)> valueLabeller,
354 ::UpdateSliderProgressMode updateProgressMode
355 );
356
357 MCAPI void setUpCallbacksForFloatOption(
358 ::OptionID optionID,
359 ::std::string const& sliderName,
360 ::std::string const& valueBindingName,
361 ::std::string const& enabledBindingName,
362 ::std::string const& labelBindingName,
363 ::std::string const& ttsBindingName,
364 ::std::string const& optionFormat,
365 ::std::function<::std::string(::std::string const&, float, bool)> valueLabeller,
366 ::UpdateSliderProgressMode updateProgressMode
367 );
368
369 MCAPI void setUpCallbacksForFloatOption(
370 ::std::string const& sliderName,
371 ::std::string const& valueBindingName,
372 ::std::string const& enabledBindingName,
373 ::std::string const& labelBindingName,
374 ::std::string const& ttsBindingName,
375 ::std::function<::std::string()> getOptionName,
376 ::std::function<bool()> isEnabled,
377 ::std::function<float()> getValue,
378 ::std::function<void(float)> setValue,
379 ::std::function<float()> getMin,
380 ::std::function<float()> getMax,
381 ::std::string const& optionFormat,
382 ::std::function<::std::string(::std::string const&, float, bool)> valueLabeller,
383 ::UpdateSliderProgressMode updateProgressMode
384 );
385
386 MCAPI void setUpCallbacksForNestedButtonInCollection(
387 ::std::string const& nestedBaseButtonId,
388 ::std::string const& nestedControlEnabledBinding,
389 ::std::string firstControlName,
390 ::std::function<int(::UIPropertyBag&)> indexSelectionFunc,
391 ::std::function<bool(::UIPropertyBag&, int)> visibilityFunction,
392 ::std::vector<uint> ignoredControls
393 );
394
395 MCAPI void setUpCallbacksForStackPanelGrid(
396 ::std::string const& gridCollectionPrefix,
397 ::std::function<int()> widthCallback,
398 ::std::function<int()> heightCallback,
399 ::std::function<int()> itemCountCallback
400 );
401
402 MCAPI void setUpCallbacksForStepOption(
403 ::OptionID optionID,
404 ::std::string const& sliderName,
405 ::std::function<::std::string(int)> valueLabeller,
406 bool continuousUpdate
407 );
408
409 MCAPI void setUpCallbacksForStepOption(
410 ::OptionID optionID,
411 ::std::string const& sliderName,
412 ::std::string const& valueBindingName,
413 ::std::string const& enabledBindingName,
414 ::std::string const& stepsBindingName,
415 ::std::string const& labelBindingName,
416 ::std::string const& ttsBindingName,
417 ::std::function<::std::string(int)> valueLabeller,
418 bool continuousUpdate
419 );
420
421 MCAPI void setUpCallbacksForStepOption(
422 ::std::string const& sliderName,
423 ::std::string const& valueBindingName,
424 ::std::string const& enabledBindingName,
425 ::std::string const& stepsBindingName,
426 ::std::string const& labelBindingName,
427 ::std::string const& ttsBindingName,
428 ::std::function<::std::string()> getOptionName,
429 ::std::function<bool()> isEnabled,
430 ::std::function<::std::vector<int>()> getValues,
431 ::std::function<int()> getValue,
432 ::std::function<void(int)> setValue,
433 ::std::function<::std::string(int)> valueLabeller,
434 bool continuousUpdate,
435 ::OptionID sliderOptionID
436 );
437
438 MCFOLD void showPickFileDialog(::std::shared_ptr<::FilePickerSettings> settings);
439
440 MCAPI void showRemoteStorageErrorModal(::Core::Path const& storageDirectory);
441
442 MCAPI ::ui::ViewRequest showSignIn();
443 // NOLINTEND
444
445public:
446 // static functions
447 // NOLINTBEGIN
448 MCAPI static ::ModalScreenData getProfanityModalData();
449
450 MCAPI static int packItemInstance(::ItemInstance const& item);
451 // NOLINTEND
452
453public:
454 // static variables
455 // NOLINTBEGIN
456 MCAPI static ::std::string const& defaultOptionFormat();
457
458 MCAPI static ::std::function<::std::string(::std::string const&, float, bool)>&
459 defaultProgressSliderOptionLabeller();
460
461 MCAPI static ::OptionID& mSliderOptionID();
462
463 MCAPI static ::std::string& mSliderOptionTitle();
464 // NOLINTEND
465
466public:
467 // constructor thunks
468 // NOLINTBEGIN
469 MCAPI void*
470 $ctor(::std::shared_ptr<::MinecraftScreenModel> model, ::ScreenExitBehavior exitBehavior, bool usesErrorPopupInfo);
471 // NOLINTEND
472
473public:
474 // destructor thunk
475 // NOLINTBEGIN
476 MCAPI void $dtor();
477 // NOLINTEND
478
479public:
480 // virtual function thunks
481 // NOLINTBEGIN
482 MCAPI ::ui::ViewRequest $tryExit();
483
484 MCAPI ::ui::DirtyFlag $tick();
485
486 MCAPI uint $getSceneId() const;
487
488 MCAPI void $setSuspendInput(bool suspendInput);
489
490 MCAPI void $setSuspendDirectionalInput(bool suspendDirectionalInput);
491
492 MCAPI void $leaveScreen(::std::string const& expectedScreenName);
493
494 MCAPI void $onInit();
495
496 MCAPI void $onDelete();
497
498 MCAPI void $onOpen();
499
500 MCAPI bool $bind(
501 ::std::string const& collectionName,
502 uint collectionNameHash,
503 int collectionIndex,
504 ::std::string const& bindingName,
505 uint bindingNameHash,
506 ::std::string const& bindingNameOverride,
507 ::UIPropertyBag& bag
508 );
509
510 MCAPI bool $bind(
511 ::std::string const& bindingName,
512 uint bindingNameHash,
513 ::std::string const& bindingNameOverride,
514 ::UIPropertyBag& bag
515 );
516
517 MCAPI bool $_doesScreenHaveExitBehavior() const;
518
519 MCFOLD bool $_isStillValid() const;
520
521 MCFOLD bool $_getGamepadHelperVisible() const;
522
523 MCAPI bool $_getMixedHelperVisible() const;
524
525 MCAPI bool $_getKeyboardHelperVisible() const;
526
527 MCAPI bool $_getGestureControlEnabled() const;
528
529 MCAPI ::std::string $_getButtonStartDescription();
530
531 MCFOLD ::std::string $_getButtonADescription();
532
533 MCAPI ::std::string $_getButtonBDescription();
534
535 MCFOLD ::std::string $_getButtonXDescription();
536
537 MCAPI ::std::string $_getButtonYDescription();
538
539 MCFOLD ::std::string $_getButtonKeyboardDescription();
540
541 MCAPI ::std::string $_getScreenName() const;
542
543 MCAPI ::ui::ViewRequest
544 $promptConnect(bool signInOnSuccess, ::std::function<void(::Social::UserPlatformConnectionResult)> signInCallback);
545 // NOLINTEND
546
547public:
548 // vftables
549 // NOLINTBEGIN
551
552 MCNAPI static void** $vftableForScreenController();
553 // NOLINTEND
554};
Definition EnableNonOwnerReferences.h:7
Definition Path.h:17
Definition DropdownScreenController.h:5
Definition FilePickerSettings.h:5
Definition ItemInstance.h:15
Definition MinecraftScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition MinecraftScreenModel.h:5
Definition ScreenController.h:5
Definition UIPropertyBag.h:5
Definition MinecraftScreenController.h:13
Definition ModalScreenData.h:5
Definition PDFOptions.h:5
Definition MultiIdentitySigninResult.h:7