From 2f95b698dee3368666cefe8890a015eb098dd77b Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 31 Jan 2019 15:32:33 +0800 Subject: Update to v2.2.0.15 & Fix Optifine Fix #16 --- .../java/me/shedaniel/rei/client/GuiHelper.java | 39 ++++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/client/GuiHelper.java') diff --git a/src/main/java/me/shedaniel/rei/client/GuiHelper.java b/src/main/java/me/shedaniel/rei/client/GuiHelper.java index 4b228b3a6..253a51480 100644 --- a/src/main/java/me/shedaniel/rei/client/GuiHelper.java +++ b/src/main/java/me/shedaniel/rei/client/GuiHelper.java @@ -3,17 +3,22 @@ package me.shedaniel.rei.client; import com.google.common.collect.Lists; import me.shedaniel.rei.gui.ContainerGuiOverlay; import me.shedaniel.rei.gui.widget.TextFieldWidget; +import me.shedaniel.rei.listeners.IMixinGuiContainer; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; +import org.dimdev.rift.listener.client.ClientTickable; import java.util.List; -public class GuiHelper { +public class GuiHelper implements ClientTickable { public static TextFieldWidget searchField; public static List inventoryStacks = Lists.newArrayList(); private static boolean overlayVisible = true; private static ContainerGuiOverlay overlay; + private static GuiContainer lastGuiContainer; + private static IMixinGuiContainer lastMixinGuiContainer; public static boolean isOverlayVisible() { return overlayVisible; @@ -23,14 +28,6 @@ public class GuiHelper { overlayVisible = !overlayVisible; } - public static ContainerGuiOverlay getOverlay(GuiContainer lastGui) { - if (overlay == null) { - overlay = new ContainerGuiOverlay(lastGui); - overlay.onInitialized(); - } - return overlay; - } - public static ContainerGuiOverlay getLastOverlay() { return overlay; } @@ -40,8 +37,28 @@ public class GuiHelper { overlay.onInitialized(); } - public static void resetOverlay() { - overlay = null; + public static GuiContainer getLastGuiContainer() { + return lastGuiContainer; + } + + public static void setLastGuiContainer(GuiContainer lastGuiContainer) { + GuiHelper.lastGuiContainer = lastGuiContainer; + } + + public static IMixinGuiContainer getLastMixinGuiContainer() { + return lastMixinGuiContainer; + } + + public static void setLastMixinGuiContainer(IMixinGuiContainer lastMixinGuiContainer) { + GuiHelper.lastMixinGuiContainer = lastMixinGuiContainer; + } + + @Override + public void clientTick(Minecraft client) { + if (client.currentScreen instanceof GuiContainer && lastGuiContainer != client.currentScreen) { + GuiHelper.lastGuiContainer = (GuiContainer) client.currentScreen; + GuiHelper.lastMixinGuiContainer = (IMixinGuiContainer) lastGuiContainer; + } } } -- cgit