public static SpeedParams ReadWaypointSpeedParams(this LittleEndianReader reader) { var data = new SpeedParams(); data.PathSpeedOverride = reader.ReadFloat(); data.ParabolicGravity = reader.ReadFloat(); data.ParabolicStartPoint = Extensions.DeserializeVector2(reader); data.Facing = reader.ReadBool(); data.FollowNetID = reader.ReadUInt(); data.FollowDistance = reader.ReadFloat(); data.FollowBackDistance = reader.ReadFloat(); data.FollowTravelTime = reader.ReadFloat(); return(data); }
public static void WriteWaypointSpeedParams(this LittleEndianWriter writer, SpeedParams data) { if (data == null) { data = new SpeedParams(); } writer.WriteFloat(data.PathSpeedOverride); writer.WriteFloat(data.ParabolicGravity); data.ParabolicStartPoint.Serialize(writer); writer.WriteBool(data.Facing); writer.WriteUInt(data.FollowNetID); writer.WriteFloat(data.FollowDistance); writer.WriteFloat(data.FollowBackDistance); writer.WriteFloat(data.FollowTravelTime); }
public MovementDataWithSpeed(LittleEndianReader reader) { byte bitfield = reader.ReadByte(); byte size = (byte)(bitfield >> 1); HasTeleportID = (bitfield & 1) != 0; if (size >= 2) { TeleportNetID = reader.ReadUInt(); if (HasTeleportID) { TeleportID = reader.ReadByte(); } SpeedParams = reader.ReadWaypointSpeedParams(); Waypoints = reader.ReadCompressedWaypoints(size / 2u); } }