aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Model.h
blob: 5a4b6f2e8f1d6e4fec5e7b2fb481b4433a0f5f03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once
using namespace std;
#include "..\Minecraft.World\Random.h"
#include "..\Minecraft.Client\SkinBox.h"
class Mob;
class ModelPart;
class TexOffs;
class LivingEntity;


class  Model
{
public:
	float attackTime;
    bool riding;
	vector<ModelPart *> cubes;
	bool young;
	unordered_map<wstring, TexOffs * > mappedTexOffs;
	int texWidth;
	int texHeight;

	Model();		// 4J added
	virtual void render(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, shared_ptr<Entity> entity, unsigned int uiBitmaskOverrideAnim=0) {}
	virtual void prepareMobModel(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 NULL;}

	void setMapTex(wstring id, int x, int y);
	TexOffs *getMapTex(wstring id);

protected:
	float yHeadOffs;
	float zHeadOffs;
};