X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fui%2FPlayerController.hpp;h=9d54c295d944706fca27198d071eec5461a6b725;hb=0ab149c70b3f984b2cc0c7a122b4aa347bc5fd79;hp=b9d3b2bd6cf6854f53cf5586b07fa49dcc72cc12;hpb=33b37e7242e4cbfa76e4a0d6e5bb54223b541162;p=blank.git diff --git a/src/ui/PlayerController.hpp b/src/ui/PlayerController.hpp index b9d3b2b..9d54c29 100644 --- a/src/ui/PlayerController.hpp +++ b/src/ui/PlayerController.hpp @@ -4,6 +4,7 @@ #include #include "../world/EntityCollision.hpp" +#include "../world/EntityController.hpp" #include "../world/WorldCollision.hpp" @@ -12,7 +13,8 @@ namespace blank { class Player; class World; -class PlayerController { +class PlayerController +: public EntityController { public: PlayerController(World &, Player &); @@ -31,6 +33,9 @@ public: /// the magnitude (clamped to [0..1]) can be used to attenuate target velocity void SetMovement(const glm::vec3 &) noexcept; const glm::vec3 &GetMovement() const noexcept { return move_dir; } + + glm::vec3 ControlForce(const Entity &, const EntityState &) const override; + /// turn the controlled entity's head by given pitch and yaw deltas void TurnHead(float pitch, float yaw) noexcept;