diff options
Diffstat (limited to 'runtime-frontend/overlay/src/main')
| -rw-r--r-- | runtime-frontend/overlay/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/widgets/DisplayedEntryWidget.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/runtime-frontend/overlay/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/widgets/DisplayedEntryWidget.java b/runtime-frontend/overlay/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/widgets/DisplayedEntryWidget.java index 4d6c063b2..149fdd118 100644 --- a/runtime-frontend/overlay/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/widgets/DisplayedEntryWidget.java +++ b/runtime-frontend/overlay/src/main/java/me/shedaniel/rei/impl/client/gui/overlay/widgets/DisplayedEntryWidget.java @@ -33,9 +33,11 @@ import me.shedaniel.rei.api.client.gui.widgets.Slot; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.client.gui.widgets.Widgets; import me.shedaniel.rei.api.client.overlay.ScreenOverlay; +import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; import me.shedaniel.rei.api.client.registry.transfer.TransferHandler; import me.shedaniel.rei.api.client.view.Views; +import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; @@ -56,6 +58,8 @@ import org.jetbrains.annotations.Nullable; import java.util.ConcurrentModificationException; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.function.Supplier; import java.util.function.UnaryOperator; @@ -187,8 +191,14 @@ public abstract class DisplayedEntryWidget extends GuiComponent implements Unary try { DisplayRegistry displayRegistry = DisplayRegistry.getInstance(); - for (List<Display> displays : displayRegistry.getAll().values()) { - for (Display display : displays) { + CategoryRegistry categoryRegistry = CategoryRegistry.getInstance(); + Map<CategoryIdentifier<?>, Boolean> filteringQuickCraftCategories = ConfigObject.getInstance().getFilteringQuickCraftCategories(); + for (Map.Entry<CategoryIdentifier<?>, List<Display>> entry : displayRegistry.getAll().entrySet()) { + Optional<? extends CategoryRegistry.CategoryConfiguration<?>> configuration; + if ((configuration = categoryRegistry.tryGet(entry.getKey())).isEmpty() + || categoryRegistry.isCategoryInvisible(configuration.get().getCategory())) continue; + if (!filteringQuickCraftCategories.getOrDefault(entry.getKey(), configuration.get().isQuickCraftingEnabledByDefault())) continue; + for (Display display : entry.getValue()) { if ((!ConfigObject.getInstance().shouldFilterDisplays() || displayRegistry.isDisplayVisible(display)) && Views.getInstance().isRecipesFor(slot.getEntries(), display)) { AutoCraftingEvaluator.Result result = ClientInternals.getAutoCraftingEvaluator(display).get(); |
