LeviLamina
Loading...
Searching...
No Matches
BlockDefinitionGroup.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/WeakPtr.h"
7#include "mc/deps/core/debug/log/LogArea.h"
8#include "mc/deps/core/file/PathBuffer.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/resources/JsonBetaState.h"
11#include "mc/util/json_util/JsonSchemaObjectNode.h"
12#include "mc/world/item/CreativeItemCategory.h"
13
14// auto generated forward declare list
15// clang-format off
16class Block;
17class BlockLegacy;
18class CompoundTag;
19class Experiments;
21class Level;
25class SemVersion;
27struct BlockDefinition;
28struct BlockDescription;
30namespace Json { class Value; }
31namespace JsonUtil { class EmptyClass; }
32namespace cereal { struct ReflectionCtx; }
33// clang-format on
34
36public:
37 // BlockDefinitionGroup inner types declare
38 // clang-format off
39 struct BlockResource;
40 // clang-format on
41
42 // BlockDefinitionGroup inner types define
44 public:
45 // member variables
46 // NOLINTBEGIN
55 // NOLINTEND
56
57 public:
58 // prevent constructor by default
59 BlockResource& operator=(BlockResource const&);
62
63 public:
64 // member functions
65 // NOLINTBEGIN
67 // NOLINTEND
68
69 public:
70 // destructor thunk
71 // NOLINTBEGIN
72 MCNAPI void $dtor();
73 // NOLINTEND
74 };
75
76public:
77 // member variables
78 // NOLINTBEGIN
86 // NOLINTEND
87
88public:
89 // prevent constructor by default
93
94public:
95 // member functions
96 // NOLINTBEGIN
98
99 MCNAPI void _applyBlockStates(::BlockLegacy* block, ::BlockDefinition const& definition);
100
103 );
104
107 );
108
109 MCNAPI bool _checkInvalidPermutationComponents(::BlockComponentGroupDescription const& componentGroupDescription);
110
112 ::Json::Value const& root,
113 ::BlockDescription& desc,
114 ::JsonBetaState& canUseBeta,
115 ::IPackLoadContext const& packLoadContext,
116 ::SemVersion const& jsonVersion
117 );
118
119 MCNAPI bool _loadComponents(
120 ::Json::Value const& root,
121 ::BlockDefinition& definition,
122 ::IPackLoadContext& packLoadContext,
123 ::JsonBetaState canUseBeta
124 );
125
126 MCNAPI void
128
129 MCNAPI bool
130 _loadEvents(::Json::Value const& root, ::BlockDefinition& definition, ::IPackLoadContext& packLoadContext);
131
132 MCNAPI bool _parseComponents(
133 ::Json::Value const& blockRoot,
134 ::BlockComponentGroupDescription& componentGroupDescription,
135 ::std::string const& blockIdentifier,
136 ::SemVersion const& originalJsonVersion,
137 ::IPackLoadContext& packLoadContext,
138 ::JsonBetaState canUseBeta,
139 bool isVanillaBlock
140 );
141
142 MCNAPI ::CreativeItemCategory _stringToCreativeItemCategory(::std::string const& str);
143
145 ::LogArea logArea,
146 ::std::string const& jsonType,
147 ::std::string const& jsonIdentifier,
148 ::std::optional<::SemVersion> const& releaseVersion,
149 ::std::vector<::PackLoadRequirement> const& requirements,
150 ::IPackLoadContext const& packLoadContext,
151 ::JsonBetaState canUseBeta
152 ) const;
153
154 MCNAPI void buildBlockSchema();
155
156 MCNAPI ::std::unique_ptr<::BlockDefinition>
158
159 MCNAPI ::std::vector<::std::pair<::std::string, ::CompoundTag>> generateServerBlockProperties() const;
160
161 MCNAPI ::std::vector<::BlockDefinition const*> getBlockDefinitions() const;
162
163 MCNAPI void initBlockFromDefinition(::Block& block, ::BlockPermutationDescription const& definition);
164
165 MCNAPI void initBlockLegacyFromDefinition(::BlockLegacy& blockLegacy, ::BlockDefinition const& definition);
166
167 MCNAPI void initializeBlockFromDefinition(::BlockDefinition const& definition, ::Level& level);
168
169 MCNAPI ::std::unique_ptr<::BlockDefinition> loadResource(
170 ::std::string upgradedJsonData,
172 ::std::string const& resourcePacklocation,
173 ::IPackLoadContext& packLoadContext
174 );
175
176 MCNAPI void loadResources(
177 ::ResourcePackManager const& resourcePackManager,
178 ::Experiments const& experiments,
180 );
181
182 MCNAPI void registerBlockFromDefinition(::BlockDefinition const& definition, bool assertIfAlreadyExists);
183
184 MCNAPI ::WeakPtr<::BlockLegacy> registerDataDrivenBlock(::BlockDescription const& desc);
185
187 // NOLINTEND
188
189public:
190 // constructor thunks
191 // NOLINTBEGIN
192 MCNAPI void* $ctor(::cereal::ReflectionCtx const& ctx);
193 // NOLINTEND
194
195public:
196 // destructor thunk
197 // NOLINTBEGIN
198 MCNAPI void $dtor();
199 // NOLINTEND
200};
Definition NonOwnerPointer.h:9
Definition BlockDefinitionGroup.h:35
MCAPI ::std::unique_ptr<::BlockDefinition > generateBlockDefinition(::BlockDefinitionGroup::BlockResource const &resource, ::IPackLoadContext &packLoadContext)
MCAPI bool _loadEvents(::Json::Value const &root, ::BlockDefinition &definition, ::IPackLoadContext &packLoadContext)
MCAPI bool _loadBlockDescription(::Json::Value const &root, ::BlockDescription &desc, ::JsonBetaState &canUseBeta, ::IPackLoadContext const &packLoadContext, ::SemVersion const &jsonVersion)
MCAPI void _applyBlockStates(::BlockLegacy *block, ::BlockDefinition const &definition)
MCAPI ~BlockDefinitionGroup()
MCAPI bool _loadComponents(::Json::Value const &root, ::BlockDefinition &definition, ::IPackLoadContext &packLoadContext, ::JsonBetaState canUseBeta)
MCAPI ::std::vector<::std::pair<::std::string, ::CompoundTag > > generateServerBlockProperties() const
MCAPI void registerBlockFromDefinition(::BlockDefinition const &definition, bool assertIfAlreadyExists)
MCAPI void initBlockLegacyFromDefinition(::BlockLegacy &blockLegacy, ::BlockDefinition const &definition)
MCAPI ::std::vector<::BlockDefinition const * > getBlockDefinitions() const
MCAPI void loadResources(::ResourcePackManager const &resourcePackManager, ::Experiments const &experiments, ::Bedrock::NonOwnerPointer<::LinkedAssetValidator > validator)
MCAPI void initBlockFromDefinition(::Block &block, ::BlockPermutationDescription const &definition)
MCAPI void initializeBlockFromDefinition(::BlockDefinition const &definition, ::Level &level)
MCAPI bool _checkInvalidPermutationComponents(::BlockComponentGroupDescription const &componentGroupDescription)
MCAPI::CreativeItemCategory _stringToCreativeItemCategory(::std::string const &str)
MCAPI ::WeakPtr<::BlockLegacy > registerDataDrivenBlock(::BlockDescription const &desc)
MCAPI ::std::unique_ptr<::BlockDefinition > loadResource(::std::string upgradedJsonData, ::Core::PathBuffer<::std::string > const &res, ::std::string const &resourcePacklocation, ::IPackLoadContext &packLoadContext)
MCAPI BlockDefinitionGroup(::cereal::ReflectionCtx const &ctx)
MCAPI void * $ctor(::cereal::ReflectionCtx const &ctx)
MCAPI void _loadComponentsForLegacyCompabitility(::SemVersion const &originalJsonVersion, ::BlockDefinition &definition)
MCAPI void buildBlockSchema()
MCAPI bool _validatePrereleaseRequirements(::LogArea logArea, ::std::string const &jsonType, ::std::string const &jsonIdentifier, ::std::optional<::SemVersion > const &releaseVersion, ::std::vector<::PackLoadRequirement > const &requirements, ::IPackLoadContext const &packLoadContext, ::JsonBetaState canUseBeta) const
MCAPI void _buildBlockDescriptionSchema(::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::BlockDescription > > &description)
MCAPI void _buildBlockMenuCategorySchema(::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::BlockDescription > > &description)
MCAPI void $dtor()
MCAPI bool _parseComponents(::Json::Value const &blockRoot, ::BlockComponentGroupDescription &componentGroupDescription, ::std::string const &blockIdentifier, ::SemVersion const &originalJsonVersion, ::IPackLoadContext &packLoadContext, ::JsonBetaState canUseBeta, bool isVanillaBlock)
Definition BlockLegacy.h:86
Definition Block.h:38
Definition CompoundTag.h:13
Definition PathBuffer.h:8
Definition Experiments.h:14
Definition IPackLoadContext.h:20
Definition JsonSchemaObjectNode.h:8
Definition Value.h:16
Definition Level.h:239
Definition LinkedAssetValidator.h:8
Definition PackLoadRequirement.h:19
Definition ResourcePackManager.h:24
Definition SemVersion.h:16
Definition BlockComponentGroupDescription.h:12
Definition BlockDefinitionGroup.h:43
Definition BlockDefinition.h:13
Definition BlockDescription.h:5
Definition BlockPermutationDescription.h:5
Definition ReflectionCtx.h:11
Definition ctx.h:5
Definition Alias.h:14