#pragma once #include #include #include "InventoryView.h" #include "NetworkAPIProcessor.h" class StatusBarsElement : public Framework::UIMLElement { public: StatusBarsElement(); //! prüft, ob dieses UIML Element für ein bestimmtes xml Element zuständig //! ist bool isApplicableFor(Framework::XML::Element& element) override; //! erstellt eine neue Zeichnung zu einem gegebenen xml Element Framework::Zeichnung* parseElement(Framework::XML::Element& element, Framework::UIMLContainer& generalFactory) override; bool updateElement(Framework::XML::Element& element, Framework::Zeichnung& z, Framework::UIMLContainer& generalFactory) override; //! wendet die layout parameter zu einer Zeichnung an void layout(Framework::XML::Element& element, Framework::Zeichnung& z, int pWidth, int pHeight, Framework::UIMLContainer& generalLayouter) override; }; class StatusBarsView : public Framework::ZeichnungHintergrund, public NetworkAPIProcessor { private: Framework::Text id; int targetEntity; float health; float hunger; float thirst; float energy; Framework::Text healthText; Framework::Text hungerText; Framework::Text thirstText; Framework::Text energyText; Framework::Bild* healthIcon; Framework::Bild* hungerIcon; Framework::Bild* thirstIcon; Framework::Bild* energyIcon; Framework::TextRenderer tr; public: StatusBarsView(Framework::Text id, int targetEntity); ~StatusBarsView(); void api(char* message) override; void render(Framework::Bild& rObj) override; };