#pragma once #include "MobRenderer.h" #include "../../Textures/ResourceLocation.h" class EntityHorse; class PathfinderMob; class HorseRenderer : public MobRenderer { private: static std::map LAYERED_LOCATION_CACHE; static ResourceLocation HORSE_LOCATION; static ResourceLocation HORSE_MULE_LOCATION; static ResourceLocation HORSE_DONKEY_LOCATION; static ResourceLocation HORSE_ZOMBIE_LOCATION; static ResourceLocation HORSE_SKELETON_LOCATION; public: HorseRenderer(Model* model, float f); protected: void adjustHeight(std::shared_ptr mob, float FHeight); virtual void scale(std::shared_ptr entityliving, float f); virtual void renderModel(std::shared_ptr mob, float wp, float ws, float bob, float headRotMinusBodyRot, float headRotx, float scale); virtual void bindTexture(ResourceLocation* location); virtual ResourceLocation* getTextureLocation( std::shared_ptr entity); private: ResourceLocation* getOrCreateLayeredTextureLocation( std::shared_ptr horse); };