3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/model/FitToFrame.h"
7#include "mc/client/model/geom/Cube.h"
8#include "mc/client/model/geom/QuadUVRotation.h"
9#include "mc/client/model/geom/TextureOffset.h"
10#include "mc/deps/core/math/Vec2.h"
11#include "mc/deps/core/math/Vec3.h"
12#include "mc/deps/core/sem_ver/SemVersion.h"
13#include "mc/resources/MinEngineVersion.h"
14#include "mc/world/actor/player/SkinAdjustments.h"
22namespace Json {
class Value; }
44 ::ll::TypedStorage<1, 1, bool> mMirror;
45 ::ll::TypedStorage<4, 12, ::Vec3> mFrom;
46 ::ll::TypedStorage<4, 12, ::Vec3> mSize;
47 ::ll::TypedStorage<4, 12, ::Vec3> mRotation;
48 ::ll::TypedStorage<4, 12, ::Vec3> mPivot;
49 ::ll::TypedStorage<8, 16, ::TextureOffset> mTex;
50 ::ll::TypedStorage<4, 144, ::std::array<::Cube::FaceUVData, 6>> mFaceUVs;
51 ::ll::TypedStorage<4, 4, float> mInflate;
52 ::ll::TypedStorage<1, 1, bool> mUsesFaceUVs;
58 MCAPI
void _boxFaceUVToJson(
59 ::Json::Value& uvNode,
61 ::std::string
const& faceName,
62 ::std::vector<::std::string>
const& materialInstanceList
65 MCAPI
void toJson(::Json::Value& root, ::std::vector<::std::string>
const& materialInstanceList)
const;
73 ::ll::TypedStorage<4, 4, uint> mPositionIndex;
74 ::ll::TypedStorage<4, 4, uint> mNormalIndex;
75 ::ll::TypedStorage<4, 4, uint> mUVIndex;
81 MCAPI
void toJson(::Json::Value& root)
const;
89 ::ll::TypedStorage<8, 24, ::std::vector<::Vec3>> mPositions;
90 ::ll::TypedStorage<8, 24, ::std::vector<::Vec3>> mNormals;
91 ::ll::TypedStorage<8, 24, ::std::vector<::Vec2>> mUVs;
92 ::ll::TypedStorage<8, 24, ::std::vector<::std::array<::Geometry::NodeVertex, 3>>> mTris;
93 ::ll::TypedStorage<8, 24, ::std::vector<::std::array<::Geometry::NodeVertex, 4>>> mQuads;
94 ::ll::TypedStorage<1, 1, bool> mAreUVsNormalized;
104 MCAPI NodePolyMesh(::Geometry::NodePolyMesh
const&);
106 MCAPI ::Geometry::NodePolyMesh& operator=(::Geometry::NodePolyMesh&&);
108 MCAPI ::Geometry::NodePolyMesh& operator=(::Geometry::NodePolyMesh
const&);
110 MCAPI
void toJson(::Json::Value& root)
const;
112 MCAPI ~NodePolyMesh();
118 MCAPI
void* $ctor(::Geometry::NodePolyMesh
const&);
132 ::ll::TypedStorage<8, 32, ::std::string> mTextureName;
133 ::ll::TypedStorage<4, 12, ::Vec3> mPosition;
134 ::ll::TypedStorage<4, 12, ::Vec3> mLocalPivot;
135 ::ll::TypedStorage<4, 12, ::Vec3> mRotation;
136 ::ll::TypedStorage<4, 12, ::Vec3> mScale;
137 ::ll::TypedStorage<1, 1, bool> mUsePixelDepth;
147 MCAPI
explicit NodeTextureMesh(::std::string
const& textureName);
149 MCAPI
void toJson(::Json::Value& root)
const;
155 MCAPI
void* $ctor(::std::string
const& textureName);
163 ::ll::TypedStorage<8, 16, ::std::set<::std::string>> mMixedCaseNames;
164 ::ll::TypedStorage<1, 1, bool> mMirror;
165 ::ll::TypedStorage<1, 1, bool> mNeverRender;
166 ::ll::TypedStorage<4, 12, ::Vec3> mPivot;
167 ::ll::TypedStorage<4, 12, ::Vec3> mRot;
168 ::ll::TypedStorage<4, 12, ::Vec3> mScale;
169 ::ll::TypedStorage<4, 12, ::Vec3> mBindPoseRotation;
170 ::ll::TypedStorage<4, 4, float> mInflate;
171 ::ll::TypedStorage<1, 1, bool> mPivotSubtractsParentPivot;
172 ::ll::TypedStorage<8, 24, ::std::vector<::Geometry::Box>> mBoxes;
173 ::ll::TypedStorage<8, 32, ::std::string> mParentName;
174 ::ll::TypedStorage<8, 32, ::std::string> mBoneBindingExpression;
175 ::ll::TypedStorage<8, 24, ::std::vector<::ModelPartLocator>> mLocators;
176 ::ll::TypedStorage<8, 128, ::Geometry::NodePolyMesh> mMesh;
177 ::ll::TypedStorage<8, 24, ::std::vector<::Geometry::NodeTextureMesh>> mTextureMeshes;
178 ::ll::TypedStorage<1, 1, bool> mDebug;
179 ::ll::TypedStorage<4, 4, uint> mSkinnedMeshGroupIdentifier;
180 ::ll::TypedStorage<8, 24, ::SemVersion> mSourceFileVersion;
181 ::ll::TypedStorage<8, 32, ::MinEngineVersion> mSourceMinEngineVersion;
189 MCAPI Node(::Geometry::Node
const&);
192 _textureMeshToJson(::std::vector<::Geometry::NodeTextureMesh>
const& textureMeshes, ::Json::Value& node)
const;
194 MCAPI
void addLocator(
195 ::std::string
const& name,
196 ::std::string
const& boneName,
197 ::Vec3
const& localOffset,
198 bool ignoreInheritedScale,
199 bool errorIfIdenticalLocatorAlreadyExists
202 MCAPI ::Geometry::Node& operator=(::Geometry::Node
const&);
204 MCAPI
void toJson(::Json::Value& root, ::std::vector<::std::string>
const& materialInstanceList)
const;
214 MCAPI
void* $ctor(::Geometry::Node
const&);
227 ::ll::TypedStorage<4, 4, ::SkinAdjustments> mSkinAdjustments;
228 ::ll::TypedStorage<4, 8, ::Vec2> mRenderDim;
229 ::ll::TypedStorage<4, 12, ::Vec3> mRenderDimOffset;
230 ::ll::TypedStorage<4, 12, ::Vec3> mLeashOffset;
231 ::ll::TypedStorage<4, 12, ::Vec3> mScale;
232 ::ll::TypedStorage<1, 1, bool> mUseModelData;
233 ::ll::TypedStorage<1, 1, bool> mModified;
234 ::ll::TypedStorage<8, 24, ::std::vector<::Geometry::ItemDisplayTransform>> mItemTransforms;
235 ::ll::TypedStorage<1, 1, ::FitToFrame> mFitGuiItemToFrame;
236 ::ll::TypedStorage<4, 8, ::Vec2> mTextureDimensions;
237 ::ll::TypedStorage<8, 32, ::std::string> mSourceFilePathWithExtension;
238 ::ll::TypedStorage<8, 32, ::std::string> mSerializableName;
239 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::Geometry::Node>> mNodes;
240 ::ll::TypedStorage<8, 32, ::MinEngineVersion> mMinEngineVersion;
241 ::ll::TypedStorage<1, 1, bool> mIsFromBaseGamePack;
242 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mMaterialInstanceList;
253 ::std::string
const& serializableName,
254 ::std::string
const& sourceFilePathWithExtension,
255 bool isFromBaseGamePack,
261 ::std::string
const& serializableName,
262 ::std::string
const& sourceFilePathWithExtension,
263 ::Geometry
const& source,
264 bool isFromBaseGamePack,
269 MCAPI
void _convertPreV1_8MobArmorOffsetsToLocators();
271 MCAPI
void _fixEnderDragonLegacyBones(::Geometry::Node& newNode, ::std::string
const& name);
273 MCAPI
void _fixPreDataDrivenMobGeometry(
274 ::std::string
const& name,
275 ::std::vector<::JsonValueHierarchy>
const& bones,
276 ::JsonValueHierarchy& sourceNode,
277 ::Geometry::Node* newNode
281 _parseBones(::JsonValueHierarchy
const& root,
bool applyBindPoseRotation, ::TextureUVCoordinateSet
const& uvOffset);
283 MCAPI
void _parseBoxFaceUV(
284 ::Geometry::Box& box,
285 ::Json::Value
const& uvNode,
287 ::std::string
const& faceName,
288 ::Vec2
const& defaultUVSize,
289 ::TextureUVCoordinateSet
const& uvOffset
293 _parseBoxFaceUVs(::Geometry::Box& box, ::Json::Value
const& uvNode, ::TextureUVCoordinateSet
const& uvOffset);
295 MCAPI
void _parseItemDisplayTransform(::Json::Value
const& itemTransformNode, ::std::string
const& transformName);
297 MCFOLD ::std::vector<::std::string>
const& getMaterialInstanceList()
const;
299 MCAPI ::Geometry::Node
const* getNode(::std::string_view name)
const;
301 MCFOLD ::std::map<::std::string, ::Geometry::Node>
const& getNodes()
const;
303 MCFOLD ::Vec2
const& getTextureDimensions()
const;
305 MCFOLD
bool isFromBaseGamePack()
const;
308 parse(::JsonValueHierarchy
const& root,
bool applyBindPoseRotation, ::TextureUVCoordinateSet
const& uvOffset);
310 MCAPI
void toJson(::Json::Value& root)
const;
318 MCAPI static ::QuadUVRotation _parseUvRotation(::Json::Value
const& value);
324 MCAPI static ::SemVersionConstant
const& mDataDrivenEnderDragonSupportedVersion();
326 MCAPI static ::SemVersionConstant
const& mDataDrivenRenderingSupportedVersion();
328 MCAPI static ::SemVersionConstant
const& mDrownedParentFieldSupportedVersion();
330 MCAPI static ::SemVersionConstant
const& mParentFieldSupportedVersion();
337 ::std::string
const& serializableName,
338 ::std::string
const& sourceFilePathWithExtension,
339 bool isFromBaseGamePack,
345 ::std::string
const& serializableName,
346 ::std::string
const& sourceFilePathWithExtension,
347 ::Geometry
const& source,
348 bool isFromBaseGamePack,
Definition JsonValueHierarchy.h:13
Definition ModelPartLocator.h:11
Definition SemVersionConstant.h:8
Definition TextureUVCoordinateSet.h:5