LeviLamina
Loading...
Searching...
No Matches
IBuilderContext.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/game/MinecraftGameFeatures.h"
7#include "mc/client/gui/SettingsModalType.h"
8#include "mc/client/gui/SettingsTabIndex.h"
9#include "mc/client/realms/PlayerRoleActions.h"
10#include "mc/client/storagemanager/ContentType.h"
11#include "mc/deps/core/file/PathBuffer.h"
12#include "mc/deps/core/string/BasicStackString.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/deps/input/InputBindingMode.h"
15#include "mc/deps/input/InputMode.h"
16#include "mc/deps/input/enums/ButtonState.h"
17#include "mc/deps/input/enums/RawInputType.h"
18#include "mc/options/FeatureOptionID.h"
19#include "mc/options/GraphicsMode.h"
20
21// auto generated forward declare list
22// clang-format off
27class IOptionRegistry;
30class LocalPlayer;
32class PacketSender;
34class SoundOptions;
35class StoreCatalogRepository;
36class TaskGroup;
37class TrialManager;
40namespace Bedrock::PubSub { class Subscription; }
41namespace Core { class FilePathManager; }
42namespace SDL { class SessionBinaries; }
43namespace Settings { class Eventing; }
44namespace Social { class IGameConnectionInfoProvider; }
45namespace Social { class User; }
46namespace StorageManager { class WorldConverter; }
47// clang-format on
48
49namespace Settings::RegistryBuilder {
50
51class IBuilderContext {
52public:
53 // IBuilderContext inner types define
54 using OnReload = ::std::function<void(::ContentItemCollection&)>;
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ~IBuilderContext() = default;
60
61 virtual bool isPreGame() const = 0;
62
63 virtual bool isSplitScreenActive() const = 0;
64
65 virtual bool isPrimaryClient() const = 0;
66
67 virtual bool isPlayerInEditor() const = 0;
68
69 virtual bool isEditorModeOrInEditorWorld() const = 0;
70
71 virtual ::IOptionRegistry& getOptions() = 0;
72
73 virtual ::IOptionRegistry const& getOptions() const = 0;
74
75 virtual int getClampedGuiScaleOffset() const = 0;
76
77 virtual ::SoundOptions& getSoundOptions() = 0;
78
79 virtual ::Social::IGameConnectionInfoProvider const& getGameConnectionInfoProvider() const = 0;
80
81 virtual ::Settings::Eventing& getSettingsEventing() = 0;
82
83 virtual ::TrialManager& getTrialManager() = 0;
84
85 virtual ::MinecraftCommands& getCommands() = 0;
86
87 virtual ::InputSettingsHandler& getInputSettingsHandler() const = 0;
88
89 virtual ::WorldSettingsRules const& getWorldSettingsRules() const = 0;
90
91 virtual ::std::optional<::std::string> getFeedbackUrl() const = 0;
92
93 virtual bool supportsFullScreen() const = 0;
94
95 virtual bool supportsUserDefinedSafeZone() const = 0;
96
97 virtual int getRecommendedRenderDistance(::GraphicsMode graphicsMode) const = 0;
98
99 virtual int getMaxGUIScaleIndex() const = 0;
100
101 virtual int getOptimalGUIScaleIndex() const = 0;
102
103 virtual ::InputMode getCurrentInputMode() const = 0;
104
105 virtual ::Bedrock::PubSub::Subscription registerToUIScreenSizeChangedEvent(::std::function<void()> callback) = 0;
106
107 virtual ::Bedrock::PubSub::Subscription
108 registerLevelChangedListener(::std::function<void(::LevelDataWrapper&)> callback) = 0;
109
110 virtual ::Bedrock::PubSub::Subscription
111 registerToServerFormDataAvailableEvent(::std::function<void()> callback) = 0;
112
113 virtual bool isServerFormDataAvailable() const = 0;
114
115 virtual void pushRoute(::std::string_view route) = 0;
116
117 virtual void pushSettingsTabWithModal(::SettingsTabIndex tab, ::SettingsModalType modal) = 0;
118
119 virtual void pushToast(::std::string_view notification) = 0;
120
121 virtual bool supportsSetClipboard() = 0;
122
123 virtual void navigateToJsonSettingsTab(::SettingsTabIndex tab) = 0;
124
125 virtual void navigateToHowToPlayScreen() = 0;
126
127 virtual void setClipboardData(::std::string_view text) = 0;
128
129 virtual void launchURI(::std::string const& uri) = 0;
130
131 virtual void navigateToPendingRealmInvites() = 0;
132
133 virtual void setInputBindingMode(::InputBindingMode mode) = 0;
134
135 virtual ::InputBindingMode getInputBindingMode() const = 0;
136
137 virtual ::Bedrock::PubSub::Subscription
138 registerToRawInputEvent(::std::function<void(int, ::RawInputType, ::ButtonState, bool)> callback) = 0;
139
140 virtual ::Bedrock::PubSub::Subscription registerToInputModeEvent(::std::function<void(::InputMode)> callback) = 0;
141
142 virtual void navigateToCustomizeTouchControl() = 0;
143
144 virtual void refreshClientInputConfig() = 0;
145
146 virtual bool isGamePlayTipsEnabled() const = 0;
147
148 virtual bool isSignedInToXBL() const = 0;
149
150 virtual bool isEligibleForPauseFeature() const = 0;
151
152 virtual bool supportsTTSLanguage(::std::string_view languageCode) const = 0;
153
154 virtual bool isTTSEnabled() const = 0;
155
156 virtual bool isMultiplayerClient() const = 0;
157
158 virtual bool hasLocalPlayer() const = 0;
159
160 virtual bool hasCommands() const = 0;
161
162 virtual ::LevelDataWrapper& getLevelDataWrapper() = 0;
163
164 virtual ::PacketSender& getPacketSender() = 0;
165
166 virtual bool supportsKeyboardAndMouse() const = 0;
167
168 virtual bool supportsGamepad() const = 0;
169
170 virtual bool supportsTouch() const = 0;
171
172 virtual bool isInRealms() const = 0;
173
174 virtual bool isRealmsEnabled() const = 0;
175
176 virtual bool isRealmsOwner() const = 0;
177
178 virtual bool isRealmsFeatureEnabled(::std::string_view featureName) const = 0;
179
180 virtual bool canUserDoActionForCurrentRealm(::Realms::PlayerRoleActions action) const = 0;
181
182 virtual bool isConfigurableRealmsEnvironment() const = 0;
183
184 virtual bool isPartySystemAvailable() const = 0;
185
186 virtual bool isTrial() const = 0;
187
188 virtual ::SettingsScreenCapabilities const& getSettingsScreenCapabilities() const = 0;
189
190 virtual bool isEduEdition() const = 0;
191
192 virtual ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> getAdvancedGraphicsOptions() = 0;
193
194 virtual void navigateToGammaCalibrationScreen() = 0;
195
196 virtual bool supportsAntiAliasing() const = 0;
197
198 virtual bool supportsTextureStreaming() const = 0;
199
200 virtual bool supportsTexelAntiAliasing() const = 0;
201
202 virtual bool supportsAdvancedGraphics() const = 0;
203
204 virtual bool supportsDeferredGraphics() const = 0;
205
206 virtual bool supportsDeferredBlockLights() const = 0;
207
208 virtual bool supportsDeferredPointLights() const = 0;
209
210 virtual bool isDeferredTechnicalPreview() const = 0;
211
212 virtual bool localLightConfigContainsPointLight() const = 0;
213
214 virtual bool supportsImprovedInputResponse() const = 0;
215
216 virtual bool supportsSplitScreen() const = 0;
217
218 virtual bool isFeatureEnabled(::FeatureOptionID featureOptionId) const = 0;
219
220 virtual bool isGameFeatureEnabled(::MinecraftGameFeatures feature) const = 0;
221
222 virtual ::GameEditionProperties const& getGameEditionProperties() const = 0;
223
224 virtual ::std::optional<::std::reference_wrapper<::LocalPlayer>> const getLocalPlayer() const = 0;
225
226 virtual ::ProfanityContext const& getProfanityContext() const = 0;
227
228 virtual ::std::optional<::std::string> getMinecraftAccountId() const = 0;
229
230 virtual void showUserSettings() = 0;
231
232 virtual ::std::string getDeviceId() const = 0;
233
234 virtual bool shouldShowSignOutOfMicrosoftAccount() const = 0;
235
236 virtual void signOutFromMicrosoftAccount() = 0;
237
238 virtual void clearSignInData() = 0;
239
240 virtual void navigateToDeleteMicrosoftAccount() = 0;
241
242 virtual bool shouldShowRequestPlaystationNetworkAuthorization() const = 0;
243
244 virtual ::Bedrock::PubSub::Subscription
245 subscribeToShouldShowRequestPlaystationNetworkAuthorization(::std::function<void()> callback) = 0;
246
247 virtual void requestPlaystationNetworkAuthorization() = 0;
248
249 virtual bool isConsolePlatform() const = 0;
250
251 virtual bool isDesktopPlatform() const = 0;
252
253 virtual ::std::shared_ptr<::Social::User> const& getUser() const = 0;
254
255 virtual void navigateToTabbedUpsell() = 0;
256
257 virtual bool needPlatformConnectionBeforeXBLSignIn() const = 0;
258
259 virtual bool isWaitingForPlatformConnection() const = 0;
260
261 virtual void navigateToPlatformNetworkConnectConfirmation(::std::function<void(bool)> callback) = 0;
262
263 virtual void navigateToXBLSignIn() = 0;
264
265 virtual void navigateToContentLogHistoryScreen() = 0;
266
267 virtual bool isSupportingFramePacing() const = 0;
268
269 virtual bool doesFramePacingRequireVsync() const = 0;
270
271 virtual void cancelAllDownloads() const = 0;
272
273 virtual ::StoreCatalogRepository& getStoreCatalogRepository() const = 0;
274
275 virtual ::std::shared_ptr<::SDL::SessionBinaries> getServiceSessionBinaries() const = 0;
276
277 virtual ::Core::FilePathManager& getFilePathManager() const = 0;
278
279 virtual void navigateToDeleteAreaProgressScreen(
280 ::std::string_view screenName,
281 ::std::chrono::seconds const secondsBeforeUserCanCancel,
282 ::std::chrono::seconds const secondsBeforeClientShouldCancel,
283 ::std::vector<::std::tuple<::Core::PathBuffer<::Core::BasicStackString<char, 1024>>, ::std::string>> paths,
284 ::std::function<void()> completeCallback
285 ) const = 0;
286
287 virtual ::Bedrock::PubSub::Subscription registerToContentItemCollectionReload(
288 ::StorageManager::ContentType type,
289 ::std::function<void(::ContentItemCollection&)> callback
290 ) = 0;
291
292 virtual ::std::optional<::std::reference_wrapper<::ContentItemCollection>> const
293 getVisibleContentItemCollection(::StorageManager::ContentType type) const = 0;
294
295 virtual ::std::optional<::std::reference_wrapper<::StorageManager::WorldConverter>>
296 getStorageWorldConverter() const = 0;
297
298 virtual void navigateToFetchLegacyWorldsScreen() = 0;
299
300 virtual bool isCloudStorageManagerEnabled() const = 0;
301
302 virtual ::TaskGroup& getIOTaskGroup() = 0;
303
304 virtual ::Bedrock::NonOwnerPointer<::ContentLogFileEndPoint const> getContentLogFileEndPoint() const = 0;
305
306 virtual ::std::string getCurrentContentLogFileName() = 0;
307 // NOLINTEND
308};
309
310} // namespace Settings::RegistryBuilder
Definition Subscription.h:10
Definition ContentItemCollection.h:5
Definition ContentLogFileEndPoint.h:15
Definition FilePathManager.h:18
Definition GameEditionProperties.h:5
Definition IAdvancedGraphicsOptions.h:10
Definition IOptionRegistry.h:5
Definition InputSettingsHandler.h:5
Definition LevelDataWrapper.h:5
Definition LocalPlayer.h:5
Definition MinecraftCommands.h:33
Definition PacketSender.h:17
Definition ProfanityContext.h:5
Definition SessionBinaries.h:7
Definition Eventing.h:7
Definition IBuilderContext.h:7
Definition IGameConnectionInfoProvider.h:12
Definition User.h:7
Definition SoundOptions.h:5
Definition WorldConverter.h:7
Definition TaskGroup.h:86
Definition TrialManager.h:5
Definition WorldSettingsRules.h:5
Definition SettingsScreenCapabilities.h:8