18class FeatureRegistry {
26 struct FeatureBinaryJsonFormat {
30 ::ll::TypedStorage<8, 32, ::std::string> featureName;
31 ::ll::TypedStorage<8, 32, ::std::string> binaryJsonOutput;
36 FeatureBinaryJsonFormat(FeatureBinaryJsonFormat
const&);
37 FeatureBinaryJsonFormat();
48 MCAPI ~FeatureBinaryJsonFormat();
61 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::IFeature>>> mFeatureRegistry;
62 ::ll::TypedStorage<8, 24, ::std::vector<::OwnerPtr<::IFeature>>> mFeatureSlots;
63 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mFeatureLookupMap;
64 ::ll::TypedStorage<8, 24, ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>> mFeatureSerializeData;
65 ::ll::TypedStorage<1, 1, bool> mClientInitialized;
66 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mLargeFeaturePasses;
67 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mSmallFeaturePasses;
73 MCAPI FeatureRegistry();
75 MCAPI ::std::string
const _featureNamespaceFromInput(::std::string
const& filePath, ::std::string
const& contents);
77 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
89 MCAPI
void loadFromDefinitions(
92 bool clientSideGenEnabled
95 MCAPI_C
void loadFromJsonData(
98 ::std::vector<::FeatureRegistry::FeatureBinaryJsonFormat>
const& jsonData
101 MCAPI ::WeakRef<::IFeature> lookupByName(::std::string
const& name)
const;
103 MCAPI ::WeakRef<::IFeature> lookupOrReserveFeature(::std::string
const& featureName);
105 MCAPI ::WeakRef<::IFeature> reserveFeature(::std::string
const& name);
107 MCAPI_C
void setLargeFeaturePasses(::std::vector<::std::string> largeFeaturePasses);
109 MCAPI_C
void setSmallFeaturePasses(::std::vector<::std::string> smallFeaturePasses);
111 MCAPI ~FeatureRegistry();
117 MCAPI static ::std::string
const& AFTER_SKY_PASS();
119 MCAPI static ::std::string
const& AFTER_SURFACE_PASS();
121 MCAPI static ::std::string
const& AFTER_UNDERGROUND_PASS();
123 MCAPI static ::std::string
const& BEFORE_SKY_PASS();
125 MCAPI static ::std::string
const& BEFORE_SURFACE_PASS();
127 MCAPI static ::std::string
const& BEFORE_UNDERGROUND_PASS();
129 MCAPI static ::std::string
const& FINAL_PASS();
131 MCAPI static ::std::string
const& FIRST_PASS();
133 MCAPI static ::std::string
const& PREGENERATION_PASS();
135 MCAPI static ::std::string
const& SKY_PASS();
137 MCAPI static ::std::string
const& SURFACE_PASS();
139 MCAPI static ::std::string
const& UNDERGROUND_PASS();