From 7c652b0924476cea8dc89faa30983e01c0c66fec Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 24 Oct 2020 18:26:41 -0400 Subject: update item repo to allow creating instances later --- .../Framework/ItemData/SearchableItem.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs') diff --git a/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs b/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs index d9e63126..3675a963 100644 --- a/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs +++ b/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs @@ -12,9 +12,12 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.ItemData /// The item type. public ItemType Type { get; } - /// The item instance. + /// A sample item instance. public Item Item { get; } + /// Create an item instance. + public Func CreateItem { get; } + /// The item's unique ID for its type. public int ID { get; } @@ -31,12 +34,13 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.ItemData /// Construct an instance. /// The item type. /// The unique ID (if different from the item's parent sheet index). - /// The item instance. - public SearchableItem(ItemType type, int id, Item item) + /// Create an item instance. + public SearchableItem(ItemType type, int id, Func createItem) { this.Type = type; this.ID = id; - this.Item = item; + this.CreateItem = () => createItem(this); + this.Item = createItem(this); } /// Get whether the item name contains a case-insensitive substring. -- cgit From 2831b1e75a4634214fd9ba4e95edcac91d9cf321 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 28 Oct 2020 18:21:33 -0400 Subject: add SearchableItem copy constructor This is for convenience in mods which copy this code; SMAPI itself doesn't use it. --- .../Framework/ItemData/SearchableItem.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs') diff --git a/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs b/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs index 3675a963..72d01eb7 100644 --- a/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs +++ b/src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs @@ -43,6 +43,16 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.ItemData this.Item = createItem(this); } + /// Construct an instance. + /// The item metadata to copy. + public SearchableItem(SearchableItem item) + { + this.Type = item.Type; + this.ID = item.ID; + this.CreateItem = item.CreateItem; + this.Item = item.Item; + } + /// Get whether the item name contains a case-insensitive substring. /// The substring to find. public bool NameContains(string substring) -- cgit