diff --git a/src/main/java/com/cleanroommc/modularui/core/mixin/jei/IngredientGridMixin.java b/src/main/java/com/cleanroommc/modularui/core/mixin/jei/IngredientGridMixin.java new file mode 100644 index 000000000..5f5ed1960 --- /dev/null +++ b/src/main/java/com/cleanroommc/modularui/core/mixin/jei/IngredientGridMixin.java @@ -0,0 +1,30 @@ +package com.cleanroommc.modularui.core.mixin.jei; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import mezz.jei.gui.GuiScreenHelper; +import mezz.jei.gui.overlay.IngredientGrid; +import mezz.jei.gui.overlay.IngredientGridWithNavigation; + +import net.minecraft.client.Minecraft; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(value = IngredientGridWithNavigation.class, remap = false) +public abstract class IngredientGridMixin { + + @Shadow + @Final + private GuiScreenHelper guiScreenHelper; + + @WrapOperation(method = "drawTooltips", + at = @At(value = "INVOKE", + target = "Lmezz/jei/gui/overlay/IngredientGrid;drawTooltips(Lnet/minecraft/client/Minecraft;II)V")) + private void considerExclusions(IngredientGrid instance, Minecraft minecraft, int mouseX, int mouseY, Operation original) { + if (!guiScreenHelper.isInGuiExclusionArea(mouseX, mouseY)) + original.call(instance, minecraft, mouseX, mouseY); + } +} diff --git a/src/main/resources/mixin.modularui.json b/src/main/resources/mixin.modularui.json index 19d5d843d..be243562b 100644 --- a/src/main/resources/mixin.modularui.json +++ b/src/main/resources/mixin.modularui.json @@ -15,6 +15,7 @@ ], "mixins": [ "ContainerAccessor", - "FontRendererAccessor" + "FontRendererAccessor", + "jei.IngredientGridMixin" ] } \ No newline at end of file