Namespace WoWLib.Formats.M2.Root.Record
Classes
- FBlockC2Vector
The header-less 'fake' animation block: sequence-independent u16 timestamps plus keys (WotLK+ particle ramps).
- FBlockC3Vector
The header-less 'fake' animation block: sequence-independent u16 timestamps plus keys (WotLK+ particle ramps).
- FBlockFixed16
The header-less 'fake' animation block: sequence-independent u16 timestamps plus keys (WotLK+ particle ramps).
- FBlockUInt16
The header-less 'fake' animation block: sequence-independent u16 timestamps plus keys (WotLK+ particle ramps).
- M2Attachment
One attachment point. Abstract over the client version; construct a concrete version with M2Attachment.ForVersion / for_version.
- M2Attachment.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2AttachmentVanillaToTbc
An attachment point (weapons, effects, name plates), relative to a bone.
- M2AttachmentWotlkPlus
An attachment point (weapons, effects, name plates), relative to a bone.
- M2Bounds
A bounding volume: axis-aligned extent plus sphere radius.
- M2Box
A model-space box: minimum and maximum corner vectors.
- M2Camera
One model camera. Abstract over the client version; construct a concrete version with M2Camera.ForVersion / for_version.
- M2Camera.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2CameraCataPlus
A camera (Cata+): the FOV becomes a spline track at the record tail.
- M2CameraVanillaToTbc
A camera, pre-Cata layout: a static diagonal FOV plus position/target/roll spline tracks.
- M2CameraWotlk
A camera, pre-Cata layout: a static diagonal FOV plus position/target/roll spline tracks.
- M2Color
One color + alpha animation pair. Abstract over the client version; construct a concrete version with M2Color.ForVersion / for_version.
- M2Color.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2ColorVanillaToTbc
A vertex color + alpha animation pair, referenced from skin batches by color index.
- M2ColorWotlkPlus
A vertex color + alpha animation pair, referenced from skin batches by color index.
- M2CompBone
One skeleton bone. Abstract over the client version; construct a concrete version with M2CompBone.ForVersion / for_version.
- M2CompBone.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2CompBoneTbc
A bone (TBC+): compressed-quaternion rotations plus the debug name CRC; the track era inside follows the entity version.
- M2CompBoneVanilla
A bone, vanilla layout: raw-quaternion rotations, no name CRC.
- M2CompBoneWotlkPlus
A bone (TBC+): compressed-quaternion rotations plus the debug name CRC; the track era inside follows the entity version.
- M2Event
One timed event. Abstract over the client version; construct a concrete version with M2Event.ForVersion / for_version.
- M2Event.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2EventTrack
A timestamp-only event track (every key fires). Abstract over the client version; construct a concrete version with M2EventTrack.ForVersion / for_version.
- M2EventTrack.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2EventTrackVanillaToTbc
A timestamp-only event track, pre-WotLK layout (every key fires).
- M2EventTrackWotlkPlus
A timestamp-only event track, WotLK+ layout (every key fires).
- M2EventVanillaToTbc
A timed event ($DTH death thud, footsteps, sounds); every enabled-track key fires.
- M2EventWotlkPlus
A timed event ($DTH death thud, footsteps, sounds); every enabled-track key fires.
- M2Light
One placed light. Abstract over the client version; construct a concrete version with M2Light.ForVersion / for_version.
- M2Light.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2LightVanillaToTbc
A model light: type 0 directional (login screens only), 1 point.
- M2LightWotlkPlus
A model light: type 0 directional (login screens only), 1 point.
- M2Loop
A global-loop entry: the timestamp a global sequence wraps at.
- M2Material
An M2 material: render flags (see MaterialFlags) and the blending mode (see M2/Rendering M2BLEND).
- M2PartTrackFixed16
A partial track: normalized fixed16 times plus values (Legion+ EXP2 alpha cutoffs).
- M2Particle
One particle emitter. Abstract over the client version; construct a concrete version with M2Particle.ForVersion / for_version.
- M2Particle.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2ParticleCataPlus
A particle emitter (Cata+, 492 bytes): multi-textured — packed texture ids, multiTexScale, trailing scroll parameters.
- M2ParticleTbc
A particle emitter, TBC layout: byte-packed blending/emitter beside the ParticleColor.dbc index; ramps still static.
- M2ParticleVanilla
A particle emitter, vanilla layout: wide u16 blending/emitter header, static color/scale/UV ramps, a single spin value.
- M2ParticleWotlk
A particle emitter, WotLK-era layout (476 bytes): FBlock ramps, lifespan/emission variation, four spin fields.
- M2Range
An inclusive u32 range: pre-WotLK track interpolation ranges, sequence replay bounds.
- M2Ribbon
One ribbon emitter. Abstract over the client version; construct a concrete version with M2Ribbon.ForVersion / for_version.
- M2Ribbon.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2RibbonVanillaToTbc
A ribbon (trail) emitter; the priority/color-index tail exists WotLK+.
- M2RibbonWotlkPlus
A ribbon (trail) emitter; the priority/color-index tail exists WotLK+.
- M2Sequence
One animation sequence entry. Abstract over the client version; construct a concrete version with M2Sequence.ForVersion / for_version.
- M2Sequence.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2SequenceFallback
A pre-WotLK playable-animation fallback: the substitute animation id plus how to play it (0 normal, 1 backwards, 2 frame-by-frame, 3 freeze).
- M2SequenceVanillaToTbc
An animation sequence, pre-WotLK layout: global start/end timestamps, one u32 blend time.
- M2SequenceWodPlus
An animation sequence, WoD+ layout: an own duration, split blend-in/out times.
- M2SequenceWotlkToMop
An animation sequence, WotLK through MoP layout: an own duration, one u32 blend time.
- M2SplineKeyC3Vector
A spline keyframe: the value plus incoming/outgoing tangents (bezier/hermite camera tracks).
- M2SplineKeyFloat
A spline keyframe: the value plus incoming/outgoing tangents (bezier/hermite camera tracks).
- M2Texture
A texture definition: type 0 references the filename (TXID FileDataIDs replace it in 8.0+); non-zero types are runtime component slots (skin, hair, monster skins, ...).
- M2TextureFlipbook
One texture flipbook animation. Abstract over the client version; construct a concrete version with M2TextureFlipbook.ForVersion / for_version.
- M2TextureFlipbook.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TextureFlipbookVanillaToTbc
A pre-WotLK texture flipbook slot; never observed engaged in files.
- M2TextureFlipbookWotlkPlus
A pre-WotLK texture flipbook slot; never observed engaged in files.
- M2TextureTransform
One texture UV transform animation. Abstract over the client version; construct a concrete version with M2TextureTransform.ForVersion / for_version.
- M2TextureTransform.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TextureTransformVanillaToTbc
A UV animation: translation/rotation/scaling keyframes for the texture matrix (rotation pivots at texture center 0.5, 0.5).
- M2TextureTransformWotlkPlus
A UV animation: translation/rotation/scaling keyframes for the texture matrix (rotation pivots at texture center 0.5, 0.5).
- M2TextureWeight
One texture weight (transparency) track. Abstract over the client version; construct a concrete version with M2TextureWeight.ForVersion / for_version.
- M2TextureWeight.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TextureWeightVanillaToTbc
A global texture weight (transparency) track.
- M2TextureWeightWotlkPlus
A global texture weight (transparency) track.
- M2TrackC3Vector
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackC3Vector.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackC3VectorVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackC3VectorWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackC4Quaternion
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackC4Quaternion.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackC4QuaternionVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackC4QuaternionWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackCompQuat
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackCompQuat.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackCompQuatVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackCompQuatWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackFixed16
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackFixed16.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackFixed16VanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackFixed16WotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackFloat
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackFloat.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackFloatVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackFloatWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackSplineC3Vector
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackSplineC3Vector.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackSplineC3VectorVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackSplineC3VectorWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackSplineFloat
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackSplineFloat.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackSplineFloatVanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackSplineFloatWotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackUInt16
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackUInt16.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackUInt16VanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackUInt16WotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2TrackUInt8
An animation track family for one value type, abstract over the client version; the per-version classes are subclasses.
- M2TrackUInt8.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2TrackUInt8VanillaToTbc
An animation track, pre-WotLK layout: one global timeline with per-sequence interpolation ranges.
- M2TrackUInt8WotlkPlus
An animation track, WotLK+ layout: one timestamp/value array per sequence; an external sequence keeps its arrays in the .anim file.
- M2Vec2Fp69
A 2D vector of 6.9 fixed-point values (raw u16 storage).
- M2Vertex
An M2 vertex: position, 4-bone weights/indices, normal and two texture coordinate sets.
Structs
- M2Bounds.Data
A blittable value twin of the NATIVE layout (size 28): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2Box.Data
A blittable value twin of the NATIVE layout (size 24): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2CompQuat.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2Loop.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2Material.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2Range.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SequenceFallback.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SequenceVanillaToTbc.Data
A blittable value twin of the NATIVE layout (size 68): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SequenceWodPlus.Data
A blittable value twin of the NATIVE layout (size 64): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SequenceWotlkToMop.Data
A blittable value twin of the NATIVE layout (size 64): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SplineKeyC3Vector.Data
A blittable value twin of the NATIVE layout (size 36): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2SplineKeyFloat.Data
A blittable value twin of the NATIVE layout (size 12): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- M2Vec2Fp69.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
Interfaces
- IAnimTimeline
Era-resolved construction for the M2TrackC3Vector family (the C# for_version): the dynamic ForVersion pair where a common welded base exists, and the nested Era factory mapping each expansion to its covering range class at compile time.
Enums
- BoneFlags
M2CompBone flags: parent-transform exemptions, billboarding and physics participation.
- MaterialFlags
M2Material render flags.
- SequenceFlags
M2Sequence flags — the 0x20/0x40/0x130 combination decides where the sequence's track data lives (.m2 vs .anim file).