#include "HUD.hpp"
#include "../app/FPSController.hpp"
#include "../app/IntervalTimer.hpp"
+#include "../graphics/Font.hpp"
+#include "../graphics/Text.hpp"
#include "../model/geometry.hpp"
#include "../model/OutlineModel.hpp"
#include "../world/Block.hpp"
-#include <SDL.h>
#include <glm/glm.hpp>
namespace blank {
+class Assets;
class Chunk;
-class DirectionalLighting;
+class FrameCounter;
+class Viewport;
class World;
class Interface {
bool visual_disabled = false;
};
- Interface(const Config &, World &);
+ Interface(const Config &, const Assets &, 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 ToggleCollision();
+
void PickBlock();
void PlaceBlock();
void RemoveBlock() noexcept;
void SelectNext();
void SelectPrevious();
+ void ToggleCounter();
+ void UpdateCounter();
+
void Update(int dt);
- void Render(DirectionalLighting &) noexcept;
+ void Render(Viewport &) noexcept;
private:
void CheckAim();
private:
+ const FrameCounter &counter;
World &world;
FPSController ctrl;
+ Font font;
HUD hud;
Ray aim;
OutlineModel outline;
glm::mat4 outline_transform;
+ Text counter_text;
+
Config config;
IntervalTimer place_timer;