X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fui%2FInterface.hpp;h=82eade3be2b06771e49ffd159409520c12f42bbb;hb=376fc1fca87fcdd22dabadf6d01d245ef8c3cedd;hp=f3b1252643c93f02c8065c347a90ce7229bc3dcb;hpb=5d2da8a07411ad6417d6ed8d1be997189cf5ce89;p=blank.git diff --git a/src/ui/Interface.hpp b/src/ui/Interface.hpp index f3b1252..82eade3 100644 --- a/src/ui/Interface.hpp +++ b/src/ui/Interface.hpp @@ -1,23 +1,25 @@ #ifndef BLANK_UI_INTERFACE_HPP_ #define BLANK_UI_INTERFACE_HPP_ +#include "FixedText.hpp" #include "HUD.hpp" +#include "MessageBox.hpp" #include "../app/FPSController.hpp" #include "../app/IntervalTimer.hpp" +#include "../audio/Sound.hpp" #include "../graphics/Font.hpp" #include "../model/geometry.hpp" #include "../model/OutlineModel.hpp" #include "../world/Block.hpp" -#include +#include #include namespace blank { -class Assets; class Chunk; -class FrameCounter; +class Environment; class Viewport; class World; @@ -31,10 +33,11 @@ public: bool keyboard_disabled = false; bool mouse_disabled = false; + bool audio_disabled = false; bool visual_disabled = false; }; - Interface(const Config &, const Assets &, const FrameCounter &, World &); + Interface(const Config &, Environment &, World &); void HandlePress(const SDL_KeyboardEvent &); void HandleRelease(const SDL_KeyboardEvent &); @@ -43,8 +46,6 @@ public: void HandleRelease(const SDL_MouseButtonEvent &); void Handle(const SDL_MouseWheelEvent &); - void Resize(const Viewport &); - void FaceBlock(); void TurnBlock(); @@ -63,8 +64,17 @@ public: void SelectNext(); void SelectPrevious(); - void ToggleCounter(); + void ToggleAudio(); + void ToggleVisual(); + + void ToggleDebug(); void UpdateCounter(); + void UpdatePosition(); + + void PostMessage(const char *); + void PostMessage(const std::string &msg) { + PostMessage(msg.c_str()); + } void Update(int dt); @@ -74,7 +84,7 @@ private: void CheckAim(); private: - const FrameCounter &counter; + Environment &env; World &world; FPSController ctrl; Font font; @@ -88,12 +98,10 @@ private: OutlineModel outline; glm::mat4 outline_transform; - bool show_counter; - Texture counter_tex; - SpriteModel counter_sprite; - glm::mat4 counter_transform; - float counter_x; - SDL_Color counter_color; + FixedText counter_text; + FixedText position_text; + MessageBox messages; + IntervalTimer msg_timer; Config config; @@ -103,6 +111,9 @@ private: Block remove; Block selection; + Sound place_sound; + Sound remove_sound; + glm::tvec3 fwd, rev; };