From 8d97f66088f288f90b9d408e23cfd08341f772a9 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') 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 ee348b71b..80b453d50 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 @@ -379,6 +379,7 @@ public class ViewsImpl implements Views { Iterable inputSlots = info != null ? info.getInputSlots(context.withDisplay(display)) : Collections.emptySet(); int slotsCraftable = 0; + boolean containsNonEmpty = false; List requiredInput = display.getRequiredEntries(); Long2LongMap invCount = new Long2LongOpenHashMap(CraftableFilter.INSTANCE.getInvStacks()); for (SlotAccessor inputSlot : inputSlots) { @@ -409,12 +410,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