PkmnLibRSharp/PkmnLibRSharp/StaticData/Libraries/AbilityLibrary.cs

34 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using PkmnLibSharp.FFI;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.StaticData.Libraries.AbilityLibrary;
namespace PkmnLibSharp.StaticData.Libraries
{
/// <summary>
/// A storage for all abilities that can be used in this data library.
/// </summary>
public class AbilityLibrary : DataLibrary<Ability>
{
/// <inheritdoc cref="AbilityLibrary"/>
protected AbilityLibrary(FFIHandle handle) : base(handle)
{
}
/// <summary>
/// Instantiates a new ability library.
/// </summary>
public static AbilityLibrary Create(ulong capacity)
{
var handle = Interface.ability_library_new(capacity).Resolve();
var self = Resolver.Instance.ResolveAbilityLibrary(handle);
self.ReserveCapacity(capacity);
return self;
}
/// <inheritdoc />
protected override void AddNative(string key, Ability value) =>
Interface.ability_library_add(Handle, key.ToPtr(), value.Handle);
}
}