aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/TileEntityRenderDispatcher.h
blob: a9d5fea77a7fe526e749a392cbfdca4a495034e6 (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
36
37
38
39
40
41
42
43
44
45
46
#pragma once
#include "Textures.h"
#include "..\Minecraft.World\JavaIntHash.h"
class Mob;
class Level;
class TileEntityRenderer;
class TileEntity;

class TileEntityRenderDispatcher
{
public:
	static void staticCtor();	 // 4J added

private:
	typedef unordered_map<eINSTANCEOF, TileEntityRenderer *, eINSTANCEOFKeyHash, eINSTANCEOFKeyEq> classToTileRendererMap;
	classToTileRendererMap renderers;

public:
	static TileEntityRenderDispatcher *instance;
private:
	Font *font;

public:
	static double xOff, yOff, zOff;

    Textures *textures;
    Level *level;
    shared_ptr<LivingEntity> cameraEntity;
    float playerRotY;
    float playerRotX;
    double xPlayer, yPlayer, zPlayer;

private:
	TileEntityRenderDispatcher();

public:
	TileEntityRenderer *getRenderer(eINSTANCEOF e);
    bool hasRenderer(shared_ptr<TileEntity> e);
    TileEntityRenderer * getRenderer(shared_ptr<TileEntity> e);
	void prepare(Level *level, Textures *textures, Font *font, shared_ptr<LivingEntity> player, float a);
	void render(shared_ptr<TileEntity> e, float a, bool setColor = true);
	void render(shared_ptr<TileEntity> entity, double x, double y, double z, float a, bool setColor = true, float alpha=1.0f, bool useCompiled = true); // 4J Added useCompiled
	void setLevel(Level *level);
	double distanceToSqr(double x, double y, double z);
	Font *getFont();
};