Fixed bug with libraries returning some values twice in GetEnumerator, move more over to Constructor class.

This commit is contained in:
2020-08-22 16:42:56 +02:00
parent 59a5ddf5da
commit a2cf693bbd
8 changed files with 34 additions and 21 deletions

View File

@@ -7,11 +7,7 @@ namespace PkmnLibSharp.Library.Items
public class Item : PointerWrapper
{
private string? _name;
internal Item(IntPtr ptr) : base(ptr)
{
}
public string Name => _name ??= Creaturelib.Generated.Item.GetName(Ptr).PtrString()!;
public ItemCategory Category => (ItemCategory) Creaturelib.Generated.Item.GetCategory(Ptr);

View File

@@ -45,7 +45,7 @@ namespace PkmnLibSharp.Library.Items
return true;
}
item = new Item(ptr);
item = Constructor.Active.ConstructItem(ptr)!;
_cache.Add(key, item);
return true;
}
@@ -62,7 +62,7 @@ namespace PkmnLibSharp.Library.Items
return i!;
}
item = new Item(ptr);
item = Constructor.Active.ConstructItem(ptr)!;
_cache.Add(key, item);
return item;
}
@@ -76,7 +76,8 @@ namespace PkmnLibSharp.Library.Items
Creaturelib.Generated.ItemLibrary.GetAtIndex(Ptr, i, ref ptr).Assert();
if (TryResolvePointer(ptr, out Item? item))
yield return item!;
yield return new Item(ptr);
else
yield return Constructor.Active.ConstructItem(ptr)!;
}
}