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"
29namespace Core {
class Path; }
35 public ::std::enable_shared_from_this<::MinecraftScreenController> {
47 ::ll::TypedStorage<1, 1, bool> mShouldLeave;
48 ::ll::TypedStorage<8, 32, ::std::string> mExpectedScreenName;
52 using BooleanOptionGetter = ::std::function<bool()>;
54 using IntegerOptionGetter = ::std::function<int()>;
56 using IntegerOptionSetter = ::std::function<void(
int)>;
58 using CollectionBooleanOptionGetter = ::std::function<bool(
int)>;
60 using CollectionIntegerOptionGetter = ::std::function<int(
int)>;
62 using CollectionIntegerOptionSetter = ::std::function<void(
int,
int)>;
64 using StepSliderOptionLabeller = ::std::function<::std::string(
int)>;
66 using IntValuesVectorGetter = ::std::function<::std::vector<int>()>;
68 using StringOptionGetter = ::std::function<::std::string()>;
70 using ProgressSliderOptionLabeller = ::std::function<::std::string(::std::string
const&,
float,
bool)>;
72 using FloatOptionGetter = ::std::function<float()>;
74 using FloatOptionSetter = ::std::function<void(
float)>;
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;
96 MinecraftScreenController();
101 virtual ~MinecraftScreenController() ;
103 virtual ::ui::ViewRequest tryExit() ;
105 virtual ::ui::DirtyFlag tick() ;
107 virtual uint getSceneId() const ;
109 virtual
void setSuspendInput(
bool suspendInput) ;
111 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput) ;
113 virtual
void leaveScreen(::std::
string const& expectedScreenName) ;
115 virtual
void onInit() ;
117 virtual
void onDelete() ;
119 virtual
void onOpen() ;
122 ::std::
string const& collectionName,
123 uint collectionNameHash,
125 ::std::
string const& bindingName,
126 uint bindingNameHash,
127 ::std::
string const& bindingNameOverride,
132 ::std::
string const& bindingName,
133 uint bindingNameHash,
134 ::std::
string const& bindingNameOverride,
138 virtual
bool _doesScreenHaveExitBehavior() const ;
140 virtual
bool _isStillValid() const;
142 virtual
bool _getGamepadHelperVisible() const;
144 virtual
bool _getMixedHelperVisible() const;
146 virtual
bool _getKeyboardHelperVisible() const;
148 virtual
bool _getGestureControlEnabled() const;
150 virtual ::std::
string _getButtonStartDescription();
152 virtual ::std::
string _getButtonADescription();
154 virtual ::std::
string _getButtonBDescription();
156 virtual ::std::
string _getButtonXDescription();
158 virtual ::std::
string _getButtonYDescription();
160 virtual ::std::
string _getButtonKeyboardDescription();
162 virtual ::std::
string _getScreenName() const;
164 virtual ::ui::ViewRequest
165 promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
167 virtual
void _onInputModeChanged();
173 MCAPI MinecraftScreenController(
174 ::std::shared_ptr<::MinecraftScreenModel> model,
175 ::ScreenExitBehavior exitBehavior,
176 bool usesErrorPopupInfo
179 MCAPI
void _attemptAddFriends(::std::function<
void()> callback);
181 MCAPI
void _attemptConnect(::std::function<
void(::Social::UserPlatformConnectionResult)> callback);
183 MCAPI
bool _attemptSignIn(
184 ::Social::IdentitySignInTrigger signInTrigger,
185 ::std::
string const& signInSource,
186 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback
189 MCAPI
bool _checkRealmCreatePermissions();
191 MCAPI
void _closeModalDialog();
194 _displayCustomModalPopup(::ModalScreenData const& modalData, ::std::function<
void(::ModalScreenButtonId)> callback);
196 MCAPI
void _displayJsonDefinedControlPopup(
197 ::UIPropertyBag const& popupBag,
198 ::std::
string const& factory,
199 ::std::
string const& ttsTitle,
200 ::std::
string const& ttsContent
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
211 MCAPI
void _displayPrivilegesBlockedModalPopup(
212 ::std::
string const& messageString,
213 ::std::
string const& closeButtonTitle,
214 bool showOpenAccountSettingButton
217 MCAPI
void _displaySignOutFailedModalPopup(::std::
string const& error);
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
227 MCAPI
void _gateRealmsWhenCrossPlatformIsDisabled(::std::function<
void()> callback);
230 _getStepSliderValue(::std::function<
int()> getValue, ::std::
string const& valueBindingName,
bool continuousUpdate);
232 MCAPI
void _handleSignInFailure(
233 ::Social::MultiIdentitySigninResult const& signInResult,
234 ::std::function<
void(::Social::MultiIdentitySigninResult)> callback,
238 MCAPI
bool _isApprovedLink(::std::
string const& hyperlink) const;
240 MCAPI ::ui::ViewRequest _onModalEventReceived(::ModalScreenButtonId modalResult,
bool buttonClosesModal);
243 _promptEduSwitchAccounts(
bool showModal, ::std::
string const& buttonName, ::LastClickedSource lastClickedSource);
245 MCAPI
bool _resolveSafeZoneVisibility(::SafeZoneBuffer buffer) const;
247 MCAPI ::std::
string const
248 _retrieveBindingValueFromPropertyBag(::std::
string const& bindingName, ::UIPropertyBag& propertyBag) const;
250 MCAPI
void _showLiveMultiplayerModal();
252 MCAPI
void _showNoWifiModal();
254 MCAPI
bool _tryNavigateToXblUpsellScreen();
256 MCAPI
bool _tryShowSuspendWarningModal(::std::function<
void()> onConfirm);
258 MCAPI
void displayJsonDefinedControlPopup(
259 ::std::
string const& controlId,
260 ::std::
string const& factory,
261 ::std::
string const& name
265 exportPDF(::PDFOptions options, ::std::
string const& defaultOutName, ::std::function<
void(
bool)> onComplete);
268 exportWorld(::std::
string const& levelId, ::std::
string const& levelName, ::FileArchiver::ExportType type);
270 MCAPI
void gateOnPlatformSignInForStoreAccess(::std::function<
void()> callback);
272 MCAPI ::ui::ViewRequest promptSignIn(
273 ::Social::IdentitySignInTrigger signInTrigger,
274 ::std::
string const& signInSource,
275 ::std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
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
291 MCAPI
void setUpCallbacksForDropdownOption(
293 ::std::
string const& dropdownName,
294 ::std::unordered_map<::std::
string,
int> const& nameValuePairs,
295 ::std::unordered_map<
int, ::std::
string> const& valueLabelPairs
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
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
318 MCAPI
void setUpCallbacksForFloatOption(
320 ::std::
string const& sliderName,
321 ::std::
string const& optionFormat,
322 ::std::function<::std::
string(::std::
string const&,
float,
bool)> valueLabeller,
323 ::UpdateSliderProgressMode updateProgressMode
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
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
352 MCAPI
void setUpCallbacksForStackPanelGrid(
353 ::std::
string const& gridCollectionPrefix,
354 ::std::function<
int()> widthCallback,
355 ::std::function<
int()> heightCallback,
356 ::std::function<
int()> itemCountCallback
359 MCAPI
void setUpCallbacksForStepOption(
361 ::std::
string const& sliderName,
362 ::std::function<::std::
string(
int)> valueLabeller,
363 bool continuousUpdate
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
383 MCAPI
void showRemoteStorageErrorModal(::Core::Path const& storageDirectory);
385 MCAPI ::ui::ViewRequest showSignIn();
391 MCAPI static ::ModalScreenData getProfanityModalData();
397 MCAPI static ::std::
string const& defaultOptionFormat();
399 MCAPI static ::std::function<::std::
string(::std::
string const&,
float,
bool)>&
400 defaultProgressSliderOptionLabeller();
402 MCAPI static ::OptionID& mSliderOptionID();
404 MCAPI static ::std::
string& mSliderOptionTitle();
411 $ctor(::std::shared_ptr<::MinecraftScreenModel> model, ::ScreenExitBehavior exitBehavior,
bool usesErrorPopupInfo);
423 MCAPI ::ui::ViewRequest $tryExit();
425 MCAPI ::ui::DirtyFlag $tick();
427 MCAPI uint $getSceneId() const;
429 MCAPI
void $setSuspendInput(
bool suspendInput);
431 MCAPI
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
433 MCAPI
void $leaveScreen(::std::
string const& expectedScreenName);
435 MCFOLD
void $onInit();
437 MCAPI
void $onDelete();
439 MCAPI
void $onOpen();
442 ::std::
string const& collectionName,
443 uint collectionNameHash,
445 ::std::
string const& bindingName,
446 uint bindingNameHash,
447 ::std::
string const& bindingNameOverride,
452 ::std::
string const& bindingName,
453 uint bindingNameHash,
454 ::std::
string const& bindingNameOverride,
458 MCAPI
bool $_doesScreenHaveExitBehavior() const;
460 MCFOLD
bool $_isStillValid() const;
462 MCAPI
bool $_getGamepadHelperVisible() const;
464 MCAPI
bool $_getMixedHelperVisible() const;
466 MCAPI
bool $_getKeyboardHelperVisible() const;
468 MCAPI
bool $_getGestureControlEnabled() const;
470 MCAPI ::std::
string $_getButtonStartDescription();
472 MCFOLD ::std::
string $_getButtonADescription();
474 MCAPI ::std::
string $_getButtonBDescription();
476 MCFOLD ::std::
string $_getButtonXDescription();
478 MCAPI ::std::
string $_getButtonYDescription();
480 MCFOLD ::std::
string $_getButtonKeyboardDescription();
482 MCAPI ::std::
string $_getScreenName() const;
484 MCAPI ::ui::ViewRequest
485 $promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
487 MCFOLD
void $_onInputModeChanged();
Definition EnableNonOwnerReferences.h:7
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