Skip to content

Commit 5fdd649

Browse files
authored
Fix JEI Highlight for Custom MUI2 Widgets (GregTechCEu#2812)
1 parent 3e01f37 commit 5fdd649

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

src/main/java/gregtech/client/utils/RenderUtil.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gregtech.client.utils;
22

33
import gregtech.api.gui.resources.TextureArea;
4+
import gregtech.api.util.Mods;
45

56
import net.minecraft.client.Minecraft;
67
import net.minecraft.client.gui.FontRenderer;
@@ -27,6 +28,9 @@
2728

2829
import codechicken.lib.vec.Matrix4;
2930
import com.cleanroommc.modularui.api.MCHelper;
31+
import com.cleanroommc.modularui.api.widget.IWidget;
32+
import com.cleanroommc.modularui.integration.jei.JeiGhostIngredientSlot;
33+
import com.cleanroommc.modularui.integration.jei.ModularUIJeiPlugin;
3034
import org.jetbrains.annotations.NotNull;
3135
import org.jetbrains.annotations.Nullable;
3236
import org.lwjgl.opengl.GL11;
@@ -711,4 +715,15 @@ public void put(int element, float @NotNull... data) {
711715
public static @NotNull TextureAtlasSprite getMissingSprite() {
712716
return getTextureMap().getMissingSprite();
713717
}
718+
719+
public static void handleJeiGhostHighlight(IWidget slot) {
720+
if (!Mods.JustEnoughItems.isModLoaded()) return;
721+
if (!(slot instanceof JeiGhostIngredientSlot<?>ingredientSlot)) return;
722+
if (ModularUIJeiPlugin.hasDraggingGhostIngredient() ||
723+
ModularUIJeiPlugin.hoveringOverIngredient(ingredientSlot)) {
724+
GlStateManager.colorMask(true, true, true, false);
725+
ingredientSlot.drawHighlight(slot.getArea(), slot.isHovering());
726+
GlStateManager.colorMask(true, true, true, true);
727+
}
728+
}
714729
}

src/main/java/gregtech/common/mui/widget/GTFluidSlot.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import gregtech.api.util.FluidTooltipUtil;
66
import gregtech.api.util.GTUtility;
77
import gregtech.api.util.LocalizationUtils;
8+
import gregtech.client.utils.RenderUtil;
89
import gregtech.client.utils.TooltipHelper;
910

1011
import net.minecraft.client.renderer.GlStateManager;
@@ -137,6 +138,8 @@ public void draw(ModularGuiContext context, WidgetSlotTheme widgetTheme) {
137138
GuiDraw.drawRect(1, 1, getArea().w() - 2, getArea().h() - 2, widgetTheme.getSlotHoverColor());
138139
GlStateManager.colorMask(true, true, true, true);
139140
}
141+
142+
RenderUtil.handleJeiGhostHighlight(this);
140143
}
141144

142145
@Override

src/main/java/gregtech/common/mui/widget/workbench/CraftingInputSlot.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,15 @@ public void onMouseDrag(int mouseButton, long timeSinceClick) {
102102
@Override
103103
public void draw(ModularGuiContext context, WidgetTheme widgetTheme) {
104104
ItemStack itemstack = this.syncHandler.getStack();
105-
if (itemstack.isEmpty()) return;
105+
if (!itemstack.isEmpty()) {
106+
if (!this.hasIngredients) {
107+
RenderUtil.renderRect(0, 0, 18, 18, 200, 0x80FF0000);
108+
}
106109

107-
if (!this.hasIngredients) {
108-
RenderUtil.renderRect(0, 0, 18, 18, 200, 0x80FF0000);
110+
RenderUtil.renderItem(itemstack, 1, 1, 16, 16);
109111
}
110112

111-
RenderUtil.renderItem(itemstack, 1, 1, 16, 16);
113+
RenderUtil.handleJeiGhostHighlight(this);
112114
}
113115

114116
@Override

0 commit comments

Comments
 (0)