mirror of
https://github.com/ACEmulator/ACE
synced 2026-08-17 12:26:06 -04:00
* Improving DatLoader for third-party apps * Adding some missing filetypes (thanks OptimShi!) * Adding more enums, using SmartArray * Re-adding loadCell * Reverting to UInt32
33 lines
1,000 B
C#
33 lines
1,000 B
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Numerics;
|
|
|
|
using ACE.Entity.Enum;
|
|
|
|
namespace ACE.DatLoader.Entity
|
|
{
|
|
public class MotionData : IUnpackable
|
|
{
|
|
public byte Bitfield { get; private set; }
|
|
public MotionDataFlags Flags { get; private set; }
|
|
public List<AnimData> Anims { get; } = new List<AnimData>();
|
|
public Vector3 Velocity { get; private set; }
|
|
public Vector3 Omega { get; private set; }
|
|
|
|
public void Unpack(BinaryReader reader)
|
|
{
|
|
var numAnims = reader.ReadByte();
|
|
Bitfield = reader.ReadByte();
|
|
Flags = (MotionDataFlags)reader.ReadByte();
|
|
reader.AlignBoundary();
|
|
|
|
Anims.Unpack(reader, numAnims);
|
|
|
|
if ((Flags & MotionDataFlags.HasVelocity) != 0)
|
|
Velocity = reader.ReadVector3();
|
|
|
|
if ((Flags & MotionDataFlags.HasOmega) != 0)
|
|
Omega = reader.ReadVector3();
|
|
}
|
|
}
|
|
}
|