3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/input/KeyboardType.h"
7#include "mc/client/options/BaseOptions.h"
8#include "mc/client/options/GraphicsQualityPresetMode.h"
9#include "mc/client/options/IOptions.h"
10#include "mc/client/renderer/PlatformConfiguration.h"
11#include "mc/deps/core/file/PathBuffer.h"
12#include "mc/deps/core/platform/FileStorageDirectory.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/deps/core/utility/Subject.h"
15#include "mc/deps/input/InputMode.h"
16#include "mc/deviceinfo/DeviceMemoryTier.h"
17#include "mc/options/GraphicsMode.h"
18#include "mc/options/option_types/OptionID.h"
19#include "mc/options/option_types/OptionResetFlags.h"
38namespace Social::Events {
class Event; }
45 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChatOptions>> mChatOptions;
46 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mFilePath;
47 ::ll::TypedStorage<1, 1, bool> mLoadInProgress;
48 ::ll::TypedStorage<1, 1, bool> mPrimaryUserStatus;
49 ::ll::TypedStorage<1, 1, bool> mAllowedToSave;
50 ::ll::TypedStorage<4, 4, ::IOptions::SaveRequestMode> mSaveRequestMode;
51 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mSaveDeferralCount;
52 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mNextSaveTime;
53 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OptionValueInterface>> mOptionValues;
54 ::ll::TypedStorage<4, 4, int> mDefaultViewDistanceChunks;
55 ::ll::TypedStorage<4, 4, int> mDefaultRayTracingViewDistanceChunks;
56 ::ll::TypedStorage<4, 4, int> mDefaultDeferredViewDistanceChunks;
57 ::ll::TypedStorage<4, 4, int> mRenderDistanceDefaultIdx;
58 ::ll::TypedStorage<4, 4, int> mRayDistanceDefaultIdx;
59 ::ll::TypedStorage<8, 24, ::std::vector<int>> mRenderDistanceLevels;
60 ::ll::TypedStorage<8, 24, ::std::vector<int>> mRayTracingRenderDistanceLevels;
61 ::ll::TypedStorage<8, 24, ::std::vector<int>> mDeferredRenderDistanceLevels;
62 ::ll::TypedStorage<4, 4, float> mPpmDpadSizeOld;
63 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mRecentSkinIds;
64 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::GamePadRemappingLayout>> mGamePadRemapping;
65 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::KeyboardRemappingLayout>>> mKeyboardRemappings;
66 ::ll::TypedStorage<8, 32, ::Core::Subject<::OptionsObserver, ::Core::SingleThreadedLock>> mEventSubject;
67 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mIOTaskGroup;
68 ::ll::TypedStorage<1, 1, bool> mIsSaveInProgress;
69 ::ll::TypedStorage<1, 1, bool> mChangeStorageInProgress;
70 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mObserverSubscriptions;
71 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mLockSubscriptions;
72 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ClientInstanceEventCoordinator>>
73 mClientInstanceEventCoordinator;
74 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions>> mAdvancedGraphicsOptions;
75 ::ll::TypedStorage<8, 24, ::std::vector<::PlatformConfiguration::GraphicsQualityPreset>> mGraphicsQualityPresets;
76 ::ll::TypedStorage<1, 1, bool> mUserChangedBloom;
77 ::ll::TypedStorage<4, 4, int> mDeferredTargetFrameRate;
89 virtual void load(::Core::PathBuffer<::std::string> filePath) ;
91 virtual void tickSaveTimer() ;
93 virtual void notifySaveAllowed() ;
95 virtual void saveIfNeeded() ;
97 virtual ::OptionSaveDeferral requestSaveDeferral() ;
99 virtual void reset(::OptionResetFlags flags, ::InputMode inputMode) ;
101 virtual bool getPrimaryUserStatus() const ;
103 virtual
void setClientInstanceCoordinator(
104 ::Bedrock::NonOwnerPointer<::ClientInstanceEventCoordinator> const& coordinator
107 virtual ::FileStorageDirectory getFileStorageLocation() const ;
109 virtual
void setFileStorageLocation(
110 ::FileStorageDirectory fileStorageDirectory,
111 ::std::function<
void(
bool)> onComplete
114 virtual
bool isValidOption(::OptionID optionId) const ;
116 virtual ::gsl::not_null<::Option*> get(::OptionID optionId) ;
118 virtual ::gsl::not_null<::Option const*> get(::OptionID optionId) const ;
120 virtual ::std::optional<::Option*> getIfValid(::OptionID optionId) ;
122 virtual ::std::optional<::Option const*> getIfValid(::OptionID optionId) const ;
124 virtual
void getTelemetryOptions(::std::vector<::OptionID>& output) ;
126 virtual
void refreshRenderDistanceLevels() ;
128 virtual
bool isLoadInProgress() ;
130 virtual
void addObserver(::OptionsObserver& observer) ;
132 virtual
void loadOptionsFromString(::std::
string options) ;
134 virtual
void elevateSaveRequestMode(::IOptions::SaveRequestMode saveRequestMode) ;
136 virtual ::ChatOptions const& getChatOptions() const ;
138 virtual ::ChatOptions& getChatOptions() ;
140 virtual ::std::array<::std::unique_ptr<::Option>, 803> const& getAllRegisteredOptions() ;
142 virtual
void forEachOption(::std::function<
void(::Option*)> callback) ;
144 virtual
int getViewDistanceChunks() const ;
146 virtual
int getDefaultViewDistanceChunks(::GraphicsMode graphicsMode) const ;
148 virtual
int getMaxViewDistanceChunks() const ;
150 virtual
int getMaxViewDistanceChunksRaw() const ;
152 virtual
bool getRayTracing() const ;
154 virtual
bool getDeferred() const ;
156 virtual ::GamePadRemappingLayout& getGamePadRemapping() ;
158 virtual ::std::shared_ptr<::KeyboardRemappingLayout> getCurrentKeyboardRemapping() const ;
160 virtual ::std::shared_ptr<::KeyboardRemappingLayout> getKeyboardRemappingByType(::KeyboardType keyboardType) const
163 virtual
void setLanguage(::std::
string const& language) ;
165 virtual ::std::
string getLanguage() const ;
167 virtual
void setPlayerViewPerspective(
int playerViewPerspective) ;
169 virtual
void setRecentSkinIds(::std::vector<::std::
string> const& recentSkinIds) ;
171 virtual ::std::vector<::std::
string> const& getRecentSkinIds() ;
173 virtual
float getDefaultPlatformSafeZoneX() const ;
175 virtual
float getDefaultPlatformSafeZoneY() const ;
177 virtual
bool getServerboundClientDiagnosticsEnabled() const ;
179 virtual ::ScriptDebuggerSettings getScriptDebuggerSettings() const ;
181 virtual ::Scripting::WatchdogSettings getScriptWatchdogSettings() const ;
183 virtual ::GraphicsMode getGraphicsMode() const ;
185 virtual
int getGraphicsQualityPresetMode() const ;
187 virtual
int getDeferredTargetFrameRate() const ;
189 virtual
void setSaveDeferralCount(
int value) ;
191 virtual
int getSaveDeferralCount() const ;
193 virtual ::std::optional<::DeviceMemoryTier> getScriptingMemoryTierOverride() const ;
195 virtual
void setForceVibrantVisualsDisabled(
bool value) ;
202 ::std::unique_ptr<::OptionValueInterface> optionValues,
205 ::std::weak_ptr<::IOptions> const& perMachineOptionsSource,
206 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> const& advancedGraphicsOptions
209 MCAPI ::std::
string _cleanPlayerName(::std::
string const& name) const;
211 MCAPI
void _loadInputMapping(::std::map<::std::
string, ::std::
string>& propertyMap);
213 MCAPI
void _loadOptions(::std::map<::std::
string, ::std::
string>& propertyMap);
215 MCAPI
void _loadSpecialOptions(::std::map<::std::
string, ::std::
string>& propertyMap);
217 MCAPI
void _parseFilesAndLoadOptions();
219 MCAPI
void _readGamepadMapping(::std::
string const& optionKey, ::std::
string const& value);
221 MCAPI
void _readKeyboardMapping(::std::
string const& optionKey, ::std::
string const& value);
223 MCAPI
void _registerAccessibilityOptions();
225 MCAPI
void _registerChatOptions();
227 MCAPI
void _registerHiddenFeatureOptions();
229 MCAPI
void _registerOptions();
231 MCAPI
void _registerSelfLock(::OptionID
id, ::std::function<
void(
bool&)> isModifiableCondition);
233 MCAPI
void _registerSelfObserver(
235 ::std::function<
void(::Option const&, ::InputMode)> onInputModeValueChangeCallback
238 MCAPI
void _registerSelfObserver(::OptionID
id, ::std::function<
void(::Option const&)> onValueChangeCallback);
240 MCAPI
void _registerSelfObservers();
243 _resolveMultipleSwitchRealmsEnabled(
bool doOverride, ::std::vector<::std::
string> featureList,
bool currentSetting);
247 MCAPI
void _saveAsync();
249 MCAPI
void _saveInputMapping(::std::vector<::std::pair<::std::
string, ::std::
string>>& settingsVec) const;
251 MCAPI
void _setAGFXValuesForPreset(::GraphicsQualityPresetMode preset);
253 MCAPI
void _setOptionCallbacks();
255 MCAPI
bool _shouldLoadGamepadMapping(::std::map<::std::
string, ::std::
string>& propertyMap) const;
257 MCAPI
void fireEventOptionsUpdated(::Social::Events::Event& event, ::InputMode inputMode);
263 MCAPI static ::std::
string const& do_not_save();
265 MCAPI static ::std::
string const& not_available();
272 ::std::unique_ptr<::OptionValueInterface> optionValues,
275 ::std::weak_ptr<::IOptions> const& perMachineOptionsSource,
276 ::Bedrock::NotNullNonOwnerPtr<::IAdvancedGraphicsOptions> const& advancedGraphicsOptions
289 MCAPI
void $load(::Core::PathBuffer<::std::
string> filePath);
291 MCAPI
void $tickSaveTimer();
293 MCAPI
void $notifySaveAllowed();
295 MCAPI
void $saveIfNeeded();
297 MCAPI ::OptionSaveDeferral $requestSaveDeferral();
299 MCAPI
void $reset(::OptionResetFlags flags, ::InputMode inputMode);
301 MCAPI
bool $getPrimaryUserStatus() const;
304 $setClientInstanceCoordinator(::Bedrock::NonOwnerPointer<::ClientInstanceEventCoordinator> const& coordinator);
306 MCAPI ::FileStorageDirectory $getFileStorageLocation() const;
309 $setFileStorageLocation(::FileStorageDirectory fileStorageDirectory, ::std::function<
void(
bool)> onComplete);
311 MCFOLD
bool $isValidOption(::OptionID optionId) const;
313 MCFOLD ::gsl::not_null<::Option*> $get(::OptionID optionId);
315 MCFOLD ::gsl::not_null<::Option const*> $get(::OptionID optionId) const;
317 MCFOLD ::std::optional<::Option*> $getIfValid(::OptionID optionId);
319 MCFOLD ::std::optional<::Option const*> $getIfValid(::OptionID optionId) const;
321 MCAPI
void $getTelemetryOptions(::std::vector<::OptionID>& output);
323 MCAPI
void $refreshRenderDistanceLevels();
325 MCAPI
bool $isLoadInProgress();
327 MCAPI
void $addObserver(::OptionsObserver& observer);
329 MCFOLD
void $loadOptionsFromString(::std::
string options);
331 MCAPI
void $elevateSaveRequestMode(::IOptions::SaveRequestMode saveRequestMode);
333 MCFOLD ::ChatOptions const& $getChatOptions() const;
335 MCFOLD ::ChatOptions& $getChatOptions();
337 MCFOLD ::std::array<::std::unique_ptr<::Option>, 803> const& $getAllRegisteredOptions();
339 MCFOLD
void $forEachOption(::std::function<
void(::Option*)> callback);
341 MCAPI
int $getViewDistanceChunks() const;
343 MCAPI
int $getDefaultViewDistanceChunks(::GraphicsMode graphicsMode) const;
345 MCAPI
int $getMaxViewDistanceChunks() const;
347 MCAPI
int $getMaxViewDistanceChunksRaw() const;
349 MCAPI
bool $getRayTracing() const;
351 MCAPI
bool $getDeferred() const;
353 MCAPI ::GamePadRemappingLayout& $getGamePadRemapping();
355 MCAPI ::std::shared_ptr<::KeyboardRemappingLayout> $getCurrentKeyboardRemapping() const;
357 MCAPI ::std::shared_ptr<::KeyboardRemappingLayout> $getKeyboardRemappingByType(::KeyboardType keyboardType) const;
359 MCAPI
void $setLanguage(::std::
string const& language);
361 MCAPI ::std::
string $getLanguage() const;
363 MCAPI
void $setPlayerViewPerspective(
int playerViewPerspective);
365 MCAPI
void $setRecentSkinIds(::std::vector<::std::
string> const& recentSkinIds);
367 MCAPI ::std::vector<::std::
string> const& $getRecentSkinIds();
369 MCAPI
float $getDefaultPlatformSafeZoneX() const;
371 MCAPI
float $getDefaultPlatformSafeZoneY() const;
373 MCAPI
bool $getServerboundClientDiagnosticsEnabled() const;
375 MCAPI ::ScriptDebuggerSettings $getScriptDebuggerSettings() const;
377 MCAPI ::Scripting::WatchdogSettings $getScriptWatchdogSettings() const;
379 MCAPI ::GraphicsMode $getGraphicsMode() const;
381 MCAPI
int $getGraphicsQualityPresetMode() const;
383 MCAPI
int $getDeferredTargetFrameRate() const;
385 MCAPI
void $setSaveDeferralCount(
int value);
387 MCAPI
int $getSaveDeferralCount() const;
389 MCAPI ::std::optional<::DeviceMemoryTier> $getScriptingMemoryTierOverride() const;
391 MCAPI
void $setForceVibrantVisualsDisabled(
bool value);
Definition BaseOptions.h:5
Definition Subscription.h:10
Definition ChatOptions.h:5
Definition ClientInstanceEventCoordinator.h:16
Definition SingleThreadedLock.h:7
Definition GamePadRemappingLayout.h:5
Definition IAdvancedGraphicsOptions.h:16
Definition KeyboardRemappingLayout.h:5
Definition OptionSaveDeferral.h:5
Definition OptionValueInterface.h:5
Definition OptionsObserver.h:5
static MCAPI void ** $vftable()
Definition TaskGroup.h:57
Definition ScriptDebuggerSettings.h:8
Definition WatchdogSettings.h:7