PkmnLibRSharp/PkmnLibRSharp/DynamicData/Libraries/DynamicLibrary.cs

25 lines
938 B
C#

using PkmnLibSharp.FFI;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.DynamicData.Libraries.DynamicLibrary;
namespace PkmnLibSharp.DynamicData.Libraries
{
public class DynamicLibrary : ExternPointer<DynamicLibrary.CacheData>
{
public class CacheData
{
}
internal DynamicLibrary(IdentifiablePointer ptr) : base(ptr, false) {}
public DynamicLibrary(StaticData.Libraries.StaticData staticData, BattleStatCalculator statCalculator,
DamageLibrary damageLibrary, MiscLibrary miscLibrary, ScriptResolver scriptResolver) : base(
Interface.dynamic_library_new(staticData.Ptr, statCalculator.Ptr, damageLibrary.Ptr, miscLibrary.Ptr,
scriptResolver.Ptr), true)
{
}
protected override CacheData CreateCache() => new();
protected override void Destructor() => Interface.dynamic_library_drop(Ptr);
}
}