Brenta Engine 1.2
Loading...
Searching...
No Matches
particle_emitter_system.hpp
1// SPDX-License-Identifier: MIT
2// Author: Giovanni Santini
3// Mail: giovanni.santini@proton.me
4// Github: @San7o
5
6#pragma once
7
8#ifndef BRENTA_NO_ECS
9
10#include <brenta/ecs/ecs.hpp>
11#include <brenta/ecs/components/particle_emitter_ecs_component.hpp>
12
13#include <vector>
14
15namespace brenta
16{
17
18class ParticleEmitterSystem : public viotecs::System<ParticleEmitterEcsComponent>
19{
20public:
21
22 void run(std::vector<viotecs::EntityId> entities) const override
23 {
24 for (auto& entity : entities)
25 {
26 auto e = viotecs::Entity(entity);
27 auto emitter = e.get_component<ParticleEmitterEcsComponent>();
28 emitter->emitter->update(Window::get_time().delta);
29
30 if (const auto& f = emitter->fb.lock())
31 emitter->emitter->render(f->width, f->height);
32 }
33 }
34};
35
36} // namespace brenta
37
38#endif // BRENTA_NO_ECS