1 #ifndef BLANK_UI_INTERFACE_HPP_
2 #define BLANK_UI_INTERFACE_HPP_
4 #include "FixedText.hpp"
6 #include "MessageBox.hpp"
7 #include "../app/FPSController.hpp"
8 #include "../app/IntervalTimer.hpp"
9 #include "../audio/Sound.hpp"
10 #include "../model/geometry.hpp"
11 #include "../model/OutlineModel.hpp"
12 #include "../world/Block.hpp"
13 #include "../world/EntityCollision.hpp"
14 #include "../world/WorldCollision.hpp"
17 #include <glm/glm.hpp>
31 float move_velocity = 0.005f;
32 float pitch_sensitivity = -0.0025f;
33 float yaw_sensitivity = -0.001f;
35 bool keyboard_disabled = false;
36 bool mouse_disabled = false;
37 bool audio_disabled = false;
38 bool visual_disabled = false;
41 Interface(const Config &, Environment &, World &);
43 void HandlePress(const SDL_KeyboardEvent &);
44 void HandleRelease(const SDL_KeyboardEvent &);
45 void Handle(const SDL_MouseMotionEvent &);
46 void HandlePress(const SDL_MouseButtonEvent &);
47 void HandleRelease(const SDL_MouseButtonEvent &);
48 void Handle(const SDL_MouseWheelEvent &);
53 void ToggleCollision();
57 void RemoveBlock() noexcept;
59 void PrintBlockInfo();
60 void PrintChunkInfo();
61 void PrintLightInfo();
62 void PrintSelectionInfo();
63 void Print(const Block &);
66 void SelectPrevious();
73 void UpdatePosition();
74 void UpdateOrientation();
75 void UpdateBlockInfo();
76 void UpdateEntityInfo();
78 void PostMessage(const char *);
79 void PostMessage(const std::string &msg) {
80 PostMessage(msg.c_str());
85 void Render(Viewport &) noexcept;
98 WorldCollision aim_world;
99 EntityCollision aim_entity;
101 OutlineModel outline;
102 glm::mat4 outline_transform;
104 FixedText counter_text;
105 FixedText position_text;
106 FixedText orientation_text;
107 FixedText block_text;
108 FixedText entity_text;
112 IntervalTimer msg_timer;
116 IntervalTimer place_timer;
117 IntervalTimer remove_timer;