PkmnLibRSharp/PkmnLibRSharp/DynamicData/Libraries/ScriptResolver.cs

30 lines
954 B
C#

using System;
using PkmnLibSharp.FFI;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.DynamicData.Libraries.ScriptResolver;
namespace PkmnLibSharp.DynamicData.Libraries
{
public abstract class ScriptResolver : ExternPointer<ScriptResolver.CacheData>
{
protected ScriptResolver(IdentifiablePointer ptr) : base(ptr, true){}
protected ScriptResolver(IdentifiablePointer ptr, bool isOwner) : base(ptr, isOwner){}
public class CacheData{}
protected override CacheData CreateCache() => new();
protected override void Destructor()
{
Interface.script_resolver_drop(Ptr);
}
}
/// <summary>
/// An implementation of a script resolver that pretends there are no existing scripts.
/// </summary>
public class EmptyScriptResolver : ScriptResolver
{
public EmptyScriptResolver() : base(Interface.empty_script_resolver_new()){}
}
}