aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/EntityRenderer.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/EntityRenderer.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/EntityRenderer.h')
-rw-r--r--Minecraft.Client/EntityRenderer.h65
1 files changed, 65 insertions, 0 deletions
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<T extends Entity>
+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> 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<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) {}
+};