Brenta Engine 1.2
Loading...
Searching...
No Matches
particle_emitter_ecs_component.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/renderer/particles.hpp>
11#include <brenta/ecs/ecs.hpp>
12
13#include <tenno/memory.hpp>
14
15namespace brenta
16{
17
18class FrameBuffer;
19
20class ParticleEmitterEcsComponent : public viotecs::Component
21{
22public:
23
24 tenno::shared_ptr<ParticleEmitter> emitter = nullptr;
25 tenno::weak_ptr<FrameBuffer> fb;
26
28 ParticleEmitterEcsComponent(tenno::shared_ptr<ParticleEmitter> e,
29 tenno::weak_ptr<FrameBuffer> fb)
30 : emitter(e), fb(fb) {}
32 tenno::weak_ptr<FrameBuffer> fb)
33 : fb(fb)
34 {
35 this->emitter = tenno::make_shared<ParticleEmitter>(tenno::move(e));
36 }
38 tenno::weak_ptr<FrameBuffer> fb)
39 : fb(fb)
40 {
41 this->emitter = tenno::make_shared<ParticleEmitter>(builder.build());
42 }
43
44};
45
46} // namespace brenta
47
48#endif // BRENTA_NO_ECS