PkmnLibSharp/PkmnLibSharp/Battling/Library/ScriptResolver.cs

29 lines
919 B
C#
Raw Normal View History

2020-07-18 14:49:11 +00:00
using System;
using System.Collections.Generic;
using PkmnLibSharp.Library.Items;
2020-07-18 14:49:11 +00:00
using PkmnLibSharp.Utilities;
namespace PkmnLibSharp.Battling
{
public abstract class ScriptResolver : PointerWrapper
{
private readonly Dictionary<Item, ItemUseScript> _itemUseScripts = new Dictionary<Item, ItemUseScript>();
2020-07-18 14:49:11 +00:00
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;
}
2020-07-18 14:49:11 +00:00
}
}