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() =
default;
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
void loadGeometriesAsync(
76 ::ResourcePackManager& resourcePackManager,
77 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
78 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&, ::ModelParent
const&)>
80 ::std::function<
void(::Json::Value&)> postLoadFixup
83 MCAPI
void loadModelPackFromStringSync(
84 ::std::string
const& packName,
85 ::std::string
const& content,
86 ::MinEngineVersion
const& minEngineVersion
93 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
94 _buildGeometryFileSchema_v1_21();
96 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
97 _buildGeometryFileSchema_v1_26_40();
99 MCAPI
static void _buildInheritanceTree(
100 ::std::string
const&,
101 ::std::string
const& sourceFilePathWithExtension,
102 ::Json::Value& value,
103 ::MinEngineVersion
const& minEngineVersion,
104 ::GeometryInheritanceTree& inheritance,
105 bool const isFromBaseGamePack,
106 bool const requireMinecraftNamespace,
107 ::std::function<
void(::Json::Value&)> postLoadFixup
110 MCAPI
static void _buildInheritanceTree(
111 ::std::string
const& fileName,
112 ::std::string
const& sourceFilePathWithExtension,
113 ::std::string
const& fileContent,
114 ::MinEngineVersion
const& minEngineVersion,
115 ::GeometryInheritanceTree& inheritance,
116 bool const isFromBaseGamePack,
117 bool const requireMinecraftNamespace,
118 ::std::function<
void(::Json::Value&)> postLoadFixup
121 MCAPI
static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
123 MCAPI
static bool isValidGeometryIdentifier(::Json::Value
const& name);
125 MCAPI
static bool isValidOptionalNamespaceGeometryIdentifier(::Json::Value
const& name);
127 MCAPI
static void loadModel(
128 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
129 ::std::string
const& pascalCaseName,
130 ::ModelParent
const& mp
133 MCAPI
static void loadModelExt(
134 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
135 ::std::string
const& pascalCaseName,
136 ::ModelParent
const& mp,
139 ::TextureUVCoordinateSet
const& uvOffset,
140 bool clearSkinAdjustmentsBitmask
143 MCAPI
static void upgradeMirrorMemberToV1_12(::Json::Value& bone);
145 MCAPI
static bool upgradeToV1_19_30(
147 ::SemVersion
const& fileVersion,
148 ::MinEngineVersion
const& minEngineVersion,
149 bool& hasBeenValidated
152 MCAPI
static bool upgradeToV1_21(
154 ::SemVersion
const& fileVersion,
155 ::MinEngineVersion
const& minEngineVersion,
156 bool& hasBeenValidated
159 MCAPI
static bool upgradeToV1_26_40(
161 ::SemVersion
const& fileVersion,
162 ::MinEngineVersion
const& minEngineVersion,
163 bool& hasBeenValidated
170 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_12();
172 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_14();
174 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_16();
176 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_19_30();
178 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_21();
180 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_26_40();
182 MCAPI static ::SemVersionConstant
const& GEOMETRY_SCHEMA_V1_8();
184 MCAPI static ::std::string
const& ITEM_DISPLAY_TRANSFORMS_ID();
186 MCAPI static ::std::string
const& UV_ROTATION_DOC();
Definition EnableNonOwnerReferences.h:7
Definition GeometryGroup.h:5
static MCAPI void ** $vftable()
Definition GeometryInfo.h:5
Definition GeometryInheritanceTree.h:5
Definition HashedString.h:5
Definition EmptyClass.h:7
Definition MinEngineVersion.h:15
Definition ResourceLoadManager.h:18
Definition ResourcePackManager.h:38
Definition SemVersionConstant.h:8
Definition SemVersion.h:15
Definition ModelParent.h:5
Definition TextureUVCoordinateSet.h:5