#pragma once #include "EntityRenderer.h" #include "..\Minecraft.World\Entity.h" #include "..\Minecraft.World\JavaIntHash.h" class font; using namespace std; class EntityRenderDispatcher { public: static void staticCtor(); // 4J added private: typedef unordered_map classToRendererMap; classToRendererMap renderers; // 4J - was: // Map, EntityRenderer> renderers = new HashMap, EntityRenderer>(); public: static EntityRenderDispatcher *instance; private: Font *font; public: static double xOff, yOff, zOff; Textures *textures; ItemInHandRenderer *itemInHandRenderer; Level *level; shared_ptr cameraEntity; float playerRotY; float playerRotX; Options *options; bool isGuiRender; // 4J added double xPlayer, yPlayer, zPlayer; private: EntityRenderDispatcher(); public: EntityRenderer *getRenderer(eINSTANCEOF e); EntityRenderer *getRenderer(shared_ptr e); void prepare(Level *level, Textures *textures, Font *font, shared_ptr player, Options *options, float a); void render(shared_ptr entity, float a); void render(shared_ptr entity, double x, double y, double z, float rot, float a, bool bItemFrame = false, bool bRenderPlayerShadow = true); void setLevel(Level *level); double distanceToSqr(double x, double y, double z); Font *getFont(); void registerTerrainTextures(IconRegister *iconRegister); };