Mana
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ParticleEmitter Class Reference

Every Particle can have one or more particle emitters that create new particles when they are updated. More...

#include <particleemitter.h>

Public Member Functions

 ParticleEmitter (XML::Node emitterNode, Particle *target, Map *map, int rotation=0, const std::string &dyePalettes=std::string())
 
 ParticleEmitter (const ParticleEmitter &o)
 Copy Constructor (necessary for reference counting of particle images)
 
ParticleEmitteroperator= (const ParticleEmitter &o)
 Assignment operator that calls the copy constructor.
 
 ~ParticleEmitter ()
 
std::list< Particle * > createParticles (int tick)
 Spawns new particles.
 
void setTarget (Particle *target)
 Sets the target of the particles that are created.
 
void adjustSize (int w, int h)
 Changes the size of the emitter so that the effect fills a rectangle of this size.
 

Private Member Functions

template<typename T >
ParticleEmitterProp< T > readParticleEmitterProp (XML::Node propertyNode, T def)
 

Private Attributes

ParticleEmitterProp< float > mParticlePosX
 initial position of particles:
 
ParticleEmitterProp< float > mParticlePosY
 
ParticleEmitterProp< float > mParticlePosZ
 
ParticleEmitterProp< float > mParticleAngleHorizontal
 initial vector of particles:
 
ParticleEmitterProp< float > mParticleAngleVertical
 
ParticleEmitterProp< float > mParticlePower
 Initial velocity of particles.
 
ParticleEmitterProp< float > mParticleGravity
 
ParticleEmitterProp< int > mParticleRandomness
 
ParticleEmitterProp< float > mParticleBounce
 
bool mParticleFollow
 
ParticlemParticleTarget
 
ParticleEmitterProp< float > mParticleAcceleration
 
ParticleEmitterProp< float > mParticleDieDistance
 
ParticleEmitterProp< float > mParticleMomentum
 
ParticleEmitterProp< int > mParticleLifetime
 
ParticleEmitterProp< int > mParticleFadeOut
 
ParticleEmitterProp< int > mParticleFadeIn
 
MapmMap
 Map the particles are spawned on.
 
ParticleEmitterProp< int > mOutput
 Number of particles spawned per update.
 
ParticleEmitterProp< int > mOutputPause
 Pause in frames between two spawns.
 
int mOutputPauseLeft = 0
 
ResourceRef< ImagemParticleImage
 Particle image, if used.
 
Animation mParticleAnimation
 Filename of particle animation file.
 
Animation mParticleRotation
 Filename of particle rotation file.
 
ParticleEmitterProp< float > mParticleAlpha
 Opacity of the graphical representation of the particles.
 
std::string mDeathEffect
 
char mDeathEffectConditions
 
std::list< ParticleEmittermParticleChildEmitters
 List of emitters the spawned particles are equipped with.
 

Detailed Description

Every Particle can have one or more particle emitters that create new particles when they are updated.

Definition at line 41 of file particleemitter.h.

Constructor & Destructor Documentation

◆ ParticleEmitter() [1/2]

ParticleEmitter::ParticleEmitter ( XML::Node  emitterNode,
Particle target,
Map map,
int  rotation = 0,
const std::string &  dyePalettes = std::string() 
)

Definition at line 39 of file particleemitter.cpp.

◆ ParticleEmitter() [2/2]

ParticleEmitter::ParticleEmitter ( const ParticleEmitter o)

Copy Constructor (necessary for reference counting of particle images)

Definition at line 228 of file particleemitter.cpp.

◆ ~ParticleEmitter()

ParticleEmitter::~ParticleEmitter ( )
default

Member Function Documentation

◆ adjustSize()

void ParticleEmitter::adjustSize ( int  w,
int  h 
)

Changes the size of the emitter so that the effect fills a rectangle of this size.

Definition at line 375 of file particleemitter.cpp.

◆ createParticles()

std::list< Particle * > ParticleEmitter::createParticles ( int  tick)

Spawns new particles.

Returns
: a list of created particles

Definition at line 296 of file particleemitter.cpp.

◆ operator=()

ParticleEmitter & ParticleEmitter::operator= ( const ParticleEmitter o)

Assignment operator that calls the copy constructor.

Definition at line 233 of file particleemitter.cpp.

◆ readParticleEmitterProp()

template<typename T >
ParticleEmitterProp< T > ParticleEmitter::readParticleEmitterProp ( XML::Node  propertyNode,
def 
)
private

Definition at line 271 of file particleemitter.cpp.

◆ setTarget()

void ParticleEmitter::setTarget ( Particle target)
inline

Sets the target of the particles that are created.

Definition at line 69 of file particleemitter.h.

Member Data Documentation

◆ mDeathEffect

std::string ParticleEmitter::mDeathEffect
private

Definition at line 136 of file particleemitter.h.

◆ mDeathEffectConditions

char ParticleEmitter::mDeathEffectConditions
private

Definition at line 137 of file particleemitter.h.

◆ mMap

Map* ParticleEmitter::mMap
private

Map the particles are spawned on.

Definition at line 119 of file particleemitter.h.

◆ mOutput

ParticleEmitterProp<int> ParticleEmitter::mOutput
private

Number of particles spawned per update.

Definition at line 121 of file particleemitter.h.

◆ mOutputPause

ParticleEmitterProp<int> ParticleEmitter::mOutputPause
private

Pause in frames between two spawns.

Definition at line 122 of file particleemitter.h.

◆ mOutputPauseLeft

int ParticleEmitter::mOutputPauseLeft = 0
private

Definition at line 123 of file particleemitter.h.

◆ mParticleAcceleration

ParticleEmitterProp<float> ParticleEmitter::mParticleAcceleration
private

Definition at line 108 of file particleemitter.h.

◆ mParticleAlpha

ParticleEmitterProp<float> ParticleEmitter::mParticleAlpha
private

Opacity of the graphical representation of the particles.

Definition at line 131 of file particleemitter.h.

◆ mParticleAngleHorizontal

ParticleEmitterProp<float> ParticleEmitter::mParticleAngleHorizontal
private

initial vector of particles:

Definition at line 89 of file particleemitter.h.

◆ mParticleAngleVertical

ParticleEmitterProp<float> ParticleEmitter::mParticleAngleVertical
private

Definition at line 89 of file particleemitter.h.

◆ mParticleAnimation

Animation ParticleEmitter::mParticleAnimation
private

Filename of particle animation file.

Definition at line 129 of file particleemitter.h.

◆ mParticleBounce

ParticleEmitterProp<float> ParticleEmitter::mParticleBounce
private

Definition at line 101 of file particleemitter.h.

◆ mParticleChildEmitters

std::list<ParticleEmitter> ParticleEmitter::mParticleChildEmitters
private

List of emitters the spawned particles are equipped with.

Definition at line 140 of file particleemitter.h.

◆ mParticleDieDistance

ParticleEmitterProp<float> ParticleEmitter::mParticleDieDistance
private

Definition at line 109 of file particleemitter.h.

◆ mParticleFadeIn

ParticleEmitterProp<int> ParticleEmitter::mParticleFadeIn
private

Definition at line 117 of file particleemitter.h.

◆ mParticleFadeOut

ParticleEmitterProp<int> ParticleEmitter::mParticleFadeOut
private

Definition at line 116 of file particleemitter.h.

◆ mParticleFollow

bool ParticleEmitter::mParticleFollow
private

Definition at line 102 of file particleemitter.h.

◆ mParticleGravity

ParticleEmitterProp<float> ParticleEmitter::mParticleGravity
private

Definition at line 99 of file particleemitter.h.

◆ mParticleImage

ResourceRef<Image> ParticleEmitter::mParticleImage
private

Particle image, if used.

Definition at line 128 of file particleemitter.h.

◆ mParticleLifetime

ParticleEmitterProp<int> ParticleEmitter::mParticleLifetime
private

Definition at line 115 of file particleemitter.h.

◆ mParticleMomentum

ParticleEmitterProp<float> ParticleEmitter::mParticleMomentum
private

Definition at line 110 of file particleemitter.h.

◆ mParticlePosX

ParticleEmitterProp<float> ParticleEmitter::mParticlePosX
private

initial position of particles:

Definition at line 84 of file particleemitter.h.

◆ mParticlePosY

ParticleEmitterProp<float> ParticleEmitter::mParticlePosY
private

Definition at line 84 of file particleemitter.h.

◆ mParticlePosZ

ParticleEmitterProp<float> ParticleEmitter::mParticlePosZ
private

Definition at line 84 of file particleemitter.h.

◆ mParticlePower

ParticleEmitterProp<float> ParticleEmitter::mParticlePower
private

Initial velocity of particles.

Definition at line 94 of file particleemitter.h.

◆ mParticleRandomness

ParticleEmitterProp<int> ParticleEmitter::mParticleRandomness
private

Definition at line 100 of file particleemitter.h.

◆ mParticleRotation

Animation ParticleEmitter::mParticleRotation
private

Filename of particle rotation file.

Definition at line 130 of file particleemitter.h.

◆ mParticleTarget

Particle* ParticleEmitter::mParticleTarget
private

Definition at line 107 of file particleemitter.h.


The documentation for this class was generated from the following files: