#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 "../graphics/FixedText.hpp"
-#include "../graphics/Font.hpp"
-#include "../graphics/MessageBox.hpp"
+#include "../audio/Sound.hpp"
#include "../model/geometry.hpp"
#include "../model/OutlineModel.hpp"
#include "../world/Block.hpp"
+#include "../world/EntityCollision.hpp"
+#include "../world/WorldCollision.hpp"
#include <string>
#include <glm/glm.hpp>
+#include <SDL.h>
namespace blank {
-class Assets;
-class Chunk;
-class FrameCounter;
+class Environment;
class Viewport;
class World;
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 &);
void SelectNext();
void SelectPrevious();
- void ToggleCounter();
+ void ToggleAudio();
+ void ToggleVisual();
+
+ void ToggleDebug();
void UpdateCounter();
+ void UpdatePosition();
+ void UpdateOrientation();
+ void UpdateBlockInfo();
+ void UpdateEntityInfo();
void PostMessage(const char *);
void PostMessage(const std::string &msg) {
private:
void CheckAim();
+ void UpdateOutline();
private:
- const FrameCounter &counter;
+ Environment &env;
World &world;
FPSController ctrl;
- Font font;
HUD hud;
Ray aim;
- Chunk *aim_chunk;
- int aim_block;
- glm::vec3 aim_normal;
+ WorldCollision aim_world;
+ EntityCollision aim_entity;
OutlineModel outline;
glm::mat4 outline_transform;
FixedText counter_text;
+ FixedText position_text;
+ FixedText orientation_text;
+ FixedText block_text;
+ FixedText entity_text;
+ Block last_block;
+ Entity *last_entity;
MessageBox messages;
IntervalTimer msg_timer;
Block remove;
Block selection;
- glm::tvec3<int> fwd, rev;
+ Sound place_sound;
+ Sound remove_sound;
+
+ glm::ivec3 fwd, rev;
+
+ bool debug;
};