34 lines
1.1 KiB
C#
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);
|
|
}
|
|
} |