X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fentity.hpp;h=77c7eb57d2e65f330599f752bd30494c4c440ca7;hb=9c1f7b20394808f7ec7a6cadd9e0dd665c6f6bd5;hp=59a3388757e0fc25132259faaddcb5931de17dd7;hpb=cb959294a8271969ddfe411471d7f04e82c4788a;p=blank.git diff --git a/src/entity.hpp b/src/entity.hpp index 59a3388..77c7eb5 100644 --- a/src/entity.hpp +++ b/src/entity.hpp @@ -1,6 +1,8 @@ #ifndef BLANK_ENTITY_HPP_ #define BLANK_ENTITY_HPP_ +#include "block.hpp" +#include "chunk.hpp" #include "geometry.hpp" #include @@ -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; - }; }