26 using SetupFunction = ::std::function<void(
::Option&)>;
28 using LockFunction = ::std::function<void(
bool&)>;
30 using ExpectedDisabled = ::std::vector<::FeatureOptionID>;
32 using ExpectedEnabled = ::std::vector<::FeatureOptionID>;
38 ::ll::TypedStorage<4, 4, ::FeatureOptionID> featureID;
39 ::ll::TypedStorage<4, 4, ::FeatureOptionID> dependencyFeatureID;
40 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Option>> option;
41 ::ll::TypedStorage<8, 64, ::std::function<void(
::Option&)>> setup;
42 ::ll::TypedStorage<8, 64, ::std::function<void(
bool&)>> lock;
43 ::ll::TypedStorage<4, 4, ::FeatureOptionTabID> tabID;
75 using FeatureTogglesArray = ::std::vector<::FeatureToggles::FeatureToggle>;
80 ::ll::TypedStorage<8, 24, ::std::vector<::FeatureToggles::FeatureToggle>> mFeatures;
81 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mOptionLockSubscriptions;
82 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mFilePath;
83 ::ll::TypedStorage<1, 1, bool> mIsInGame;
96 MCAPI ::std::function<void(
::Option&)>
97 _getDisableIfOtherOptionDisabledSetupCallback(::FeatureOptionID optionIdToCheck)
const;
99 MCAPI ::std::function<void(
::Option&)> _getDisabledIfOptionExpectationsNotMetSetupCallback(
100 ::std::vector<::FeatureOptionID> expectedDisabledOptions,
101 ::std::vector<::FeatureOptionID> expectedEnabledOptions
104 MCAPI ::std::function<void(
bool&)> _getLockIfInGameOrOptionExpectationsNotMetLockCallback(
105 ::std::vector<::FeatureOptionID> expectedDisabledOptions,
106 ::std::vector<::FeatureOptionID> expectedEnabledOptions
109 MCAPI ::std::function<void(
bool&)>
110 _getLockIfOtherOptionDisabledLockCallback(::FeatureOptionID optionIdToCheck)
const;
114 MCAPI
void _registerFeature(
115 ::FeatureOptionTabID tabID,
116 ::FeatureOptionID featureID,
117 ::std::string
const& locName,
118 ::std::string
const& saveName,
120 ::FeatureOptionID dependencyFeatureID,
121 ::std::function<
void(
::Option&)> setup,
122 ::std::function<
void(
bool&)> lock
125 MCAPI
void _registerFeatures();
127 MCAPI
void _setupDependencies();
129 MCAPI
bool isEnabled(::FeatureOptionID featureID)
const;
135 MCAPI static ::std::unique_ptr<::FeatureToggles>& mFeatureToggles();