namespace PKHeX.Core; /// /// Exposes info about all contained in the object. /// public interface IPersonalTable { /// /// Max Species ID (National Dex) that is stored in the table. /// int MaxSpeciesID { get; } /// /// Gets an index from the inner array. /// /// Has built in length checks; returns empty (0) entry if out of range. /// Index to retrieve /// Requested index entry PersonalInfo this[int index] { get; } /// /// Alternate way of fetching . /// PersonalInfo this[ushort species, int form] { get; } /// /// Gets the entry index for a given and . /// /// /// /// Entry index for the input criteria int GetFormIndex(ushort species, int form); /// /// Gets the entry for a given and . /// /// /// /// Entry for the input criteria PersonalInfo GetFormEntry(ushort species, int form); /// /// Checks if the is within the bounds of the table. /// /// /// True if present in game bool IsSpeciesInGame(ushort species); /// /// Checks if the and is within the bounds of the table. /// /// /// /// True if present in game bool IsPresentInGame(ushort species, int form); } /// /// Generic interface for exposing specific retrieval methods. /// /// Specific type of the table contains. public interface IPersonalTable where T : IPersonalInfo { T this[int index] { get; } T this[ushort species, int form] { get; } T GetFormEntry(ushort species, int form); }