public override void Write <TItem>(TItem obj, BinaryWriter writer, HashWriter hashWriter) { if (obj is PrimitiveData primitiveData) { if (!primitiveData.Use3DMesh) { // don't write animation if not using 3d mesh return; } for (var i = 0; i < primitiveData.Mesh.AnimationFrames.Count; i++) { var animationData = SerializeAnimation(primitiveData.Mesh.AnimationFrames[i]); var data = IsCompressed ? BiffZlib.Compress(animationData) : animationData; WriteStart(writer, 4, hashWriter, "M3AY"); writer.Write(data.Length); WriteStart(writer, data.Length, hashWriter); writer.Write(data); hashWriter?.Write(data); } } else { throw new InvalidOperationException("Unknown type for [" + GetType().Name + "] on field \"" + Name + "\"."); } }
public override void Write <TItem>(TItem obj, BinaryWriter writer, HashWriter hashWriter) { if (obj is PrimitiveData primitiveData) { if (!primitiveData.Use3DMesh) { return; } var indexData = SerializeIndices(primitiveData); var data = IsCompressed ? BiffZlib.Compress(indexData) : indexData; WriteStart(writer, data.Length, hashWriter); writer.Write(data); hashWriter?.Write(data); } else { throw new InvalidOperationException("Unknown type for [" + GetType().Name + "] on field \"" + Name + "\"."); } }