3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/string/HashedString.h"
7#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/platform/threading/UniqueLock.h"
10#include "mc/util/json_util/JsonSchemaObjectNode.h"
23namespace Json {
class Value; }
28 public ::std::enable_shared_from_this<::GeometryGroup> {
32 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::GeometryInfo>>> mGeometries;
33 ::ll::TypedStorage<8, 80, ::std::mutex> mGeometryLock;
34 ::ll::TypedStorage<8, 8, int64 const> mResourceLoadTimeStamp;
48 MCNAPI ::std::shared_ptr<::GeometryInfo>
52 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
53 ::std::shared_ptr<::GeometryInheritanceTree> inheritance,
54 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&,
::ModelParent const&)>
56 ::std::function<
void()> mainThreadCallback
59 MCAPI
void addGeometries(
60 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
63 ::std::function<
void()> mainThreadCallback,
67 MCAPI
void loadGeometriesAsync(
69 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
70 ::std::function<
void(::std::weak_ptr<::GeometryGroup>, ::std::string
const&,
::ModelParent const&)>
75 MCAPI
void loadModelPackFromStringSync(
76 ::std::string
const& packName,
77 ::std::string
const& content,
85 MCNAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
88 MCNAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
93 ::std::string
const& sourceFilePathWithExtension,
97 bool const isFromBaseGamePack,
98 bool const requireMinecraftNamespace,
103 ::std::string
const& fileName,
104 ::std::string
const& sourceFilePathWithExtension,
105 ::std::string
const& fileContent,
108 bool const isFromBaseGamePack,
109 bool const requireMinecraftNamespace,
113 MCAPI
static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
115 MCAPI
static bool isValidGeometryIdentifier(
::Json::Value const& name);
117 MCAPI
static bool isValidOptionalNamespaceGeometryIdentifier(
::Json::Value const& name);
120 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
121 ::std::string
const& pascalCaseName,
126 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
127 ::std::string
const& pascalCaseName,
132 bool clearSkinAdjustmentsBitmask
141 bool& hasBeenValidated
148 bool& hasBeenValidated
155 bool& hasBeenValidated
Definition EnableNonOwnerReferences.h:7
Definition UniqueLock.h:8
Definition GeometryGroup.h:5
static MCAPI void _buildInheritanceTree(::std::string const &, ::std::string const &sourceFilePathWithExtension, ::Json::Value &value, ::MinEngineVersion const &minEngineVersion, ::GeometryInheritanceTree &inheritance, bool const isFromBaseGamePack, bool const requireMinecraftNamespace, ::std::function< void(::Json::Value &)> postLoadFixup)
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_14()
static MCAPI void upgradeMirrorMemberToV1_12(::Json::Value &bone)
static MCAPI ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup > > _buildGeometryFileSchema_v1_21()
static MCAPI ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup > > _buildGeometryFileSchema_v1_26_40()
static MCAPI void loadModelExt(::std::weak_ptr<::GeometryGroup > weakGeometryGroup, ::std::string const &pascalCaseName, ::ModelParent const &mp, int texw, int texh, ::TextureUVCoordinateSet const &uvOffset, bool clearSkinAdjustmentsBitmask)
static MCAPI void ** $vftable()
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_8()
static MCAPI bool upgradeToV1_26_40(::Json::Value &root, ::SemVersion const &fileVersion, ::MinEngineVersion const &minEngineVersion, bool &hasBeenValidated)
static MCAPI void loadModel(::std::weak_ptr<::GeometryGroup > weakGeometryGroup, ::std::string const &pascalCaseName, ::ModelParent const &mp)
static MCAPI ::std::string const & ITEM_DISPLAY_TRANSFORMS_ID()
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_21()
static MCAPI bool upgradeToV1_21(::Json::Value &root, ::SemVersion const &fileVersion, ::MinEngineVersion const &minEngineVersion, bool &hasBeenValidated)
static MCAPI void _buildInheritanceTree(::std::string const &fileName, ::std::string const &sourceFilePathWithExtension, ::std::string const &fileContent, ::MinEngineVersion const &minEngineVersion, ::GeometryInheritanceTree &inheritance, bool const isFromBaseGamePack, bool const requireMinecraftNamespace, ::std::function< void(::Json::Value &)> postLoadFixup)
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_16()
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_12()
static MCAPI ::std::string const & UV_ROTATION_DOC()
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_26_40()
static MCAPI bool upgradeToV1_19_30(::Json::Value &root, ::SemVersion const &fileVersion, ::MinEngineVersion const &minEngineVersion, bool &hasBeenValidated)
MCAPI ::std::shared_ptr<::GeometryInfo > _findOrAddGeometryInfo(::HashedString const &name, ::Bedrock::Threading::UniqueLock<::std::mutex > &geometryLock)
MCAPI void _loadModelsAsync(::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager > resourceLoadManager, ::std::shared_ptr<::GeometryInheritanceTree > inheritance, ::std::function< void(::std::weak_ptr<::GeometryGroup >, ::std::string const &, ::ModelParent const &)> loadModelFunction, ::std::function< void()> mainThreadCallback)
static MCAPI ::SemVersionConstant const & GEOMETRY_SCHEMA_V1_19_30()
Definition GeometryInfo.h:5
Definition GeometryInheritanceTree.h:5
Definition HashedString.h:5
Definition EmptyClass.h:7
Definition MinEngineVersion.h:15
Definition ResourceLoadManager.h:22
Definition ResourcePackManager.h:29
Definition SemVersionConstant.h:8
Definition SemVersion.h:15
Definition ModelParent.h:5
Definition TextureUVCoordinateSet.h:5