]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/PlayerController.hpp
try to cleanly destruct world
[blank.git] / src / ui / PlayerController.hpp
index b9d3b2bd6cf6854f53cf5586b07fa49dcc72cc12..9cf0bca465eb3550af7c009dfd4049f73b1c2679 100644 (file)
@@ -4,6 +4,7 @@
 #include <glm/glm.hpp>
 
 #include "../world/EntityCollision.hpp"
+#include "../world/EntityController.hpp"
 #include "../world/WorldCollision.hpp"
 
 
@@ -12,10 +13,12 @@ namespace blank {
 class Player;
 class World;
 
-class PlayerController {
+class PlayerController
+: public EntityController {
 
 public:
        PlayerController(World &, Player &);
+       ~PlayerController();
 
        World &GetWorld() noexcept { return world; }
        const World &GetWorld() const noexcept { return world; }
@@ -31,6 +34,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;