Class WDTParticulates
A _mpv.wdt particulate-volume satellite (BfA 8.0.1+), abstract over the client version: weather particulate volumes in repeated PVMI/PVPD/PVBD groups. Construct a concrete version with WDTParticulates.for_version(expansion). See https://wowdev.wiki/WDT.
public class WDTParticulates : IDisposable
- Inheritance
-
WDTParticulates
- Implements
- Derived
- Inherited Members
Constructors
WDTParticulates()
public WDTParticulates()
WDTParticulates(WDTParticulates)
Copy-construct: a deep copy of other (the C++ copy constructor).
public WDTParticulates(WDTParticulates other)
Parameters
otherWDTParticulates
Properties
BoundGroups
One PVBD bounds array per volume group; reading a PVBD finalizes the group.
public Vector<Vector<ParticulateBounds>> BoundGroups { get; }
Property Value
Mver
The _mpv format version, 1 to 4; the PVMI record size is keyed on it (0xF5C / 0xFE8 / 0x10D8).
public uint Mver { get; set; }
Property Value
PointGroups
One PVPD point array per volume group.
public Vector<Vector<ParticulatePoint>> PointGroups { get; }
Property Value
VolumeData
One PVMI payload per volume group. The record layout is keyed on the file's own version payload, not the client build, so it is kept opaque.
public Vector<ChunkBlob> VolumeData { 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 virtual void Dispose()
EnsureValid()
Validate and raise on the first error instead of returning a report — the assert-style face of validate().
public void EnsureValid()
ForVersion(ClientVersion)
A fresh WDTParticulates for an exact client version — the only axis that can name a Classic client, whose files follow the engine its build was cut on rather than its 1.15 / 4.4 version number.
public static WDTParticulates ForVersion(ClientVersion version)
Parameters
versionClientVersion
Returns
ForVersion(Expansion)
A fresh WDTParticulates for the given era, as the family base — the dynamic twin of the typed Era factories.
public static WDTParticulates ForVersion(Expansion era)
Parameters
eraExpansion
Returns
Read(byte[])
Deserialize file bytes into this entity, replacing its contents. Unmodeled chunks are preserved so an unmodified entity rewrites byte-for-byte.
public void Read(byte[] data)
Parameters
databyte[]
Validate()
Check the logical integrity contracts this file must satisfy to LOAD in the client — companion-chunk counts, index ranges, flag/presence coherence — which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.
public ValidationReport Validate()
Returns
Write()
Serialize this entity.
public byte[] Write()
Returns
- byte[]