From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/EntityRenderer.h | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Minecraft.Client/EntityRenderer.h (limited to 'Minecraft.Client/EntityRenderer.h') diff --git a/Minecraft.Client/EntityRenderer.h b/Minecraft.Client/EntityRenderer.h new file mode 100644 index 00000000..e0c264a5 --- /dev/null +++ b/Minecraft.Client/EntityRenderer.h @@ -0,0 +1,65 @@ +#pragma once + +#include "Model.h" +#include "TileRenderer.h" +#include "Tesselator.h" +#include "Textures.h" +#include "ItemInHandRenderer.h" +class Tile; +class Entity; +class Level; +class AABB; +class IconRegister; + +using namespace std; + +class EntityRenderDispatcher; +class Font; + +// 4J - this was originally a generic of type EntityRenderer +class EntityRenderer +{ + friend class PlayerRenderer; // 4J Added to allow PlayerRenderer to call renderShadow +protected: + EntityRenderDispatcher *entityRenderDispatcher; + +private: + Model *model; // 4J - TODO - 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, double x, double y, double z, float rot, float a) = 0; +protected: + virtual void bindTexture(int resourceName); // 4J - added + virtual void bindTexture(const wstring& resourceName); + + virtual bool bindTexture(const wstring& urlTexture, int backupTexture); // 4J added + virtual bool bindTexture(const wstring& urlTexture, const wstring& backupTexture); +private: + virtual void renderFlame(shared_ptr e, double x, double y, double z, float a); + virtual void renderShadow(shared_ptr 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, 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) {} +}; -- cgit v1.2.3