From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/ModelPart.h | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Minecraft.Client/ModelPart.h (limited to 'Minecraft.Client/ModelPart.h') diff --git a/Minecraft.Client/ModelPart.h b/Minecraft.Client/ModelPart.h new file mode 100644 index 00000000..65d6a03b --- /dev/null +++ b/Minecraft.Client/ModelPart.h @@ -0,0 +1,62 @@ +#pragma once +#include "..\Minecraft.World\ArrayWithLength.h" +#include "Vertex.h" +#include "Polygon.h" +#include "Model.h" +#include "..\Minecraft.Client\SkinBox.h" + +class Cube; + +class ModelPart +{ +public: + float xTexSize; + float yTexSize; + float x, y, z; + float xRot, yRot, zRot; + bool bMirror; + bool visible; + bool neverRender; + vector cubes; + vector children; + static const float RAD; + +private: + wstring id; + int xTexOffs, yTexOffs; + boolean compiled; + int list; + Model *model; + +public: + void _init(); // 4J added + ModelPart(); + ModelPart(Model *model, const wstring &id); + ModelPart(Model *model); + ModelPart(Model *model, int xTexOffs, int yTexOffs); + + // MGH - had to add these for PS3, as calling constructors from others was only introduced in c++11 - https://en.wikipedia.org/wiki/C++11#Object_construction_improvement + void construct(Model *model, const wstring &id); + void construct(Model *model); + void construct(Model *model, int xTexOffs, int yTexOffs); + + void addChild(ModelPart *child); + ModelPart * retrieveChild(SKIN_BOX *pBox); + ModelPart *mirror(); + ModelPart *texOffs(int xTexOffs, int yTexOffs); + ModelPart *addBox(wstring id, float x0, float y0, float z0, int w, int h, int d); + ModelPart *addBox(float x0, float y0, float z0, int w, int h, int d); + ModelPart *addBoxWithMask(float x0, float y0, float z0, int w, int h, int d, int faceMask); // 4J added + void addBox(float x0, float y0, float z0, int w, int h, int d, float g); + void addHumanoidBox(float x0, float y0, float z0, int w, int h, int d, float g); // 4J - to flip the poly 3 uvs so the skin maps correctly + void addTexBox(float x0, float y0, float z0, int w, int h, int d, int tex); + void setPos(float x, float y, float z); + void render(float scale, bool usecompiled,bool bHideParentBodyPart=false); + void renderRollable(float scale, bool usecompiled); + void translateTo(float scale); + ModelPart *setTexSize(int xs, int ys); + void mimic(ModelPart *o); + void compile(float scale); + int getfU() {return xTexOffs;} + int getfV() {return yTexOffs;} + }; -- cgit v1.2.3