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