Add healthSystem

The component doesn't disable the entity anymore, the system does it by checking the component of the entity

Co-Authored-By: Benjamin HENRY <44569175+EternalRat@users.noreply.github.com>
This commit is contained in:
TrueBabyChaise
2021-05-21 14:15:42 +02:00
parent 7377301c4e
commit 61e04f760a
4 changed files with 58 additions and 2 deletions
+1 -2
View File
@@ -32,8 +32,7 @@ namespace BBM
{
if (damage >= this->_healthPoint) {
this->_healthPoint = 0;
this->die();
} else
} else
this->_healthPoint -= damage;
}
@@ -45,5 +45,7 @@ namespace BBM
//! @brief A component can't be assigned
HealthComponent &operator=(const HealthComponent &) = delete;
friend class HealthSystem;
};
}
+25
View File
@@ -0,0 +1,25 @@
//
// Created by Tom Augier on 2021-05-20.
// Edited by Benjamin Henry on 2021-05-20.
//
#include "HealthSystem.hpp"
#include "sources/Component/Health/HealthComponent.hpp"
#include "sources/Component/Controllable/ControllableComponent.hpp"
#include "lib/wal/sources/Entity/Entity.hpp"
namespace BBM
{
const std::type_info &HealthSystem::getComponent() const
{
return typeid(HealthComponent);
}
void HealthSystem::onFixedUpdate(WAL::Entity &entity)
{
auto &health = entity.getComponent<HealthComponent>();
if (health._healthPoint == 0);
health.die();
}
}
+30
View File
@@ -0,0 +1,30 @@
//
// Created by Tom Augier on 2021-05-20.
// Edited by Benjamin Henry on 2021-05-20.
//
#pragma once
#include "lib/wal/sources/System/System.hpp"
namespace BBM
{
//! @brief A system to handle Health entities.
class HealthSystem : public WAL::System
{
public:
//! @inherit
const std::type_info &getComponent() const override;
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
//! @brief A default constructor
HealthSystem() = default;
//! @brief A Health system is copy constructable
HealthSystem(const HealthSystem &) = default;
//! @brief A default destructor
~HealthSystem() override = default;
//! @brief A Health system is assignable.
HealthSystem &operator=(const HealthSystem &) = default;
};
}