aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-22 17:41:46 +0800
committershedaniel <daniel@shedaniel.me>2022-06-28 03:21:12 +0800
commite982a8fbaa7b94a2eea242106322334a1a0eefe9 (patch)
tree556d90a22d2d44d5afe28da42b86fb6dce8499c0
parent6c69e8a9f277245e7ac8f8461e9b692df2ef7e74 (diff)
downloadRoughlyEnoughItems-e982a8fbaa7b94a2eea242106322334a1a0eefe9.tar.gz
RoughlyEnoughItems-e982a8fbaa7b94a2eea242106322334a1a0eefe9.tar.bz2
RoughlyEnoughItems-e982a8fbaa7b94a2eea242106322334a1a0eefe9.zip
Fix poor tag matching
-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 531038db4..37bf22b16 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;
@@ -210,15 +211,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) {