29 lines
919 B
C#
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;
|
|
}
|
|
}
|
|
} |