diff options
author | HampusM <hampus@hampusmat.com> | 2022-05-02 22:36:21 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2022-06-13 17:56:58 +0200 |
commit | fb080f6fb911b1831c176a06259e384772541dd5 (patch) | |
tree | e18140e700cd974f84a5630f41fcb0b496b7e772 /src/game/status_manager.hpp | |
parent | 40d02748924aa7c48b04cf948204d8dacdfbbc74 (diff) |
refactor: seperate statusline related concerns
Diffstat (limited to 'src/game/status_manager.hpp')
-rw-r--r-- | src/game/status_manager.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/game/status_manager.hpp b/src/game/status_manager.hpp new file mode 100644 index 0000000..62b5bc7 --- /dev/null +++ b/src/game/status_manager.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include "interfaces/generation_tracker.hpp" +#include "interfaces/status_manager.hpp" +#include "interfaces/statusline.hpp" +#include "interfaces/subscriber.hpp" + +#include "engine/data/vector2.hpp" + +#include <memory> +#include <unordered_map> + +class StatusManager : public IStatusManager +{ +public: + explicit StatusManager(std::shared_ptr<IStatusLine> statusline) noexcept; + + void set_section_title( + const StatusLineSection §ion, + const std::string_view &title + ) noexcept override; + + void set_section_body( + const StatusLineSection §ion, + const std::string_view &body + ) noexcept override; + +private: + std::shared_ptr<IStatusLine> _statusline; + + std::unordered_map<StatusLineSection, std::size_t> _title_lengths; +}; |