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