PkmnLibRSharp/PkmnLibRSharp/StaticData/LearnableMoves.cs

36 lines
993 B
C#

using System;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.StaticData.LearnableMoves;
namespace PkmnLibSharp.StaticData
{
public class LearnableMoves : ExternPointer<object>
{
internal LearnableMoves(IntPtr ptr, bool isOwner) : base(ptr, isOwner)
{
}
public LearnableMoves() : base(Interface.learnable_moves_new(), true)
{
}
public void AddLevelMove(LevelInt level, string moveName)
{
Interface.learnable_moves_add_level_move(Ptr, level, moveName.ToPtr());
}
public void AddLevelMove(LevelInt level, MoveData move)
{
Interface.learnable_moves_add_level_move(Ptr, level, move.Name.ToPtr());
}
protected override object CreateCache() => new object();
protected override void Destructor() => Interface.learnable_moves_drop(Ptr);
~LearnableMoves()
{
Dispose();
}
}
}