PkmnLib.NET/PkmnLib.Static/Libraries/StaticLibrary.cs

90 lines
2.3 KiB
C#
Raw Normal View History

2024-07-20 14:12:39 +00:00
namespace PkmnLib.Static.Libraries;
/// <summary>
/// The storage for all different static libraries.
/// </summary>
public interface IStaticLibrary
{
/// <summary>
/// The miscellaneous settings for the library.
/// </summary>
LibrarySettings Settings { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon species.
/// </summary>
IReadOnlySpeciesLibrary Species { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon moves.
/// </summary>
IReadOnlyMoveLibrary Moves { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon abilities.
/// </summary>
IReadOnlyAbilityLibrary Abilities { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon types and their effectiveness.
/// </summary>
IReadOnlyTypeLibrary Types { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon natures.
/// </summary>
IReadOnlyNatureLibrary Natures { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon growth rates.
/// </summary>
IReadOnlyGrowthRateLibrary GrowthRates { get; }
2025-03-02 16:19:57 +00:00
2024-07-20 14:12:39 +00:00
/// <summary>
/// All data for Pokémon items.
/// </summary>
IReadOnlyItemLibrary Items { get; }
}
/// <inheritdoc />
public class StaticLibraryImpl : IStaticLibrary
{
/// <inheritdoc cref="StaticLibraryImpl" />
2025-03-02 16:19:57 +00:00
public StaticLibraryImpl(LibrarySettings settings, IReadOnlySpeciesLibrary species, IReadOnlyMoveLibrary moves,
IReadOnlyAbilityLibrary abilities, IReadOnlyTypeLibrary types, IReadOnlyNatureLibrary natures,
IReadOnlyGrowthRateLibrary growthRates, IReadOnlyItemLibrary items)
2024-07-20 14:12:39 +00:00
{
Settings = settings;
Species = species;
Moves = moves;
Abilities = abilities;
Types = types;
Natures = natures;
GrowthRates = growthRates;
Items = items;
}
/// <inheritdoc />
public LibrarySettings Settings { get; }
/// <inheritdoc />
public IReadOnlySpeciesLibrary Species { get; }
/// <inheritdoc />
public IReadOnlyMoveLibrary Moves { get; }
/// <inheritdoc />
public IReadOnlyAbilityLibrary Abilities { get; }
/// <inheritdoc />
public IReadOnlyTypeLibrary Types { get; }
/// <inheritdoc />
public IReadOnlyNatureLibrary Natures { get; }
/// <inheritdoc />
public IReadOnlyGrowthRateLibrary GrowthRates { get; }
/// <inheritdoc />
public IReadOnlyItemLibrary Items { get; }
}