X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FMasterState.hpp;h=8290e86886b53d59c246ea36d076c34acadf4dfd;hb=d921cba26f21e4a75b22f5e9d9be988707bf6a8f;hp=d2072ee326c27a30683a18558ff2d6c3de7194d1;hpb=cacc0641e5174d8b46e7a7086be6a45c87ab3642;p=blobs.git diff --git a/src/app/MasterState.hpp b/src/app/MasterState.hpp index d2072ee..8290e86 100644 --- a/src/app/MasterState.hpp +++ b/src/app/MasterState.hpp @@ -5,6 +5,9 @@ #include "Assets.hpp" #include "../graphics/Camera.hpp" +#include "../ui/CreaturePanel.hpp" +#include "../ui/RecordsPanel.hpp" +#include "../ui/TimePanel.hpp" namespace blobs { @@ -31,10 +34,23 @@ public: graphics::Camera &GetCamera() noexcept { return cam; } const graphics::Camera &GetCamera() const noexcept { return cam; } + ui::CreaturePanel &GetCreaturePanel() noexcept { return cp; } + const ui::CreaturePanel &GetCreaturePanel() const noexcept { return cp; } + + ui::RecordsPanel &GetRecordsPanel() noexcept { return rp; } + const ui::RecordsPanel &GetRecordsPanel() const noexcept { return rp; } + + ui::TimePanel &GetTimePanel() noexcept { return tp; } + const ui::TimePanel &GetTimePanel() const noexcept { return tp; } + private: void OnResize(int w, int h) override; void OnKeyDown(const SDL_KeyboardEvent &) override; + void OnMouseDown(const SDL_MouseButtonEvent &) override; + void OnMouseUp(const SDL_MouseButtonEvent &) override; + void OnMouseMotion(const SDL_MouseMotionEvent &) override; + void OnMouseWheel(const SDL_MouseWheelEvent &) override; void OnUpdate(int dt) override; void OnRender(graphics::Viewport &) override; @@ -47,6 +63,14 @@ private: world::Simulation ∼ graphics::Camera cam; + double cam_dist; + double cam_tgt_dist; + glm::dvec3 cam_orient; + bool cam_dragging; + + ui::CreaturePanel cp; + ui::RecordsPanel rp; + ui::TimePanel tp; int remain; int thirds;