using System; using System.Collections.Generic; using PkmnLibSharp.Library.Items; using PkmnLibSharp.Utilities; namespace PkmnLibSharp.Battling { public abstract class ScriptResolver : PointerWrapper { private readonly Dictionary _itemUseScripts = new Dictionary(); 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; } } }