VoltAir
|
Abstract base class to spawn generic entities into the Game based on configurable parameters. More...
Classes | |
struct | SpawnParameters |
Parameters to use for creating and initializing spawned entities. More... | |
Public Member Functions | |
int | getRequestedMaxEntityCount () const |
Returns requestedMaxEntityCount. More... | |
void | setRequestedMaxEntityCount (int value) |
Sets requestedMaxEntityCount. More... | |
virtual int | getSupportedMaxEntityCount () const |
Returns supportedMaxEntityCount. More... | |
int | getMaxEntityCount () const |
Returns maxEntityCount. More... | |
virtual int | getEntityCount () const |
Returns entityCount. More... | |
float | getSpawnRate () const |
Returns spawnRate. More... | |
void | setSpawnRate (float value) |
Sets spawnRate. More... | |
float | getSpawnVelocity () const |
Returns spawnVelocity. More... | |
void | setSpawnVelocity (float value) |
Sets spawnVelocity. More... | |
float | getSpawnSpread () const |
Returns spawnSpread. More... | |
void | setSpawnSpread (float value) |
Sets spawnSpread. More... | |
float | getSpawnSpray () const |
Returns spawnSpray. More... | |
void | setSpawnSpray (float value) |
Sets spawnSpray. More... | |
bool | isSpawnRandom () const |
Returns spawnRandom. More... | |
void | setSpawnRandom (bool value) |
Sets spawnRandom. More... | |
float | getTimeOn () const |
Returns timeOn. More... | |
void | setTimeOn (float value) |
Sets timeOn. More... | |
float | getTimeOff () const |
Returns timeOff. More... | |
void | setTimeOff (float value) |
Sets timeOff. More... | |
float | getTransitionOnTime () const |
Returns transitionOnTime. More... | |
void | setTransitionOnTime (float value) |
Sets transitionOnTime. More... | |
float | getTransitionOffTime () const |
Returns transitionOffTime. More... | |
void | setTransitionOffTime (float value) |
Sets transitionOffTime. More... | |
float | getDecayTime () const |
Returns decayTime. More... | |
void | setDecayTime (float value) |
Sets decayTime. More... | |
float | getDecayTimeRandomLength () const |
Returns decayTimeRandomLength. More... | |
void | setDecayTimeRandomLength (float value) |
Sets decayTimeRandomLength. More... | |
bool | isPaused () const |
Returns paused. More... | |
void | setPaused (bool value) |
Sets paused. More... | |
virtual void | init () override |
Checks that the EmitterLogic has an actor. More... | |
virtual void | update () override |
Updates the EmitterLogic cycle, calling emitEntity() for any entities that need to be spawned. More... | |
![]() | |
Logic (QObject *parent=nullptr) | |
Constructs a Logic. More... | |
Actor * | getActor () const |
Returns actor. More... | |
bool | isActive () const |
Returns active. More... | |
void | setActive (bool value) |
Sets active. More... | |
![]() | |
QObject (QObject *parent) | |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
virtual const QMetaObject * | metaObject () const |
QString | objectName () const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const |
bool | isWindowType () const |
bool | signalsBlocked () const |
bool | blockSignals (bool block) |
QThread * | thread () const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, QFlags< Qt::FindChildOption > options) const |
QList< T > | findChildren (const QString &name, QFlags< Qt::FindChildOption > options) const |
QList< T > | findChildren (const QRegExp ®Exp, QFlags< Qt::FindChildOption > options) const |
QList< T > | findChildren (const QRegularExpression &re, QFlags< Qt::FindChildOption > options) const |
const QObjectList & | children () const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const |
bool | disconnect (const QObject *receiver, const char *method) const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const |
QList< QByteArray > | dynamicPropertyNames () const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const |
bool | inherits (const char *className) const |
void | deleteLater () |
Protected Member Functions | |
virtual void | onPausedChanged () |
Called when the emitter is moving to or from a paused state. More... | |
SpawnParameters | getNextRandomSpawnParameters () const |
Returns a randomized set of SpawnParameters according to EmitterLogic's parameters. More... | |
virtual void | emitEntity (const SpawnParameters ¶meters) |
Performs the creation and initialization of a spawned entity with parameters . More... | |
![]() | |
QObject * | sender () const |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
Properties | |
int | requestedMaxEntityCount |
User-defined maximum number of entities to spawn. More... | |
int | supportedMaxEntityCount |
Class-defined maximum number of entities to spawn. More... | |
int | maxEntityCount |
Actual maximum number of entities to spawn, bounded by both requestedMaxEntityCount and supportedMaxEntityCount. More... | |
int | entityCount |
Number of spawned entities still in existence. More... | |
float | spawnRate |
Number of entities spawned per frame (i.e. each non-paused call to update()). More... | |
float | spawnVelocity |
Forward velocity for spawned entities. More... | |
float | spawnSpread |
Horizontal axis spread to apply to spawned entities. More... | |
float | spawnSpray |
Divergence factor affecting the amount entities will stray from the direction of the emitter. More... | |
bool | spawnRandom |
true if SpawnParameters are pseudo randomized, or patterned if false . More... | |
float | timeOn |
Number of seconds, in game time, the emitter will stay on in one cycle. More... | |
float | timeOff |
Number of seconds, in game time, the emitter will stay off in one cycle. More... | |
float | transitionOnTime |
Number of seconds, in game time, the emitter takes to turn on. More... | |
float | transitionOffTime |
Number of seconds, in game time, the emitter takes to turn off. More... | |
float | decayTime |
Number of seconds, in game time, before the entity is destroyed. More... | |
float | decayTimeRandomLength |
Maximum time delta an entity can randomly stay alive if spawnRandom is true . More... | |
bool | paused |
Whether or not this emitter should spawn entities. More... | |
![]() | |
Actor | actor |
Parent actor that is affected by this Logic's behavior. More... | |
bool | active |
Whether or not Engine calls update() on this Logic during the Engine::LOGICS_PHASE. More... | |
![]() | |
objectName | |
Additional Inherited Members | |
![]() | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
Abstract base class to spawn generic entities into the Game based on configurable parameters.
EmitterLogic handles the logic for determining if and how an entity needs to be spawned in update(). Subclasses define the actual entity emitted by implementing emitEntity(). The spawned entity's SpawnParameters::position and SpawnParameter::velocity are functions of the emitter location and direction (i.e. the actor's position and rotation in world space) and the EmitterLogic parameters.
|
signal |
Emitted when decayTime changes.
|
signal |
Emitted when decayTimeRandomLength changes.
|
protectedvirtual |
Performs the creation and initialization of a spawned entity with parameters
.
parameters | Parameters to configure the spawned entity with |
Reimplemented in ParticleEmitterLogic, and ActorEmitterLogic.
|
inline |
Returns decayTime.
|
inline |
Returns decayTimeRandomLength.
|
inlinevirtual |
Returns entityCount.
Reimplemented in ParticleEmitterLogic, and ActorEmitterLogic.
int EmitterLogic::getMaxEntityCount | ( | ) | const |
Returns maxEntityCount.
|
protected |
Returns a randomized set of SpawnParameters according to EmitterLogic's parameters.
|
inline |
Returns requestedMaxEntityCount.
|
inline |
Returns spawnRate.
|
inline |
Returns spawnSpray.
|
inline |
Returns spawnSpread.
|
inline |
Returns spawnVelocity.
|
inlinevirtual |
Returns supportedMaxEntityCount.
Reimplemented in WaterBodyLogic.
|
inline |
Returns timeOff.
|
inline |
Returns timeOn.
|
inline |
Returns transitionOffTime.
|
inline |
Returns transitionOnTime.
|
overridevirtual |
Checks that the EmitterLogic has an actor.
Reimplemented from Logic.
Reimplemented in WaterBodyLogic.
|
inline |
Returns paused.
|
inline |
Returns spawnRandom.
|
inlineprotectedvirtual |
Called when the emitter is moving to or from a paused state.
Reimplemented in ParticleEmitterLogic, and WaterBodyLogic.
|
signal |
Emitted when paused changes.
|
signal |
Emitted when requestedMaxEntityCount changes.
void EmitterLogic::setDecayTime | ( | float | value | ) |
void EmitterLogic::setDecayTimeRandomLength | ( | float | value | ) |
Sets decayTimeRandomLength.
value | Float to set decayTimeRandomLength to |
void EmitterLogic::setRequestedMaxEntityCount | ( | int | value | ) |
Sets requestedMaxEntityCount.
value | Integer to set requestedMaxEntityCount to |
void EmitterLogic::setSpawnRandom | ( | bool | value | ) |
Sets spawnRandom.
value | Boolean to set spawnRandom to |
void EmitterLogic::setSpawnRate | ( | float | value | ) |
void EmitterLogic::setSpawnSpray | ( | float | value | ) |
Sets spawnSpray.
value | Float to set spawnSpray to |
void EmitterLogic::setSpawnSpread | ( | float | value | ) |
Sets spawnSpread.
value | Float to set spawnSpread to |
void EmitterLogic::setSpawnVelocity | ( | float | value | ) |
Sets spawnVelocity.
value | Float to set spawnVelocity to |
void EmitterLogic::setTransitionOffTime | ( | float | value | ) |
Sets transitionOffTime.
value | Float to set transitionOffTime to |
void EmitterLogic::setTransitionOnTime | ( | float | value | ) |
Sets transitionOnTime.
value | Float to set transitionOnTime to |
|
signal |
Emitted when spawnRandom changes.
|
signal |
Emitted when spawnRate changes.
|
signal |
Emitted when spawnSpray changes.
|
signal |
Emitted when spawnSpread changes.
|
signal |
Emitted when spawnVelocity changes.
|
signal |
Emitted when timeOff changes.
|
signal |
Emitted when timeOn changes.
|
signal |
Emitted when transitionOffTime changes.
|
signal |
Emitted when transitionOnTime changes.
|
overridevirtual |
Updates the EmitterLogic cycle, calling emitEntity() for any entities that need to be spawned.
Reimplemented from Logic.
Reimplemented in ParticleEmitterLogic, ActorEmitterLogic, and WaterBodyLogic.
|
readwrite |
Number of seconds, in game time, before the entity is destroyed.
This value (randomized according to decayTimeRandomLength if spawnRandom is true
) is used to initialize SpawnParameters::decayTime, but is not enforced by EmitterLogic. Instead, it is up to subclasses to correctly override update() to decay entities appropriately.
|
readwrite |
Maximum time delta an entity can randomly stay alive if spawnRandom is true
.
SpawnParameters::decayTime varies by [-decayTimeRandomLength, decayTimeRandomLength].
|
read |
Number of spawned entities still in existence.
|
read |
Actual maximum number of entities to spawn, bounded by both requestedMaxEntityCount and supportedMaxEntityCount.
|
readwrite |
Whether or not this emitter should spawn entities.
false
.
|
readwrite |
User-defined maximum number of entities to spawn.
Negative values are considered infinite.
500
|
readwrite |
true
if SpawnParameters are pseudo randomized, or patterned if false
.
|
readwrite |
|
readwrite |
Divergence factor affecting the amount entities will stray from the direction of the emitter.
If spawnSpray is positive, emitted entities will have a divergent SpawnParameters::velocity, and if it is negative, emitted entities will have a convergent velocity.
|
readwrite |
Horizontal axis spread to apply to spawned entities.
This value allows for the initial position of spawned entities to vary perpendicularly by up to spawnSpread units in order to prevent these entities from colliding immediately.
|
readwrite |
Forward velocity for spawned entities.
This value represents the y-component of the initial, local velocity vector.
|
read |
Class-defined maximum number of entities to spawn.
Negative values are considered infinite.
|
readwrite |
Number of seconds, in game time, the emitter will stay off in one cycle.
|
readwrite |
Number of seconds, in game time, the emitter will stay on in one cycle.
|
readwrite |
Number of seconds, in game time, the emitter takes to turn off.
The entity spawn rate is non-linearly (quadratically) interpolated from spawnRate to 0.0f
over transitionOffTime seconds.
|
readwrite |
Number of seconds, in game time, the emitter takes to turn on.
The entity spawn rate is non-linearly (quadratically) interpolated from 0.0f
to spawnRate over transitionOnTime seconds.