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/resources/JsonBetaState.h"
10#include "mc/util/json_util/JsonSchemaObjectNode.h"
11#include "mc/world/item/CreativeItemCategory.h"
12
13// auto generated forward declare list
14// clang-format off
15class Block;
16class BlockLegacy;
17class CompoundTag;
18class Experiments;
20class Level;
24class SemVersion;
26struct BlockDefinition;
27struct BlockDescription;
29namespace Json { class Value; }
30namespace JsonUtil { class EmptyClass; }
31namespace cereal { struct ReflectionCtx; }
32// clang-format on
33
35public:
36 // BlockDefinitionGroup inner types declare
37 // clang-format off
38 struct BlockResource;
39 // clang-format on
40
41 // BlockDefinitionGroup inner types define
43 public:
44 // member variables
45 // NOLINTBEGIN
54 // NOLINTEND
55
56 public:
57 // prevent constructor by default
58 BlockResource& operator=(BlockResource const&);
61
62 public:
63 // member functions
64 // NOLINTBEGIN
66 // NOLINTEND
67
68 public:
69 // destructor thunk
70 // NOLINTBEGIN
71 MCNAPI void $dtor();
72 // NOLINTEND
73 };
74
75public:
76 // member variables
77 // NOLINTBEGIN
85 // NOLINTEND
86
87public:
88 // prevent constructor by default
92
93public:
94 // member functions
95 // NOLINTBEGIN
97
98 MCNAPI void _applyBlockStates(::BlockLegacy* block, ::BlockDefinition const& definition);
99
102 );
103
106 );
107
108 MCNAPI bool _checkInvalidPermutationComponents(::BlockComponentGroupDescription const& componentGroupDescription);
109
111 ::Json::Value const& root,
112 ::BlockDescription& desc,
113 ::JsonBetaState& canUseBeta,
114 ::IPackLoadContext const& packLoadContext,
115 ::SemVersion const& jsonVersion
116 );
117
118 MCNAPI bool _loadComponents(
119 ::Json::Value const& root,
120 ::BlockDefinition& definition,
121 ::IPackLoadContext& packLoadContext,
122 ::JsonBetaState canUseBeta
123 );
124
125 MCNAPI void
127
128 MCNAPI bool
129 _loadEvents(::Json::Value const& root, ::BlockDefinition& definition, ::IPackLoadContext& packLoadContext);
130
131 MCNAPI bool _parseComponents(
132 ::Json::Value const& blockRoot,
133 ::BlockComponentGroupDescription& componentGroupDescription,
134 ::std::string const& blockIdentifier,
135 ::SemVersion const& originalJsonVersion,
136 ::IPackLoadContext& packLoadContext,
137 ::JsonBetaState canUseBeta
138 );
139
140 MCNAPI ::CreativeItemCategory _stringToCreativeItemCategory(::std::string const& str);
141
143 ::BlockComponentGroupDescription const& description,
144 ::SemVersion const& mOriginalJsonVersion
145 ) const;
146
148 ::LogArea logArea,
149 ::std::string const& jsonType,
150 ::std::string const& jsonIdentifier,
151 ::std::optional<::SemVersion> const& releaseVersion,
152 ::std::vector<::PackLoadRequirement> const& requirements,
153 ::IPackLoadContext const& packLoadContext,
154 ::JsonBetaState canUseBeta
155 ) const;
156
157 MCNAPI void buildBlockSchema();
158
159 MCNAPI ::std::unique_ptr<::BlockDefinition>
161
163 ::Json::Value const& root,
164 ::IPackLoadContext const& packLoadContext,
165 ::SemVersion const& originalJsonVersion,
167 );
168
169 MCNAPI ::std::vector<::std::pair<::std::string, ::CompoundTag>> generateServerBlockProperties() const;
170
171 MCNAPI ::std::vector<::BlockDefinition const*> getBlockDefinitions() const;
172
173 MCNAPI void initBlockFromDefinition(::Block& block, ::BlockPermutationDescription const& definition);
174
175 MCNAPI void initBlockLegacyFromDefinition(::BlockLegacy& blockLegacy, ::BlockDefinition const& definition);
176
177 MCNAPI void initializeBlockFromDefinition(::BlockDefinition const& definition, ::Level& level);
178
179 MCNAPI ::std::unique_ptr<::BlockDefinition> loadResource(
180 ::std::string upgradedJsonData,
182 ::std::string const& resourcePacklocation,
183 ::IPackLoadContext& packLoadContext
184 );
185
186 MCNAPI void loadResources(
187 ::ResourcePackManager const& resourcePackManager,
188 ::Experiments const& experiments,
189 ::LinkedAssetValidator& validator
190 );
191
192 MCNAPI void registerBlockFromDefinition(::BlockDefinition const& definition, bool assertIfAlreadyExists);
193
194 MCNAPI ::WeakPtr<::BlockLegacy> registerDataDrivenBlock(::BlockDescription const& desc);
195
197 // NOLINTEND
198
199public:
200 // constructor thunks
201 // NOLINTBEGIN
202 MCNAPI void* $ctor(::cereal::ReflectionCtx const& ctx);
203 // NOLINTEND
204
205public:
206 // destructor thunk
207 // NOLINTBEGIN
208 MCNAPI void $dtor();
209 // NOLINTEND
210};
Definition BlockDefinitionGroup.h:34
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 _validateCrossComponentConstraints(::BlockComponentGroupDescription const &description, ::SemVersion const &mOriginalJsonVersion) const
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 bool generateBlockResource(::Json::Value const &root, ::IPackLoadContext const &packLoadContext, ::SemVersion const &originalJsonVersion, ::BlockDefinitionGroup::BlockResource &out)
MCAPI void initBlockLegacyFromDefinition(::BlockLegacy &blockLegacy, ::BlockDefinition const &definition)
MCAPI ::std::vector<::BlockDefinition const * > getBlockDefinitions() const
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 loadResources(::ResourcePackManager const &resourcePackManager, ::Experiments const &experiments, ::LinkedAssetValidator &validator)
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 bool _parseComponents(::Json::Value const &blockRoot, ::BlockComponentGroupDescription &componentGroupDescription, ::std::string const &blockIdentifier, ::SemVersion const &originalJsonVersion, ::IPackLoadContext &packLoadContext, ::JsonBetaState canUseBeta)
MCAPI void $dtor()
Definition BlockLegacy.h:88
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:238
Definition LinkedAssetValidator.h:8
Definition PackLoadRequirement.h:19
Definition ResourcePackManager.h:23
Definition SemVersion.h:15
Definition BlockComponentGroupDescription.h:12
Definition BlockDefinitionGroup.h:42
Definition BlockDefinition.h:13
Definition BlockDescription.h:5
Definition BlockPermutationDescription.h:5
Definition ReflectionCtx.h:11
Definition ctx.h:5
Definition Alias.h:14