]> git.localhorst.tv Git - blank.git/blobdiff - src/entity.hpp
separate file for world generation
[blank.git] / src / entity.hpp
index 59a3388757e0fc25132259faaddcb5931de17dd7..77c7eb57d2e65f330599f752bd30494c4c440ca7 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef BLANK_ENTITY_HPP_
 #define BLANK_ENTITY_HPP_
 
+#include "block.hpp"
+#include "chunk.hpp"
 #include "geometry.hpp"
 
 #include <glm/glm.hpp>
@@ -16,27 +18,27 @@ public:
        const glm::vec3 &Velocity() const { return velocity; }
        void Velocity(const glm::vec3 &);
 
-       const glm::vec3 &Position() const { return position; }
-       void Position(const glm::vec3 &);
+       const Block::Pos &Position() const { return position; }
+       void Position(const Block::Pos &);
        void Move(const glm::vec3 &delta);
 
+       const Chunk::Pos ChunkCoords() const { return chunk; }
+
        const glm::mat4 &Rotation() const { return rotation; }
        void Rotation(const glm::mat4 &);
 
-       const glm::mat4 &Transform() const;
-       Ray Aim() const;
+       glm::mat4 Transform(const Chunk::Pos &chunk_offset) const;
+       Ray Aim(const Chunk::Pos &chunk_offset) const;
 
        void Update(int dt);
 
 private:
        glm::vec3 velocity;
-       glm::vec3 position;
+       Block::Pos position;
+       Chunk::Pos chunk;
 
        glm::mat4 rotation;
 
-       mutable glm::mat4 transform;
-       mutable bool dirty;
-
 };
 
 }