]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/PlayerController.hpp
centralize entity controllers
[blank.git] / src / ui / PlayerController.hpp
index b9d3b2bd6cf6854f53cf5586b07fa49dcc72cc12..22454133bd3c6971bec4f7ff9f3d65786653df13 100644 (file)
@@ -4,6 +4,7 @@
 #include <glm/glm.hpp>
 
 #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 EntityState &) const override;
+
        /// turn the controlled entity's head by given pitch and yaw deltas
        void TurnHead(float pitch, float yaw) noexcept;