PkmnLibSharp/PkmnLibSharp/Battling/Library/ScriptResolver.cs

29 lines
919 B
C#

using System;
using System.Collections.Generic;
using PkmnLibSharp.Library.Items;
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Battling
{
public abstract class ScriptResolver : PointerWrapper
{
private readonly Dictionary<Item, ItemUseScript> _itemUseScripts = new Dictionary<Item, ItemUseScript>();
protected ScriptResolver(IntPtr ptr) : base(ptr)
{
}
public ItemUseScript? LoadItemUseScript(Item item)
{
if (_itemUseScripts.TryGetValue(item, out var v))
return v;
var ptr = IntPtr.Zero;
Creaturelib.Generated.ScriptResolver.LoadItemScript(ref ptr, Ptr, item.Ptr);
if (ptr == IntPtr.Zero)
return null;
var itemUseScript = new ItemUseScript(ptr);
_itemUseScripts.Add(item, itemUseScript);
return itemUseScript;
}
}
}