aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-02-18 10:31:15 +0800
committershedaniel <daniel@shedaniel.me>2022-02-18 11:46:47 +0800
commit177dbe5716a24572e229379ad9567ae64e2cf4cc (patch)
tree6600220e2db1bbae1d4e5aedc056f35c8e1787da /runtime/src/main/java
parent40615fc0e44092b5421d5bafa51a7a6995db9c5c (diff)
downloadRoughlyEnoughItems-177dbe5716a24572e229379ad9567ae64e2cf4cc.tar.gz
RoughlyEnoughItems-177dbe5716a24572e229379ad9567ae64e2cf4cc.tar.bz2
RoughlyEnoughItems-177dbe5716a24572e229379ad9567ae64e2cf4cc.zip
Close #783
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java18
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java1
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java1
3 files changed, 16 insertions, 4 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 80acbc755..deeff411c 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
@@ -33,6 +33,7 @@ import me.shedaniel.rei.api.client.gui.widgets.Widgets;
import me.shedaniel.rei.api.client.registry.category.CategoryRegistry;
import me.shedaniel.rei.api.client.registry.display.DisplayCategory;
import me.shedaniel.rei.api.client.registry.display.DisplayCategoryView;
+import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryStack;
@@ -53,10 +54,7 @@ import net.minecraft.tags.TagContainer;
import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.Nullable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
public abstract class AbstractDisplayViewingScreen extends Screen implements DisplayScreen {
protected final Map<DisplayCategory<?>, List<DisplaySpec>> categoryMap;
@@ -169,6 +167,18 @@ public abstract class AbstractDisplayViewingScreen extends Screen implements Dis
}
}
+ protected void transformFiltering(List<? extends GuiEventListener> setupDisplay) {
+ for (EntryWidget widget : Widgets.<EntryWidget>walk(setupDisplay, EntryWidget.class::isInstance)) {
+ if (widget.getEntries().size() > 1) {
+ Collection<EntryStack<?>> refiltered = EntryRegistry.getInstance().refilterNew(widget.getEntries());
+ if (!refiltered.isEmpty()) {
+ widget.clearStacks();
+ widget.entries(refiltered);
+ }
+ }
+ }
+ }
+
protected void setupTags(List<Widget> widgets) {
TagContainer tags = Minecraft.getInstance().getConnection().getTags();
outer:
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
index 1102abca8..b1f131197 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java
@@ -164,6 +164,7 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen
setupDisplay.add(Widgets.createLabel(new Point(recipeBounds.getCenterX(), recipeBounds.getCenterY() + 1), new TextComponent("Check console for error")));
}
setupTags(setupDisplay);
+ transformFiltering(setupDisplay);
transformIngredientNotice(setupDisplay, ingredientStackToNotice);
transformResultNotice(setupDisplay, resultStackToNotice);
for (EntryWidget widget : Widgets.<EntryWidget>walk(widgets, EntryWidget.class::isInstance)) {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
index 3ec5eadb7..e048c9acd 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java
@@ -267,6 +267,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen {
setupDisplay.add(Widgets.createLabel(new Point(displayBounds.getCenterX(), displayBounds.getCenterY() + 1), new TextComponent("Check console for error")));
}
setupTags(setupDisplay);
+ transformFiltering(setupDisplay);
transformIngredientNotice(setupDisplay, ingredientStackToNotice);
transformResultNotice(setupDisplay, resultStackToNotice);
for (EntryWidget widget : Widgets.<EntryWidget>walk(widgets, EntryWidget.class::isInstance)) {