39class BlockDefinitionGroup {
47 struct BlockResource {
51 ::ll::TypedStorage<8, 24, ::SemVersion> mFormatVersion;
52 ::ll::TypedStorage<8, 32, ::MinEngineVersion> mMinEngineVersion;
53 ::ll::TypedStorage<8, 24, ::SemVersion> mOriginalJsonVersion;
54 ::ll::TypedStorage<8, 224, ::BlockDescription> mDescription;
55 ::ll::TypedStorage<1, 1, ::JsonBetaState> mIsBeta;
56 ::ll::TypedStorage<8, 32, ::std::string> mResourcePackLocation;
57 ::ll::TypedStorage<8, 32, ::std::string> mResourceFileLocation;
58 ::ll::TypedStorage<8, 16, ::Json::Value> mRoot;
64 MCAPI BlockResource();
66 MCAPI ~BlockResource();
85 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::DefinitionEvent>> mEventHandlers;
86 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::BlockDefinition>>>
91 ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::BlockDescription>>>
93 ::ll::TypedStorage<8, 128, ::BlockTraitFactory> mTraitFactory;
94 ::ll::TypedStorage<4, 4, int> mLastBlockId;
95 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mBlockResourceGroupNames;
96 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::cereal::ReflectionCtx const>> mCtx;
97 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
102 BlockDefinitionGroup& operator=(BlockDefinitionGroup
const&);
103 BlockDefinitionGroup(BlockDefinitionGroup
const&);
104 BlockDefinitionGroup();
111 MCAPI
void _buildBlockDescriptionSchema(
115 MCAPI
void _buildBlockMenuCategorySchema(
121 MCAPI
bool _loadBlockDescription(
124 ::JsonBetaState& canUseBeta,
129 MCAPI
bool _loadComponents(
133 ::JsonBetaState canUseBeta
142 MCAPI
bool _parseComponents(
145 ::std::string
const& blockIdentifier,
148 ::JsonBetaState canUseBeta,
152 MCAPI ::SharedTypes::v1_21_110::ItemCategory::CreativeItemCategory
153 _stringToCreativeItemCategory(::std::string
const& category, ::std::string
const& blockIdentifier);
158 MCAPI
bool _validateAndAssignBlockId(
::BlockDescription& desc,
bool isFromBaseGamePack);
160 MCAPI
bool _validatePrereleaseRequirements(
162 ::std::string
const& jsonType,
163 ::std::string
const& jsonIdentifier,
164 ::std::optional<::SemVersion>
const& releaseVersion,
165 ::std::vector<::PackLoadRequirement>
const& requirements,
167 ::JsonBetaState canUseBeta
170 MCAPI
void buildBlockSchema();
172 MCAPI
void digestServerBlockProperties(::std::vector<::std::pair<::std::string, ::CompoundTag>>
const& blocks);
174 MCAPI ::std::unique_ptr<::BlockDefinition>
177 MCAPI
bool generateBlockResource(
184 MCAPI ::std::vector<::std::pair<::std::string, ::CompoundTag>> generateServerBlockProperties()
const;
186 MCAPI ::std::vector<::BlockDefinition const*> getBlockDefinitions()
const;
194 MCAPI
void initializeBlocks(
::Level& level);
196 MCAPI ::std::unique_ptr<::BlockDefinition> loadResource(
197 ::std::string upgradedJsonData,
199 ::std::string
const& resourcePacklocation,
203 MCAPI
void loadResources(
209 MCAPI
void registerBlockDefinition(::std::unique_ptr<::BlockDefinition> blockDef);
211 MCAPI
void registerBlockFromDefinition(
::BlockDefinition const& definition,
bool);
213 MCAPI
void registerBlocks();
217 MCAPI ::BlockDefinition
const* tryGetBlockDefinition(::std::string
const& name)
const;
219 MCAPI ~BlockDefinitionGroup();
Definition PackLoadContext.h:20