X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fui%2FInterface.hpp;h=1e2e8834ba7a507f369661e4f68ca84eba583749;hb=1bc6f085c53cdeaa08e2c00e821d4e2e25cae1c8;hp=a08a0bf5c6a3add3518ea571333bce3e44d6c212;hpb=955fbb45dedb570520fc45d2ce69f420bed2ad08;p=blank.git diff --git a/src/ui/Interface.hpp b/src/ui/Interface.hpp index a08a0bf..1e2e883 100644 --- a/src/ui/Interface.hpp +++ b/src/ui/Interface.hpp @@ -4,18 +4,20 @@ #include "HUD.hpp" #include "../app/FPSController.hpp" #include "../app/IntervalTimer.hpp" +#include "../graphics/Font.hpp" #include "../model/geometry.hpp" #include "../model/OutlineModel.hpp" #include "../world/Block.hpp" -#include #include namespace blank { +class Assets; class Chunk; -class DirectionalLighting; +class FrameCounter; +class Viewport; class World; class Interface { @@ -31,7 +33,7 @@ public: 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 &); @@ -39,7 +41,8 @@ public: void HandlePress(const SDL_MouseButtonEvent &); void HandleRelease(const SDL_MouseButtonEvent &); void Handle(const SDL_MouseWheelEvent &); - void Handle(const SDL_WindowEvent &) noexcept; + + void Resize(const Viewport &); void FaceBlock(); void TurnBlock(); @@ -59,16 +62,21 @@ public: 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; @@ -79,6 +87,12 @@ private: OutlineModel outline; glm::mat4 outline_transform; + bool show_counter; + Texture counter_tex; + SpriteModel counter_sprite; + glm::mat4 counter_transform; + float counter_x; + Config config; IntervalTimer place_timer;