diff --git a/src/main/java/codechicken/nei/api/IGuiContainerOverlay.java b/src/main/java/codechicken/nei/api/IGuiContainerOverlay.java index 73cc6322..1f55a4f0 100644 --- a/src/main/java/codechicken/nei/api/IGuiContainerOverlay.java +++ b/src/main/java/codechicken/nei/api/IGuiContainerOverlay.java @@ -1,8 +1,13 @@ package codechicken.nei.api; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.inventory.GuiContainer; public interface IGuiContainerOverlay { - public GuiContainer getFirstScreen(); + GuiContainer getFirstScreen(); + + default GuiScreen getFirstScreenGeneral() { + return getFirstScreen(); + } } diff --git a/src/main/java/codechicken/nei/recipe/GuiRecipe.java b/src/main/java/codechicken/nei/recipe/GuiRecipe.java index 5520f9c5..1dbefa45 100644 --- a/src/main/java/codechicken/nei/recipe/GuiRecipe.java +++ b/src/main/java/codechicken/nei/recipe/GuiRecipe.java @@ -65,6 +65,7 @@ public abstract class GuiRecipe extends GuiContainer implements IGuiContainerOve public int recipetype; public ContainerRecipe slotcontainer; public GuiContainer firstGui; + public GuiScreen firstGuiGeneral; public GuiScreen prevGui; public GuiButton nextpage; public GuiButton prevpage; @@ -89,12 +90,15 @@ public abstract class GuiRecipe extends GuiContainer implements IGuiContainerOve slotcontainer = (ContainerRecipe) inventorySlots; this.prevGui = prevgui; + this.firstGuiGeneral = prevgui; if(prevgui instanceof GuiContainer) this.firstGui = (GuiContainer)prevgui; - if (prevgui instanceof IGuiContainerOverlay) + if (prevgui instanceof IGuiContainerOverlay) { this.firstGui = ((IGuiContainerOverlay) prevgui).getFirstScreen(); - + this.firstGuiGeneral = ((IGuiContainerOverlay) prevgui).getFirstScreenGeneral(); + } + } /** @@ -311,7 +315,7 @@ public abstract class GuiRecipe extends GuiContainer implements IGuiContainerOve public void keyTyped(char c, int i) { if (i == Keyboard.KEY_ESCAPE) //esc { - mc.displayGuiScreen(firstGui); + mc.displayGuiScreen(firstGuiGeneral); return; } if (GuiContainerManager.getManager(this).lastKeyTyped(i, c)) @@ -324,7 +328,7 @@ public abstract class GuiRecipe extends GuiContainer implements IGuiContainerOve } if (i == mc.gameSettings.keyBindInventory.getKeyCode()) - mc.displayGuiScreen(firstGui); + mc.displayGuiScreen(firstGuiGeneral); else if (i == NEIClientConfig.getKeyBinding("gui.back")) mc.displayGuiScreen(prevGui); else if (i == NEIClientConfig.getKeyBinding("gui.prev_machine")) @@ -644,6 +648,11 @@ public abstract class GuiRecipe extends GuiContainer implements IGuiContainerOve return firstGui; } + @Override + public GuiScreen getFirstScreenGeneral() { + return firstGuiGeneral; + } + public boolean isMouseOver(PositionedStack stack, int recipe) { Slot stackSlot = slotcontainer.getSlotWithStack(stack, getRecipePosition(recipe).x, getRecipePosition(recipe).y); Point mousepos = GuiDraw.getMousePosition();