22class FeatureRegistry {
30 struct FeatureBinaryJsonFormat {
34 ::ll::TypedStorage<8, 32, ::std::string> featureName;
35 ::ll::TypedStorage<8, 32, ::std::string> binaryJsonOutput;
40 FeatureBinaryJsonFormat& operator=(FeatureBinaryJsonFormat
const&);
41 FeatureBinaryJsonFormat();
52 MCAPI ~FeatureBinaryJsonFormat();
71 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LinkedAssetValidator>> mValidator;
72 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::IFeature>>> mFeatureRegistry;
73 ::ll::TypedStorage<8, 24, ::std::vector<::OwnerPtr<::IFeature>>> mFeatureSlots;
74 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mFeatureLookupMap;
75 ::ll::TypedStorage<8, 24, ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>> mFeatureSerializeData;
76 ::ll::TypedStorage<1, 1, bool> mClientInitialized;
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mLargeFeaturePasses;
78 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mSmallFeaturePasses;
90 MCAPI
void _registerFeature(::std::string
const& name, ::std::unique_ptr<::IFeature> featurePtr);
93 MCAPI
bool _setupFeature(
97 ::std::string
const& featureName,
98 ::std::string
const& jsonDefinition,
100 bool serializeFeatures
104 MCAPI
bool _setupFeature(
108 ::std::string
const& featureName,
111 bool serializeFeatures
116 MCAPI ::std::vector<::std::string> getLargeFeaturePasses()
const;
118 MCAPI ::std::vector<::std::string> getSmallFeaturePasses()
const;
120 MCAPI
bool isFeaturePassDefined(::std::string
const& featurePass)
const;
122 MCAPI
void loadFromDefinitions(
125 bool clientSideGenEnabled
129 MCAPI
void loadFromJsonData(
132 ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>
const& jsonData
136 MCAPI ::WeakRef<::IFeature> lookupByName(::std::string
const& name)
const;
138 MCAPI ::WeakRef<::IFeature> lookupOrReserveFeature(::std::string
const& featureName);
140 MCAPI ::WeakRef<::IFeature> reserveFeature(::std::string
const& name);
142 MCAPI ::std::string
const& reverseLookupString(
::IFeature const& feature)
const;
144 MCAPI
void setLargeFeaturePasses(::std::vector<::std::string> largeFeaturePasses);
146 MCAPI
void setSmallFeaturePasses(::std::vector<::std::string> smallFeaturePasses);
148 MCAPI ~FeatureRegistry();
154 MCAPI static ::std::string
155 _featureIdentifierFromInput(::std::string_view filePath,
::Json::Value const& jsonDefinition);
161 MCAPI static ::std::string
const& AFTER_SKY_PASS();
163 MCAPI static ::std::string
const& AFTER_SURFACE_PASS();
165 MCAPI static ::std::string
const& AFTER_UNDERGROUND_PASS();
167 MCAPI static ::std::string
const& BEFORE_SKY_PASS();
169 MCAPI static ::std::string
const& BEFORE_SURFACE_PASS();
171 MCAPI static ::std::string
const& BEFORE_UNDERGROUND_PASS();
173 MCAPI static ::std::string
const& FINAL_PASS();
175 MCAPI static ::std::string
const& FIRST_PASS();
177 MCAPI static ::std::string
const& PREGENERATION_PASS();
179 MCAPI static ::std::string
const& SKY_PASS();
181 MCAPI static ::std::string
const& SURFACE_PASS();
183 MCAPI static ::std::string
const& UNDERGROUND_PASS();