0
0
mirror of https://github.com/Nimac0/SDL_Minigame synced 2026-01-12 13:43:41 +00:00

#66 removed UI elements from HealthComponent

This commit is contained in:
Benedikt Galbavy 2024-06-24 22:38:01 +02:00
parent a8e046ce07
commit 160ba5a2d9
2 changed files with 2 additions and 48 deletions

View File

@ -10,7 +10,7 @@ class HealthComponent : public Component
{ {
public: public:
HealthComponent(int health, Direction side, std::string healthTexture) : health(health), side(side), healthTexture(healthTexture) {} HealthComponent(int health) : health(health) {}
~HealthComponent() {} ~HealthComponent() {}
void modifyHealth(int health = -1); void modifyHealth(int health = -1);
@ -26,6 +26,4 @@ public:
private: private:
int health; int health;
Direction side;
std::string healthTexture;
}; };

View File

@ -6,58 +6,14 @@
#include <cstdio> #include <cstdio>
void HealthComponent::init() void HealthComponent::init()
{ {}
refreshHearts();
}
void HealthComponent::modifyHealth(int health) void HealthComponent::modifyHealth(int health)
{ {
this->health += health; this->health += health;
this->refreshHearts();
} }
void HealthComponent::setHealth(int health) void HealthComponent::setHealth(int health)
{ {
this->health = health; this->health = health;
this->refreshHearts();
}
void HealthComponent::refreshHearts()
{
// clear hearts if exist
for (auto& heart : this->entity->getManager().getGroup((size_t) Entity::GroupLabel::HEARTS)) {
if (heart->getTeam() == this->entity->getTeam()) {
heart->destroy();
}
}
int x; //starting position for first health icon
if(side == Direction::LEFT) {
x = 10;
} else {
x = 730;
}
for(int i = 0; i < health; i++) {
//checks for player side
if (side == Direction::LEFT) {
createHeartComponents(x);
x += 50;
continue;
}
createHeartComponents(x);
x -= 50;
}
}
void HealthComponent::createHeartComponents(int x)
{
auto& heart(this->entity->getManager().addEntity());
heart.addComponent<TransformComponent>(x,5,2);
heart.addComponent<SpriteComponent>(this->healthTexture.data());
heart.addGroup((size_t)Entity::GroupLabel::HEARTS);
heart.setTeam(this->entity->getTeam());
} }