]> git.localhorst.tv Git - blobs.git/blobdiff - src/ui/CreaturePanel.hpp
track top ten for each record
[blobs.git] / src / ui / CreaturePanel.hpp
index b9888b2fcce6045c287482a19b648301d956c2bf..be1234828384d3f8a80901ae0f2d917dd8a73ca5 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef BLOBS_UI_CREATUREPANEL_HPP_
 #define BLOBS_UI_CREATUREPANEL_HPP_
 
-#include "Label.hpp"
+#include "Panel.hpp"
+
+#include <vector>
 
 
 namespace blobs {
@@ -16,10 +18,13 @@ namespace graphics {
 }
 namespace ui {
 
+class Label;
+class Meter;
+
 class CreaturePanel {
 
 public:
-       explicit CreaturePanel(const app::Assets &);
+       explicit CreaturePanel(app::Assets &);
        ~CreaturePanel();
 
        CreaturePanel(const CreaturePanel &) = delete;
@@ -32,12 +37,31 @@ public:
        void Show(creature::Creature &);
        void Hide() noexcept;
 
-       void Draw(app::Assets &, graphics::Viewport &) noexcept;
+       bool Shown() const noexcept { return c; }
+       const creature::Creature &GetCreature() const noexcept { return *c; }
+
+       void ZIndex(float z) noexcept { panel.ZIndex(z); }
+
+       void Draw(graphics::Viewport &) noexcept;
 
 private:
+       app::Assets &assets;
        creature::Creature *c;
 
-       Label name;
+       Label *name;
+       Label *parents;
+       Label *born;
+       Label *age;
+       Label *mass;
+       Label *goal;
+       Label *pos;
+       Label *tile;
+       Label *head;
+       Panel *composition;
+       std::vector<Label *> components;
+       Meter *stats[7];
+       Label *props[9];
+       Panel panel;
 
 };