aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-22 17:41:46 +0800
committershedaniel <daniel@shedaniel.me>2022-06-22 17:41:46 +0800
commitb6b18ee28a2d94e32f10146f431b741131c4c495 (patch)
tree9788d5ca596d5eb52d64df96cb68de71f327b38d /runtime/src/main/java
parent75b3374096e9af8d0857c669b87259bc1a365dd1 (diff)
downloadRoughlyEnoughItems-b6b18ee28a2d94e32f10146f431b741131c4c495.tar.gz
RoughlyEnoughItems-b6b18ee28a2d94e32f10146f431b741131c4c495.tar.bz2
RoughlyEnoughItems-b6b18ee28a2d94e32f10146f431b741131c4c495.zip
Fix poor tag matching
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
index 88963bca5..1ae89bdf1 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java
@@ -26,6 +26,7 @@ package me.shedaniel.rei.impl.client.gui.screen;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.Tesselator;
+import com.mojang.datafixers.util.Pair;
import com.mojang.math.Matrix4f;
import dev.architectury.fluid.FluidStack;
import me.shedaniel.math.Rectangle;
@@ -212,15 +213,18 @@ public abstract class AbstractDisplayViewingScreen extends Screen implements Dis
}
}
// TODO: Don't hardcode
- Stream<? extends TagKey<?>> collection;
+ Registry<?> registry;
List<Holder<?>> objects;
if (type == VanillaEntryTypes.ITEM) {
- collection = Registry.ITEM.getTagNames();
+ registry = Registry.ITEM;
objects = CollectionUtils.map(widget.getEntries(), stack -> stack.<ItemStack>castValue().getItem().builtInRegistryHolder());
} else if (type == VanillaEntryTypes.FLUID) {
- collection = Registry.FLUID.getTagNames();
+ registry = Registry.FLUID;
objects = CollectionUtils.map(widget.getEntries(), stack -> stack.<FluidStack>castValue().getFluid().builtInRegistryHolder());
} else continue;
+ Stream<? extends TagKey<?>> collection = registry.getTags()
+ .filter(pair -> pair.getSecond().size() == objects.size())
+ .map(Pair::getFirst);
TagKey<?> firstOrNull = CollectionUtils.findFirstOrNull(collection::iterator,
key -> CollectionUtils.allMatch(objects, holder -> ((Holder<Object>) holder).is((TagKey<Object>) key)));
if (firstOrNull != null) {