#include #include namespace td { namespace render { EntityRenderer::EntityRenderer(Camera& a_Camera, const game::WorldPtr& a_World) : Renderer(a_Camera), m_World(a_World) { m_EntityVao = std::make_unique(WorldLoader::LoadMobModel()); m_Shader->Start(); m_Shader->SetColorEffect({1, 0, 1}); } EntityRenderer::~EntityRenderer() {} void EntityRenderer::Render(float a_Lerp) { m_Shader->Start(); for (const auto& mob : m_World->GetMobList()) { float x = Lerp(*mob, a_Lerp, [](const game::Mob& a_Mob) { return static_cast(a_Mob.m_Position.x); }); float z = Lerp(*mob, a_Lerp, [](const game::Mob& a_Mob) { return static_cast(a_Mob.m_Position.y); }); m_Shader->SetModelPos({x, 1, z}); Renderer::Render(*m_EntityVao); } } } // namespace render } // namespace td