X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FWorld.h;h=038f9dcce39db83362bea625a72f13384f041ef8;hb=a8523bee4fc349a800f5f6d67b470c3a801beaa9;hp=d77b15b3d55db40ed96822a852e32d7cae273438;hpb=dbc08d84d9de1a77cba0dd97e4701f4ac99d056e;p=orbi.git diff --git a/src/world/World.h b/src/world/World.h index d77b15b..038f9dc 100644 --- a/src/world/World.h +++ b/src/world/World.h @@ -1,6 +1,7 @@ #ifndef ORBI_WORLD_H_ #define ORBI_WORLD_H_ +#include "AABB.h" #include "Entity.h" #include "Tile.h" #include "../graphics/Vector.h" @@ -29,21 +30,29 @@ public: Tile &TileAt(Vector pos) { return tiles[Index(pos)]; } const Tile &TileAt(Vector pos) const { return tiles[Index(pos)]; } void SetTile(Vector pos, const Tile &t) { tiles[Index(pos)] = t; } + const AABB &TileShapeAt(Vector pos) const; const std::list &Entities() const { return entities; } Entity &AddEntity(const Entity &); +private: + void BoundsCollision(Entity &, float dt); + void TileCollision(Entity &, float dt); + private: Vector size; int count; Vector gravity; Vector terminal; + float fixSpeed; std::vector tiles; std::list entities; + mutable AABB tileShape; + }; }