diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-07-01 00:21:46 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-07-01 00:21:46 +0800 |
| commit | 6759288abce48d6cf38c48bc28dd84648f43ed85 (patch) | |
| tree | cdfe63482661817ca3fca7330df02fa6ba1f32d8 /runtime/src/main/java | |
| parent | 5d8cca18abfb2538404b07a886edb854c9279952 (diff) | |
| parent | 828247bd6266556bbdd3c1ba41a2d0909c9f68b8 (diff) | |
| download | RoughlyEnoughItems-6759288abce48d6cf38c48bc28dd84648f43ed85.tar.gz RoughlyEnoughItems-6759288abce48d6cf38c48bc28dd84648f43ed85.tar.bz2 RoughlyEnoughItems-6759288abce48d6cf38c48bc28dd84648f43ed85.zip | |
Merge remote-tracking branch 'shedaniel/6.x-1.17' into 6.x
Diffstat (limited to 'runtime/src/main/java')
5 files changed, 17 insertions, 8 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java index 99a930072..0e3b6e080 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java @@ -236,7 +236,7 @@ public class ClientHelperImpl implements ClientHelper { return Minecraft.getInstance().player.inventory.compartments.stream() .flatMap(Collection::stream) .map(EntryStacks::of) - .mapToLong(EntryStacks::hashExact) + .mapToLong(EntryStacks::hashFuzzy) .collect(LongOpenHashSet::new, LongOpenHashSet::add, LongOpenHashSet::addAll); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/craftable/CraftableFilter.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/craftable/CraftableFilter.java index 7e4e90178..0bd0765d8 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/craftable/CraftableFilter.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/craftable/CraftableFilter.java @@ -67,11 +67,11 @@ public class CraftableFilter { } public boolean matches(EntryStack<?> stack, Iterable<SlotAccessor> inputSlots) { - if (invStacks.contains(EntryStacks.hashExact(stack))) return true; + if (invStacks.contains(EntryStacks.hashFuzzy(stack))) return true; if (stack.getType() != VanillaEntryTypes.ITEM) return false; for (SlotAccessor slot : inputSlots) { EntryStack<?> itemStack = EntryStacks.of(slot.getItemStack()); - if (!itemStack.isEmpty() && EntryStacks.equalsExact(itemStack, stack)) { + if (!itemStack.isEmpty() && EntryStacks.equalsFuzzy(itemStack, stack)) { return true; } } 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 12ba2ab3d..a75e75698 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 @@ -89,7 +89,7 @@ public class ViewsImpl implements Views { for (List<? extends EntryStack<?>> results : display.getOutputEntries()) { for (EntryStack<?> otherEntry : results) { for (EntryStack<?> stack : recipesFor) { - if (EntryStacks.equalsExact(otherEntry, stack)) { + if (EntryStacks.equalsFuzzy(otherEntry, stack)) { set.add(display); break back; } @@ -102,7 +102,7 @@ public class ViewsImpl implements Views { for (List<? extends EntryStack<?>> input : display.getInputEntries()) { for (EntryStack<?> otherEntry : input) { for (EntryStack<?> stack : usagesFor) { - if (EntryStacks.equalsExact(otherEntry, stack)) { + if (EntryStacks.equalsFuzzy(otherEntry, stack)) { set.add(display); break back; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java index a36d386e6..07c0e618c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java @@ -218,4 +218,13 @@ public class EntryRegistryImpl implements EntryRegistry { return entries.removeIf(stack -> predicate.test(EntryStacks.hashExact(stack))); } } + + @Override + public boolean removeEntryFuzzyHashIf(LongPredicate predicate) { + if (reloading) { + return reloadingRegistry.removeIf(wrapper -> predicate.test(EntryStacks.hashFuzzy(wrapper.unwrap()))); + } else { + return entries.removeIf(stack -> predicate.test(EntryStacks.hashFuzzy(stack))); + } + } } diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java index d61f09ddd..ae8ea8f6d 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientRuntimePlugin.java @@ -193,11 +193,11 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin { private static class EntryStackFavoriteEntry extends FavoriteEntry { private static final Function<EntryStack<?>, String> CANCEL_FLUID_AMOUNT = s -> null; private final EntryStack<?> stack; - private final long hashIgnoreAmount; + private final long hash; public EntryStackFavoriteEntry(EntryStack<?> stack) { this.stack = stack.normalize(); - this.hashIgnoreAmount = EntryStacks.hashExact(this.stack); + this.hash = EntryStacks.hashExact(this.stack); } @Override @@ -231,7 +231,7 @@ public class DefaultClientRuntimePlugin implements REIClientPlugin { @Override public long hashIgnoreAmount() { - return hashIgnoreAmount; + return hash; } @Override |
