From 90df5cb0963d3cfdea0959b188e794cc94f7a943 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 13 Apr 2022 20:29:04 +0800 Subject: Check non-empty for craftable filter, Fix #663 --- .../src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'runtime/src/main/java/me') diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java index 034ee378e..720961de3 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java @@ -375,6 +375,7 @@ public class ViewsImpl implements Views { InfoContext context = new InfoContext(display); Iterable inputSlots = info != null ? info.getInputSlots(context) : Collections.emptySet(); int slotsCraftable = 0; + boolean containsNonEmpty = false; List requiredInput = display.getRequiredEntries(); Long2LongMap invCount = new Long2LongOpenHashMap(CraftableFilter.INSTANCE.getInvStacks()); for (SlotAccessor inputSlot : inputSlots) { @@ -405,12 +406,13 @@ public class ViewsImpl implements Views { long availableAmount = invCount.get(hashFuzzy); if (availableAmount >= stack.getCount()) { invCount.put(hashFuzzy, availableAmount - stack.getCount()); + containsNonEmpty = true; slotsCraftable++; break; } } } - if (slotsCraftable == display.getRequiredEntries().size()) { + if (slotsCraftable == display.getRequiredEntries().size() && containsNonEmpty) { display.getOutputEntries().stream().flatMap(Collection::stream).collect(Collectors.toCollection(() -> craftables)); } } -- cgit