diff --git a/src/codechicken/nei/ItemList.java b/src/codechicken/nei/ItemList.java index 1c484df0..fac8434c 100644 --- a/src/codechicken/nei/ItemList.java +++ b/src/codechicken/nei/ItemList.java @@ -197,13 +197,16 @@ public class ItemList timer.reset(item); permutations.clear(); - permutations.addAll(ItemInfo.getItemOverrides(item)); + permutations.addAll(ItemInfo.itemOverrides.get(item)); + if (permutations.isEmpty()) item.getSubItems(item, null, permutations); if (permutations.isEmpty()) damageSearch(item, permutations); + permutations.addAll(ItemInfo.itemVariants.get(item)); + timer.reset(); items.addAll(permutations); diff --git a/src/codechicken/nei/api/API.java b/src/codechicken/nei/api/API.java index 63d9fe51..6da0291c 100644 --- a/src/codechicken/nei/api/API.java +++ b/src/codechicken/nei/api/API.java @@ -253,4 +253,13 @@ public class API public static void addSortOption(String name, Comparator comparator) { ItemSorter.add(name, comparator); } + + /** + * Adds an additional item list entry for an item, sorted after the rest of the items are found through the normal process + * @param item The item to add the variant for + * @param variant The stack to appear in the item panel + */ + public static void addItemVariant(Item item, ItemStack variant) { + ItemInfo.itemVariants.put(item, variant); + } } diff --git a/src/codechicken/nei/api/ItemInfo.java b/src/codechicken/nei/api/ItemInfo.java index 52aa7d49..008eb7f4 100644 --- a/src/codechicken/nei/api/ItemInfo.java +++ b/src/codechicken/nei/api/ItemInfo.java @@ -56,6 +56,7 @@ public class ItemInfo public static final ItemStackSet hiddenItems = new ItemStackSet(); public static final ItemStackSet finiteItems = new ItemStackSet(); public static final ArrayListMultimap itemOverrides = ArrayListMultimap.create(); + public static final ArrayListMultimap itemVariants = ArrayListMultimap.create(); public static final LinkedList infiniteHandlers = new LinkedList(); public static final ArrayListMultimap highlightIdentifiers = ArrayListMultimap.create(); @@ -82,6 +83,11 @@ public class ItemInfo return !finiteItems.contains(stack); } + /** + * @deprecated + * Use field directly + */ + @Deprecated public static List getItemOverrides(Item item) { return itemOverrides.get(item); }