PkmnLibRSharp/PkmnLibRSharp/StaticData/Libraries/LibrarySettings.cs

34 lines
956 B
C#

using System;
using PkmnLibSharp.FFI;
using PkmnLibSharp.Utils;
using Interface = PkmnLibSharp.FFI.StaticData.Libraries.LibrarySettings;
namespace PkmnLibSharp.StaticData.Libraries
{
public class LibrarySettings : ExternPointer<LibrarySettings.CacheData>
{
public class CacheData
{
public LevelInt? MaxLevel { get; internal set; }
}
public LibrarySettings(LevelInt maxLevel) : base(Interface.library_settings_new(maxLevel), true)
{
}
internal LibrarySettings(IdentifiablePointer ptr, bool isOwner) : base(ptr, isOwner)
{
}
public LevelInt MaxLevel => Cache.MaxLevel ??= Interface.library_settings_maximum_level(Ptr);
protected override CacheData CreateCache() => new();
protected override void Destructor() => Interface.library_settings_drop(Ptr);
~LibrarySettings()
{
Dispose();
}
}
}