LeviLamina
Loading...
Searching...
No Matches
GeometryGroup.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
10
11// auto generated forward declare list
12// clang-format off
13class GeometryInfo;
15class HashedString;
19class SemVersion;
21struct ModelParent;
23namespace Bedrock::Threading { class Mutex; }
24namespace Json { class Value; }
25namespace JsonUtil { class EmptyClass; }
26// clang-format on
27
29 public ::std::enable_shared_from_this<::GeometryGroup> {
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::UntypedStorage<8, 64> mUnk69fa9e;
34 ::ll::UntypedStorage<8, 80> mUnk15a0e0;
35 ::ll::UntypedStorage<8, 8> mUnk89a968;
36 // NOLINTEND
37
38public:
39 // prevent constructor by default
40 GeometryGroup& operator=(GeometryGroup const&);
41 GeometryGroup(GeometryGroup const&);
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ~GeometryGroup() /*override*/ = default;
47 // NOLINTEND
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI GeometryGroup();
53
54 MCAPI ::std::shared_ptr<::GeometryInfo> _findOrAddGeometryInfo(
55 ::HashedString const& name,
56 ::Bedrock::Threading::UniqueLock<::Bedrock::Threading::Mutex>& geometryLock
57 );
58
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&)>
63 loadModelFunction,
64 ::std::function<void()> mainThreadCallback
65 );
66
67 MCAPI void addGeometries(
68 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
69 ::Json::Value& geometryData,
70 ::MinEngineVersion const& minEngineVersion,
71 ::std::function<void()> mainThreadCallback,
72 bool isAsync
73 );
74
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&)>
79 loadModelFunction,
80 ::std::function<void(::Json::Value&)> postLoadFixup
81 );
82
83 MCAPI void loadModelPackFromStringSync(
84 ::std::string const& packName,
85 ::std::string const& content,
86 ::MinEngineVersion const& minEngineVersion
87 );
88 // NOLINTEND
89
90public:
91 // static functions
92 // NOLINTBEGIN
93 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
94 _buildGeometryFileSchema_v1_21();
95
96 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
97 _buildGeometryFileSchema_v1_26_40();
98
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
108 );
109
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
119 );
120
121 MCAPI static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
122
123 MCAPI static bool isValidGeometryIdentifier(::Json::Value const& name);
124
125 MCAPI static bool isValidOptionalNamespaceGeometryIdentifier(::Json::Value const& name);
126
127 MCAPI static void loadModel(
128 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
129 ::std::string const& pascalCaseName,
130 ::ModelParent const& mp
131 );
132
133 MCAPI static void loadModelExt(
134 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
135 ::std::string const& pascalCaseName,
136 ::ModelParent const& mp,
137 int texw,
138 int texh,
139 ::TextureUVCoordinateSet const& uvOffset,
140 bool clearSkinAdjustmentsBitmask
141 );
142
143 MCAPI static void upgradeMirrorMemberToV1_12(::Json::Value& bone);
144
145 MCAPI static bool upgradeToV1_19_30(
146 ::Json::Value& root,
147 ::SemVersion const& fileVersion,
148 ::MinEngineVersion const& minEngineVersion,
149 bool& hasBeenValidated
150 );
151
152 MCAPI static bool upgradeToV1_21(
153 ::Json::Value& root,
154 ::SemVersion const& fileVersion,
155 ::MinEngineVersion const& minEngineVersion,
156 bool& hasBeenValidated
157 );
158
159 MCAPI static bool upgradeToV1_26_40(
160 ::Json::Value& root,
161 ::SemVersion const& fileVersion,
162 ::MinEngineVersion const& minEngineVersion,
163 bool& hasBeenValidated
164 );
165 // NOLINTEND
166
167public:
168 // static variables
169 // NOLINTBEGIN
170 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_12();
171
172 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_14();
173
174 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_16();
175
176 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_19_30();
177
178 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_21();
179
180 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_26_40();
181
182 MCAPI static ::SemVersionConstant const& GEOMETRY_SCHEMA_V1_8();
183
184 MCAPI static ::std::string const& ITEM_DISPLAY_TRANSFORMS_ID();
185
186 MCAPI static ::std::string const& UV_ROTATION_DOC();
187 // NOLINTEND
188
189public:
190 // constructor thunks
191 // NOLINTBEGIN
192 MCAPI void* $ctor();
193 // NOLINTEND
194
195public:
196 // vftables
197 // NOLINTBEGIN
198 MCNAPI static void** $vftable();
199 // NOLINTEND
200};
Definition EnableNonOwnerReferences.h:7
Definition Mutex.h:10
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 Value.h:16
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