]> git.localhorst.tv Git - blobs.git/blob - src/ui/CreaturePanel.hpp
remote outdated TODO
[blobs.git] / src / ui / CreaturePanel.hpp
1 #ifndef BLOBS_UI_CREATUREPANEL_HPP_
2 #define BLOBS_UI_CREATUREPANEL_HPP_
3
4 #include "Panel.hpp"
5
6
7 namespace blobs {
8 namespace app {
9         struct Assets;
10 }
11 namespace creature {
12         class Creature;
13 }
14 namespace graphics {
15         class Viewport;
16 }
17 namespace ui {
18
19 class Label;
20 class Meter;
21
22 class CreaturePanel {
23
24 public:
25         explicit CreaturePanel(const app::Assets &);
26         ~CreaturePanel();
27
28         CreaturePanel(const CreaturePanel &) = delete;
29         CreaturePanel &operator =(const CreaturePanel &) = delete;
30
31         CreaturePanel(CreaturePanel &&) = delete;
32         CreaturePanel &operator =(CreaturePanel &&) = delete;
33
34 public:
35         void Show(creature::Creature &);
36         void Hide() noexcept;
37
38         void Draw(app::Assets &, graphics::Viewport &) noexcept;
39
40 private:
41         void CreateNeeds();
42
43 private:
44         const app::Assets &assets;
45         creature::Creature *c;
46
47         Label *name;
48         Panel *needs;
49         Panel panel;
50
51         Meter *health_meter;
52         std::vector<Meter *> need_meters;
53
54 };
55
56 }
57 }
58
59 #endif