using System; namespace PKHeX.Core; /// /// Group that checks the source of a move in the games that it represents. /// public interface ILearnGroup { /// /// Gets the next group to traverse to continue checking moves. /// ILearnGroup? GetPrevious(PKM pk, EvolutionHistory history, IEncounterTemplate enc, LearnOption option); /// /// Checks if it is plausible that the has visited this game group. /// bool HasVisited(PKM pk, EvolutionHistory history); bool Check(Span result, ReadOnlySpan current, PKM pk, EvolutionHistory history, IEncounterTemplate enc, MoveSourceType types = MoveSourceType.All, LearnOption option = LearnOption.Current); void GetAllMoves(Span result, PKM pk, EvolutionHistory history, IEncounterTemplate enc, MoveSourceType types = MoveSourceType.All, LearnOption option = LearnOption.Current); }