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/deps/core/utility/NonOwnerPointer.h"
10#include "mc/deps/input/InputBindingMode.h"
11#include "mc/deps/input/InputMode.h"
12#include "mc/deps/input/enums/ButtonState.h"
13#include "mc/deps/input/enums/RawInputType.h"
14#include "mc/options/FeatureOptionID.h"
15#include "mc/options/GraphicsMode.h"
33namespace Settings {
class Eventing; }
35namespace Social {
class User; }
38namespace Settings::RegistryBuilder {
44 virtual ~IBuilderContext() =
default;
46 virtual bool isPreGame()
const = 0;
48 virtual bool isSplitScreenActive()
const = 0;
50 virtual bool isPrimaryClient()
const = 0;
52 virtual bool isPlayerInEditor()
const = 0;
54 virtual ::IOptions& getOptions() = 0;
56 virtual ::IOptions
const& getOptions()
const = 0;
58 virtual ::SoundOptions& getSoundOptions() = 0;
60 virtual ::Social::IGameConnectionInfoProvider
const& getGameConnectionInfoProvider()
const = 0;
62 virtual ::Settings::Eventing& getSettingsEventing() = 0;
64 virtual ::TrialManager& getTrialManager() = 0;
66 virtual ::MinecraftCommands& getCommands() = 0;
68 virtual ::InputSettingsHandler& getInputSettingsHandler()
const = 0;
70 virtual ::WorldSettingsRules
const& getWorldSettingsRules()
const = 0;
72 virtual ::std::optional<::std::string> getFeedbackUrl()
const = 0;
74 virtual bool supportsFullScreen()
const = 0;
76 virtual bool supportsUserDefinedSafeZone()
const = 0;
78 virtual int getRecommendedRenderDistance(::GraphicsMode graphicsMode)
const = 0;
80 virtual int getMaxGUIScaleIndex()
const = 0;
82 virtual int getOptimalGUIScaleIndex()
const = 0;
84 virtual ::InputMode getCurrentInputMode()
const = 0;
86 virtual ::Bedrock::PubSub::Subscription registerToUIScreenSizeChangedEvent(::std::function<
void()> callback) = 0;
88 virtual ::Bedrock::PubSub::Subscription
89 registerLevelChangedListener(::std::function<
void(::LevelDataWrapper&)> callback) = 0;
91 virtual ::Bedrock::PubSub::Subscription
92 registerToServerFormDataAvailableEvent(::std::function<
void()> callback) = 0;
94 virtual bool isServerFormDataAvailable()
const = 0;
96 virtual void pushRoute(::std::string_view route) = 0;
98 virtual void pushSettingsTabWithModal(::SettingsTabIndex tab, ::SettingsModalType modal) = 0;
100 virtual void pushToast(::std::string_view notification) = 0;
102 virtual bool supportsSetClipboard() = 0;
104 virtual void navigateToJsonSettingsTab(::SettingsTabIndex tab) = 0;
106 virtual void navigateToHowToPlayScreen() = 0;
108 virtual void setClipboardData(::std::string_view text) = 0;
110 virtual void launchURI(::std::string
const& uri) = 0;
112 virtual void navigateToPendingRealmInvites() = 0;
114 virtual void setInputBindingMode(::InputBindingMode mode) = 0;
116 virtual ::InputBindingMode getInputBindingMode()
const = 0;
118 virtual ::Bedrock::PubSub::Subscription
119 registerToRawInputEvent(::std::function<
void(
int, ::RawInputType, ::ButtonState,
bool)> callback) = 0;
121 virtual ::Bedrock::PubSub::Subscription registerToInputModeEvent(::std::function<
void(::InputMode)> callback) = 0;
123 virtual void navigateToCustomizeTouchControl() = 0;
125 virtual void refreshClientInputConfig() = 0;
127 virtual bool isGamePlayTipsEnabled()
const = 0;
129 virtual bool isSignedInToXBL()
const = 0;
131 virtual bool isEligibleForPauseFeature()
const = 0;
133 virtual bool supportsTTSLanguage(::std::string_view languageCode)
const = 0;
135 virtual bool isTTSEnabled()
const = 0;
137 virtual bool isMultiplayerClient()
const = 0;
139 virtual bool hasLocalPlayer()
const = 0;
141 virtual bool hasCommands()
const = 0;
143 virtual ::LevelDataWrapper& getLevelDataWrapper() = 0;
145 virtual ::PacketSender& getPacketSender() = 0;
147 virtual bool supportsKeyboardAndMouse()
const = 0;
149 virtual bool supportsGamepad()
const = 0;
151 virtual bool supportsTouch()
const = 0;
153 virtual bool isInRealms()
const = 0;
155 virtual bool isRealmsEnabled()
const = 0;
157 virtual bool isRealmsOwner()
const = 0;
159 virtual bool isRealmsFeatureEnabled(::std::string_view featureName)
const = 0;
161 virtual bool isConfigurableRealmsEnvironment()
const = 0;
163 virtual bool isPartySystemAvailable()
const = 0;
165 virtual bool isTrial()
const = 0;
167 virtual ::SettingsScreenCapabilities
const& getSettingsScreenCapabilities()
const = 0;
169 virtual bool isEduEdition()
const = 0;
171 virtual ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> getAdvancedGraphicsOptions() = 0;
173 virtual void navigateToGammaCalibrationScreen() = 0;
175 virtual bool supportsAntiAliasing()
const = 0;
177 virtual bool supportsTextureStreaming()
const = 0;
179 virtual bool supportsTexelAntiAliasing()
const = 0;
181 virtual bool supportsAdvancedGraphics()
const = 0;
183 virtual bool supportsDeferredGraphics()
const = 0;
185 virtual bool supportsDeferredPointLights()
const = 0;
187 virtual bool supportsImprovedInputResponse()
const = 0;
189 virtual bool supportsSplitScreen()
const = 0;
191 virtual bool isFeatureEnabled(::FeatureOptionID featureOptionId)
const = 0;
193 virtual bool isGameFeatureEnabled(::MinecraftGameFeatures feature)
const = 0;
195 virtual ::GameEditionProperties
const& getGameEditionProperties()
const = 0;
197 virtual ::std::optional<::std::reference_wrapper<::LocalPlayer>>
const getLocalPlayer()
const = 0;
199 virtual ::ProfanityContext
const& getProfanityContext()
const = 0;
201 virtual ::std::optional<::std::string> getMinecraftAccountId()
const = 0;
203 virtual void showUserSettings() = 0;
205 virtual ::std::string getDeviceId()
const = 0;
207 virtual bool shouldShowSignOutOfMicrosoftAccount()
const = 0;
209 virtual void signOutFromMicrosoftAccount() = 0;
211 virtual void clearSignInData() = 0;
213 virtual void navigateToDeleteMicrosoftAccount() = 0;
215 virtual bool shouldShowRequestPlaystationNetworkAuthorization()
const = 0;
217 virtual ::Bedrock::PubSub::Subscription
218 subscribeToShouldShowRequestPlaystationNetworkAuthorization(::std::function<
void()> callback) = 0;
220 virtual void requestPlaystationNetworkAuthorization() = 0;
222 virtual bool isConsolePlatform()
const = 0;
224 virtual bool isDesktopPlatform()
const = 0;
226 virtual ::std::shared_ptr<::Social::User>
const& getUser()
const = 0;
228 virtual void navigateToTabbedUpsell() = 0;
230 virtual bool needPlatformConnectionBeforeXBLSignIn()
const = 0;
232 virtual bool isWaitingForPlatformConnection()
const = 0;
234 virtual void navigateToPlatformNetworkConnectConfirmation(::std::function<
void(
bool)> callback) = 0;
236 virtual void navigateToXBLSignIn() = 0;
238 virtual bool isSupportingFramePacing()
const = 0;
Definition Subscription.h:10
Definition GameEditionProperties.h:5
Definition IAdvancedGraphicsOptions.h:16
Definition LevelDataWrapper.h:14
Definition LocalPlayer.h:5
Definition MinecraftCommands.h:34
Definition PacketSender.h:17
Definition ProfanityContext.h:5
Definition IBuilderContext.h:7
Definition IGameConnectionInfoProvider.h:12
Definition SoundOptions.h:5
Definition TrialManager.h:5
Definition WorldSettingsRules.h:5
Definition SettingsScreenCapabilities.h:8