public static void WriteMovementDriverHomingData(this PacketWriter writer, MovementDriverHomingData data)
 {
     writer.WriteNetID(data.TargetNetID);
     writer.WriteFloat(data.TargetHeightModifier);
     writer.WriteVector3(data.TargetPosition);
     writer.WriteFloat(data.Speed);
     writer.WriteFloat(data.Gravity);
     writer.WriteFloat(data.RateOfTurn);
     writer.WriteFloat(data.Duration);
     writer.WriteUInt32(data.MovementPropertyFlags);
 }
        public static MovementDriverHomingData ReadMovementDriverHomingData(this PacketReader reader)
        {
            var data = new MovementDriverHomingData();

            data.TargetNetID          = reader.ReadNetID();
            data.TargetHeightModifier = reader.ReadFloat();
            data.TargetPosition       = reader.ReadVector3();
            data.Speed                 = reader.ReadFloat();
            data.Gravity               = reader.ReadFloat();
            data.RateOfTurn            = reader.ReadFloat();
            data.Duration              = reader.ReadFloat();
            data.MovementPropertyFlags = reader.ReadUInt32();
            return(data);
        }