示例#1
0
        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);
        }
示例#2
0
 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);
 }
示例#3
0
        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);
            }
        }