X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FWorld.h;h=66d0d18c7b88fafe93e31346acfa30bdeb54eed8;hb=aa28d59d492c490194e8e8f7af086fcb531d170a;hp=038f9dcce39db83362bea625a72f13384f041ef8;hpb=a8523bee4fc349a800f5f6d67b470c3a801beaa9;p=orbi.git diff --git a/src/world/World.h b/src/world/World.h index 038f9dc..66d0d18 100644 --- a/src/world/World.h +++ b/src/world/World.h @@ -1,8 +1,6 @@ #ifndef ORBI_WORLD_H_ #define ORBI_WORLD_H_ -#include "AABB.h" -#include "Entity.h" #include "Tile.h" #include "../graphics/Vector.h" @@ -12,6 +10,8 @@ namespace orbi { +class Entity; + class World { public: @@ -19,6 +19,7 @@ public: public: Vector Size() const { return size; } + Vector TileSize() const { return Vector(1, 1); } public: void Update(float dt); @@ -30,14 +31,14 @@ 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 &); + const std::list &Entities() const { return entities; } + void AddEntity(Entity &e) { entities.push_back(&e); } private: void BoundsCollision(Entity &, float dt); void TileCollision(Entity &, float dt); + void EntityCollision(); private: Vector size; @@ -49,9 +50,7 @@ private: std::vector tiles; - std::list entities; - - mutable AABB tileShape; + std::list entities; };