#include "TileSet.hpp"
#include "TileType.hpp"
+#include "Creature.hpp"
#include "../const.hpp"
#include "../app/Assets.hpp"
#include "../graphics/Viewport.hpp"
, orbital(1.0)
, inverse_orbital(1.0)
, local(1.0)
-, inverse_local(1.0) {
+, inverse_local(1.0)
+, creatures() {
}
Body::~Body() {
+ for (Creature *c : creatures) {
+ delete c;
+ }
}
void Body::SetSimulation(Simulation &s) noexcept {
* glm::eulerAngleY(-rotation);
}
+void Body::AddCreature(Creature *c) {
+ c->SetBody(*this);
+ creatures.push_back(c);
+}
+
Orbit::Orbit()
: sma(1.0)
Planet::Planet(int sidelength)
: Body()
, sidelength(sidelength)
-, tiles(new Tile[TilesTotal()])
+, tiles(TilesTotal())
, vao() {
Radius(double(sidelength) / 2.0);
}
return center;
}
-void Planet::BuildVAOs(const TileSet &ts) {
+void Planet::BuildVAO(const TileSet &ts) {
vao.Bind();
vao.BindAttributes();
vao.EnableAttribute(0);
}
}
}
- p.BuildVAOs(tiles);
+ p.BuildVAO(tiles);
}
void GenerateTest(const TileSet &tiles, Planet &p) noexcept {
}
}
}
- p.BuildVAOs(tiles);
+ p.BuildVAO(tiles);
}