1 #ifndef BLANK_UI_DIRECTINPUT_HPP_
2 #define BLANK_UI_DIRECTINPUT_HPP_
4 #include "PlayerController.hpp"
6 #include "../app/IntervalTimer.hpp"
7 #include "../world/EntityCollision.hpp"
8 #include "../world/WorldCollision.hpp"
15 struct WorldManipulator;
18 : public PlayerController {
21 DirectInput(World &, Player &, WorldManipulator &);
23 const WorldCollision &BlockFocus() const noexcept { return aim_world; }
24 const EntityCollision &EntityFocus() const noexcept { return aim_entity; }
28 void SetMovement(const glm::vec3 &) override;
29 void TurnHead(float pitch, float yaw) override;
30 void StartPrimaryAction() override;
31 void StopPrimaryAction() override;
32 void StartSecondaryAction() override;
33 void StopSecondaryAction() override;
34 void StartTertiaryAction() override;
35 void StopTertiaryAction() override;
36 void SelectInventory(int) override;
48 WorldManipulator &manip;
50 WorldCollision aim_world;
51 EntityCollision aim_entity;
58 IntervalTimer place_timer;
59 IntervalTimer remove_timer;