#define BLOBS_WORLD_BODY_HPP_
#include "Orbit.hpp"
-#include "../graphics/glm.hpp"
+#include "../math/glm.hpp"
#include <vector>
namespace app {
class Assets;
}
+namespace creature {
+ class Creature;
+}
namespace graphics {
class Viewport;
}
virtual void Draw(app::Assets &, graphics::Viewport &) { }
+ void Tick(double dt);
void Cache() noexcept;
+ void CheckCollision() noexcept;
+
+ void AddCreature(creature::Creature *);
+ void RemoveCreature(creature::Creature *);
+ std::vector<creature::Creature *> &Creatures() noexcept { return creatures; }
+ const std::vector<creature::Creature *> &Creatures() const noexcept { return creatures; }
+
+ void Atmosphere(int a) noexcept { atmosphere = a; }
+ int Atmosphere() const noexcept { return atmosphere; }
+ bool HasAtmosphere() const noexcept { return atmosphere >= 0; }
private:
void AddChild(Body &);
glm::dmat4 local;
glm::dmat4 inverse_local;
+ std::vector<creature::Creature *> creatures;
+ int atmosphere;
+
};
}