38 mValueChangedPublisher;
44 mInputModeChangedPublisher;
56 ::ll::TypedStorage<8, 32, ::std::string> mSaveTag;
57 ::ll::TypedStorage<8, 32, ::std::string> mTelemetryProperty;
58 ::ll::TypedStorage<1, 1, ::Social::Events::PrivacyTagEnterprise> mTelemetryTag;
59 ::ll::TypedStorage<4, 4, ::OptionID const> mID;
60 ::ll::TypedStorage<4, 4, ::OptionOwnerType const> mOwnerType;
61 ::ll::TypedStorage<4, 4, ::OptionType> mOptionType;
62 ::ll::TypedStorage<8, 32, ::std::string const> mCaptionId;
63 ::ll::TypedStorage<8, 56, ::GameVersion> mDefaultVersion;
64 ::ll::TypedStorage<4, 4, ::OptionResetFlags const> mOptionResetFlags;
65 ::ll::TypedStorage<8, 8, ::Option*> mOverrideSource;
66 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOverrideSourceValueChangedSubscription;
67 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOverrideSourceInputModeChangedSubscription;
68 ::ll::TypedStorage<8, 64, ::std::function<void(
bool)>> mRequestSaveCallback;
80 ::OptionOwnerType ownerType,
81 ::OptionResetFlags resetFlags,
82 ::std::string
const& captionId,
83 ::std::string
const& saveTag,
84 ::OptionType optionType,
96 ::OptionOwnerType ownerType,
97 ::OptionResetFlags resetFlags,
98 ::std::string
const& captionId,
99 ::std::string
const& saveTag,
100 ::OptionType optionType,
112 using BoolFilter = ::std::function<bool(
bool)>;
114 using SaveIntCallback = ::std::function<int(
int)>;
116 using StringFilter = ::std::function<::std::string(::std::string
const&)>;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Option::Impl>> mImpl;
132 virtual ~Option() =
default;
137 virtual void save(::std::vector<::std::pair<::std::string, ::std::string>>& propertyVector) = 0;
139 virtual void load(::std::string
const& valueString) = 0;
141 virtual void load(::std::map<::std::string, ::std::string>& propertyMap);
151 ::OptionOwnerType ownerType,
152 ::OptionResetFlags resetFlags,
153 ::std::string
const& captionId,
154 ::std::string
const& saveTag,
155 ::OptionType optionType,
160 MCAPI
void _resetOption(::InputMode inputMode,
bool saveOptionChange);
163 MCAPI
void _updatePropertyVector(
164 ::std::vector<::std::pair<::std::string, ::std::string>>& propertyVector,
165 ::std::string
const& value
169 MCAPI
bool canModify()
const;
172 MCAPI
bool getBool()
const;
175 MCAPI
bool getBool(::InputMode inputMode)
const;
177 MCAPI
float getFloat()
const;
179 MCAPI
float getFloat(::InputMode inputMode)
const;
181 MCAPI
float getFloatMax()
const;
183 MCAPI
float getFloatMin()
const;
185 MCAPI
int getInt()
const;
187 MCAPI int64 getInt64()
const;
189 MCAPI ::std::string
const& getString()
const;
191 MCAPI ::std::vector<::std::string> getStringList()
const;
193 MCAPI uint64 getUInt64()
const;
195 MCAPI ::std::unordered_map<int, ::std::string>
const& getValueNameMap()
const;
197 MCAPI ::std::vector<int>
const& getValues()
const;
199 MCAPI ::glm::vec3 getVec3()
const;
201 MCAPI
bool isDefaultValue(::InputMode inputMode)
const;
206 MCAPI ::Bedrock::PubSub::Subscription registerLock(::std::function<
void(
bool&)> isModifiableCondition);
209 MCAPI ::Bedrock::PubSub::Subscription
210 registerObserver(::std::function<
void(::Option
const&, ::InputMode)> onInputModeChangedCallback);
213 MCAPI ::Bedrock::PubSub::Subscription
214 registerObserver(::std::function<
void(::Option
const&)> onValueChangedCallback);
217 MCAPI ::Bedrock::PubSub::Subscription
218 registerResetObserver(::std::function<
void(::Option
const&)> onValueResetCallback);
221 registerTelemetryProperty(::std::string
const& propertyName, ::Social::Events::PrivacyTagEnterprise propertyTag);
223 MCAPI
void set(
int value);
225 MCAPI
void setOverrideSource(::Option* overrideSource);
235 MCAPI
static bool read(::std::string
const& valueString,
int& output);
237 MCAPI
static bool read(::std::string
const& valueString,
float& output);
239 MCAPI
static bool read(::std::string
const& valueString, ::std::vector<::std::string>& output);
242 MCAPI
static bool read(::std::string
const& valueString,
bool& output);
250 ::OptionOwnerType ownerType,
251 ::OptionResetFlags resetFlags,
252 ::std::string
const& captionId,
253 ::std::string
const& saveTag,
254 ::OptionType optionType,
268 MCAPI
void $load(::std::map<::std::string, ::std::string>& propertyMap);