mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 14:43:36 +00:00
70 lines
2.3 KiB
C++
70 lines
2.3 KiB
C++
#pragma once
|
|
#include "../../../Minecraft.World/Util/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;
|
|
std::vector<Cube*> cubes;
|
|
std::vector<ModelPart*> children;
|
|
static const float RAD;
|
|
float translateX, translateY, translateZ;
|
|
|
|
private:
|
|
std::wstring id;
|
|
int xTexOffs, yTexOffs;
|
|
boolean compiled;
|
|
int list;
|
|
Model* model;
|
|
|
|
public:
|
|
void _init(); // 4J added
|
|
ModelPart();
|
|
ModelPart(Model* model, const std::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 std::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(std::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; }
|
|
};
|