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"
23namespace Bedrock::Threading {
class Mutex; }
24namespace Json {
class Value; }
29 public ::std::enable_shared_from_this<::GeometryGroup> {
33 ::ll::UntypedStorage<8, 64> mUnk69fa9e;
34 ::ll::UntypedStorage<8, 80> mUnk15a0e0;
35 ::ll::UntypedStorage<8, 8> mUnk89a968;
40 GeometryGroup& operator=(GeometryGroup
const&);
41 GeometryGroup(GeometryGroup
const&);
46 virtual ~GeometryGroup() ;
52 MCAPI GeometryGroup();
54 MCAPI ::std::shared_ptr<::GeometryInfo> _findOrAddGeometryInfo(
55 ::HashedString
const& name,
56 ::Bedrock::Threading::UniqueLock<::Bedrock::Threading::Mutex>& geometryLock
59 MCAPI
void _loadModelsAsync(
60 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
61 ::std::shared_ptr<::GeometryInheritanceTree> inheritance,
62 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&, ::ModelParent
const&)>
64 ::std::function<
void()> mainThreadCallback
67 MCAPI
void addGeometries(
68 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
69 ::Json::Value& geometryData,
70 ::MinEngineVersion
const& minEngineVersion,
71 ::std::function<
void()> mainThreadCallback,
75 MCAPI ::GeometryPtr getGeometry(::HashedString
const& geometryName);
77 MCAPI
void loadGeometriesAsync(
78 ::ResourcePackManager& resourcePackManager,
79 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
80 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&, ::ModelParent
const&)>
82 ::std::function<
void(::Json::Value&)> postLoadFixup
85 MCAPI
void loadModelPackFromStringSync(
86 ::std::string
const& packName,
87 ::std::string
const& content,
88 ::MinEngineVersion
const& minEngineVersion
95 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
96 _buildGeometryFileSchema_pre_v1_8();
98 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
99 _buildGeometryFileSchema_v1_12();
101 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
102 _buildGeometryFileSchema_v1_14();
104 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
105 _buildGeometryFileSchema_v1_16();
107 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
108 _buildGeometryFileSchema_v1_19_30();
110 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
111 _buildGeometryFileSchema_v1_21();
113 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
114 _buildGeometryFileSchema_v1_8();
116 MCAPI
static void _buildInheritanceTree(
117 ::std::string
const&,
118 ::std::string
const& sourceFilePathWithExtension,
119 ::Json::Value& value,
120 ::MinEngineVersion
const& minEngineVersion,
121 ::GeometryInheritanceTree& inheritance,
122 bool isFromBaseGamePack,
123 bool requireMinecraftNamespace,
124 ::std::function<
void(::Json::Value&)> postLoadFixup
127 MCAPI
static void _buildInheritanceTree(
128 ::std::string
const& fileName,
129 ::std::string
const& sourceFilePathWithExtension,
130 ::std::string
const& fileContent,
131 ::MinEngineVersion
const& minEngineVersion,
132 ::GeometryInheritanceTree& inheritance,
133 bool isFromBaseGamePack,
134 bool requireMinecraftNamespace,
135 ::std::function<
void(::Json::Value&)> postLoadFixup
138 MCAPI static ::std::pair<::std::string, ::std::string> _getParent(::std::string
const& fullName);
140 MCAPI
static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
142 MCAPI
static bool isValidGeometryIdentifier(::Json::Value
const& name);
144 MCAPI
static bool isValidMinecraftNamespaceGeometryIdentifier(::std::string
const& identifier);
146 MCAPI
static bool isValidOptionalNamespaceGeometryIdentifier(::Json::Value
const& name);
148 MCAPI
static void loadModel(
149 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
150 ::std::string
const& pascalCaseName,
151 ::ModelParent
const& mp
154 MCAPI
static void loadModelExt(
155 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
156 ::std::string
const& pascalCaseName,
157 ::ModelParent
const& mp,
160 ::TextureUVCoordinateSet
const& uvOffset,
161 bool clearSkinAdjustmentsBitmask
164 MCAPI
static void upgradeMirrorMemberToV1_12(::Json::Value& bone);
166 MCAPI
static void upgradeResetMemberToV1_12(::Json::Value& bone);
168 MCAPI
static bool upgradeToV1_12(
170 ::SemVersion
const& fileVersion,
171 ::MinEngineVersion
const& minEngineVersion,
172 bool& hasBeenValidated
175 MCAPI
static bool upgradeToV1_14(
177 ::SemVersion
const& fileVersion,
178 ::MinEngineVersion
const& minEngineVersion,
179 bool& hasBeenValidated
182 MCAPI
static bool upgradeToV1_16(
184 ::SemVersion
const& fileVersion,
185 ::MinEngineVersion
const& minEngineVersion,
186 bool& hasBeenValidated
189 MCAPI
static bool upgradeToV1_19_30(
191 ::SemVersion
const& fileVersion,
192 ::MinEngineVersion
const& minEngineVersion,
193 bool& hasBeenValidated
196 MCAPI
static bool upgradeToV1_21(
198 ::SemVersion
const& fileVersion,
199 ::MinEngineVersion
const& minEngineVersion,
200 bool& hasBeenValidated
203 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:10
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:30
Definition SemVersion.h:15
Definition ModelParent.h:5
Definition TextureUVCoordinateSet.h:5