diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java index 1579f368d..cbbedd7a5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/CraftingPattern.java @@ -80,21 +80,11 @@ public class CraftingPattern implements ICraftingPattern { if (input == null) { oreInputs.add(Collections.emptyList()); } else if (input instanceof ItemStack) { - ItemStack stripped = Comparer.stripTags(((ItemStack) input).copy()); - if (stripped.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - oreInputs.add(getSubItems(stripped)); - } else { - oreInputs.add(Collections.singletonList(stripped)); - } + oreInputs.add(Collections.singletonList(Comparer.stripTags(((ItemStack) input).copy()))); } else { List cleaned = new LinkedList<>(); for (ItemStack in : (List) input) { - ItemStack stripped = Comparer.stripTags(in.copy()); - if (stripped.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - cleaned.addAll(getSubItems(stripped)); - } else { - cleaned.add(stripped); - } + cleaned.add(Comparer.stripTags(in.copy())); } oreInputs.add(cleaned); } @@ -132,7 +122,6 @@ public class CraftingPattern implements ICraftingPattern { s.setCount(input.getCount()); return s; }) - .flatMap(this::checkOreDictWildcard) .collect(Collectors.toList()); // Add original stack as first, should prevent some issues oredict.add(0, Comparer.stripTags(input.copy())); @@ -154,22 +143,6 @@ public class CraftingPattern implements ICraftingPattern { } } - private Stream checkOreDictWildcard(ItemStack stack) { - List list = new LinkedList<>(); - if (stack.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - list.addAll(getSubItems(stack)); - } else { - list.add(stack); - } - return list.stream(); - } - - private List getSubItems(ItemStack stack) { - NonNullList subItems = NonNullList.create(); - stack.getItem().getSubItems(stack.getItem(), stack.getItem().getCreativeTab(), subItems); - return subItems.stream().map(Comparer::stripTags).collect(Collectors.toList()); - } - @Override public ICraftingPatternContainer getContainer() { return container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java index 03685eb88..a94cedc50 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Comparer.java @@ -33,7 +33,7 @@ public class Comparer implements IComparer { return false; } - if ((flags & COMPARE_DAMAGE) == COMPARE_DAMAGE) { + if ((flags & COMPARE_DAMAGE) == COMPARE_DAMAGE && left.getItemDamage() != OreDictionary.WILDCARD_VALUE && right.getItemDamage() != OreDictionary.WILDCARD_VALUE) { if (left.getItemDamage() != right.getItemDamage()) { return false; }