]> git.localhorst.tv Git - orbi.git/blobdiff - src/world/World.h
hbox/vbox implementation
[orbi.git] / src / world / World.h
index d77b15b3d55db40ed96822a852e32d7cae273438..038f9dcce39db83362bea625a72f13384f041ef8 100644 (file)
@@ -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<int> pos) { return tiles[Index(pos)]; }
        const Tile &TileAt(Vector<int> pos) const { return tiles[Index(pos)]; }
        void SetTile(Vector<int> pos, const Tile &t) { tiles[Index(pos)] = t; }
+       const AABB &TileShapeAt(Vector<int> pos) const;
 
        const std::list<Entity> &Entities() const { return entities; }
        Entity &AddEntity(const Entity &);
 
+private:
+       void BoundsCollision(Entity &, float dt);
+       void TileCollision(Entity &, float dt);
+
 private:
        Vector<int> size;
        int count;
 
        Vector<float> gravity;
        Vector<float> terminal;
+       float fixSpeed;
 
        std::vector<Tile> tiles;
 
        std::list<Entity> entities;
 
+       mutable AABB tileShape;
+
 };
 
 }