PkmnLibRSharp/PkmnLibRSharp/StaticData/Libraries/ItemLibrary.cs

33 lines
977 B
C#

using System;
using PkmnLibSharp.FFI;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.StaticData.Libraries.ItemLibrary;
namespace PkmnLibSharp.StaticData.Libraries
{
/// <summary>
/// A library to store all items.
/// </summary>
public class ItemLibrary : DataLibrary<Item>
{
/// <inheritdoc />
protected ItemLibrary(FFIHandle handle) : base(handle){}
/// <summary>
/// Instantiates a new Item Library.
/// </summary>
public static ItemLibrary Create(ulong capacity)
{
var handle = Interface.item_library_new(capacity).Resolve();
var self = Resolver.Instance.ResolveItemLibrary(handle);
self.ReserveCapacity(capacity);
return self;
}
/// <inheritdoc />
protected override void AddNative(string key, Item value)
{
Interface.item_library_add(Handle, key.ToPtr(), value.Handle);
}
}
}