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);
}