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/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"
31namespace Core {
class Path; }
37 public ::std::enable_shared_from_this<::MinecraftScreenController> {
49 ::ll::TypedStorage<1, 1, bool> mShouldLeave;
50 ::ll::TypedStorage<8, 32, ::std::string> mExpectedScreenName;
56 MCAPI ~LeaveScreenInfo();
66 using BooleanOptionGetter = ::std::function<bool()>;
68 using IntegerOptionGetter = ::std::function<int()>;
70 using IntegerOptionSetter = ::std::function<void(
int)>;
72 using CollectionBooleanOptionGetter = ::std::function<bool(
int)>;
74 using CollectionIntegerOptionGetter = ::std::function<int(
int)>;
76 using CollectionIntegerOptionSetter = ::std::function<void(
int,
int)>;
78 using StepSliderOptionLabeller = ::std::function<::std::string(
int)>;
80 using IntValuesVectorGetter = ::std::function<::std::vector<int>()>;
82 using StringOptionGetter = ::std::function<::std::string()>;
84 using ProgressSliderOptionLabeller = ::std::function<::std::string(::std::string
const&,
float,
bool)>;
86 using FloatOptionGetter = ::std::function<float()>;
88 using FloatOptionSetter = ::std::function<void(
float)>;
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;
110 MinecraftScreenController();
115 virtual ~MinecraftScreenController() ;
117 virtual ::ui::ViewRequest tryExit() ;
119 virtual ::ui::DirtyFlag tick() ;
121 virtual uint getSceneId() const ;
123 virtual
void setSuspendInput(
bool suspendInput) ;
125 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput) ;
127 virtual
void leaveScreen(::std::
string const& expectedScreenName) ;
129 virtual
void onInit() ;
131 virtual
void onDelete() ;
133 virtual
void onOpen() ;
136 ::std::
string const& collectionName,
137 uint collectionNameHash,
139 ::std::
string const& bindingName,
140 uint bindingNameHash,
141 ::std::
string const& bindingNameOverride,
146 ::std::
string const& bindingName,
147 uint bindingNameHash,
148 ::std::
string const& bindingNameOverride,
152 virtual
bool _doesScreenHaveExitBehavior() const ;
154 virtual
bool _isStillValid() const;
156 virtual
bool _getGamepadHelperVisible() const;
158 virtual
bool _getMixedHelperVisible() const;
160 virtual
bool _getKeyboardHelperVisible() const;
162 virtual
bool _getGestureControlEnabled() const;
164 virtual ::std::
string _getButtonStartDescription();
166 virtual ::std::
string _getButtonADescription();
168 virtual ::std::
string _getButtonBDescription();
170 virtual ::std::
string _getButtonXDescription();
172 virtual ::std::
string _getButtonYDescription();
174 virtual ::std::
string _getButtonKeyboardDescription();
176 virtual ::std::
string _getScreenName() const;
178 virtual ::ui::ViewRequest
179 promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
185 MCAPI MinecraftScreenController(
186 ::std::shared_ptr<::MinecraftScreenModel> model,
187 ::ScreenExitBehavior exitBehavior,
188 bool usesErrorPopupInfo
191 MCAPI
void _attemptAddFriends(::std::function<
void()> callback);
193 MCAPI
void _attemptConnect(::std::function<
void(::Social::UserPlatformConnectionResult)> callback);
195 MCAPI
bool _attemptSignIn(
196 ::Social::IdentitySignInTrigger signInTrigger,
197 ::std::
string const& signInSource,
198 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback
201 MCAPI
void _attemptSigninOrSignup(
202 ::Social::IdentitySignInTrigger signInTrigger,
203 ::std::
string const& signInSource,
204 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
207 MCAPI
bool _checkRealmCreatePermissions();
209 MCAPI
void _closeModalDialog();
212 _displayCustomModalPopup(::ModalScreenData const& modalData, ::std::function<
void(::ModalScreenButtonId)> callback);
214 MCAPI
void _displayJsonDefinedControlPopup(
215 ::UIPropertyBag const& popupBag,
216 ::std::
string const& factory,
217 ::std::
string const& ttsTitle,
218 ::std::
string const& ttsContent
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
229 MCAPI
void _displayPrivilegesBlockedModalPopup(
230 ::std::
string const& messageString,
231 ::std::
string const& closeButtonTitle,
232 bool showOpenAccountSettingButton
235 MCAPI
void _displaySignOutFailedModalPopup(::std::
string const& error);
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
245 MCAPI
void _gateRealmsWhenCrossPlatformIsDisabled(::std::function<
void()> callback);
248 _getStepSliderValue(::std::function<
int()> getValue, ::std::
string const& valueBindingName,
bool continuousUpdate);
250 MCAPI
void _handleSignIn(
251 ::Social::IdentitySignInTrigger signInTrigger,
252 ::std::
string const& signInSource,
253 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
256 MCAPI
void _handleSignInFailure(
257 ::Social::MultiIdentitySigninResult const& signInResult,
258 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback,
262 MCAPI
bool _isApprovedLink(::std::
string const& hyperlink) const;
264 MCAPI
void _onAttemptSignInResult(
265 ::Social::MultiIdentitySigninResult const& result,
266 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback
269 MCAPI ::ui::ViewRequest _onModalEventReceived(::ModalScreenButtonId modalResult,
bool buttonClosesModal);
272 _promptEduSwitchAccounts(
bool showModal, ::std::
string const& buttonName, ::LastClickedSource lastClickedSource);
274 MCAPI
void _registerEventHandlers();
276 MCAPI
bool _resolveSafeZoneVisibility(::SafeZoneBuffer buffer) const;
278 MCAPI ::std::
string const
279 _retrieveBindingValueFromPropertyBag(::std::
string const& bindingName, ::UIPropertyBag& propertyBag) const;
281 MCAPI
void _showLiveMultiplayerModal();
283 MCAPI
void _showNoWifiModal();
285 MCAPI
bool _tryNavigateToXblUpsellScreen();
287 MCAPI
bool _tryShowSuspendWarningModal(::std::function<
void()> onConfirm);
289 MCAPI
void displayJsonDefinedControlPopup(
290 ::std::
string const& controlId,
291 ::std::
string const& factory,
292 ::std::
string const& name
296 exportPDF(::PDFOptions options, ::std::
string const& defaultOutName, ::std::function<
void(
bool)> onComplete);
299 exportWorld(::std::
string const& levelId, ::std::
string const& levelName, ::FileArchiver::ExportType type);
301 MCAPI
void gateOnPlatformSignInForStoreAccess(::std::function<
void()> callback);
303 MCAPI ::ui::ViewRequest promptSignIn(
304 ::Social::IdentitySignInTrigger signInTrigger,
305 ::std::
string const& signInSource,
306 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
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
322 MCAPI
void setUpCallbacksForDropdownOption(
324 ::std::
string const& dropdownName,
325 ::std::unordered_map<::std::
string,
int> const& nameValuePairs,
326 ::std::unordered_map<
int, ::std::
string> const& valueLabelPairs
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
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
349 MCAPI
void setUpCallbacksForFloatOption(
351 ::std::
string const& sliderName,
352 ::std::
string const& optionFormat,
353 ::std::function<::std::
string(::std::
string const&,
float,
bool)> valueLabeller,
354 ::UpdateSliderProgressMode updateProgressMode
357 MCAPI
void setUpCallbacksForFloatOption(
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
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
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
395 MCAPI
void setUpCallbacksForStackPanelGrid(
396 ::std::
string const& gridCollectionPrefix,
397 ::std::function<
int()> widthCallback,
398 ::std::function<
int()> heightCallback,
399 ::std::function<
int()> itemCountCallback
402 MCAPI
void setUpCallbacksForStepOption(
404 ::std::
string const& sliderName,
405 ::std::function<::std::
string(
int)> valueLabeller,
406 bool continuousUpdate
409 MCAPI
void setUpCallbacksForStepOption(
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
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
438 MCFOLD
void showPickFileDialog(::std::shared_ptr<::FilePickerSettings> settings);
440 MCAPI
void showRemoteStorageErrorModal(::Core::Path const& storageDirectory);
442 MCAPI ::ui::ViewRequest showSignIn();
448 MCAPI static ::ModalScreenData getProfanityModalData();
450 MCAPI static
int packItemInstance(::ItemInstance const& item);
456 MCAPI static ::std::
string const& defaultOptionFormat();
458 MCAPI static ::std::function<::std::
string(::std::
string const&,
float,
bool)>&
459 defaultProgressSliderOptionLabeller();
461 MCAPI static ::OptionID& mSliderOptionID();
463 MCAPI static ::std::
string& mSliderOptionTitle();
470 $ctor(::std::shared_ptr<::MinecraftScreenModel> model, ::ScreenExitBehavior exitBehavior,
bool usesErrorPopupInfo);
482 MCAPI ::ui::ViewRequest $tryExit();
484 MCAPI ::ui::DirtyFlag $tick();
486 MCAPI uint $getSceneId() const;
488 MCAPI
void $setSuspendInput(
bool suspendInput);
490 MCAPI
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
492 MCAPI
void $leaveScreen(::std::
string const& expectedScreenName);
494 MCAPI
void $onInit();
496 MCAPI
void $onDelete();
498 MCAPI
void $onOpen();
501 ::std::
string const& collectionName,
502 uint collectionNameHash,
504 ::std::
string const& bindingName,
505 uint bindingNameHash,
506 ::std::
string const& bindingNameOverride,
511 ::std::
string const& bindingName,
512 uint bindingNameHash,
513 ::std::
string const& bindingNameOverride,
517 MCAPI
bool $_doesScreenHaveExitBehavior() const;
519 MCFOLD
bool $_isStillValid() const;
521 MCFOLD
bool $_getGamepadHelperVisible() const;
523 MCAPI
bool $_getMixedHelperVisible() const;
525 MCAPI
bool $_getKeyboardHelperVisible() const;
527 MCAPI
bool $_getGestureControlEnabled() const;
529 MCAPI ::std::
string $_getButtonStartDescription();
531 MCFOLD ::std::
string $_getButtonADescription();
533 MCAPI ::std::
string $_getButtonBDescription();
535 MCFOLD ::std::
string $_getButtonXDescription();
537 MCAPI ::std::
string $_getButtonYDescription();
539 MCFOLD ::std::
string $_getButtonKeyboardDescription();
541 MCAPI ::std::
string $_getScreenName() const;
543 MCAPI ::ui::ViewRequest
544 $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