Entity which has the particle instance as an ObjectComponent. More...
Private Member Functions | |
| void | ParticleSource () |
| ctor | |
| void | ~ParticleSource () |
| dtor | |
| override protected void | ParticleInit () |
| Empty - Only needed for Particle. | |
| proto native void | SetParticleAutoDestroyFlags (ParticleAutoDestroyFlags flags) |
| Enables the particle to automatically clean up itself when ending or stopping. | |
| void | DisableAutoDestroy () |
| Disables the particle automatically cleaning up itself when ending or stopping. | |
| proto native int | GetParticleAutoDestroyFlags () |
| Gets the currently set ParticleAutoDestroyFlags flags set on this ParticleSource. | |
Playback | |
Methods regarding playing/stopping of particle | |
| private proto bool | PlayParticleNative (int flags) |
| Method to tell the particle to start playing. | |
| override bool | PlayParticleEx (int particle_id=-1, int flags=0) |
| Method to tell the particle to start playing. | |
| private proto bool | StopParticleNative (int flags) |
| Method to tell the particle to stop playing. | |
| override bool | StopParticle (int flags=0) |
| Method to tell the particle to stop playing. | |
| private proto native bool | ResetParticleNative () |
| Method to tell the particle to reset. | |
| override bool | ResetParticle () |
| Method to tell the particle to reset. | |
| private proto native bool | RestartParticleNative () |
| Method to tell the particle to restart (reset + play) | |
| override bool | RestartParticle () |
| Method to tell the particle to restart (reset + play) | |
| private proto bool | IsParticlePlayingNative () |
| Ask if the particle is still playing. | |
| override bool | IsParticlePlaying () |
| Ask if the particle is still playing. | |
SetParticle | |
Methods that set the particle to be used | |
| private proto native bool | SetParticleNative (string path) |
| Assigns a particle to the ParticleSource. | |
| private bool | SetParticle (string path) |
| Assigns a particle to the ParticleSource. | |
| bool | SetParticleByID (int id) |
| Assigns a particle to the ParticleSource. | |
| override void | SetSource (int particle_id) |
| Sets particle id. | |
GetParticle | |
Methods that get the particle assigned | |
| private proto bool | GetParticleNative (out string path, EGetParticleMode mode) |
| Gets the path to the currently assigned particle. | |
| bool | GetParticle (out string path, EGetParticleMode mode) |
| Gets the path to the currently assigned particle. | |
| override int | GetParticleID () |
| Gets the ParticleList ID of the currently assigned particle. | |
| int | GetParticleIDLegacy () |
| Gets the ParticleList ID of the currently assigned particle. | |
Apply properties | |
Methods to apply properties to the particle | |
| private proto native bool | ApplyPropertiesNative (ParticleProperties properties) |
| Applies the properties given to the ParticleSource. | |
| bool | ApplyProperties (ParticleProperties properties) |
| Applies the properties given to the ParticleSource | |
Properties and state | |
Obtain information or set properties regarding the state of the Particle | |
| override Object | GetDirectParticleEffect () |
| Returns direct particle effect entity. | |
| override Object | GetParticleParent () |
| Returns the parent of this Particle if there is one. | |
| private proto bool | HasActiveParticleNative () |
| Returns if there is any particle active. | |
| override bool | HasActiveParticle () |
| Returns if there is any particle active. | |
| private proto int | GetParticleCountNative () |
| Returns the total count of active particles in all emitors. | |
| override int | GetParticleCount () |
| Returns the total count of active particles in all emitors. | |
| private proto bool | IsRepeatNative () |
| Returns whether there is a repeating particle. | |
| override bool | IsRepeat () |
| Returns whether there is a repeating particle. | |
| private proto float | GetMaxLifetimeNative () |
| Returns the approx. max lifetime. | |
| override float | GetMaxLifetime () |
| Returns the approx. max lifetime. | |
| proto native Class | GetOwner () |
| Get the owner of this ParticleSource. | |
| proto native void | SetOwner (Class owner) |
| Set the owner of this ParticleSource. | |
| proto native void | Orphan () |
| null the owner of this ParticleSource | |
Owning ParticleManager | |
Methods regarding the owner | |
| proto native ParticleManager | GetParticleManager () |
| Get the ParticleManager the ParticleSource belongs to if any. | |
| proto native int | GetIndex () |
| Get the index of this ParticleSource in the owning ParticleManager. | |
Events | |
ParticleBase events For ParticleSource, these are handed on C++ side For more information, read ParticleEvents | |
| override protected void | OnParticleParented (IEntity parent) |
| Event when the particle receives a parent. | |
| override protected void | OnParticleUnParented (IEntity parent) |
| Event when the particle is orphaned. | |
| override protected void | OnParticleStop () |
| Event when the particle stops. | |
Misc backwards compatibility helpers | |
Helpers for misc backwards compatibility functionality | |
| override void | AddAsChild (Object parent, vector local_pos="0 0 0", vector local_ori="0 0 0", bool force_rotation_to_world=false) |
| Attaches this particle onto some object. If null value is provided then the particle will be detached from the current parent. | |
Parameter API | |
Helpful methods for getting or setting parameters | |
| override void | SetParticleParam (int parameter_id, float value) |
| Set the value of a parameter of all emitors in the particle. | |
| override void | SetParameter (int emitter, int parameter, float value) |
| Set the value of a parameter of an emitor in the particle. | |
| override void | GetParameter (int emitter, int parameter, out float value) |
| Get the value of a parameter of an emitor in the particle. | |
| override float | GetParameterEx (int emitter, int parameter) |
| Get the value of a parameter of an emitor in the particle. | |
| override void | ScaleParticleParamFromOriginal (int parameter_id, float coef) |
| Scales the given parameter on all emitors relatively to their ORIGINAL value. | |
| override void | ScaleParticleParam (int parameter_id, float coef) |
| Scales the given parameter on all emitors relatively to their CURRENT value. | |
| override void | IncrementParticleParamFromOriginal (int parameter_id, float value) |
| Increments the value of the given parameter relatively from the ORIGINAL value. | |
| override void | IncrementParticleParam (int parameter_id, float value) |
| Increments the value of the given parameter relatively from the CURRENT value. | |
Wiggle API | |
Settings to make the Particle wiggle | |
| override void | SetWiggle (float random_angle, float random_interval) |
| Makes the particle change direction by random_angle every random_interval seconds. | |
| override void | StopWiggle () |
| Stops randomized wiggle. | |
| override private void | RandomizeOrientation () |
| Randomizes a new orientation and applies it. | |
Misc Particle specific helpers | |
Functionality specific for Particle, so we empty them here | |
| override private void | UpdateState () |
| Empty. | |
| override private void | DestroyParticleEffect () |
| Empty. | |
| override private void | CreateParticleEffect () |
| Empty. | |
| override protected void | EOnFrame (IEntity other, float timeSlice) |
| Empty. | |
| override private void | OnCheckAutoDelete () |
| Empty. | |
| override private void | OnToDelete () |
| Empty. | |
Static Private Member Functions | |
Create a particle (static) | |
Helper static methods to create/attach/play a ParticleSource on one line | |
| static ParticleSource | CreateParticle (int id, vector pos, bool playOnCreation=false, Object parent=null, vector ori=vector.Zero, bool forceWorldRotation=false, Class owner=null) |
| Create function. | |
| static ParticleSource | CreateParticleEx (int id, vector pos, int flags=ParticlePropertiesFlags.NONE, Object parent=null, vector ori=vector.Zero, Class owner=null) |
| Master create function. | |
| static override Particle | CreateOnObject (int particle_id, Object parent_obj, vector local_pos="0 0 0", vector local_ori="0 0 0", bool force_world_rotation=false) |
| Creates a particle emitter and attaches it on the given object. | |
| static override Particle | Create (int particle_id, Object parent_obj, vector local_pos="0 0 0", vector local_ori="0 0 0") |
| Legacy function for backwards compatibility. | |
| static override Particle | CreateInWorld (int particle_id, vector global_pos, vector global_ori="0 0 0", bool force_world_rotation=false) |
| Creates a particle emitter on the given position. | |
| static override ParticleSource | Create (int particle_id, vector global_pos, vector global_ori="0 0 0") |
| Legacy function for backwards compatibility with 1.01 and below. | |
Static play on creation | |
You can use the following Play(...) functions to create and activate a particle in 1 line of your script. | |
| static override Particle | PlayOnObject (int particle_id, Object parent_obj, vector local_pos="0 0 0", vector local_ori="0 0 0", bool force_world_rotation=false) |
| Creates a particle emitter, attaches it on the given object and activates it. | |
| static override Particle | Play (int particle_id, Object parent_obj, vector local_pos="0 0 0", vector local_ori="0 0 0") |
| Legacy function for backwards compatibility with 1.01 and below. | |
| static override Particle | PlayInWorld (int particle_id, vector global_pos) |
| Creates a particle emitter on the given position and activates it. | |
| static override Particle | Play (int particle_id, vector global_pos) |
| Legacy function for backwards compatibility with 1.01 and below. | |
Static counter API | |
Gives counter information for the class | |
| proto int | GetCountID () |
| Gets the ID for the ParticleSource. | |
| proto static native int | GetStaticCount () |
| Gets the amount of ParticleSource that have been created since the start of the program. | |
| proto static native int | GetStaticActiveCount () |
| Gets the amount of ParticleSource that are currently existing. | |
Entity which has the particle instance as an ObjectComponent.
|
inlineprivate |
ctor
References Particle::m_ParticleEffect.
|
inlineprivate |
dtor
|
inlineprivate |
Attaches this particle onto some object. If null value is provided then the particle will be detached from the current parent.
| parent | Object Parent onto which this particle will be attached |
| local_pos | vector Attachment position local to the parent (optional) |
| local_ori | vector Orientation local to the parent (Pitch, Yawn, Roll in degrees) (Optional) |
| force_rotation_to_world | bool Force rotation to be in WS (Optional) |
References ApplyProperties().
Referenced by DestructionEffectBase::PlayParticle().
|
inlineprivate |
Applies the properties given to the ParticleSource
| properties | ParticleProperties The properties to apply |
bool Whether the properties were successfully applied References ApplyPropertiesNative().
Referenced by AddAsChild(), CreateParticleEx(), RandomizeOrientation(), and StopWiggle().
|
private |
Applies the properties given to the ParticleSource.
| properties | ParticleProperties The properties to apply |
bool Whether the properties were successfully applied Referenced by ApplyProperties().
|
inlinestaticprivate |
Legacy function for backwards compatibility.
References CreateOnObject(), and particle_id.
|
inlinestaticprivate |
Legacy function for backwards compatibility with 1.01 and below.
References CreateInWorld(), and particle_id.
|
inlinestaticprivate |
Creates a particle emitter on the given position.
| particle_id | int Particle ID registered in ParticleList |
| global_pos | Vector Position where the particel will be created |
| global_ori | vector Orientation (Pitch, Yawn, Roll in degrees) (Optional) |
| force_world_rotation | bool Has absolutely no effect here as there is no parent |
Particle Created particle instance References CreateParticle(), and particle_id.
Referenced by Create().
|
inlinestaticprivate |
Creates a particle emitter and attaches it on the given object.
| particle_id | int Particle ID registered in ParticleList |
| parent_obj | Object Instance on which this particle will be attached |
| local_pos | vector Attachment position local to the parent (Optional) |
| local_ori | vector Orientation local to the parent (Pitch, Yaw, Roll in degrees) (Optional) |
| force_world_rotation | bool Forces particle's orientation to rotate relative to the world and not with the object (Optional) |
Particle Created particle instance References CreateParticle(), and particle_id.
Referenced by Create().
|
inlinestaticprivate |
Create function.
| id | int Particle ID registered in ParticleList |
| pos | vector Position of ParticleSource in LS (WS when no parent) |
| playOnCreation | bool Whether to play immediately after creation (Optional) |
| parent | Object Parent Object which will child the ParticleSource (Optional) |
| ori | vector Orientation of ParticleSource in LS (WS when no parent) (Pitch, Yaw, Roll in degrees) (Optional) |
| forceWorldRotation | bool Forces orientation to rotate relative to the world and not with the parent (Optional) |
| owner | Class The owning instance for this particle (Optional) |
ParticleSource Created particle instance when successful References CreateParticleEx().
Referenced by PMTPlayback::TestOnePlayingStandAlone(), PMTPlayback::TestOnePlayingStandAloneAutoDestroy(), PMTPlayback::TestStopping(), and PMTPlayback::TestWiggleStress().
|
inlineprivate |
Empty.
References ErrorEx.
|
inlinestaticprivate |
Master create function.
| id | int Particle ID registered in ParticleList |
| pos | vector Position of ParticleSource in LS (WS when no parent) |
| flags | int See ParticlePropertiesFlags (Optional) |
| parent | Object Parent Object which will child the ParticleSource (Optional) |
| ori | vector Orientation of ParticleSource in LS (WS when no parent) (Pitch, Yaw, Roll in degrees) (Optional) |
| owner | Class The owning instance for this particle (Optional) |
ParticleSource Created particle instance when successful References ApplyProperties(), ECE_LOCAL, ErrorEx, GetGame(), ParticleList::GetParticleFullPath(), and SetParticle().
Referenced by CreateParticle().
|
inlineprivate |
Empty.
References ErrorEx.
|
inlineprivate |
Disables the particle automatically cleaning up itself when ending or stopping.
References SetParticleAutoDestroyFlags().
Referenced by PMTPlayback::TestOnePlayingStandAlone(), and PMTPlayback::TestStopping().
Empty.
References ErrorEx.
|
private |
Gets the ID for the ParticleSource.
int ID for the ParticleSource
|
inlineprivate |
|
private |
Get the index of this ParticleSource in the owning ParticleManager.
int The index in the pool in the owning ParticleManager, -1 if no owner
|
inlineprivate |
Returns the approx. max lifetime.
float The largest lifetime sum among the emitors References GetMaxLifetimeNative().
|
private |
Returns the approx. max lifetime.
float The largest lifetime sum among the emitors Referenced by GetMaxLifetime().
|
private |
Get the owner of this ParticleSource.
Class The owner or null Referenced by RandomizeOrientation(), and StopWiggle().
Get the value of a parameter of an emitor in the particle.
| emitter | int The emitor to get the value from |
| parameter | int The parameter to get the value from (enum EmitorParam) |
| value | float The value |
References GetParticleParm().
Get the value of a parameter of an emitor in the particle.
| emitter | int The emitor to get the value from |
| parameter | int The parameter to get the value from (enum EmitorParam) |
float The value References GetParticleParm().
Gets the path to the currently assigned particle.
| path | string Path of particle effect |
| mode | EGetParticleMode What path to return |
bool Whether the path is filled in or not References GetParticleNative(), and path.
Referenced by PMTPlayback::CheckOnePlaying(), GetParticleID(), and GetParticleIDLegacy().
|
private |
Gets the currently set ParticleAutoDestroyFlags flags set on this ParticleSource.
int Currently set ParticleAutoDestroyFlags flags set on this ParticleSource
|
inlineprivate |
Returns the total count of active particles in all emitors.
int Total count of active particles References GetParticleCountNative().
|
private |
Returns the total count of active particles in all emitors.
int Total count of active particles Referenced by GetParticleCount().
|
inlineprivate |
Gets the ParticleList ID of the currently assigned particle.
int ID of particle registered in ParticleList References GetParticle(), ParticleList::GetParticleIDByName(), and path.
|
inlineprivate |
Gets the ParticleList ID of the currently assigned particle.
int ID of particle registered in ParticleList References GetParticle(), ParticleList::GetParticleID(), and path.
|
private |
Get the ParticleManager the ParticleSource belongs to if any.
ParticleManager The ParticleManager which created the ParticleSource or null Gets the path to the currently assigned particle.
| path | string Path of particle effect |
| mode | EGetParticleMode What path to return |
bool Whether the path is filled in or not Referenced by GetParticle().
|
inlineprivate |
Returns the parent of this Particle if there is one.
Object The parent or null if there is none References GetParent().
Referenced by RandomizeOrientation(), and StopWiggle().
|
staticprivate |
Gets the amount of ParticleSource that are currently existing.
int Amount of ParticleSource that are currently existing Referenced by PMTF::PrintActiveStats(), and TestCleanup().
|
staticprivate |
Gets the amount of ParticleSource that have been created since the start of the program.
int Amount of ParticleSource that have been created since the start of the program
|
inlineprivate |
Returns if there is any particle active.
bool Whether there is any particle active References HasActiveParticleNative().
|
private |
Returns if there is any particle active.
bool Whether there is any particle active Referenced by HasActiveParticle().
Increments the value of the given parameter relatively from the CURRENT value.
| parameter_id | int The parameter to adjust (enum EmitorParam) |
| value | float The value to sum |
References GetParticleEmitorCount(), GetParticleParm(), and SetParticleParm().
Referenced by HotSpringTrigger::SpawnVaporEffect(), and VolcanicTrigger::SpawnVaporEffect().
Increments the value of the given parameter relatively from the ORIGINAL value.
| parameter_id | int The parameter to adjust (enum EmitorParam) |
| value | float The value to sum |
References GetParticleEmitorCount(), GetParticleParmOriginal(), and SetParticleParm().
|
inlineprivate |
Ask if the particle is still playing.
bool Whether the particle is playing References IsParticlePlayingNative().
Referenced by PMTPlayback::CheckOnePlaying(), PMTPlayback::CheckOnePlayingSA(), PMTPlayback::CheckOnePlayingSAAD(), PMTPlayback::CheckStop(), PMTPlayback::TestOnePlaying(), PMTPlayback::TestOnePlayingStandAlone(), PMTPlayback::TestOnePlayingStandAloneAutoDestroy(), PMTPlayback::TestStopping(), and PMTPlayback::TestWiggleStress().
|
private |
Ask if the particle is still playing.
bool Whether the particle is playing Referenced by IsParticlePlaying().
|
inlineprivate |
Returns whether there is a repeating particle.
bool whether there is a repeating particle References IsRepeatNative().
|
private |
Returns whether there is a repeating particle.
bool whether there is a repeating particle Referenced by IsRepeat().
|
inlineprivate |
Empty.
References ErrorEx.
|
inlineprivate |
Event when the particle receives a parent.
References Particle::m_ParentObject.
|
inlineprivate |
Event when the particle stops.
References Particle::IsWiggling(), Particle::m_RandomizeOri, and StopWiggle().
|
inlineprivate |
Event when the particle is orphaned.
References Particle::IsWiggling(), Particle::m_DefaultOri, Particle::m_DefaultPos, Particle::m_DefaultWorldOri, Particle::m_DefaultWorldPos, Particle::m_MaxOriInterval, Particle::m_MaxOriWiggle, Particle::m_ParentObject, Particle::m_WiggleProcessing, SetWiggle(), and StopWiggle().
|
inlineprivate |
Empty.
References ErrorEx.
|
private |
null the owner of this ParticleSource
|
inlineprivate |
Empty - Only needed for Particle.
|
inlinestaticprivate |
Legacy function for backwards compatibility with 1.01 and below.
References particle_id, and PlayOnObject().
Legacy function for backwards compatibility with 1.01 and below.
References particle_id, and PlayInWorld().
Creates a particle emitter on the given position and activates it.
| particle_id | int Particle ID registered in ParticleList |
| global_pos | Vector Position where the particel will be created |
Particle Created particle instance References CreateParticle(), and particle_id.
Referenced by Play().
|
inlinestaticprivate |
Creates a particle emitter, attaches it on the given object and activates it.
| particle_id | int Particle ID registered in ParticleList |
| parent_obj | Object Instance on which this particle will be attached |
| local_pos | vector Attachment position local to the parent (Optional) |
| local_ori | vector Orientation local to the parent (Pitch, Yaw, Roll in degrees) (Optional) |
| force_world_rotation | bool Forces particle's orientation to rotate relative to the world and not with the object (Optional) |
Particle Created particle instance References CreateParticle(), and particle_id.
Referenced by Play().
Method to tell the particle to start playing.
| particle_id | int Particle ID registered in ParticleList to start playing |
bool Whether the particle successfully started References particle_id, PlayParticleNative(), and SetParticleByID().
Method to tell the particle to start playing.
bool Whether the particle successfully started Referenced by PlayParticleEx().
|
inlineprivate |
Randomizes a new orientation and applies it.
References ApplyProperties(), GetOwner(), GetParticleParent(), Particle::m_DefaultOri, Particle::m_DefaultPos, Particle::m_ForceOrientationRelativeToWorld, Particle::m_MaxOriInterval, Particle::m_RandomizeOri, Particle::m_WiggleProcessing, Math::RandomFloat(), and Particle::RandWiggleVector().
|
inlineprivate |
Method to tell the particle to reset.
bool Whether the particle successfully reset References ResetParticleNative().
|
private |
Method to tell the particle to reset.
bool Whether the particle successfully reset Referenced by ResetParticle().
|
inlineprivate |
Method to tell the particle to restart (reset + play)
bool Whether the particle successfully restarted References RestartParticleNative().
|
private |
Method to tell the particle to restart (reset + play)
bool Whether the particle successfully restarted Referenced by RestartParticle().
Scales the given parameter on all emitors relatively to their CURRENT value.
| parameter_id | int The parameter to adjust (enum EmitorParam) |
| coef | float The multiplier to apply |
References GetParticleEmitorCount(), GetParticleParm(), and SetParticleParm().
Scales the given parameter on all emitors relatively to their ORIGINAL value.
| parameter_id | int The parameter to adjust (enum EmitorParam) |
| coef | float The multiplier to apply |
References GetParticleEmitorCount(), GetParticleParmOriginal(), and SetParticleParm().
|
private |
Set the owner of this ParticleSource.
p Class The owner or null
Referenced by FireworksLauncherClientEvent::OnFired(), FireworksLauncher::OnFuseIgnitedClient(), and DestructionEffectBase::OnHealthLevelChanged().
Set the value of a parameter of an emitor in the particle.
| emitter | int The emitter to apply the new value to, -1 for all emitter |
| parameter | int The parameter to apply the new value to (enum EmitorParam) |
| value | float The value to apply |
References SetParticleParm().
Assigns a particle to the ParticleSource.
| path | string Path of particle effect |
bool Whether the creating and assigning of particle was successful References path, and SetParticleNative().
Referenced by CreateParticleEx(), and SetParticleByID().
|
private |
Enables the particle to automatically clean up itself when ending or stopping.
| flags | ParticleAutoDestroyFlags Flags enabling when the particle should be auto destroyed |
Referenced by DisableAutoDestroy(), and Edible_Base::UpdateVaporParticle().
Assigns a particle to the ParticleSource.
| id | int ID of particle registered in ParticleList |
bool Whether the creating and assigning of particle was successful References ParticleList::GetParticleFullPath(), and SetParticle().
Referenced by PlayParticleEx(), and SetSource().
Assigns a particle to the ParticleSource.
| path | string Path of particle effect |
bool Whether the creating and assigning of particle was successful Referenced by SetParticle().
Set the value of a parameter of all emitors in the particle.
| parameter | int The parameter to apply the new value to (enum EmitorParam) |
| value | float The value to apply |
References SetParticleParm().
Referenced by Edible_Base::UpdateVaporParticle().
|
inlineprivate |
Sets particle id.
| particle_id | int Particle ID registered in ParticleList to start playing |
References particle_id, and SetParticleByID().
Makes the particle change direction by random_angle every random_interval seconds.
| random_angle | float Will be the range [-random_angle, random_angle[ to wiggle between |
| random_interval | float Will be the time range [0, random_interval] to wiggle next time |
References GetLocalPosition(), Particle::IsWiggling(), Particle::m_DefaultOri, Particle::m_DefaultPos, Particle::m_DefaultWorldOri, Particle::m_DefaultWorldPos, Particle::m_ForceOrientationRelativeToWorld, Particle::m_MaxOriInterval, Particle::m_MaxOriWiggle, and Update().
Referenced by OnParticleUnParented(), and PMTPlayback::TestWiggleStress().
Method to tell the particle to stop playing.
| flags | int Flags to pass to the stopping (StopParticleFlags) |
bool Whether the particle successfully stopped References StopParticleNative().
Referenced by PMTPlayback::CheckStop(), FireworksLauncher::OnFiringStartClient(), GeyserTrigger::StopEffects(), GeyserTrigger::UpdateGeyserState(), and FireworksLauncherClientEvent::~FireworksLauncherClientEvent().
Method to tell the particle to stop playing.
| flags | int Flags to pass to the stopping (StopParticleFlags) |
bool Whether the particle successfully stopped Referenced by StopParticle().
|
inlineprivate |
Stops randomized wiggle.
References ApplyProperties(), GetOwner(), GetParticleParent(), Particle::IsWiggling(), Particle::m_DefaultOri, Particle::m_DefaultPos, and Particle::m_ForceOrientationRelativeToWorld.
Referenced by OnParticleStop(), and OnParticleUnParented().
|
inlineprivate |
Empty.
References ErrorEx.