Namespace WoWLib.Formats.M2
Classes
- M2
A whole model, abstract over the client version — the MD20 body with its satellite files (.skin, .anim) baked in. Construct the concrete version with M2.for_version(expansion), then read()/write(); the per-version M2* classes are subclasses. See https://wowdev.wiki/M2.
- M2.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- M2Bfa
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2CataToMop
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Dragonflight
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Legion
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Shadowlands
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Tbc
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2TheWarWithin
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Vanilla
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Wod
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- M2Wotlk
A whole model for one client version: the MD20 body with skins and external sequence data baked in. A written model is canonical-layout and re-reads equal (no byte-perfect guarantee for offset formats). See https://wowdev.wiki/M2.
- SkelAttachments
Era-resolved construction for the SkelAttachments 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.
- SkelAttachments.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- SkelAttachmentsLegionPlus
The SKA1 payload: the attachments that moved out of the model (external sequences' track data lives in the .anim AFSA chunks).
- SkelBones
Era-resolved construction for the SkelBones 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.
- SkelBones.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- SkelBonesLegionPlus
The SKB1 payload: the bones that moved out of the model (external sequences' track data lives in the .anim AFSB chunks).
- SkelHeader
Era-resolved construction for the SkelHeader 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.
- SkelHeader.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- SkelHeaderLegionPlus
The SKL1 payload: the skeleton's identity.
- SkelParentData
The SKPD parent-skeleton link: the parent .skel FileDataID whose AFID/BFID satellite files this skeleton shares.
- SkelSequences
Era-resolved construction for the SkelSequences 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.
- SkelSequences.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- SkelSequencesLegionPlus
The SKS1 payload: the sequence set that moved out of the model.
- Skeleton
A shared model skeleton (.skel, Legion 7.3+), abstract over the client version. Construct a concrete version with Skeleton.for_version(expansion); the per-version Skeleton* classes are subclasses. See https://wowdev.wiki/M2/.skel.
- Skeleton.Era
The typed era factories: one method per expansion, each returning the concrete range class covering it — the compile-time twin of ForVersion.
- SkeletonLegionPlus
A shared model skeleton (.skel, Legion 7.3+): bones, attachments and sequences for skel-based models, shareable between models via the parent link. See https://wowdev.wiki/M2/.skel.
Structs
- SkelParentData.Data
A blittable value twin of the NATIVE layout (size 16): 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.