Table of Contents

Class M2ParticleVanilla

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

A particle emitter, vanilla layout: wide u16 blending/emitter header, static color/scale/UV ramps, a single spin value.

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

Constructors

M2ParticleVanilla()

public M2ParticleVanilla()

M2ParticleVanilla(M2ParticleVanilla)

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

public M2ParticleVanilla(M2ParticleVanilla other)

Parameters

other M2ParticleVanilla

Properties

BlendingType

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

public ushort BlendingType { get; set; }

Property Value

ushort

BoneId

The bone the emitter attaches to.

public ushort BoneId { get; set; }

Property Value

ushort

ColorValues

Start/middle/end BGRA multiply.

public FixedArray<CImVector> ColorValues { get; set; }

Property Value

FixedArray<CImVector>

Columns

Flipbook tiling.

public ushort Columns { get; set; }

Property Value

ushort

DecayUvAnim

Head flipbook cells, second half of life (start/middle/end).

public FixedArray<ushort> DecayUvAnim { get; set; }

Property Value

FixedArray<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 M2TrackFloatVanillaToTbc EmissionAreaLength { get; set; }

Property Value

M2TrackFloatVanillaToTbc

EmissionAreaWidth

Plane: emission area width; sphere: max radius.

public M2TrackFloatVanillaToTbc EmissionAreaWidth { get; set; }

Property Value

M2TrackFloatVanillaToTbc

EmissionRate

Particles emitted per second.

public M2TrackFloatVanillaToTbc EmissionRate { get; set; }

Property Value

M2TrackFloatVanillaToTbc

EmissionSpeed

Base emission velocity.

public M2TrackFloatVanillaToTbc EmissionSpeed { get; set; }

Property Value

M2TrackFloatVanillaToTbc

EmitterType

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

public ushort EmitterType { get; set; }

Property Value

ushort

EnabledIn

Bool track: emitter active.

public M2TrackUInt8VanillaToTbc EnabledIn { get; set; }

Property Value

M2TrackUInt8VanillaToTbc

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 M2TrackFloatVanillaToTbc Gravity { get; set; }

Property Value

M2TrackFloatVanillaToTbc

HeadOrTail

0 head, 1 tail, 2 both.

public byte HeadOrTail { get; set; }

Property Value

byte

HorizontalRange

Max azimuth angle (0..2*pi): of the initial velocity for plane, of the position for sphere emitters.

public M2TrackFloatVanillaToTbc HorizontalRange { get; set; }

Property Value

M2TrackFloatVanillaToTbc

InheritVelocityScale

Scales velocity inherited from the parent particle.

public float InheritVelocityScale { get; set; }

Property Value

float

Lifespan

Seconds each particle stays alive.

public M2TrackFloatVanillaToTbc Lifespan { get; set; }

Property Value

M2TrackFloatVanillaToTbc

LifespanUvAnim

Head flipbook cells, first half of life (start/middle/end).

public FixedArray<ushort> LifespanUvAnim { get; set; }

Property Value

FixedArray<ushort>

MidPoint

Parametric middle of the lifespan.

public float MidPoint { get; set; }

Property Value

float

ParticleId

Always -1 in known files.

public uint ParticleId { get; set; }

Property Value

uint

ParticleType

Render type; in practice implied by flags and model.

public byte ParticleType { get; set; }

Property Value

byte

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

ScaleValues

Start/middle/end scale.

public FixedArray<float> ScaleValues { get; set; }

Property Value

FixedArray<float>

SpeedVariation

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

public M2TrackFloatVanillaToTbc SpeedVariation { get; set; }

Property Value

M2TrackFloatVanillaToTbc

Spin

1.0 = one full turn over the lifetime.

public float Spin { get; set; }

Property Value

float

SplinePoints

Spline emitter path.

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

Property Value

Vector<C3Vector>

TailDecayUvAnim

Tail flipbook cells, second half of life (start/end).

public FixedArray<short> TailDecayUvAnim { get; set; }

Property Value

FixedArray<short>

TailLength

Multiplier to the computed tail length.

public float TailLength { get; set; }

Property Value

float

TailUvAnim

Tail flipbook cells, first half of life (start/end).

public FixedArray<short> TailUvAnim { get; set; }

Property Value

FixedArray<short>

TextureId

Into the model's textures.

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 M2TrackFloatVanillaToTbc VerticalRange { get; set; }

Property Value

M2TrackFloatVanillaToTbc

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 M2TrackFloatVanillaToTbc ZSource { get; set; }

Property Value

M2TrackFloatVanillaToTbc

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

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

Parameters

l M2ParticleVanilla
r M2ParticleVanilla

Returns

bool

operator !=(M2ParticleVanilla?, M2ParticleVanilla?)

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

Parameters

l M2ParticleVanilla
r M2ParticleVanilla

Returns

bool