public static IEnumerable <PKM> GetCompatible(this SaveFile sav, IEnumerable <PKM> pks) { var savtype = sav.PKMType; foreach (var temp in pks) { var pk = EntityConverter.ConvertToType(temp, savtype, out var c); if (pk == null) { Debug.WriteLine(c.GetDisplayString(temp, savtype)); continue; } if (sav is ILangDeviantSave il && EntityConverter.IsIncompatibleGB(temp, il.Japanese, pk.Japanese)) { var str = EntityConverterResult.IncompatibleLanguageGB.GetIncompatibleGBMessage(pk, il.Japanese); Debug.WriteLine(str); continue; } var compat = sav.EvaluateCompatibility(pk); if (compat.Count > 0) { continue; } yield return(pk); } }
/// <summary> /// Checks a <see cref="PKM"/> file for compatibility to the <see cref="SaveFile"/>. /// </summary> /// <param name="sav"><see cref="SaveFile"/> that is being checked.</param> /// <param name="pk"><see cref="PKM"/> that is being tested for compatibility.</param> public static bool IsCompatiblePKM(this SaveFile sav, PKM pk) { if (sav.PKMType != pk.GetType()) { return(false); } if (sav is ILangDeviantSave il && EntityConverter.IsIncompatibleGB(pk, il.Japanese, pk.Japanese)) { return(false); } return(true); }