Class M2Particle
One particle emitter. Abstract over the client version; construct a concrete version with M2Particle.ForVersion / for_version.
public class M2Particle : IDisposable
- Inheritance
-
M2Particle
- Implements
- Derived
- Inherited Members
Constructors
M2Particle()
public M2Particle()
M2Particle(M2Particle)
Copy-construct: a deep copy of other (the C++ copy constructor).
public M2Particle(M2Particle other)
Parameters
otherM2Particle
Properties
BoneId
The bone the emitter attaches to.
public ushort BoneId { get; set; }
Property Value
Columns
Flipbook tiling.
public ushort Columns { get; set; }
Property Value
Drag
Speed is multiplied by exp(-drag * t).
public float Drag { get; set; }
Property Value
EmissionAreaLength
Plane: emission area length; sphere: min radius.
public M2TrackFloat EmissionAreaLength { get; set; }
Property Value
EmissionAreaWidth
Plane: emission area width; sphere: max radius.
public M2TrackFloat EmissionAreaWidth { get; set; }
Property Value
EmissionRate
Particles emitted per second.
public M2TrackFloat EmissionRate { get; set; }
Property Value
EmissionSpeed
Base emission velocity.
public M2TrackFloat EmissionSpeed { get; set; }
Property Value
EnabledIn
Bool track: emitter active.
public M2TrackUInt8 EnabledIn { get; set; }
Property Value
Flags
See wowdev's particle flag table.
public uint Flags { get; set; }
Property Value
FollowScale1
Fraction of emitter motion applied at follow_speed1.
public float FollowScale1 { get; set; }
Property Value
FollowScale2
Fraction of emitter motion applied at follow_speed2.
public float FollowScale2 { get; set; }
Property Value
FollowSpeed1
Emitter-follow ramp: at this emitter speed particles follow by follow_scale1.
public float FollowSpeed1 { get; set; }
Property Value
FollowSpeed2
Second point of the emitter-follow ramp.
public float FollowSpeed2 { get; set; }
Property Value
GeometryModelFilename
Spawns model particles when set.
public string GeometryModelFilename { get; set; }
Property Value
Gravity
Gravity; a compressed direction vector under the CompressedGravity flag.
public M2TrackFloat Gravity { get; set; }
Property Value
HorizontalRange
Max azimuth angle (0..2*pi): of the initial velocity for plane, of the position for sphere emitters.
public M2TrackFloat HorizontalRange { get; set; }
Property Value
InheritVelocityScale
Scales velocity inherited from the parent particle.
public float InheritVelocityScale { get; set; }
Property Value
Lifespan
Seconds each particle stays alive.
public M2TrackFloat Lifespan { get; set; }
Property Value
ParticleId
Always -1 in known files.
public uint ParticleId { get; set; }
Property Value
Position
Relative to the bone.
public C3Vector Position { get; set; }
Property Value
PriorityPlane
Render priority plane.
public short PriorityPlane { get; set; }
Property Value
RecursionModelFilename
Child emitters come from this model.
public string RecursionModelFilename { get; set; }
Property Value
Rows
Flipbook tiling.
public ushort Rows { get; set; }
Property Value
SpeedVariation
Random emission-speed variation (0..1).
public M2TrackFloat SpeedVariation { get; set; }
Property Value
SplinePoints
Spline emitter path.
public Vector<C3Vector> SplinePoints { get; set; }
Property Value
TailLength
Multiplier to the computed tail length.
public float TailLength { get; set; }
Property Value
TextureId
Into the model's textures.
public ushort TextureId { get; set; }
Property Value
Tumble
Angular velocity bounds (model particles).
public M2Box Tumble { get; set; }
Property Value
TwinklePercent
Fraction of the time visible (1.0 = always).
public float TwinklePercent { get; set; }
Property Value
TwinkleScale
Min/max random scale variation.
public CRange TwinkleScale { get; set; }
Property Value
TwinkleSpeed
Blinking speed.
public float TwinkleSpeed { get; set; }
Property Value
VerticalRange
Max polar angle (0..pi): of the initial velocity for plane, of the position for sphere emitters.
public M2TrackFloat VerticalRange { get; set; }
Property Value
WindTime
Undocumented; paired with the static wind vector.
public float WindTime { get; set; }
Property Value
WindVector
Static wind, unless DynamicWind flag.
public C3Vector WindVector { get; set; }
Property Value
ZSource
If > 0, initial velocity points from (0, 0, z_source) to the spawn point.
public M2TrackFloat ZSource { get; set; }
Property Value
Methods
Dispose()
Release the native object now. Optional: the finalizer releases it on
collection anyway - dispose (or using) when you want native memory back
promptly.
public virtual void Dispose()
Equals(object?)
Determines whether the specified object is equal to the current object.
public override bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current object.
Returns
ForVersion(ClientVersion)
A fresh M2Particle for an exact client version — the only axis that can name a Classic client, whose files follow the engine its build was cut on rather than its 1.15 / 4.4 version number.
public static M2Particle ForVersion(ClientVersion version)
Parameters
versionClientVersion
Returns
ForVersion(Expansion)
A fresh M2Particle for the given era, as the family base — the dynamic twin of the typed Era factories.
public static M2Particle ForVersion(Expansion era)
Parameters
eraExpansion
Returns
GetHashCode()
Reference-identity hash (the C++ type has no hash to mirror).
public override int GetHashCode()
Returns
Operators
operator ==(M2Particle?, M2Particle?)
public static bool operator ==(M2Particle? l, M2Particle? r)
Parameters
lM2ParticlerM2Particle
Returns
operator !=(M2Particle?, M2Particle?)
public static bool operator !=(M2Particle? l, M2Particle? r)
Parameters
lM2ParticlerM2Particle