* try to resolve merge conflict
* feat: TU19 (Dec 2014) Features & Content (#32)
* December 2014 files
* Working release build
* Fix compilation issues
* Add sound to Windows64Media
* Add DLC content and force Tutorial DLC
* Revert "Add DLC content and force Tutorial DLC"
This reverts commit 97a4399472.
* Disable broken light packing
* Disable breakpoint during DLC texture map load
Allows DLC loading but the DLC textures are still broken
* Fix post build not working
* ...
* fix vs2022 build
* fix cmake build
---------
Co-authored-by: Loki <lokirautio@gmail.com>
73 lines
2.4 KiB
C++
73 lines
2.4 KiB
C++
#pragma once
|
|
#include "Model.h"
|
|
#include "TileRenderer.h"
|
|
#include "Tesselator.h"
|
|
#include "Textures.h"
|
|
#include "ItemInHandRenderer.h"
|
|
#include "ResourceLocation.h"
|
|
|
|
class Tile;
|
|
class Entity;
|
|
class Level;
|
|
class AABB;
|
|
class IconRegister;
|
|
class ResourceLocation;
|
|
|
|
using namespace std;
|
|
|
|
class EntityRenderDispatcher;
|
|
class Font;
|
|
|
|
// 4J - this was originally a generic of type EntityRenderer<T extends Entity>
|
|
class EntityRenderer
|
|
{
|
|
friend class PlayerRenderer; // 4J Added to allow PlayerRenderer to call renderShadow
|
|
protected:
|
|
EntityRenderDispatcher *entityRenderDispatcher;
|
|
|
|
private:
|
|
static ResourceLocation SHADOW_LOCATION;
|
|
|
|
protected:
|
|
Model *model; // TODO 4J: Check why exactly this is here, it seems to get shadowed by classes inheriting from this by their own
|
|
|
|
protected:
|
|
TileRenderer *tileRenderer; // 4J - changed to protected so derived classes can use instead of shadowing their own
|
|
|
|
protected:
|
|
float shadowRadius;
|
|
float shadowStrength;
|
|
|
|
public:
|
|
EntityRenderer(); // 4J - added
|
|
virtual ~EntityRenderer();
|
|
public:
|
|
virtual void render(shared_ptr<Entity> entity, double x, double y, double z, float rot, float a) = 0;
|
|
protected:
|
|
virtual void bindTexture(shared_ptr<Entity> entity);
|
|
virtual void bindTexture(ResourceLocation *location);
|
|
virtual bool bindTexture(const wstring& urlTexture, int backupTexture);
|
|
virtual bool bindTexture(const wstring& urlTexture, const wstring& backupTexture);
|
|
|
|
virtual ResourceLocation *getTextureLocation(shared_ptr<Entity> mob);
|
|
private:
|
|
virtual void renderFlame(shared_ptr<Entity> e, double x, double y, double z, float a);
|
|
virtual void renderShadow(shared_ptr<Entity> e, double x, double y, double z, float pow, float a);
|
|
|
|
virtual Level *getLevel();
|
|
virtual void renderTileShadow(Tile *tt, double x, double y, double z, int xt, int yt, int zt, float pow, float r, double xo, double yo, double zo);
|
|
public:
|
|
virtual void render(AABB *bb, double xo, double yo, double zo);
|
|
static void renderFlat(AABB *bb);
|
|
static void renderFlat(float x0, float y0, float z0, float x1, float y1, float z1);
|
|
virtual void init(EntityRenderDispatcher *entityRenderDispatcher);
|
|
virtual void postRender(shared_ptr<Entity> entity, double x, double y, double z, float rot, float a, bool bRenderPlayerShadow);
|
|
virtual Font *getFont();
|
|
virtual void registerTerrainTextures(IconRegister *iconRegister);
|
|
|
|
public:
|
|
// 4J Added
|
|
virtual Model *getModel() { return model; }
|
|
virtual void SetItemFrame(bool bSet) {}
|
|
};
|