3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/settings/IOptionsDataProvider.h"
7#include "mc/client/settings/LocStringData.h"
8#include "mc/deps/core/utility/pub_sub/Subscription.h"
22 using SubscriptionConnector = ::std::function<::Bedrock::PubSub::Subscription(::std::function<
void()>)>;
27 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Settings::IOptionPropertyHandler>> mDelegate;
31 ::std::optional<::std::variant<::std::string, ::std::function<::std::string()>, ::Settings::LocStringData>>>
33 ::ll::TypedStorage<8, 24, ::std::vector<::Settings::OptionData>> mValues;
34 ::ll::TypedStorage<8, 24, ::std::vector<::std::function<::Bedrock::PubSub::Subscription(::std::function<
void()>)>>>
35 mSubscriptionConnectors;
36 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mLevelChangedSubscription;
37 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mSubscriptions;
42 LevelOptionsDataProvider();
47 virtual bool canModify() const ;
49 virtual ::gsl::span<::Settings::OptionData const> getOptions() const ;
51 virtual
int getValue() const ;
53 virtual
void setValue(
int index) ;
55 virtual ::std::optional<
56 ::std::variant<::std::
string, ::std::function<::std::
string()>, ::Settings::LocStringData>> const&
63 MCAPI LevelOptionsDataProvider(
64 ::std::function<::Bedrock::PubSub::Subscription(::std::function<
void(::LevelDataWrapper&)>)>
65 registerLevelChangeCallback,
66 ::std::vector<::std::function<::Bedrock::PubSub::Subscription(::std::function<
void()>)>> subscriptionConnectors,
67 ::std::unique_ptr<::Settings::IOptionPropertyHandler> delegate
70 MCAPI
void _updateData();
72 MCAPI
void _updateSubscriptions();
79 ::std::function<::Bedrock::PubSub::Subscription(::std::function<
void(::LevelDataWrapper&)>)>
80 registerLevelChangeCallback,
81 ::std::vector<::std::function<::Bedrock::PubSub::Subscription(::std::function<
void()>)>> subscriptionConnectors,
82 ::std::unique_ptr<::Settings::IOptionPropertyHandler> delegate
89 MCFOLD
bool $canModify() const;
91 MCAPI ::gsl::span<::Settings::OptionData const> $getOptions() const;
93 MCFOLD
int $getValue() const;
95 MCAPI
void $setValue(
int index);
97 MCFOLD ::std::optional<
98 ::std::variant<::std::
string, ::std::function<::std::
string()>, ::Settings::LocStringData>> const&
Definition LevelDataWrapper.h:14
Definition IOptionPropertyHandler.h:7
Definition LevelOptionsDataProvider.h:7
static MCAPI void ** $vftable()
Definition OptionData.h:7