Class M2ParticleWotlk
A particle emitter, WotLK-era layout (476 bytes): FBlock ramps, lifespan/emission variation, four spin fields.
public class M2ParticleWotlk : M2Particle, IDisposable
- Inheritance
-
M2ParticleWotlk
- Implements
- Inherited Members
Constructors
M2ParticleWotlk()
public M2ParticleWotlk()
M2ParticleWotlk(M2ParticleWotlk)
Copy-construct: a deep copy of other (the C++ copy constructor).
public M2ParticleWotlk(M2ParticleWotlk other)
Parameters
otherM2ParticleWotlk
Properties
AlphaTrack
Opacity ramp: 0 transparent .. 0x7FFF opaque.
public FBlockFixed16 AlphaTrack { get; set; }
Property Value
BaseSpin
Initial quad rotation.
public float BaseSpin { get; set; }
Property Value
BaseSpinVariation
Random variation of base_spin.
public float BaseSpinVariation { get; set; }
Property Value
BlendingType
Blend mode; see wowdev's blending-type table.
public byte BlendingType { get; set; }
Property Value
BoneId
The bone the emitter attaches to.
public ushort BoneId { get; set; }
Property Value
ColorTrack
Usually 3 keys: start/middle/end.
public FBlockC3Vector ColorTrack { 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 M2TrackFloatWotlkPlus EmissionAreaLength { get; set; }
Property Value
EmissionAreaWidth
Plane: emission area width; sphere: max radius.
public M2TrackFloatWotlkPlus EmissionAreaWidth { get; set; }
Property Value
EmissionRate
Particles emitted per second.
public M2TrackFloatWotlkPlus EmissionRate { get; set; }
Property Value
EmissionRateVariation
- emission_rate_variation * random(-1, 1), rerolled per update.
public float EmissionRateVariation { get; set; }
Property Value
EmissionSpeed
Base emission velocity.
public M2TrackFloatWotlkPlus EmissionSpeed { get; set; }
Property Value
EmitterType
1 plane, 2 sphere, 3 spline, 4 bone.
public byte EmitterType { get; set; }
Property Value
EnabledIn
Bool track: emitter active.
public M2TrackUInt8WotlkPlus 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 M2TrackFloatWotlkPlus Gravity { get; set; }
Property Value
HeadOrTail
0 head, 1 tail, 2 both.
public byte HeadOrTail { get; set; }
Property Value
HeadUvAnim
Head flipbook cell ramp.
public FBlockUInt16 HeadUvAnim { get; set; }
Property Value
HorizontalRange
Max azimuth angle (0..2*pi): of the initial velocity for plane, of the position for sphere emitters.
public M2TrackFloatWotlkPlus 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 M2TrackFloatWotlkPlus Lifespan { get; set; }
Property Value
LifespanVariation
- lifespan_variation * random(-1, 1).
public float LifespanVariation { get; set; }
Property Value
ParticleColorIndex
ParticleColor.dbc row selector (0/11/12/13).
public ushort ParticleColorIndex { get; set; }
Property Value
ParticleId
Always -1 in known files.
public uint ParticleId { get; set; }
Property Value
ParticleType
Render type; in practice implied by flags and model.
public byte ParticleType { 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
ScaleTrack
Particle size ramp.
public FBlockC2Vector ScaleTrack { get; set; }
Property Value
ScaleVary
Random per-particle scale variation.
public C2Vector ScaleVary { get; set; }
Property Value
SpeedVariation
Random emission-speed variation (0..1).
public M2TrackFloatWotlkPlus SpeedVariation { get; set; }
Property Value
SpinSpeed
Quad rotation per second.
public float SpinSpeed { get; set; }
Property Value
SpinSpeedVariation
Random variation of spin_speed.
public float SpinSpeedVariation { 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
TailUvAnim
Tail flipbook cell ramp.
public FBlockUInt16 TailUvAnim { 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 M2TrackFloatWotlkPlus 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 M2TrackFloatWotlkPlus 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 override void Dispose()
Operators
operator ==(M2ParticleWotlk?, M2ParticleWotlk?)
public static bool operator ==(M2ParticleWotlk? l, M2ParticleWotlk? r)
Parameters
Returns
operator !=(M2ParticleWotlk?, M2ParticleWotlk?)
public static bool operator !=(M2ParticleWotlk? l, M2ParticleWotlk? r)