Table of Contents

Class M2ParticleCataPlus

Namespace
WoWLib.Formats.M2.Root.Record
Assembly
WoWLib.dll

A particle emitter (Cata+, 492 bytes): multi-textured — packed texture ids, multiTexScale, trailing scroll parameters.

public class M2ParticleCataPlus : M2Particle, IDisposable
Inheritance
M2ParticleCataPlus
Implements
Inherited Members

Constructors

M2ParticleCataPlus()

public M2ParticleCataPlus()

M2ParticleCataPlus(M2ParticleCataPlus)

Copy-construct: a deep copy of other (the C++ copy constructor).

public M2ParticleCataPlus(M2ParticleCataPlus other)

Parameters

other M2ParticleCataPlus

Properties

AlphaTrack

Opacity ramp: 0 transparent .. 0x7FFF opaque.

public FBlockFixed16 AlphaTrack { get; set; }

Property Value

FBlockFixed16

BaseSpin

Initial quad rotation.

public float BaseSpin { get; set; }

Property Value

float

BaseSpinVariation

Random variation of base_spin.

public float BaseSpinVariation { get; set; }

Property Value

float

BlendingType

Blend mode; see wowdev's blending-type table.

public byte BlendingType { get; set; }

Property Value

byte

BoneId

The bone the emitter attaches to.

public ushort BoneId { get; set; }

Property Value

ushort

ColorTrack

Usually 3 keys: start/middle/end.

public FBlockC3Vector ColorTrack { get; set; }

Property Value

FBlockC3Vector

Columns

Flipbook tiling.

public ushort Columns { get; set; }

Property Value

ushort

Drag

Speed is multiplied by exp(-drag * t).

public float Drag { get; set; }

Property Value

float

EmissionAreaLength

Plane: emission area length; sphere: min radius.

public M2TrackFloatWotlkPlus EmissionAreaLength { get; set; }

Property Value

M2TrackFloatWotlkPlus

EmissionAreaWidth

Plane: emission area width; sphere: max radius.

public M2TrackFloatWotlkPlus EmissionAreaWidth { get; set; }

Property Value

M2TrackFloatWotlkPlus

EmissionRate

Particles emitted per second.

public M2TrackFloatWotlkPlus EmissionRate { get; set; }

Property Value

M2TrackFloatWotlkPlus

EmissionRateVariation

  • emission_rate_variation * random(-1, 1), rerolled per update.
public float EmissionRateVariation { get; set; }

Property Value

float

EmissionSpeed

Base emission velocity.

public M2TrackFloatWotlkPlus EmissionSpeed { get; set; }

Property Value

M2TrackFloatWotlkPlus

EmitterType

1 plane, 2 sphere, 3 spline, 4 bone.

public byte EmitterType { get; set; }

Property Value

byte

EnabledIn

Bool track: emitter active.

public M2TrackUInt8WotlkPlus EnabledIn { get; set; }

Property Value

M2TrackUInt8WotlkPlus

Flags

See wowdev's particle flag table.

public uint Flags { get; set; }

Property Value

uint

FollowScale1

Fraction of emitter motion applied at follow_speed1.

public float FollowScale1 { get; set; }

Property Value

float

FollowScale2

Fraction of emitter motion applied at follow_speed2.

public float FollowScale2 { get; set; }

Property Value

float

FollowSpeed1

Emitter-follow ramp: at this emitter speed particles follow by follow_scale1.

public float FollowSpeed1 { get; set; }

Property Value

float

FollowSpeed2

Second point of the emitter-follow ramp.

public float FollowSpeed2 { get; set; }

Property Value

float

GeometryModelFilename

Spawns model particles when set.

public string GeometryModelFilename { get; set; }

Property Value

string

Gravity

Gravity; a compressed direction vector under the CompressedGravity flag.

public M2TrackFloatWotlkPlus Gravity { get; set; }

Property Value

M2TrackFloatWotlkPlus

HeadUvAnim

Head flipbook cell ramp.

public FBlockUInt16 HeadUvAnim { get; set; }

Property Value

FBlockUInt16

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

M2TrackFloatWotlkPlus

InheritVelocityScale

Scales velocity inherited from the parent particle.

public float InheritVelocityScale { get; set; }

Property Value

float

Lifespan

Seconds each particle stays alive.

public M2TrackFloatWotlkPlus Lifespan { get; set; }

Property Value

M2TrackFloatWotlkPlus

LifespanVariation

  • lifespan_variation * random(-1, 1).
public float LifespanVariation { get; set; }

Property Value

float

MultiTexScale

2.5 fixed-point per extra layer.

public FixedArray<sbyte> MultiTexScale { get; set; }

Property Value

FixedArray<sbyte>

MultiTexScrollMid

Per extra layer.

public FixedArray<M2Vec2Fp69> MultiTexScrollMid { get; set; }

Property Value

FixedArray<M2Vec2Fp69>

MultiTexScrollRange

Per extra layer.

public FixedArray<M2Vec2Fp69> MultiTexScrollRange { get; set; }

Property Value

FixedArray<M2Vec2Fp69>

ParticleColorIndex

ParticleColor.dbc row selector (0/11/12/13).

public ushort ParticleColorIndex { get; set; }

Property Value

ushort

ParticleId

Always -1 in known files.

public uint ParticleId { get; set; }

Property Value

uint

Position

Relative to the bone.

public C3Vector Position { get; set; }

Property Value

C3Vector

PriorityPlane

Render priority plane.

public short PriorityPlane { get; set; }

Property Value

short

RecursionModelFilename

Child emitters come from this model.

public string RecursionModelFilename { get; set; }

Property Value

string

Rows

Flipbook tiling.

public ushort Rows { get; set; }

Property Value

ushort

ScaleTrack

Particle size ramp.

public FBlockC2Vector ScaleTrack { get; set; }

Property Value

FBlockC2Vector

ScaleVary

Random per-particle scale variation.

public C2Vector ScaleVary { get; set; }

Property Value

C2Vector

SpeedVariation

Random emission-speed variation (0..1).

public M2TrackFloatWotlkPlus SpeedVariation { get; set; }

Property Value

M2TrackFloatWotlkPlus

SpinSpeed

Quad rotation per second.

public float SpinSpeed { get; set; }

Property Value

float

SpinSpeedVariation

Random variation of spin_speed.

public float SpinSpeedVariation { get; set; }

Property Value

float

SplinePoints

Spline emitter path.

public Vector<C3Vector> SplinePoints { get; set; }

Property Value

Vector<C3Vector>

TailLength

Multiplier to the computed tail length.

public float TailLength { get; set; }

Property Value

float

TailUvAnim

Tail flipbook cell ramp.

public FBlockUInt16 TailUvAnim { get; set; }

Property Value

FBlockUInt16

TextureId

3x5-bit texture ids under the MultiTexture flag.

public ushort TextureId { get; set; }

Property Value

ushort

Tumble

Angular velocity bounds (model particles).

public M2Box Tumble { get; set; }

Property Value

M2Box

TwinklePercent

Fraction of the time visible (1.0 = always).

public float TwinklePercent { get; set; }

Property Value

float

TwinkleScale

Min/max random scale variation.

public CRange TwinkleScale { get; set; }

Property Value

CRange

TwinkleSpeed

Blinking speed.

public float TwinkleSpeed { get; set; }

Property Value

float

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

M2TrackFloatWotlkPlus

WindTime

Undocumented; paired with the static wind vector.

public float WindTime { get; set; }

Property Value

float

WindVector

Static wind, unless DynamicWind flag.

public C3Vector WindVector { get; set; }

Property Value

C3Vector

ZSource

If > 0, initial velocity points from (0, 0, z_source) to the spawn point.

public M2TrackFloatWotlkPlus ZSource { get; set; }

Property Value

M2TrackFloatWotlkPlus

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 ==(M2ParticleCataPlus?, M2ParticleCataPlus?)

public static bool operator ==(M2ParticleCataPlus? l, M2ParticleCataPlus? r)

Parameters

l M2ParticleCataPlus
r M2ParticleCataPlus

Returns

bool

operator !=(M2ParticleCataPlus?, M2ParticleCataPlus?)

public static bool operator !=(M2ParticleCataPlus? l, M2ParticleCataPlus? r)

Parameters

l M2ParticleCataPlus
r M2ParticleCataPlus

Returns

bool