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