3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/sem_ver/SemVersion.h"
7#include "mc/resources/IPackLoadScoped.h"
8#include "mc/util/CerealSchemaUpgradeSet.h"
9#include "mc/util/Factory.h"
10#include "mc/util/json_util/JsonSchemaObjectNode.h"
20namespace Json {
class Value; }
33 struct ComponentMetadata {
36 using Ctor = ::std::unique_ptr<::BlockComponentDescription> (*)();
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockComponentDescription> (*)()> makeUnique;
45 ::ll::TypedStorage<8, 24, ::std::vector<::PackLoadRequirement>> requirements;
46 ::ll::TypedStorage<8, 32, ::std::optional<::SemVersion>> releasedMinFormatVersion;
47 ::ll::TypedStorage<8, 24, ::CerealSchemaUpgradeSet> versionUpgrades;
53 ::ll::TypedStorage<1, 1, bool> mIsCustomComponent;
58 ComponentMetadata& operator=(ComponentMetadata
const&);
59 ComponentMetadata(ComponentMetadata
const&);
77 using CerealComponentsMap = ::std::unordered_map<::std::string, ::BlockComponentFactory::ComponentMetadata>;
85 ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::BlockComponentGroupDescription>>>
86 mBlockComponentsSchema;
102 MCNAPI ::std::unique_ptr<::BlockComponentDescription>
114 MCNAPI static ::std::unordered_map<::std::string, ::BlockComponentFactory::ComponentMetadata>
const*
117 MCNAPI static ::std::unordered_map<::std::string, ::BlockComponentFactory::ComponentMetadata>&
Definition BlockComponentFactory.h:25
MCAPI void _registerLegacyDescriptions(::PackLoadContext const *packLoadContext)
MCAPI ::std::unique_ptr<::BlockComponentDescription > createDescription(::std::string const &name, ::cereal::ReflectionCtx const &ctx) const
static MCAPI void addAllComponentUpgrades(::CerealDocumentUpgrader &documentUpgrader, ::cereal::ReflectionCtx const &ctx)
static MCAPI void registerAllCerealDescriptions(::cereal::ReflectionCtx &ctx)
static MCAPI ::std::unordered_map<::std::string, ::BlockComponentFactory::ComponentMetadata > const * registeredCerealComponents(::cereal::ReflectionCtx const &ctx)
MCAPI void _buildBlockComponentsSchema()
static MCAPI void ** $vftable()
static MCAPI ::std::unordered_map<::std::string, ::BlockComponentFactory::ComponentMetadata > & setupContextInstanceIfRequired(::cereal::ReflectionCtx &ctx)
Definition CerealDocumentUpgrader.h:13
Definition Experiments.h:14
Definition EmptyClass.h:7
Definition PackLoadContext.h:20
Definition PackLoadRequirement.h:12
Definition SemVersion.h:15
Definition BlockComponentDescription.h:20
Definition BlockComponentGroupDescription.h:13
Definition IPackLoadScoped.h:5
Definition ReflectionCtx.h:11