Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleEmitter_OnEvent.h
1#pragma once
2
3#include <Core/ResourceManager/ResourceHandle.h>
4#include <Foundation/Containers/Deque.h>
5#include <ParticlePlugin/Emitter/ParticleEmitter.h>
6#include <ParticlePlugin/Events/ParticleEvent.h>
7
8class PL_PARTICLEPLUGIN_DLL plParticleEmitterFactory_OnEvent final : public plParticleEmitterFactory
9{
11
12public:
15
16 virtual const plRTTI* GetEmitterType() const override;
17 virtual void CopyEmitterProperties(plParticleEmitter* pEmitter, bool bFirstTime) const override;
18 virtual void QueryMaxParticleCount(plUInt32& out_uiMaxParticlesAbs, plUInt32& out_uiMaxParticlesPerSecond) const override;
19
20 virtual void Save(plStreamWriter& inout_stream) const override;
21 virtual void Load(plStreamReader& inout_stream) override;
22
23 plString m_sEventName;
24 plUInt32 m_uiSpawnCountMin = 1;
25 plUInt32 m_uiSpawnCountRange = 0;
26 plString m_sSpawnCountScaleParameter;
27};
28
29class PL_PARTICLEPLUGIN_DLL plParticleEmitter_OnEvent final : public plParticleEmitter
30{
31 PL_ADD_DYNAMIC_REFLECTION(plParticleEmitter_OnEvent, plParticleEmitter);
32
33public:
34 plTempHashedString m_sEventName;
35 plUInt32 m_uiSpawnCountMin = 1;
36 plUInt32 m_uiSpawnCountRange = 0;
37 plTempHashedString m_sSpawnCountScaleParameter;
38
39 virtual void CreateRequiredStreams() override {}
40
41protected:
42 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override {}
43
44 virtual plParticleEmitterState IsFinished() override;
45 virtual plUInt32 ComputeSpawnCount(const plTime& tDiff) override;
46
47 virtual void ProcessEventQueue(plParticleEventQueue queue) override;
48
49 bool m_bSpawn = false;
50};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition ParticleEmitter_OnEvent.h:30
virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override
This method needs to be implemented in order to initialize new elements to specific values.
Definition ParticleEmitter_OnEvent.h:42
Definition ParticleEmitter_OnEvent.h:9
Base class for all particle emitters.
Definition ParticleEmitter.h:14
Base class for stream spawners that are used by plParticleEmitter's.
Definition ParticleEmitter.h:38
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
A class to use together with plHashedString for quick comparisons with temporary strings that need no...
Definition HashedString.h:151
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12