1 #ifndef BLANK_UI_INTERFACE_HPP_
2 #define BLANK_UI_INTERFACE_HPP_
5 #include "../app/FPSController.hpp"
6 #include "../app/IntervalTimer.hpp"
7 #include "../model/geometry.hpp"
8 #include "../model/OutlineModel.hpp"
9 #include "../world/Block.hpp"
12 #include <glm/glm.hpp>
18 class DirectionalLighting;
25 float move_velocity = 0.005f;
26 float pitch_sensitivity = -0.0025f;
27 float yaw_sensitivity = -0.001f;
29 bool keyboard_disabled = false;
30 bool mouse_disabled = false;
31 bool visual_disabled = false;
34 Interface(const Config &, World &);
36 void HandlePress(const SDL_KeyboardEvent &);
37 void HandleRelease(const SDL_KeyboardEvent &);
38 void Handle(const SDL_MouseMotionEvent &);
39 void HandlePress(const SDL_MouseButtonEvent &);
40 void HandleRelease(const SDL_MouseButtonEvent &);
41 void Handle(const SDL_MouseWheelEvent &);
42 void Handle(const SDL_WindowEvent &) noexcept;
47 void ToggleCollision();
51 void RemoveBlock() noexcept;
53 void PrintBlockInfo();
54 void PrintChunkInfo();
55 void PrintLightInfo();
56 void PrintSelectionInfo();
57 void Print(const Block &);
60 void SelectPrevious();
64 void Render(DirectionalLighting &) noexcept;
80 glm::mat4 outline_transform;
84 IntervalTimer place_timer;
85 IntervalTimer remove_timer;
90 glm::tvec3<int> fwd, rev;