#ifndef Components_ParticleEmitter_h__ #define Components_ParticleEmitter_h__ #include "Component.h" #include "Color.h" #include namespace Systems { class ParticleSystem; } namespace Components { struct ParticleEmitter : Component { friend class Systems::ParticleSystem; ParticleEmitter() : SpawnFrequency(0) , SpawnCount(0) , SpreadAngle(0) , LifeTime(0) , TimeSinceLastSpawn(0) { } EntityID ParticleTemplate; float SpawnFrequency; int SpawnCount; std::vector ColorSpectrum; std::vector ScaleSpectrum; float SpreadAngle; double LifeTime; bool UseGoalVelocity; glm::vec3 GoalVelocity; std::vector AngularVelocitySpectrum; std::vector OrientationSpectrum; //Keep? virtual ParticleEmitter* Clone() const override { return new ParticleEmitter(*this); } private: double TimeSinceLastSpawn; }; } #endif // !Components_ParticleEmitter_h__