]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/Interface.hpp
state management and control
[blank.git] / src / ui / Interface.hpp
index 00b76e66b0c2232ea48cfc0eec1f053e03c3aaac..f810ff0581f1358dd1bdaca2494df44de3dc23f5 100644 (file)
@@ -4,6 +4,7 @@
 #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"
@@ -17,9 +18,8 @@
 
 namespace blank {
 
-class Assets;
 class Chunk;
-class FrameCounter;
+class Environment;
 class Viewport;
 class World;
 
@@ -33,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 &);
@@ -63,8 +64,12 @@ 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) {
@@ -79,7 +84,7 @@ private:
        void CheckAim();
 
 private:
-       const FrameCounter &counter;
+       Environment &env;
        World &world;
        FPSController ctrl;
        Font font;
@@ -94,6 +99,7 @@ private:
        glm::mat4 outline_transform;
 
        FixedText counter_text;
+       FixedText position_text;
        MessageBox messages;
        IntervalTimer msg_timer;
 
@@ -105,6 +111,9 @@ private:
        Block remove;
        Block selection;
 
+       Sound place_sound;
+       Sound remove_sound;
+
        glm::tvec3<int> fwd, rev;
 
 };