X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FEntity.hpp;h=1a6fccf26f35a563441a3972a21ddfa799b14966;hb=fa3c4a14546d73ddc2671cd5cc58208839bf7173;hp=3bcc21f65f2573a456d094bb3a0656c1b1001e99;hpb=ec40d74319e24480c00f63cb6cfdbd6e1c454f3d;p=blank.git diff --git a/src/world/Entity.hpp b/src/world/Entity.hpp index 3bcc21f..1a6fccf 100644 --- a/src/world/Entity.hpp +++ b/src/world/Entity.hpp @@ -49,7 +49,9 @@ public: void Name(const std::string &n) { name = n; } const AABB &Bounds() const noexcept { return bounds; } - void Bounds(const AABB &b) noexcept { bounds = b; } + // get distance between local origin and farthest vertex + float Radius() const noexcept { return radius; } + void Bounds(const AABB &b) noexcept { bounds = b; radius = b.OriginRadius(); } bool WorldCollidable() const noexcept { return world_collision; } void WorldCollidable(bool b) noexcept { world_collision = b; } @@ -136,6 +138,7 @@ private: std::string name; AABB bounds; + float radius; EntityState state; /// chunk to model space @@ -149,6 +152,9 @@ private: // TODO: I'd prefer a drag solution float max_vel; + // TODO: split max_force into (local) axes? + // e.g. players may want to disable vertical thrust under certain + // conditions (e.g. "walking" ^^) float max_force; int ref_count;