3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/ProgressContentType.h"
9#include "mc/client/gui/SceneType.h"
10#include "mc/client/gui/screens/controllers/MinecraftScreenController.h"
11#include "mc/deps/application/common/utility/ScopedCPUBoost.h"
12#include "mc/deps/core/utility/BasicTimer.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/network/packet/ResourcePackResponse.h"
15#include "mc/world/level/GameType.h"
23namespace Json {
class Value; }
30 using ProgressDurationPair = ::std::pair<::std::string, float>;
35 ::ll::TypedStorage<1, 1, bool const> mSendProgressTelem;
36 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mProgressHandlerStartTime;
37 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::string, float>>> mProgressHandlerTimes;
38 ::ll::TypedStorage<1, 1, bool> mInitiated;
39 ::ll::TypedStorage<1, 1, bool> mNext;
40 ::ll::TypedStorage<1, 1, bool> mForceRenderBelow;
41 ::ll::TypedStorage<4, 4, float> mBackgroundFillAlpha;
42 ::ll::TypedStorage<8, 8, int64> mLocatingStartTime;
43 ::ll::TypedStorage<8, 32, ::std::string> mCalledFrom;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ProgressHandler>> mProgressHandler;
45 ::ll::TypedStorage<8, 40, ::std::deque<::std::unique_ptr<::ProgressHandler>>> mProgressHandlerList;
46 ::ll::TypedStorage<4, 4, float> mAccumulatedProgressPercentageForHandlers;
47 ::ll::TypedStorage<4, 4, int> mTotalNumberOfProgressHandlers;
48 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IContentManagerContext>> mContentManagerContext;
49 ::ll::TypedStorage<8, 8, ::ContentView*> mRealmsContentView;
50 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::Progress::ProgressTips>> mProgressTips;
51 ::ll::TypedStorage<8, 80, ::BasicTimer> mLoadingTitleTimer;
52 ::ll::TypedStorage<4, 4, int> mLoadingTitleSuffixIndex;
53 ::ll::TypedStorage<1, 1, bool> mUseLoadingTipMessage;
54 ::ll::TypedStorage<1, 1, bool> mRealmsPlusExpired;
55 ::ll::TypedStorage<1, 1, bool> mHasLoadedProgressMessages;
56 ::ll::TypedStorage<1, 1, bool> mCurrentMessageIsRealms;
57 ::ll::TypedStorage<1, 1, bool> mIsRealmsScreen;
58 ::ll::TypedStorage<8, 32, ::std::string> mCurrentProgressMessage;
59 ::ll::TypedStorage<4, 4, float> mCustomObfuscateTime;
60 ::ll::TypedStorage<8, 8, int64> mLastProgressMessageUpdate;
61 ::ll::TypedStorage<8, 8, int64 const> mProgressMessageInterval;
62 ::ll::TypedStorage<8, 8, int64> mLastAudioProgressNotificationUpdate;
63 ::ll::TypedStorage<1, 1, bool> mResourcePackPacketReceived;
64 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mRequiredPackList;
65 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mOptionalPackList;
66 ::ll::TypedStorage<8, 32, ::std::vector<bool>> mOptionalPackSelected;
67 ::ll::TypedStorage<8, 32, ::ScopedCPUBoost> mCPUBoost;
68 ::ll::TypedStorage<1, 1, bool> mHasTicked;
69 ::ll::TypedStorage<1, 1, bool> mIsCancellable;
70 ::ll::TypedStorage<1, 1, bool> mAllowSmallDownloads;
71 ::ll::TypedStorage<1, 1, bool> mPrecachedGameplayScreens;
72 ::ll::TypedStorage<1, 1, bool> mDisconnectScreenDisplayed;
73 ::ll::TypedStorage<4, 4, ::ProgressContentType> mProgressContentType;
74 ::ll::TypedStorage<4, 4, ::GameType> mGameType;
75 ::ll::TypedStorage<1, 1, ::ResourcePackResponse> mLastUserChoiceDownloadResponse;
76 ::ll::TypedStorage<1, 1, bool> mLastUserChoiceOptionalPacks;
77 ::ll::TypedStorage<1, 1, bool> mLastUserChoiceForceServerPacks;
78 ::ll::TypedStorage<1, 1, bool> mDownloadAlreadyConfirmedByUser;
79 ::ll::TypedStorage<1, 1, bool> mCurrentlyShowAddonWarning;
80 ::ll::TypedStorage<1, 1, bool> mServerJoined;
81 ::ll::TypedStorage<1, 1, bool> mPartyPartiallyEligible;
82 ::ll::TypedStorage<1, 1, bool> mPartyNotEligible;
87 ProgressScreenController();
92 virtual ~ProgressScreenController() ;
94 virtual void onCreation() ;
96 virtual void onOpen() ;
98 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification) ;
100 virtual ::ui::DirtyFlag tick() ;
102 virtual ::std::string getAdditionalScreenInfo() const ;
104 virtual
void addStaticScreenVars(::Json::Value& globalVars) ;
106 virtual
void addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const
109 virtual ::ui::SceneType getSceneType() const ;
111 virtual
bool _getGamepadHelperVisible() const ;
113 virtual ::std::
string _getButtonADescription() ;
119 MCAPI ProgressScreenController(
120 ::std::shared_ptr<::MinecraftScreenModel> model,
121 ::std::
string const& calledFrom,
122 ::std::unique_ptr<::ProgressHandler> progressInterface,
123 ::Bedrock::NotNullNonOwnerPtr<::Progress::ProgressTips> progressTips,
124 bool sendsProgressTelemetry,
126 bool forceRenderBelow,
128 float backgroundFillAlpha
131 MCAPI ProgressScreenController(
132 ::std::shared_ptr<::MinecraftScreenModel> model,
133 ::std::
string const& calledFrom,
134 ::std::deque<::std::unique_ptr<::ProgressHandler>> progressInterfaces,
135 ::Bedrock::NotNullNonOwnerPtr<::Progress::ProgressTips> progressTips,
136 bool sendsProgressTelemetry,
138 bool useLoadingTipMessage,
139 bool realmsPlusExpired,
140 bool allowSmallDownloads,
141 bool realmsProgressScreen,
142 ::ProgressContentType contentType,
147 MCAPI
void _confirmSpaceAvailable();
149 MCAPI ::std::
string const _getErrorCode() const;
151 MCAPI
float _getLoadingBarProgress() const;
153 MCAPI ::std::
string const _getProgressTitle() const;
155 MCAPI
bool _isInCancellableState() const;
157 MCAPI
void _openConfirmationDialog();
159 MCAPI
void _openPartyNotEligibleModal();
161 MCAPI
void _openPartyPartiallyEligibleModal();
163 MCAPI
void _registerEventHandlers();
165 MCAPI
void _registerProgressBindings();
167 MCAPI
void _setupProgressScreen(
bool loadAssets);
169 MCAPI
void _updateProgressMessage(int64 const& timeNow,
bool force);
176 ::std::shared_ptr<::MinecraftScreenModel> model,
177 ::std::
string const& calledFrom,
178 ::std::unique_ptr<::ProgressHandler> progressInterface,
179 ::Bedrock::NotNullNonOwnerPtr<::Progress::ProgressTips> progressTips,
180 bool sendsProgressTelemetry,
182 bool forceRenderBelow,
184 float backgroundFillAlpha
188 ::std::shared_ptr<::MinecraftScreenModel> model,
189 ::std::
string const& calledFrom,
190 ::std::deque<::std::unique_ptr<::ProgressHandler>> progressInterfaces,
191 ::Bedrock::NotNullNonOwnerPtr<::Progress::ProgressTips> progressTips,
192 bool sendsProgressTelemetry,
194 bool useLoadingTipMessage,
195 bool realmsPlusExpired,
196 bool allowSmallDownloads,
197 bool realmsProgressScreen,
198 ::ProgressContentType contentType,
213 MCAPI
void $onCreation();
215 MCAPI
void $onOpen();
217 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
219 MCAPI ::ui::DirtyFlag $tick();
221 MCFOLD ::std::
string $getAdditionalScreenInfo() const;
223 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
225 MCAPI
void $addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
227 MCFOLD ::ui::SceneType $getSceneType() const;
229 MCAPI
bool $_getGamepadHelperVisible() const;
231 MCFOLD ::std::
string $_getButtonADescription();
Definition ContentView.h:5
Definition IContentManagerContext.h:5
Definition MinecraftScreenController.h:5
Definition MinecraftScreenModel.h:5
Definition ProgressHandler.h:5
Definition ProgressScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition ProgressTips.h:7