DIFF

class ParticleManagerSource

ParticleManager Managed

All members, including inherited

Constructors 2

void ~ParticleManager()

dtor

Members 1

private static ref ParticleManager g_ParticleManager
Referenced by CleanupInstance(), and GetInstance()

Methods 41

static void CleanupInstance()

To clean it up properly before game closes

Referenced by CGame.~CGame()
ParticleSource CreateParticle(int id, vector pos, bool playOnCreation = false, Object parent = null, vector ori = vector.Zero, bool forceWorldRotation = false, Class owner = null)

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)

Returns: ParticleSource Created particle instance when successful

ParticleSource CreateParticleEx(int id, vector pos, int flags = ParticlePropertiesFlags.NONE, Object parent = null, vector ori = vector.Zero, Class owner = null)

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)

Returns: ParticleSource Created particle instance when successful

Referenced by CreateParticle()
ParticleSource 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

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)

Returns: ParticleSource Created particle instance

References CreateParticle()
Referenced by Create()
ParticleSource Create(int particle_id, Object parent_obj, vector local_pos = "0 0 0", vector local_ori = "0 0 0")

Legacy function for backwards compatibility

References CreateOnObject()
ParticleSource 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

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

Returns: ParticleSource Created particle instance

References CreateParticle()
Referenced by Create()
ParticleSource Create(int particle_id, vector global_pos, vector global_ori = "0 0 0")

Legacy function for backwards compatibility with 1.01 and below

References CreateInWorld()
ParticleSource 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

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)

Returns: ParticleSource Created particle instance

References CreateParticle()
ParticleSource 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

References PlayOnObject()
ParticleSource PlayInWorldEx(int particle_id, Object parent_obj, vector global_pos, vector global_ori = "0 0 0", bool force_world_rotation = false)
References CreateParticle()
ParticleSource Play(int particle_id, vector global_pos)

Legacy function for backwards compatibility with 1.01 and below

References PlayInWorld()
proto native int CreateParticles(array<ParticleSource> particles, string path, notnull ParticlePropertiesArray properties, int count = 1)

Creates an amount of particles with the properties given

particles
array<ParticleSource> The resulting particles if an array is given
path
string Path of particle effect
properties
ParticleProperties Properties of the particles created
count
int Amount of particles to create with these properties

Returns: int Amount of particles created in this frame, if the ParticleManager is still allocating while this is called and virtual particles are enabled, the overflow particles will be virtual instead and not given in the out array

ParticleSource CreateParticleByPath(string path, notnull ParticleProperties properties)

Create a particle

path
string Path of particle effect
properties
ParticleProperties Properties of the particles created

Returns: ParticleSource The resulting particle

int CreateParticlesById(int id, notnull ParticlePropertiesArray properties, int count)

QoL function using script ParticleList, strongly recommend to read comments for CreateParticles as well

id
int ID of particle registered in ParticleList
properties
ParticleProperties Properties of the particles created
count
int Amount of particles to create with these properties

Returns: int Amount of particles created in this frame, if the ParticleManager is still allocating while this is called and virtual particles are enabled, the overflow particles will be virtual instead

array<ParticleSource> CreateParticlesByIdArr(int id, notnull ParticlePropertiesArray properties, int count)

QoL function using script ParticleList, strongly recommend to read comments for CreateParticles as well

id
int ID of particle registered in ParticleList
properties
ParticleProperties Properties of the particles created
count
int Amount of particles to create with these properties

Returns: array<ParticleSource> The resulting particles - Read particles param of CreateParticles

ParticleSource CreateParticleById(int id, ParticleProperties properties)

QoL function for when only one particle is needed using script ParticleList, strongly recommend to read comments for CreateParticles as well

id
int ID of particle registered in ParticleList
properties
ParticleProperties Properties of the particles created

Returns: ParticleSource The resulting particle

proto native int PlayParticles(out array<ParticleSource> particles, string path, notnull array<vector> positions, int count = 1)

QoL function for when wanting to play a particle at a position right away

particles
array<ParticleSource> The resulting particles if an array is given
path
string Path of particle effect
positions
array<vector> Positions of particles
count
int Amount of particles to create at this position

Returns: int Amount of particles created in this frame, if the ParticleManager is still allocating while this is called and virtual particles are enabled, the overflow particles will be virtual instead and not given in the out array

array<ParticleSource> PlayParticlesById(int id, array<vector> positions, int count)

QoL function using script ParticleList, strongly recommend to read comments for PlayParticles as well

id
int ID of particle registered in ParticleList
positions
array<vector> Positions of particles
count
int Amount of particles to create at this position

Returns: array<ParticleSource> The resulting particles - Read particles param of PlayParticles

ParticleSource PlayParticleById(int id, array<vector> position)

QoL function for when only one particle is needed using script ParticleList, strongly recommend to read comments for PlayParticles as well

id
int ID of particle registered in ParticleList
positions
array<vector> Positions of particles

Returns: ParticleSource The resulting particle

proto native ParticleSource GetParticle(int index)

Manually get the particle at index

index
int Index of particle

Returns: ParticleSource ParticleSource at given index

proto native int GetParticles(out array<ParticleSource> outArray, int startIndex, int count)

Manually get a portion of the particles in the pool

particles
array<ParticleSource> The resulting particles
startIndex
int Starting index
count
int Amount of particles to get

Returns: int Amount of particles in outArray

Referenced by GetParticlesEx()
array<ParticleSource> GetParticlesEx(int startIndex, int count)

Manually get a portion of the particles in the pool

startIndex
int Starting index
count
int Amount of particles to get

Returns: array<ParticleSource> The resulting particles

References GetParticles()
proto native void SetName(string name)

Set a name for the ParticleManager to identify it more easily

name
string Name for ParticleManager
Referenced by GetInstance()
proto string GetName()

Gets the name which is set for the ParticleManager, default is "ParticleSourceManager"

name
string Name of ParticleManager
proto string GetDebugNameNative()

Gets the debug name for the ParticleManager

dbgName
string "name:id"
Referenced by GetDebugName()
override string GetDebugName()

Gets the debug name for the ParticleManager

Returns: string "name:id"

proto int GetCountID()

Gets the ID for the ParticleManager

Returns: int ID for the ParticleManager (different every restart, as it is the nth instance created since the start of the program)

proto native static int GetStaticCount()

Gets the amount of ParticleManager that have been created since the start of the program

Returns: int Amount of ParticleManager that have been created since the start of the program

proto native static int GetStaticActiveCount()

Gets the amount of ParticleManager that are currently existing

Returns: int Amount of ParticleManager that are currently existing

proto native int GetPoolSize()

Gets the fixed maximum size of the pool

Returns: int The fixed maximum size of the pool

proto native int GetAllocatedCount()

Gets the amount of particles currently allocated

Returns: int Amount of particles currently allocated

proto native int GetVirtualCount()

Gets the amount of virtual particles

Returns: int Amount of virtual particles currently waiting to be turned into real particles

Referenced by PMTF.PrintPMStats()
proto native int GetPlayingCount()

Gets the amount of playing particles

Returns: int Amount of currently playing particles

Referenced by PMTF.PrintPMStats()
proto native bool IsFinishedAllocating()

Checks if the ParticleManager has allocated all slots in the pool

Returns: bool True when the number of allocated particles is the same as the pool size

private proto void SetScriptEvents(Managed events)

Set the events

events
Managed The events to set
private proto Managed GetScriptEvents()

Get the events

Returns: Managed If there is any events set, this will return them

Referenced by GetEvents()

Get the events

Returns: ParticleManagerEvents If there is any events set, this will return them so that additional functionality can be bound to them

void OnAllocation(array<ParticleSource> allocatedParticles)

\name Events Events called from C++

void OnAllocationEnd()