3#include "mc/_HeaderOutputPredefine.h"
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"
32namespace Core {
class Path; }
38 public ::std::enable_shared_from_this<::MinecraftScreenController> {
50 ::ll::TypedStorage<1, 1, bool> mShouldLeave;
51 ::ll::TypedStorage<8, 32, ::std::string> mExpectedScreenName;
57 MCAPI ~LeaveScreenInfo();
67 using BooleanOptionGetter = ::std::function<bool()>;
69 using IntegerOptionGetter = ::std::function<int()>;
71 using IntegerOptionSetter = ::std::function<void(
int)>;
73 using CollectionBooleanOptionGetter = ::std::function<bool(
int)>;
75 using CollectionIntegerOptionGetter = ::std::function<int(
int)>;
77 using CollectionIntegerOptionSetter = ::std::function<void(
int,
int)>;
79 using StepSliderOptionLabeller = ::std::function<::std::string(
int)>;
81 using IntValuesVectorGetter = ::std::function<::std::vector<int>()>;
83 using StringOptionGetter = ::std::function<::std::string()>;
85 using ProgressSliderOptionLabeller = ::std::function<::std::string(::std::string
const&,
float,
bool)>;
87 using FloatOptionGetter = ::std::function<float()>;
89 using FloatOptionSetter = ::std::function<void(
float)>;
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;
111 MinecraftScreenController();
116 virtual ~MinecraftScreenController() ;
118 virtual ::ui::ViewRequest tryExit() ;
120 virtual ::ui::DirtyFlag tick() ;
122 virtual uint getSceneId() const ;
124 virtual
void setSuspendInput(
bool suspendInput) ;
126 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput) ;
128 virtual
void leaveScreen(::std::
string const& expectedScreenName) ;
130 virtual
void onInit() ;
132 virtual
void onDelete() ;
134 virtual
void onOpen() ;
137 ::std::
string const& collectionName,
138 uint collectionNameHash,
140 ::std::
string const& bindingName,
141 uint bindingNameHash,
142 ::std::
string const& bindingNameOverride,
147 ::std::
string const& bindingName,
148 uint bindingNameHash,
149 ::std::
string const& bindingNameOverride,
153 virtual
bool _doesScreenHaveExitBehavior() const ;
155 virtual
bool _isStillValid() const;
157 virtual
bool _getGamepadHelperVisible() const;
159 virtual
bool _getMixedHelperVisible() const;
161 virtual
bool _getKeyboardHelperVisible() const;
163 virtual
bool _getGestureControlEnabled() const;
165 virtual ::std::
string _getButtonStartDescription();
167 virtual ::std::
string _getButtonADescription();
169 virtual ::std::
string _getButtonBDescription();
171 virtual ::std::
string _getButtonXDescription();
173 virtual ::std::
string _getButtonYDescription();
175 virtual ::std::
string _getButtonKeyboardDescription();
177 virtual ::std::
string _getScreenName() const;
179 virtual ::ui::ViewRequest
180 promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
186 MCAPI MinecraftScreenController(
187 ::std::shared_ptr<::MinecraftScreenModel> model,
188 ::ScreenExitBehavior exitBehavior,
189 bool usesErrorPopupInfo
192 MCAPI
void _attemptAddFriends(::std::function<
void()> callback);
194 MCAPI
void _attemptConnect(::std::function<
void(::Social::UserPlatformConnectionResult)> callback);
196 MCAPI
bool _attemptSignIn(
197 ::Social::IdentitySignInTrigger signInTrigger,
198 ::std::
string const& signInSource,
199 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback
202 MCAPI
void _attemptSigninOrSignup(
203 ::Social::IdentitySignInTrigger signInTrigger,
204 ::std::
string const& signInSource,
205 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
208 MCAPI
bool _checkRealmCreatePermissions();
210 MCFOLD
void _closeJsonDefinedControlPopup(::std::
string const& factory, ::std::
string const& name);
212 MCAPI
void _closeModalDialog();
215 _displayCustomModalPopup(::ModalScreenData const& modalData, ::std::function<
void(::ModalScreenButtonId)> callback);
217 MCAPI
void _displayJsonDefinedControlPopup(
218 ::UIPropertyBag const& popupBag,
219 ::std::
string const& factory,
220 ::std::
string const& ttsTitle,
221 ::std::
string const& ttsContent
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
232 MCAPI
void _displayPrivilegesBlockedModalPopup(
233 ::std::
string const& messageString,
234 ::std::
string const& closeButtonTitle,
235 bool showOpenAccountSettingButton
238 MCAPI
void _displaySignOutFailedModalPopup(::std::
string const& error);
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
248 MCAPI
void _gateRealmsWhenCrossPlatformIsDisabled(::std::function<
void()> callback);
250 MCAPI ::NetworkFilter _getNetworkFilter() const;
253 _getStepSliderValue(::std::function<
int()> getValue, ::std::
string const& valueBindingName,
bool continuousUpdate);
255 MCAPI
void _handleSignIn(
256 ::Social::IdentitySignInTrigger signInTrigger,
257 ::std::
string const& signInSource,
258 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
261 MCAPI
void _handleSignInFailure(
262 ::Social::MultiIdentitySigninResult const& signInResult,
263 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback,
267 MCAPI
bool _isApprovedLink(::std::
string const& hyperlink) const;
269 MCAPI
void _onAttemptSignInResult(
270 ::Social::MultiIdentitySigninResult const& result,
271 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback
274 MCAPI ::ui::ViewRequest _onModalEventReceived(::ModalScreenButtonId modalResult,
bool buttonClosesModal);
277 _promptEduSwitchAccounts(
bool showModal, ::std::
string const& buttonName, ::LastClickedSource lastClickedSource);
279 MCAPI
void _registerEventHandlers();
281 MCAPI
bool _resolveSafeZoneVisibility(::SafeZoneBuffer buffer) const;
283 MCAPI ::std::
string const
284 _retrieveBindingValueFromPropertyBag(::std::
string const& bindingName, ::UIPropertyBag& propertyBag) const;
286 MCAPI
void _setExitBehavior(::ScreenExitBehavior exitBehavior);
288 MCAPI
void _showLiveMultiplayerModal();
290 MCAPI
void _showMobileDataBlockedModal();
292 MCAPI
void _showNoWifiModal();
294 MCAPI
void _showServerCapacityFullModal();
296 MCAPI
bool _tryNavigateToXblUpsellScreen();
298 MCAPI
bool _tryShowSuspendWarningModal(::std::function<
void()> onConfirm);
300 MCAPI
void _updateRayTracingStatus();
302 MCFOLD
bool _usingGamepadBehavior() const;
304 MCFOLD
void closeJsonDefinedControlPopup(::std::
string const& factory, ::std::
string const& name);
306 MCAPI
void displayJsonDefinedControlPopup(
307 ::std::
string const& controlId,
308 ::std::
string const& factory,
309 ::std::
string const& name
313 exportPDF(::PDFOptions options, ::std::
string const& defaultOutName, ::std::function<
void(
bool)> onComplete);
316 exportWorld(::std::
string const& levelId, ::std::
string const& levelName, ::FileArchiver::ExportType type);
318 MCAPI
void gateOnPlatformSignInForStoreAccess(::std::function<
void()> callback);
320 MCAPI ::InputMode getInputMode() const;
322 MCAPI
bool isRayTracingEnabled() const;
324 MCFOLD
bool isUsingGamepadBehavior() const;
326 MCAPI ::ui::ViewRequest promptSignIn(
327 ::Social::IdentitySignInTrigger signInTrigger,
328 ::std::
string const& signInSource,
329 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
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
345 MCAPI
void setUpCallbacksForDropdownOption(
347 ::std::
string const& dropdownName,
348 ::std::unordered_map<::std::
string,
int> const& nameValuePairs,
349 ::std::unordered_map<
int, ::std::
string> const& valueLabelPairs
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
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
372 MCAPI
void setUpCallbacksForFloatOption(
374 ::std::
string const& sliderName,
375 ::std::
string const& optionFormat,
376 ::std::function<::std::
string(::std::
string const&,
float,
bool)> valueLabeller,
377 ::UpdateSliderProgressMode updateProgressMode
380 MCAPI
void setUpCallbacksForFloatOption(
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
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
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
418 MCAPI
void setUpCallbacksForStackPanelGrid(
419 ::std::
string const& gridCollectionPrefix,
420 ::std::function<
int()> widthCallback,
421 ::std::function<
int()> heightCallback,
422 ::std::function<
int()> itemCountCallback
425 MCAPI
void setUpCallbacksForStepOption(
427 ::std::
string const& sliderName,
428 ::std::function<::std::
string(
int)> valueLabeller,
429 bool continuousUpdate
432 MCAPI
void setUpCallbacksForStepOption(
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
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
461 MCAPI
void showPickFileDialog(::std::shared_ptr<::FilePickerSettings> settings);
463 MCAPI
void showPlayerProfile(::std::
string const& xuid, ::std::
string const& platformId);
465 MCAPI
void showRemoteStorageErrorModal(::Core::Path const& storageDirectory);
467 MCAPI ::ui::ViewRequest showSignIn();
473 MCAPI static ::std::
string const& getControllerSliderOptionTitle();
475 MCAPI static ::ModalScreenData getProfanityModalData();
477 MCAPI static ::OptionID const getSliderOptionID();
479 MCAPI static
int packItemInstance(::ItemInstance const& item);
485 MCAPI static ::std::
string const& defaultOptionFormat();
487 MCAPI static ::std::function<::std::
string(::std::
string const&,
float,
bool)>&
488 defaultProgressSliderOptionLabeller();
490 MCAPI static ::UpdateSliderProgressMode const& defaultUpdateSliderProgressMode();
492 MCAPI static ::OptionID& mSliderOptionID();
494 MCAPI static ::std::
string& mSliderOptionTitle();
501 $ctor(::std::shared_ptr<::MinecraftScreenModel> model, ::ScreenExitBehavior exitBehavior,
bool usesErrorPopupInfo);
513 MCAPI ::ui::ViewRequest $tryExit();
515 MCAPI ::ui::DirtyFlag $tick();
517 MCAPI uint $getSceneId() const;
519 MCAPI
void $setSuspendInput(
bool suspendInput);
521 MCAPI
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
523 MCAPI
void $leaveScreen(::std::
string const& expectedScreenName);
525 MCAPI
void $onInit();
527 MCAPI
void $onDelete();
529 MCAPI
void $onOpen();
532 ::std::
string const& collectionName,
533 uint collectionNameHash,
535 ::std::
string const& bindingName,
536 uint bindingNameHash,
537 ::std::
string const& bindingNameOverride,
542 ::std::
string const& bindingName,
543 uint bindingNameHash,
544 ::std::
string const& bindingNameOverride,
548 MCAPI
bool $_doesScreenHaveExitBehavior() const;
550 MCFOLD
bool $_isStillValid() const;
552 MCAPI
bool $_getGamepadHelperVisible() const;
554 MCAPI
bool $_getMixedHelperVisible() const;
556 MCAPI
bool $_getKeyboardHelperVisible() const;
558 MCAPI
bool $_getGestureControlEnabled() const;
560 MCAPI ::std::
string $_getButtonStartDescription();
562 MCFOLD ::std::
string $_getButtonADescription();
564 MCAPI ::std::
string $_getButtonBDescription();
566 MCFOLD ::std::
string $_getButtonXDescription();
568 MCAPI ::std::
string $_getButtonYDescription();
570 MCFOLD ::std::
string $_getButtonKeyboardDescription();
572 MCAPI ::std::
string $_getScreenName() const;
574 MCAPI ::ui::ViewRequest
575 $promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
Definition EnableNonOwnerReferences.h:7
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