113 int flags = ParticlePropertiesFlags.NONE;
117 flags = flags | ParticlePropertiesFlags.PLAY_ON_CREATION;
120 if (forceWorldRotation)
122 flags = flags | ParticlePropertiesFlags.FORCE_WORLD_ROT;
141 if (particlePath ==
"")
143 ErrorEx(
string.Format(
"Could not create ParticleSource as particle id %1 is invalid.",
id));
147 ParticleProperties props =
new ParticleProperties(pos, flags, parent, ori, owner);
164 vector local_pos =
"0 0 0",
165 vector local_ori =
"0 0 0",
166 bool force_world_rotation =
false )
286 if (tempArr.Count() > 0)
329 if (tempArr.Count() > 0)
370 if (tempArr.Count() > 0)
539 GetEvents().Event_OnAllocation.Invoke(
this, allocatedParticles);
544 GetEvents().Event_OnAllocationEnd.Invoke(
this);
static AnimSoundObjectBuilderBank GetInstance()
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.
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...
override string GetDebugName()
Gets the debug name for the ParticleManager.
proto static native int GetStaticActiveCount()
Gets the amount of ParticleManager that are currently existing.
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.
private proto Managed GetScriptEvents()
Get the events.
proto int GetCountID()
Gets the ID for the ParticleManager.
static void CleanupInstance()
To clean it up properly before game closes.
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.
void OnAllocation(array< ParticleSource > allocatedParticles)
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.
private proto void SetScriptEvents(Managed events)
Set the events.
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.
proto static native int GetStaticCount()
Gets the amount of ParticleManager that have been created since the start of the program.
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
Super root of all classes in Enforce script.
static string GetParticleFullPath(int particle_id)
Returns particle's full path (with .ptc suffix) based on its ID.
Class simply to have easily modded constants.
static const int POOL_SIZE
Invokers for ParticleManager events.
ref ScriptInvoker Event_OnAllocationEnd
ref ScriptInvoker Event_OnAllocation
Entity which has the particle instance as an ObjectComponent.
ScriptInvoker Class provide list of callbacks usage:
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
static proto native Shape Create(ShapeType type, int color, ShapeFlags flags, vector p1, vector p2)