4jcraft/Minecraft.Client/Rendering/Models/Model.h
MatthewBeshay dfb0e3b03e refactor: replace NULL with nullptr across C++ codebase
Excludes vendored C libs (zlib, Miles, DirectXMath, boost, Iggy).
2026-03-30 16:25:52 +11:00

42 lines
1.3 KiB
C++

#pragma once
#include "../../../Minecraft.World/Util/Random.h"
#include "SkinBox.h"
class Mob;
class ModelPart;
class TexOffs;
class LivingEntity;
class Model {
public:
float attackTime;
bool riding;
std::vector<ModelPart*> cubes;
bool young;
std::unordered_map<std::wstring, TexOffs*> mappedTexOffs;
int texWidth;
int texHeight;
Model(); // 4J added
virtual void render(std::shared_ptr<Entity> entity, float time, float r,
float bob, float yRot, float xRot, float scale,
bool usecompiled) {}
virtual void setupAnim(float time, float r, float bob, float yRot,
float xRot, float scale,
std::shared_ptr<Entity> entity,
unsigned int uiBitmaskOverrideAnim = 0) {}
virtual void prepareMobModel(std::shared_ptr<LivingEntity> mob, float time,
float r, float a) {}
virtual ModelPart* getRandomModelPart(Random random) {
return cubes.at(random.nextInt((int)cubes.size()));
}
virtual ModelPart* AddOrRetrievePart(SKIN_BOX* pBox) { return nullptr; }
void setMapTex(std::wstring id, int x, int y);
TexOffs* getMapTex(std::wstring id);
protected:
float yHeadOffs;
float zHeadOffs;
};