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