#include <glm/glm.hpp>
#include "../world/EntityCollision.hpp"
+#include "../world/EntityController.hpp"
#include "../world/WorldCollision.hpp"
class Player;
class World;
-class PlayerController {
+class PlayerController
+: public EntityController {
public:
PlayerController(World &, Player &);
/// 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;