3#include "mc/_HeaderOutputPredefine.h"
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/storagemanager/ContentType.h"
10#include "mc/deps/core/file/PathBuffer.h"
11#include "mc/deps/core/string/BasicStackString.h"
12#include "mc/deps/core/utility/NonOwnerPointer.h"
13#include "mc/deps/input/InputBindingMode.h"
14#include "mc/deps/input/InputMode.h"
15#include "mc/deps/input/enums/ButtonState.h"
16#include "mc/deps/input/enums/RawInputType.h"
17#include "mc/options/FeatureOptionID.h"
18#include "mc/options/GraphicsMode.h"
33class StoreCatalogRepository;
40namespace Settings {
class Eventing; }
42namespace Social {
class User; }
45namespace Settings::RegistryBuilder {
50 using OnReload = ::std::function<void(::ContentItemCollection&)>;
55 virtual ~IBuilderContext() =
default;
57 virtual bool isPreGame()
const = 0;
59 virtual bool isSplitScreenActive()
const = 0;
61 virtual bool isPrimaryClient()
const = 0;
63 virtual bool isPlayerInEditor()
const = 0;
65 virtual bool isEditorModeOrInEditorWorld()
const = 0;
67 virtual ::IOptionRegistry& getOptions() = 0;
69 virtual ::IOptionRegistry
const& getOptions()
const = 0;
71 virtual int getClampedGuiScaleOffset()
const = 0;
73 virtual ::SoundOptions& getSoundOptions() = 0;
75 virtual ::Social::IGameConnectionInfoProvider
const& getGameConnectionInfoProvider()
const = 0;
77 virtual ::Settings::Eventing& getSettingsEventing() = 0;
79 virtual ::TrialManager& getTrialManager() = 0;
81 virtual ::MinecraftCommands& getCommands() = 0;
83 virtual ::InputSettingsHandler& getInputSettingsHandler()
const = 0;
85 virtual ::WorldSettingsRules
const& getWorldSettingsRules()
const = 0;
87 virtual ::std::optional<::std::string> getFeedbackUrl()
const = 0;
89 virtual bool supportsFullScreen()
const = 0;
91 virtual bool supportsUserDefinedSafeZone()
const = 0;
93 virtual int getRecommendedRenderDistance(::GraphicsMode graphicsMode)
const = 0;
95 virtual int getMaxGUIScaleIndex()
const = 0;
97 virtual int getOptimalGUIScaleIndex()
const = 0;
99 virtual ::InputMode getCurrentInputMode()
const = 0;
101 virtual ::Bedrock::PubSub::Subscription registerToUIScreenSizeChangedEvent(::std::function<
void()> callback) = 0;
103 virtual ::Bedrock::PubSub::Subscription
104 registerLevelChangedListener(::std::function<
void(::LevelDataWrapper&)> callback) = 0;
106 virtual ::Bedrock::PubSub::Subscription
107 registerToServerFormDataAvailableEvent(::std::function<
void()> callback) = 0;
109 virtual bool isServerFormDataAvailable()
const = 0;
111 virtual void pushRoute(::std::string_view route) = 0;
113 virtual void pushSettingsTabWithModal(::SettingsTabIndex tab, ::SettingsModalType modal) = 0;
115 virtual void pushToast(::std::string_view notification) = 0;
117 virtual bool supportsSetClipboard() = 0;
119 virtual void navigateToJsonSettingsTab(::SettingsTabIndex tab) = 0;
121 virtual void navigateToHowToPlayScreen() = 0;
123 virtual void setClipboardData(::std::string_view text) = 0;
125 virtual void launchURI(::std::string
const& uri) = 0;
127 virtual void navigateToPendingRealmInvites() = 0;
129 virtual void setInputBindingMode(::InputBindingMode mode) = 0;
131 virtual ::InputBindingMode getInputBindingMode()
const = 0;
133 virtual ::Bedrock::PubSub::Subscription
134 registerToRawInputEvent(::std::function<
void(
int, ::RawInputType, ::ButtonState,
bool)> callback) = 0;
136 virtual ::Bedrock::PubSub::Subscription registerToInputModeEvent(::std::function<
void(::InputMode)> callback) = 0;
138 virtual void navigateToCustomizeTouchControl() = 0;
140 virtual void refreshClientInputConfig() = 0;
142 virtual bool isGamePlayTipsEnabled()
const = 0;
144 virtual bool isSignedInToXBL()
const = 0;
146 virtual bool isEligibleForPauseFeature()
const = 0;
148 virtual bool supportsTTSLanguage(::std::string_view languageCode)
const = 0;
150 virtual bool isTTSEnabled()
const = 0;
152 virtual bool isMultiplayerClient()
const = 0;
154 virtual bool hasLocalPlayer()
const = 0;
156 virtual bool hasCommands()
const = 0;
158 virtual ::LevelDataWrapper& getLevelDataWrapper() = 0;
160 virtual ::PacketSender& getPacketSender() = 0;
162 virtual bool supportsKeyboardAndMouse()
const = 0;
164 virtual bool supportsGamepad()
const = 0;
166 virtual bool supportsTouch()
const = 0;
168 virtual bool isInRealms()
const = 0;
170 virtual bool isRealmsEnabled()
const = 0;
172 virtual bool isRealmsOwner()
const = 0;
174 virtual bool isRealmsFeatureEnabled(::std::string_view featureName)
const = 0;
176 virtual bool isConfigurableRealmsEnvironment()
const = 0;
178 virtual bool isPartySystemAvailable()
const = 0;
180 virtual bool isTrial()
const = 0;
182 virtual ::SettingsScreenCapabilities
const& getSettingsScreenCapabilities()
const = 0;
184 virtual bool isEduEdition()
const = 0;
186 virtual ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> getAdvancedGraphicsOptions() = 0;
188 virtual void navigateToGammaCalibrationScreen() = 0;
190 virtual bool supportsAntiAliasing()
const = 0;
192 virtual bool supportsTextureStreaming()
const = 0;
194 virtual bool supportsTexelAntiAliasing()
const = 0;
196 virtual bool supportsAdvancedGraphics()
const = 0;
198 virtual bool supportsDeferredGraphics()
const = 0;
200 virtual bool supportsDeferredPointLights()
const = 0;
202 virtual bool supportsImprovedInputResponse()
const = 0;
204 virtual bool supportsSplitScreen()
const = 0;
206 virtual bool isFeatureEnabled(::FeatureOptionID featureOptionId)
const = 0;
208 virtual bool isGameFeatureEnabled(::MinecraftGameFeatures feature)
const = 0;
210 virtual ::GameEditionProperties
const& getGameEditionProperties()
const = 0;
212 virtual ::std::optional<::std::reference_wrapper<::LocalPlayer>>
const getLocalPlayer()
const = 0;
214 virtual ::ProfanityContext
const& getProfanityContext()
const = 0;
216 virtual ::std::optional<::std::string> getMinecraftAccountId()
const = 0;
218 virtual void showUserSettings() = 0;
220 virtual ::std::string getDeviceId()
const = 0;
222 virtual bool shouldShowSignOutOfMicrosoftAccount()
const = 0;
224 virtual void signOutFromMicrosoftAccount() = 0;
226 virtual void clearSignInData() = 0;
228 virtual void navigateToDeleteMicrosoftAccount() = 0;
230 virtual bool shouldShowRequestPlaystationNetworkAuthorization()
const = 0;
232 virtual ::Bedrock::PubSub::Subscription
233 subscribeToShouldShowRequestPlaystationNetworkAuthorization(::std::function<
void()> callback) = 0;
235 virtual void requestPlaystationNetworkAuthorization() = 0;
237 virtual bool isConsolePlatform()
const = 0;
239 virtual bool isDesktopPlatform()
const = 0;
241 virtual ::std::shared_ptr<::Social::User>
const& getUser()
const = 0;
243 virtual void navigateToTabbedUpsell() = 0;
245 virtual bool needPlatformConnectionBeforeXBLSignIn()
const = 0;
247 virtual bool isWaitingForPlatformConnection()
const = 0;
249 virtual void navigateToPlatformNetworkConnectConfirmation(::std::function<
void(
bool)> callback) = 0;
251 virtual void navigateToXBLSignIn() = 0;
253 virtual void navigateToContentLogHistoryScreen() = 0;
255 virtual bool isSupportingFramePacing()
const = 0;
257 virtual void cancelAllDownloads()
const = 0;
259 virtual ::StoreCatalogRepository& getStoreCatalogRepository()
const = 0;
261 virtual ::std::shared_ptr<::SDL::SessionBinaries> getServiceSessionBinaries()
const = 0;
263 virtual ::Core::FilePathManager& getFilePathManager()
const = 0;
265 virtual void navigateToDeleteAreaProgressScreen(
266 ::std::string_view screenName,
267 ::std::chrono::seconds
const secondsBeforeUserCanCancel,
268 ::std::chrono::seconds
const secondsBeforeClientShouldCancel,
269 ::std::vector<::std::tuple<::Core::PathBuffer<::Core::BasicStackString<char, 1024>>, ::std::string>> paths,
270 ::std::function<
void()> completeCallback
273 virtual ::Bedrock::PubSub::Subscription registerToContentItemCollectionReload(
274 ::StorageManager::ContentType type,
275 ::std::function<
void(::ContentItemCollection&)> callback
278 virtual ::std::optional<::std::reference_wrapper<::ContentItemCollection>>
const
279 getVisibleContentItemCollection(::StorageManager::ContentType type)
const = 0;
281 virtual void navigateToDeleteContentLogScreen() = 0;
283 virtual void navigateToDeleteScriptDiagnosticScreen() = 0;
285 virtual ::std::string getCurrentContentLogFileName() = 0;
Definition Subscription.h:10
Definition ContentItemCollection.h:5
Definition FilePathManager.h:18
Definition GameEditionProperties.h:5
Definition IAdvancedGraphicsOptions.h:16
Definition IOptionRegistry.h:5
Definition LevelDataWrapper.h:14
Definition LocalPlayer.h:5
Definition MinecraftCommands.h:36
Definition PacketSender.h:17
Definition ProfanityContext.h:5
Definition SessionBinaries.h:7
Definition IBuilderContext.h:7
Definition IGameConnectionInfoProvider.h:12
Definition SoundOptions.h:5
Definition TrialManager.h:5
Definition WorldSettingsRules.h:5
Definition SettingsScreenCapabilities.h:8