namespace PkmnLib.Static.Libraries;
///
/// The storage for all different static libraries.
///
public interface IStaticLibrary
{
///
/// The miscellaneous settings for the library.
///
LibrarySettings Settings { get; }
///
/// All data for Pokémon species.
///
IReadOnlySpeciesLibrary Species { get; }
///
/// All data for Pokémon moves.
///
IReadOnlyMoveLibrary Moves { get; }
///
/// All data for Pokémon abilities.
///
IReadOnlyAbilityLibrary Abilities { get; }
///
/// All data for Pokémon types and their effectiveness.
///
IReadOnlyTypeLibrary Types { get; }
///
/// All data for Pokémon natures.
///
IReadOnlyNatureLibrary Natures { get; }
///
/// All data for Pokémon growth rates.
///
IReadOnlyGrowthRateLibrary GrowthRates { get; }
///
/// All data for Pokémon items.
///
IReadOnlyItemLibrary Items { get; }
}
///
public class StaticLibraryImpl : IStaticLibrary
{
///
public StaticLibraryImpl(LibrarySettings settings, IReadOnlySpeciesLibrary species, IReadOnlyMoveLibrary moves, IReadOnlyAbilityLibrary abilities, IReadOnlyTypeLibrary types, IReadOnlyNatureLibrary natures, IReadOnlyGrowthRateLibrary growthRates, IReadOnlyItemLibrary items)
{
Settings = settings;
Species = species;
Moves = moves;
Abilities = abilities;
Types = types;
Natures = natures;
GrowthRates = growthRates;
Items = items;
}
///
public LibrarySettings Settings { get; }
///
public IReadOnlySpeciesLibrary Species { get; }
///
public IReadOnlyMoveLibrary Moves { get; }
///
public IReadOnlyAbilityLibrary Abilities { get; }
///
public IReadOnlyTypeLibrary Types { get; }
///
public IReadOnlyNatureLibrary Natures { get; }
///
public IReadOnlyGrowthRateLibrary GrowthRates { get; }
///
public IReadOnlyItemLibrary Items { get; }
}