]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/Interface.hpp
show camera position in debug overlay
[blank.git] / src / ui / Interface.hpp
index 1e2e8834ba7a507f369661e4f68ca84eba583749..1ade2d1bf326b4d776f60e4eb8e1821ae85a5c40 100644 (file)
@@ -4,17 +4,22 @@
 #include "HUD.hpp"
 #include "../app/FPSController.hpp"
 #include "../app/IntervalTimer.hpp"
+#include "../audio/Sound.hpp"
+#include "../graphics/FixedText.hpp"
 #include "../graphics/Font.hpp"
+#include "../graphics/MessageBox.hpp"
 #include "../model/geometry.hpp"
 #include "../model/OutlineModel.hpp"
 #include "../world/Block.hpp"
 
+#include <string>
 #include <glm/glm.hpp>
 
 
 namespace blank {
 
 class Assets;
+class Audio;
 class Chunk;
 class FrameCounter;
 class Viewport;
@@ -30,10 +35,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 &, const Assets &, Audio &, const FrameCounter &, World &);
 
        void HandlePress(const SDL_KeyboardEvent &);
        void HandleRelease(const SDL_KeyboardEvent &);
@@ -42,8 +48,6 @@ public:
        void HandleRelease(const SDL_MouseButtonEvent &);
        void Handle(const SDL_MouseWheelEvent &);
 
-       void Resize(const Viewport &);
-
        void FaceBlock();
        void TurnBlock();
 
@@ -62,8 +66,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);
 
@@ -73,6 +86,7 @@ private:
        void CheckAim();
 
 private:
+       Audio &audio;
        const FrameCounter &counter;
        World &world;
        FPSController ctrl;
@@ -87,11 +101,10 @@ private:
        OutlineModel outline;
        glm::mat4 outline_transform;
 
-       bool show_counter;
-       Texture counter_tex;
-       SpriteModel counter_sprite;
-       glm::mat4 counter_transform;
-       float counter_x;
+       FixedText counter_text;
+       FixedText position_text;
+       MessageBox messages;
+       IntervalTimer msg_timer;
 
        Config config;
 
@@ -101,6 +114,9 @@ private:
        Block remove;
        Block selection;
 
+       Sound place_sound;
+       Sound remove_sound;
+
        glm::tvec3<int> fwd, rev;
 
 };