aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-05-01 13:22:03 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-05-01 13:22:03 +0800
commitc57ef35f9d99ec64ec1501932a70cab40fcc5107 (patch)
tree8dd9f6ea157ae0bf85561e7f85b085b9565141de /src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
parent8ac43c1673559bda44ce04ac8152e45d9f810688 (diff)
downloadRoughlyEnoughItems-c57ef35f9d99ec64ec1501932a70cab40fcc5107.tar.gz
RoughlyEnoughItems-c57ef35f9d99ec64ec1501932a70cab40fcc5107.tar.bz2
RoughlyEnoughItems-c57ef35f9d99ec64ec1501932a70cab40fcc5107.zip
Better Exclusion Zone API
Diffstat (limited to 'src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java')
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
index 87c1c51f1..a6b7e19a7 100644
--- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
+++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
@@ -5,6 +5,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.*;
import me.shedaniel.rei.client.ScreenHelper;
import me.shedaniel.rei.gui.RecipeViewingScreen;
+import me.shedaniel.rei.listeners.ContainerScreenHooks;
import me.shedaniel.rei.listeners.RecipeBookGuiHooks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.ContainerScreen;
@@ -15,6 +16,8 @@ import net.minecraft.client.gui.container.FurnaceScreen;
import net.minecraft.client.gui.container.SmokerScreen;
import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
import net.minecraft.client.gui.ingame.PlayerInventoryScreen;
+import net.minecraft.client.gui.ingame.RecipeBookProvider;
+import net.minecraft.client.gui.recipebook.RecipeBookGui;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.item.ItemStack;
@@ -28,7 +31,6 @@ import net.minecraft.recipe.cooking.SmeltingRecipe;
import net.minecraft.recipe.cooking.SmokingRecipe;
import net.minecraft.recipe.crafting.ShapedRecipe;
import net.minecraft.recipe.crafting.ShapelessRecipe;
-import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
@@ -142,6 +144,17 @@ public class DefaultPlugin implements REIPluginEntry {
@Override
public void registerBounds(DisplayHelper displayHelper) {
+ displayHelper.getBaseBoundsHandler().registerExclusionZones(ContainerScreen.class, isOnRightSide -> {
+ if (isOnRightSide || !MinecraftClient.getInstance().player.getRecipeBook().isGuiOpen() || !(MinecraftClient.getInstance().currentScreen instanceof RecipeBookProvider))
+ return Collections.emptyList();
+ ContainerScreenHooks screenHooks = ScreenHelper.getLastContainerScreenHooks();
+ List l = Lists.newArrayList(new Rectangle(screenHooks.rei_getContainerLeft() - 4 - 145, screenHooks.rei_getContainerTop(), 4 + 145 + 30, screenHooks.rei_getContainerHeight()));
+ RecipeBookGui recipeBookGui = ((RecipeBookProvider) MinecraftClient.getInstance().currentScreen).getRecipeBookGui();
+ int size = ((RecipeBookGuiHooks) recipeBookGui).rei_getTabButtons().size();
+ if (size > 0)
+ l.add(new Rectangle(screenHooks.rei_getContainerLeft() - 4 - 145 - 30, screenHooks.rei_getContainerTop(), 30, (size - 1) * 27));
+ return l;
+ });
displayHelper.registerBoundsHandler(new DisplayHelper.DisplayBoundsHandler<ContainerScreen>() {
@Override
public Class getBaseSupportedClass() {
@@ -160,15 +173,6 @@ public class DefaultPlugin implements REIPluginEntry {
}
@Override
- public ActionResult canItemSlotWidgetFit(boolean isOnRightSide, int left, int top, ContainerScreen screen, Rectangle fullBounds) {
- if (!isOnRightSide)
- if (MinecraftClient.getInstance().player.getRecipeBook().isGuiOpen() && left + 18 > ScreenHelper.getLastContainerScreenHooks().rei_getContainerLeft() - 4 - 145 - 30)
- if (top + 18 >= ScreenHelper.getLastContainerScreenHooks().rei_getContainerTop() && top <= ScreenHelper.getLastContainerScreenHooks().rei_getContainerTop() + ScreenHelper.getLastContainerScreenHooks().rei_getContainerHeight())
- return ActionResult.FAIL;
- return ActionResult.PASS;
- }
-
- @Override
public float getPriority() {
return -1.0f;
}