aboutsummaryrefslogtreecommitdiff
path: root/runtime/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-02-18 10:31:15 +0800
committershedaniel <daniel@shedaniel.me>2022-02-18 10:31:15 +0800
commitc0e13b0125bda9512493ab5a9356339506a58291 (patch)
tree4c20f508c9bb18057dc2ea59985166e378736841 /runtime/src
parent732e0640dbf1dbe4b98d2a7f8682e9d10dcfac8f (diff)
downloadRoughlyEnoughItems-c0e13b0125bda9512493ab5a9356339506a58291.tar.gz
RoughlyEnoughItems-c0e13b0125bda9512493ab5a9356339506a58291.tar.bz2
RoughlyEnoughItems-c0e13b0125bda9512493ab5a9356339506a58291.zip
Close #783
Diffstat (limited to 'runtime/src')
-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 be9a9754c..479c38083 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;
@@ -54,10 +55,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;
@@ -170,6 +168,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 b5457e2ed..47f914e5d 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)) {