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.