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 GeometryPtr;
16class HashedString;
20class 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*/;
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 ::GeometryPtr getGeometry(::HashedString const& geometryName);
76
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&)>
81 loadModelFunction,
82 ::std::function<void(::Json::Value&)> postLoadFixup
83 );
84
85 MCAPI void loadModelPackFromStringSync(
86 ::std::string const& packName,
87 ::std::string const& content,
88 ::MinEngineVersion const& minEngineVersion
89 );
90 // NOLINTEND
91
92public:
93 // static functions
94 // NOLINTBEGIN
95 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
96 _buildGeometryFileSchema_pre_v1_8();
97
98 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
99 _buildGeometryFileSchema_v1_12();
100
101 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
102 _buildGeometryFileSchema_v1_14();
103
104 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
105 _buildGeometryFileSchema_v1_16();
106
107 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
108 _buildGeometryFileSchema_v1_19_30();
109
110 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
111 _buildGeometryFileSchema_v1_21();
112
113 MCAPI static ::std::shared_ptr<::JsonUtil::JsonSchemaObjectNode<::JsonUtil::EmptyClass, ::GeometryGroup>>
114 _buildGeometryFileSchema_v1_8();
115
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
125 );
126
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
136 );
137
138 MCAPI static ::std::pair<::std::string, ::std::string> _getParent(::std::string const& fullName);
139
140 MCAPI static bool checkVersionlessName(::std::string_view name, ::std::string_view versionlessGeoName);
141
142 MCAPI static bool isValidGeometryIdentifier(::Json::Value const& name);
143
144 MCAPI static bool isValidMinecraftNamespaceGeometryIdentifier(::std::string const& identifier);
145
146 MCAPI static bool isValidOptionalNamespaceGeometryIdentifier(::Json::Value const& name);
147
148 MCAPI static void loadModel(
149 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
150 ::std::string const& pascalCaseName,
151 ::ModelParent const& mp
152 );
153
154 MCAPI static void loadModelExt(
155 ::std::weak_ptr<::GeometryGroup> weakGeometryGroup,
156 ::std::string const& pascalCaseName,
157 ::ModelParent const& mp,
158 int texw,
159 int texh,
160 ::TextureUVCoordinateSet const& uvOffset,
161 bool clearSkinAdjustmentsBitmask
162 );
163
164 MCAPI static void upgradeMirrorMemberToV1_12(::Json::Value& bone);
165
166 MCAPI static void upgradeResetMemberToV1_12(::Json::Value& bone);
167
168 MCAPI static bool upgradeToV1_12(
169 ::Json::Value& root,
170 ::SemVersion const& fileVersion,
171 ::MinEngineVersion const& minEngineVersion,
172 bool& hasBeenValidated
173 );
174
175 MCAPI static bool upgradeToV1_14(
176 ::Json::Value& root,
177 ::SemVersion const& fileVersion,
178 ::MinEngineVersion const& minEngineVersion,
179 bool& hasBeenValidated
180 );
181
182 MCAPI static bool upgradeToV1_16(
183 ::Json::Value& root,
184 ::SemVersion const& fileVersion,
185 ::MinEngineVersion const& minEngineVersion,
186 bool& hasBeenValidated
187 );
188
189 MCAPI static bool upgradeToV1_19_30(
190 ::Json::Value& root,
191 ::SemVersion const& fileVersion,
192 ::MinEngineVersion const& minEngineVersion,
193 bool& hasBeenValidated
194 );
195
196 MCAPI static bool upgradeToV1_21(
197 ::Json::Value& root,
198 ::SemVersion const& fileVersion,
199 ::MinEngineVersion const& minEngineVersion,
200 bool& hasBeenValidated
201 );
202
203 MCAPI static bool validateFormatVersion(::SemVersion& fileVersion, ::Json::Value const& value);
204 // NOLINTEND
205
206public:
207 // constructor thunks
208 // NOLINTBEGIN
209 MCAPI void* $ctor();
210 // NOLINTEND
211
212public:
213 // destructor thunk
214 // NOLINTBEGIN
215 MCAPI void $dtor();
216 // NOLINTEND
217
218public:
219 // vftables
220 // NOLINTBEGIN
221 MCNAPI static void** $vftable();
222 // NOLINTEND
223};
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 GeometryPtr.h:5
Definition HashedString.h:5
Definition EmptyClass.h:7
Definition Value.h:16
Definition MinEngineVersion.h:10
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:30
Definition SemVersion.h:15
Definition ModelParent.h:5
Definition TextureUVCoordinateSet.h:5