1 #ifndef BLANK_UI_INTERFACE_HPP_
2 #define BLANK_UI_INTERFACE_HPP_
5 #include "../app/FPSController.hpp"
6 #include "../app/IntervalTimer.hpp"
7 #include "../graphics/FixedText.hpp"
8 #include "../graphics/Font.hpp"
9 #include "../graphics/MessageBox.hpp"
10 #include "../model/geometry.hpp"
11 #include "../model/OutlineModel.hpp"
12 #include "../world/Block.hpp"
15 #include <glm/glm.hpp>
30 float move_velocity = 0.005f;
31 float pitch_sensitivity = -0.0025f;
32 float yaw_sensitivity = -0.001f;
34 bool keyboard_disabled = false;
35 bool mouse_disabled = false;
36 bool visual_disabled = false;
39 Interface(const Config &, const Assets &, const FrameCounter &, World &);
41 void HandlePress(const SDL_KeyboardEvent &);
42 void HandleRelease(const SDL_KeyboardEvent &);
43 void Handle(const SDL_MouseMotionEvent &);
44 void HandlePress(const SDL_MouseButtonEvent &);
45 void HandleRelease(const SDL_MouseButtonEvent &);
46 void Handle(const SDL_MouseWheelEvent &);
51 void ToggleCollision();
55 void RemoveBlock() noexcept;
57 void PrintBlockInfo();
58 void PrintChunkInfo();
59 void PrintLightInfo();
60 void PrintSelectionInfo();
61 void Print(const Block &);
64 void SelectPrevious();
69 void PostMessage(const char *);
70 void PostMessage(const std::string &msg) {
71 PostMessage(msg.c_str());
76 void Render(Viewport &) noexcept;
82 const FrameCounter &counter;
94 glm::mat4 outline_transform;
96 FixedText counter_text;
98 IntervalTimer msg_timer;
102 IntervalTimer place_timer;
103 IntervalTimer remove_timer;
108 glm::tvec3<int> fwd, rev;