feat: add basic towers rendering

This commit is contained in:
2021-09-26 18:19:00 +02:00
parent 2ece5bc9b5
commit fe7cfdec72
22 changed files with 230 additions and 58 deletions

View File

@@ -188,6 +188,40 @@ GL::VertexArray loadTileSelectModel() {
return tileSelectVao;
}
RenderData loadTowerModel(game::TowerPtr tower){
RenderData renderData;
float towerX = tower->getX() - 1;
float towerDX = tower->getX() + 2;
float towerY = tower->getY() - 1;
float towerDY = tower->getY() + 2;
std::vector<float> positions = {
towerX, towerY,
towerDX, towerY,
towerX, towerDY,
towerDX, towerY,
towerX, towerDY,
towerDX, towerDY
};
renderData.positions = positions;
std::uint8_t towerType = static_cast<std::uint8_t>(tower->getType());
std::uint8_t r = 10 * towerType + 40, g = 5 * towerType + 30, b = 10 * towerType + 20;
float colorFloat;
int color = r << 24 | g << 16 | b << 8 | 255;
memcpy(&colorFloat, &color, sizeof(int));
std::vector<float> colors(6, colorFloat);
renderData.colors = colors;
return renderData;
}
} // namespace WorldLoader