#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
|