From 0292fa5317106c46a39cd39e9664936f807b6270 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sat, 20 Mar 2021 17:20:54 +0800 Subject: Refactor exclusion zones, wrap JEI exclusion zones Signed-off-by: shedaniel --- .../rei/plugin/DefaultRecipeBookExclusionZones.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java') diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java index 7702c923a..0e3b3c956 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java @@ -25,29 +25,27 @@ package me.shedaniel.rei.plugin; import com.google.common.collect.Lists; import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.registry.screen.ExclusionZonesProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener; import net.minecraft.world.inventory.RecipeBookMenu; +import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.function.Supplier; @Environment(EnvType.CLIENT) -public class DefaultRecipeBookExclusionZones implements Supplier> { - +public class DefaultRecipeBookExclusionZones implements ExclusionZonesProvider { @Override - public List get() { - Screen screen = Minecraft.getInstance().screen; - if (!(screen instanceof RecipeUpdateListener) || !(screen instanceof AbstractContainerScreen) || !(((AbstractContainerScreen) screen).getMenu() instanceof RecipeBookMenu) || + public Collection provide(RecipeUpdateListener screen) { + if (!(screen instanceof AbstractContainerScreen) || !(((AbstractContainerScreen) screen).getMenu() instanceof RecipeBookMenu) || !Minecraft.getInstance().player.getRecipeBook().isOpen(((RecipeBookMenu) ((AbstractContainerScreen) screen).getMenu()).getRecipeBookType())) return Collections.emptyList(); - RecipeBookComponent recipeBookWidget = ((RecipeUpdateListener) screen).getRecipeBookComponent(); + RecipeBookComponent recipeBookWidget = screen.getRecipeBookComponent(); AbstractContainerScreen containerScreen = (AbstractContainerScreen) screen; List l = Lists.newArrayList(new Rectangle(containerScreen.leftPos - 4 - 145, containerScreen.topPos, 4 + 145 + 30, containerScreen.imageHeight)); int size = recipeBookWidget.tabButtons.size(); @@ -55,5 +53,4 @@ public class DefaultRecipeBookExclusionZones implements Supplier l.add(new Rectangle(containerScreen.leftPos - 4 - 145 - 30, containerScreen.topPos, 30, size * 27)); return l; } - } -- cgit