33 lines
903 B
C#
33 lines
903 B
C#
using System.Diagnostics.CodeAnalysis;
|
|
using PkmnLib.Static.Utils;
|
|
|
|
namespace PkmnLib.Static.Libraries;
|
|
|
|
/// <summary>
|
|
/// The library for all natures in the game.
|
|
/// </summary>
|
|
public interface IReadOnlyNatureLibrary : IEnumerable<INature>
|
|
{
|
|
/// <summary>
|
|
/// Tries to get a nature from the library. Returns false if the nature is not found.
|
|
/// </summary>
|
|
bool TryGet(StringKey key, [MaybeNullWhen(false)] out INature value);
|
|
|
|
/// <summary>
|
|
/// Gets a random nature from the library.
|
|
/// </summary>
|
|
INature GetRandom(IRandom random);
|
|
|
|
/// <summary>
|
|
/// The amount of natures in the library.
|
|
/// </summary>
|
|
int Count { get; }
|
|
|
|
/// <summary>
|
|
/// Whether the library is empty.
|
|
/// </summary>
|
|
bool IsEmpty { get; }
|
|
}
|
|
|
|
/// <inheritdoc cref="IReadOnlyNatureLibrary"/>
|
|
public class NatureLibrary : DataLibrary<INature>, IReadOnlyNatureLibrary; |