#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 <SDL.h>
+#include <string>
#include <glm/glm.hpp>
namespace blank {
class Assets;
+class Audio;
class Chunk;
-class BlendedSprite;
-class DirectionalLighting;
class FrameCounter;
+class Viewport;
class World;
class Interface {
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 &);
void HandlePress(const SDL_MouseButtonEvent &);
void HandleRelease(const SDL_MouseButtonEvent &);
void Handle(const SDL_MouseWheelEvent &);
- void Handle(const SDL_WindowEvent &) noexcept;
void FaceBlock();
void TurnBlock();
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);
- void Render(DirectionalLighting &, BlendedSprite &) noexcept;
+ void Render(Viewport &) noexcept;
private:
void CheckAim();
private:
+ Audio &audio;
const FrameCounter &counter;
World &world;
FPSController ctrl;
OutlineModel outline;
glm::mat4 outline_transform;
- bool show_counter;
- Texture counter_tex;
- SpriteModel counter_sprite;
- glm::mat4 counter_transform;
- SDL_Color counter_color;
+ FixedText counter_text;
+ FixedText position_text;
+ MessageBox messages;
+ IntervalTimer msg_timer;
Config config;
Block remove;
Block selection;
+ Sound place_sound;
+ Sound remove_sound;
+
glm::tvec3<int> fwd, rev;
};