31 void setEnable(
bool enable)
override { (void)enable; }
35 std::vector<ecs::Entity> explosionsToRemove;
44 if ((transform ==
nullptr) || (rect ==
nullptr) || (texture ==
nullptr) || (scale ==
nullptr))
49 explosion.current_time += dt;
50 if (explosion.current_time >= explosion.frame_duration)
52 explosion.current_time = 0.0f;
53 explosion.current_frame = (explosion.current_frame + 1) % explosion.total_frames;
55 int frame_x = (explosion.current_frame % explosion.frames_per_row) *
56 static_cast<int>(explosion.frame_width);
57 int frame_y = (explosion.current_frame / explosion.frames_per_row) *
58 static_cast<int>(explosion.frame_height);
60 rect->pos_x =
static_cast<float>(frame_x);
61 rect->pos_y =
static_cast<float>(frame_y);
65 transform->y, scale->x, scale->y,
static_cast<int>(rect->pos_x),
66 static_cast<int>(rect->pos_y), rect->size_x, rect->size_y);
69 explosion.current_lifetime += dt;
70 if (explosion.current_lifetime >= explosion.lifetime)
72 explosionsToRemove.push_back(entity);
This file contains the component definitions.
This file contains the IRenderer class declaration.
This file contains the interface for systems.
This file contains the Registry class declaration.
Abstract class for system.
Class for managing entities and their components.
bool hasComponent(Entity e)
std::unordered_map< Entity, T > & getAll()
T * getComponent(Entity e)
void removeComponent(Entity e)
virtual void drawSprite(const std::string &name)=0
virtual void createSprite(const std::string &name, const std::string &textureName, float x, float y, float scale_x=1, float scale_y=1, int fx=0, int fy=0, int fnx=-1, int fny=-1)=0
const std::shared_ptr< eng::IRenderer > & m_renderer
ExplosionSystem(ExplosionSystem &&)=delete
ExplosionSystem(const std::shared_ptr< eng::IRenderer > &renderer)
~ExplosionSystem() override=default
ExplosionSystem & operator=(const ExplosionSystem &)=delete
ExplosionSystem(const ExplosionSystem &)=delete
void update(ecs::Registry ®istry, float dt) override
static void removeExplosion(ecs::Registry ®istry, const ecs::Entity entity)
void setEnable(bool enable) override
ExplosionSystem & operator=(ExplosionSystem &&)=delete