mirror of
https://github.com/neoStudiosLCE/neoLegacy.git
synced 2026-06-20 11:02:55 +00:00
Renamed all Alex skins and Developer Steve skin to match the official file names, reordered default skin to match the order in the official release of LCE, modified model type logic to be more optimized, added more anim flags to HumanoidModel.h, added code to show armor if the corresponding part is hidden but the "show armor" part anim flag is present, added code to handle extra skin box values of "hide with armor", "mirror skin box", and "scale", corrected player model second/overlay layer scale from 0.5 to 0.25, and fixed skin boxes not rendering on 64x64 DLC skins.
66 lines
2.2 KiB
C++
66 lines
2.2 KiB
C++
#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;
|
|
unsigned int hideWithArmor;
|
|
vector <Cube *> cubes;
|
|
vector <ModelPart *> children;
|
|
static const float RAD;
|
|
float translateX, translateY, translateZ;
|
|
|
|
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;}
|
|
static void copyModelPart(ModelPart* src, ModelPart* dst);
|
|
};
|