19class FeatureRegistry {
27 struct FeatureBinaryJsonFormat {
31 ::ll::TypedStorage<8, 32, ::std::string> featureName;
32 ::ll::TypedStorage<8, 32, ::std::string> binaryJsonOutput;
37 FeatureBinaryJsonFormat(FeatureBinaryJsonFormat
const&);
38 FeatureBinaryJsonFormat();
49 MCAPI ~FeatureBinaryJsonFormat();
62 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::IFeature>>> mFeatureRegistry;
63 ::ll::TypedStorage<8, 24, ::std::vector<::OwnerPtr<::IFeature>>> mFeatureSlots;
64 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mFeatureLookupMap;
65 ::ll::TypedStorage<8, 24, ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>> mFeatureSerializeData;
66 ::ll::TypedStorage<1, 1, bool> mClientInitialized;
67 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mLargeFeaturePasses;
68 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mSmallFeaturePasses;
74 MCAPI FeatureRegistry();
76 MCAPI
void _registerFeature(::std::string
const& name, ::std::unique_ptr<::IFeature> featurePtr);
79 MCAPI
bool _setupFeature(
83 ::std::string
const& featureName,
84 ::std::string
const& jsonDefinition,
86 bool serializeFeatures
90 MCAPI
bool _setupFeature(
94 ::std::string
const& featureName,
97 bool serializeFeatures
100 MCAPI
void loadFromDefinitions(
103 bool clientSideGenEnabled
107 MCAPI
void loadFromJsonData(
110 ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>
const& jsonData
114 MCAPI ::WeakRef<::IFeature> lookupByName(::std::string
const& name)
const;
116 MCAPI ::WeakRef<::IFeature> lookupOrReserveFeature(::std::string
const& featureName);
118 MCAPI ::WeakRef<::IFeature> reserveFeature(::std::string
const& name);
121 MCAPI
void setLargeFeaturePasses(::std::vector<::std::string> largeFeaturePasses);
123 MCAPI
void setSmallFeaturePasses(::std::vector<::std::string> smallFeaturePasses);
126 MCAPI ~FeatureRegistry();
132 MCAPI static ::std::string
133 _featureIdentifierFromInput(::std::string_view filePath,
::Json::Value const& jsonDefinition);
139 MCAPI static ::std::string
const& AFTER_SKY_PASS();
141 MCAPI static ::std::string
const& AFTER_SURFACE_PASS();
143 MCAPI static ::std::string
const& AFTER_UNDERGROUND_PASS();
145 MCAPI static ::std::string
const& BEFORE_SKY_PASS();
147 MCAPI static ::std::string
const& BEFORE_SURFACE_PASS();
149 MCAPI static ::std::string
const& BEFORE_UNDERGROUND_PASS();
151 MCAPI static ::std::string
const& FINAL_PASS();
153 MCAPI static ::std::string
const& FIRST_PASS();
155 MCAPI static ::std::string
const& PREGENERATION_PASS();
157 MCAPI static ::std::string
const& SKY_PASS();
159 MCAPI static ::std::string
const& SURFACE_PASS();
161 MCAPI static ::std::string
const& UNDERGROUND_PASS();