32 lines
904 B
C++
32 lines
904 B
C++
#include <td/render/renderer/EntityRenderer.h>
|
|
|
|
#include <td/render/loader/WorldLoader.h>
|
|
|
|
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<GL::VertexArray>(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<game::Mob>(*mob, a_Lerp, [](const game::Mob& a_Mob) { return static_cast<float>(a_Mob.m_Position.x); });
|
|
float z = Lerp<game::Mob>(*mob, a_Lerp, [](const game::Mob& a_Mob) { return static_cast<float>(a_Mob.m_Position.y); });
|
|
|
|
m_Shader->SetModelPos({x, 1, z});
|
|
Renderer::Render(*m_EntityVao);
|
|
}
|
|
}
|
|
|
|
} // namespace render
|
|
} // namespace td
|