diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-09-07 23:02:24 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-09-07 23:02:24 +0800 |
| commit | afe32352abcef8d501acf7985d2e9b1f3fcb673e (patch) | |
| tree | 53c671ccbc3b58fb9dc7ef1f968a1c3e958820a3 /RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java | |
| parent | 973978aa763f8fa4d5e5b6991a5032cbb246594d (diff) | |
| download | RoughlyEnoughItems-afe32352abcef8d501acf7985d2e9b1f3fcb673e.tar.gz RoughlyEnoughItems-afe32352abcef8d501acf7985d2e9b1f3fcb673e.tar.bz2 RoughlyEnoughItems-afe32352abcef8d501acf7985d2e9b1f3fcb673e.zip | |
Made FluidSupportProvider capable in returning more than 1 fluid and fix hwyla double modid tooltip
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java')
| -rw-r--r-- | RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java index 267f72e1e..0e3e17d89 100644 --- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java +++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java @@ -63,6 +63,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Stream; @ApiStatus.Internal public class ItemEntryStack extends AbstractEntryStack implements OptimalEntryStack { @@ -128,29 +129,28 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt * 2: ignore amount * 3: all */ - private Boolean compareIfFluid(EntryStack stack, int type) { - EntryStack fluid = EntryStack.copyItemToFluid(this); - if (fluid.isEmpty()) return null; + private boolean compareIfFluid(EntryStack stack, int type) { + Stream<EntryStack> fluids = EntryStack.copyItemToFluids(this); + Stream<EntryStack> stacks = Stream.empty(); if (stack.getType() == Type.ITEM) - stack = EntryStack.copyItemToFluid(stack); - if (stack.isEmpty()) return null; + stacks = EntryStack.copyItemToFluids(stack); switch (type) { case 0: - return fluid.equalsIgnoreTagsAndAmount(stack); + return stacks.anyMatch(entryStack -> fluids.anyMatch(entryStack::equalsIgnoreTagsAndAmount)); case 1: - return fluid.equalsIgnoreTags(stack); + return stacks.anyMatch(entryStack -> fluids.anyMatch(entryStack::equalsIgnoreTags)); case 2: - return fluid.equalsIgnoreAmount(stack); + return stacks.anyMatch(entryStack -> fluids.anyMatch(entryStack::equalsIgnoreAmount)); case 3: - return fluid.equalsAll(stack); + return stacks.anyMatch(entryStack -> fluids.anyMatch(entryStack::equalsAll)); } - return null; + + return false; } @Override public boolean equalsIgnoreTagsAndAmount(EntryStack stack) { - Boolean ifFluid = compareIfFluid(stack, 0); - if (ifFluid != null) return ifFluid; + if (compareIfFluid(stack, 0)) return true; if (stack.getType() != Type.ITEM) return false; return itemStack.getItem() == stack.getItem(); @@ -165,8 +165,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt @Override public boolean equalsIgnoreAmount(EntryStack stack) { - Boolean ifFluid = compareIfFluid(stack, 2); - if (ifFluid != null) return ifFluid; + if (compareIfFluid(stack, 2)) return true; if (stack.getType() != Type.ITEM) return false; if (itemStack.getItem() != stack.getItem()) @@ -234,8 +233,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt @Override public boolean equalsIgnoreTags(EntryStack stack) { - Boolean ifFluid = compareIfFluid(stack, 1); - if (ifFluid != null) return ifFluid; + if (compareIfFluid(stack, 1)) return true; if (stack.getType() != Type.ITEM) return false; if (itemStack.getItem() != stack.getItem()) |
