23 static const int POOL_SIZE = 1;
25 static const int POOL_SIZE = 10000;
78 static void CleanupInstance()
117 int flags = ParticlePropertiesFlags.NONE;
121 flags = flags | ParticlePropertiesFlags.PLAY_ON_CREATION;
124 if (forceWorldRotation)
126 flags = flags | ParticlePropertiesFlags.FORCE_WORLD_ROT;
144 string particlePath =
ParticleList.GetParticleFullPath(
id);
145 if (particlePath ==
"")
147 ErrorEx(
string.Format(
"Could not create ParticleSource as particle id %1 is invalid.",
id));
151 ParticleProperties props =
new ParticleProperties(pos, flags, parent, ori, owner);
168 vector local_pos =
"0 0 0",
169 vector local_ori =
"0 0 0",
170 bool force_world_rotation =
false )
290 if (tempArr.Count() > 0)
333 if (tempArr.Count() > 0)
374 if (tempArr.Count() > 0)
422 proto native
void SetName(
string name);
428 proto
string GetName();
455 proto native
static int GetStaticCount();
461 proto native
static int GetStaticActiveCount();
515 private proto
void SetScriptEvents(
Managed events);
521 private proto
Managed GetScriptEvents();
543 GetEvents().Event_OnAllocation.Invoke(
this, allocatedParticles);
546 void OnAllocationEnd()
548 GetEvents().Event_OnAllocationEnd.Invoke(
this);
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
Super root of all classes in Enforce script.
Class simply to have easily modded constants.
Invokers for ParticleManager events.
Entity which has the particle instance as an ObjectComponent.
ScriptInvoker Class provide list of callbacks usage:
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
override string GetDebugName()
proto native CGame GetGame()
ParticleEvents GetEvents()
Get the events.
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.
proto native int GetVirtualCount()
Gets the amount of virtual particles.
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.
proto native int GetPoolSize()
Gets the fixed maximum size of the pool.
class ParticleManagerConstants ParticleManagerSettings(int poolSize, int flags=ParticleManagerSettingsFlags.NONE)
Settings given to ParticleManager on creation (in ctor)
ParticleSource PlayInWorldEx(int particle_id, Object parent_obj, vector global_pos, vector global_ori="0 0 0", bool force_world_rotation=false)
proto native int GetPlayingCount()
Gets the amount of playing particles.
ParticleSource PlayParticleById(int id, array< vector > position)
QoL function for when only one particle is needed using script ParticleList, strongly recommend to re...
proto native int GetParticles(out array< ParticleSource > outArray, int startIndex, int count)
Manually get a portion of the particles in the pool.
ParticleSource CreateParticleEx(int id, vector pos, int flags=ParticlePropertiesFlags.NONE, Object parent=null, vector ori=vector.Zero, Class owner=null)
Master create function.
proto int GetCountID()
Gets the ID for the ParticleManager.
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.
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.
array< ParticleSource > CreateParticlesByIdArr(int id, notnull ParticlePropertiesArray properties, int count)
QoL function using script ParticleList, strongly recommend to read comments for CreateParticles as we...
proto string GetDebugNameNative()
Gets the debug name for the ParticleManager.
ParticleSource PlayInWorld(int particle_id, vector global_pos)
Creates a particle emitter on the given position and activates it.
proto native ParticleSource GetParticle(int index)
Manually get the particle at index.
void ~ParticleManager()
dtor
int CreateParticlesById(int id, notnull ParticlePropertiesArray properties, int count)
QoL function using script ParticleList, strongly recommend to read comments for CreateParticles as we...
proto native int GetAllocatedCount()
Gets the amount of particles currently allocated.
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
ParticleSource CreateParticleById(int id, ParticleProperties properties)
QoL function for when only one particle is needed using script ParticleList, strongly recommend to re...
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.
ParticleManagerSettingsFlags
Flags for ParticleManagerSettings.
@ REUSE_OWNED
Reuse stopped particles even if they are owned by something.
@ DISABLE_VIRTUAL
Disable the creation of virtual particles when the pool is still allocating.
@ BLOCKING
Allocation blocks the game until it is done.
@ FIXED_INDEX
Particles will be locked to the index and not reused.
proto native bool IsFinishedAllocating()
Checks if the ParticleManager has allocated all slots in the pool.
array< ParticleSource > PlayParticlesById(int id, array< vector > positions, int count)
QoL function using script ParticleList, strongly recommend to read comments for PlayParticles as well...
array< ParticleSource > GetParticlesEx(int startIndex, int count)
Manually get a portion of the particles in the pool.
ParticleSource CreateParticleByPath(string path, notnull ParticleProperties properties)
Create a particle.
class ParticleManagerEvents g_ParticleManager
Has a fixed pool of precreated and reserved particles.
proto native int CreateParticles(array< ParticleSource > particles, string path, notnull ParticlePropertiesArray properties, int count=1)
Creates an amount of particles with the properties given.
void ~ParticleManagerSettings()
dtor