3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/platform/threading/UniqueLock.h"
9#include "mc/util/json_util/JsonSchemaObjectNode.h"
24namespace Bedrock::Threading {
class Mutex; }
25namespace Json {
class Value; }
30 public ::std::enable_shared_from_this<::GeometryGroup> {
34 ::ll::UntypedStorage<8, 64> mUnk69fa9e;
35 ::ll::UntypedStorage<8, 80> mUnk15a0e0;
36 ::ll::UntypedStorage<8, 8> mUnk89a968;
41 GeometryGroup& operator=(GeometryGroup
const&);
42 GeometryGroup(GeometryGroup
const&);
47 virtual ~GeometryGroup() ;
53 MCAPI GeometryGroup();
55 MCAPI ::std::shared_ptr<::GeometryInfo>
56 _findOrAddGeometryInfo(::HashedString
const& name, ::Bedrock::Threading::UniqueLock<::Bedrock::Threading::Mutex>&);
58 MCAPI
void _loadModelsAsync(
59 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
60 ::std::shared_ptr<::GeometryInheritanceTree> inheritance,
61 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&, ::ModelParent
const&)>
63 ::std::function<
void()> mainThreadCallback
66 MCAPI
void addGeometries(
67 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
68 ::Json::Value& geometryData,
69 ::MinEngineVersion
const& minEngineVersion,
70 ::std::function<
void()> mainThreadCallback,
74 MCAPI ::GeometryPtr getGeometry(::HashedString
const& geometryName);
76 MCAPI ::std::shared_ptr<::GeometryInfo> getGeometryInfo(::HashedString
const& name);
78 MCFOLD ::std::weak_ptr<::GeometryGroup> getWeakPtrToThis();
80 MCAPI
void loadGeometriesAsync(
81 ::ResourcePackManager& resourcePackManager,
82 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
83 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&, ::ModelParent
const&)>
85 ::std::function<
void(::Json::Value&)> postLoadFixup
88 MCAPI
void loadModelPackFromStringSync(
89 ::std::string
const& packName,
90 ::std::string
const& content,
91 ::MinEngineVersion
const& minEngineVersion
94 MCAPI
void removeGeometry(::HashedString
const& name);
96 MCAPI
void setGeometry(::HashedString
const& name, ::std::unique_ptr<::Geometry>&& ptr);
102 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
103 _buildGeometryFileSchema_pre_v1_8();
105 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
106 _buildGeometryFileSchema_v1_12();
108 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
109 _buildGeometryFileSchema_v1_14();
111 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
112 _buildGeometryFileSchema_v1_16();
114 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
115 _buildGeometryFileSchema_v1_19_30();
117 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
118 _buildGeometryFileSchema_v1_21();
120 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
121 _buildGeometryFileSchema_v1_8();
123 MCAPI
static void _buildInheritanceTree(
124 ::std::string
const& fileName,
125 ::std::string
const& sourceFilePathWithExtension,
126 ::std::string
const& fileContent,
127 ::MinEngineVersion
const& minEngineVersion,
128 ::GeometryInheritanceTree& inheritance,
129 bool isFromBaseGamePack,
130 bool requireMinecraftNamespace,
131 ::std::function<
void(::Json::Value&)> postLoadFixup
134 MCAPI
static void _buildInheritanceTree(
135 ::std::string
const& sourceFilePathWithExtension,
136 ::std::string
const& value,
137 ::Json::Value& minEngineVersion,
138 ::MinEngineVersion
const& inheritance,
139 ::GeometryInheritanceTree& isFromBaseGamePack,
140 bool requireMinecraftNamespace,
142 ::std::function<
void(::Json::Value&)>
145 MCAPI static ::std::pair<::std::string, ::std::string> _getParent(::std::string
const& fullName);
147 MCAPI
static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
149 MCAPI
static bool isValidGeometryIdentifier(::Json::Value
const& name);
151 MCAPI
static bool isValidMinecraftNamespaceGeometryIdentifier(::std::string
const& identifier);
153 MCAPI
static bool isValidOptionalNamespaceGeometryIdentifier(::Json::Value
const& name);
155 MCAPI
static void loadModel(
156 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
157 ::std::string
const& pascalCaseName,
158 ::ModelParent
const& mp
161 MCAPI
static void loadModelExt(
162 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
163 ::std::string
const& pascalCaseName,
164 ::ModelParent
const& mp,
167 ::TextureUVCoordinateSet
const& uvOffset,
168 bool clearSkinAdjustmentsBitmask
171 MCAPI
static void upgradeMirrorMemberToV1_12(::Json::Value& bone);
173 MCAPI
static void upgradeResetMemberToV1_12(::Json::Value& bone);
175 MCAPI
static bool upgradeToV1_12(
177 ::SemVersion
const& fileVersion,
178 ::MinEngineVersion
const& minEngineVersion,
179 bool& hasBeenValidated
182 MCAPI
static bool upgradeToV1_14(
184 ::SemVersion
const& fileVersion,
185 ::MinEngineVersion
const& minEngineVersion,
186 bool& hasBeenValidated
189 MCAPI
static bool upgradeToV1_16(
191 ::SemVersion
const& fileVersion,
192 ::MinEngineVersion
const& minEngineVersion,
193 bool& hasBeenValidated
196 MCAPI
static bool upgradeToV1_19_30(
198 ::SemVersion
const& fileVersion,
199 ::MinEngineVersion
const& minEngineVersion,
200 bool& hasBeenValidated
203 MCAPI
static bool upgradeToV1_21(
205 ::SemVersion
const& fileVersion,
206 ::MinEngineVersion
const& minEngineVersion,
207 bool& hasBeenValidated
210 MCAPI
static bool validateFormatVersion(::SemVersion& fileVersion, ::Json::Value
const& value);
Definition EnableNonOwnerReferences.h:7
Definition GeometryGroup.h:5
static MCAPI void ** $vftable()
Definition GeometryInfo.h:5
Definition GeometryInheritanceTree.h:5
Definition GeometryPtr.h:5
Definition HashedString.h:5
Definition EmptyClass.h:7
Definition MinEngineVersion.h:15
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:35
Definition SemVersion.h:15
Definition ModelParent.h:5
Definition TextureUVCoordinateSet.h:5