diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/GuiHelper.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/GuiHelper.java | 39 |
1 files changed, 28 insertions, 11 deletions
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<ItemStack> 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; + } } } |
