diff options
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index be9ce6c7..129e25e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -8,6 +8,7 @@ import io.github.moulberry.notenoughupdates.recipes.RecipeType; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; @@ -22,8 +23,11 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; -import java.util.*; +import java.util.Map; public class GuiItemRecipe extends GuiScreen { public static final ResourceLocation resourcePacksTexture = new ResourceLocation("textures/gui/resource_packs.png"); @@ -68,6 +72,13 @@ public class GuiItemRecipe extends GuiScreen { } } + @Override + public void initGui() { + this.guiLeft = (width - this.xSize) / 2; + this.guiTop = (height - this.ySize) / 2; + changeRecipe(0, 0); + } + public NeuRecipe getCurrentRecipe() { List<NeuRecipe> currentRecipes = getCurrentRecipeList(); currentIndex = MathHelper.clamp_int(currentIndex, 0, currentRecipes.size() - 1); @@ -84,8 +95,8 @@ public class GuiItemRecipe extends GuiScreen { } public boolean isWithinRect(int x, int y, int topLeftX, int topLeftY, int width, int height) { - return topLeftX <= x && x <= topLeftX + width - && topLeftY <= y && y <= topLeftY + height; + return topLeftX <= x && x < topLeftX + width + && topLeftY <= y && y < topLeftY + height; } private ImmutableList<RecipeSlot> getAllRenderedSlots() { @@ -99,9 +110,6 @@ public class GuiItemRecipe extends GuiScreen { drawDefaultBackground(); FontRenderer fontRendererObj = Minecraft.getMinecraft().fontRendererObj; - this.guiLeft = (width - this.xSize) / 2; - this.guiTop = (height - this.ySize) / 2; - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); NeuRecipe currentRecipe = getCurrentRecipe(); @@ -131,7 +139,7 @@ public class GuiItemRecipe extends GuiScreen { ); currentRecipe.drawExtraInfo(this, mouseX, mouseY); - + super.drawScreen(mouseX, mouseY, partialTicks); for (RecipeSlot slot : slots) { if (isWithinRect(mouseX, mouseY, slot.getX(this), slot.getY(this), SLOT_SIZE, SLOT_SIZE)) { if (slot.getItemStack() == null) continue; @@ -292,6 +300,18 @@ public class GuiItemRecipe extends GuiScreen { } } + public void changeRecipe(int tabIndex, int recipeIndex) { + buttonList.removeAll(getCurrentRecipe().getExtraButtons(this)); + currentTab = tabIndex; + currentIndex = recipeIndex; + buttonList.addAll(getCurrentRecipe().getExtraButtons(this)); + } + + @Override + protected void actionPerformed(GuiButton p_actionPerformed_1_) throws IOException { + getCurrentRecipe().actionPerformed(p_actionPerformed_1_); + } + @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); @@ -310,7 +330,7 @@ public class GuiItemRecipe extends GuiScreen { BUTTON_HEIGHT ) && currentIndex > 0) { - currentIndex = currentIndex - 1; + changeRecipe(currentTab, currentIndex - 1); Utils.playPressSound(); return; } @@ -324,7 +344,7 @@ public class GuiItemRecipe extends GuiScreen { BUTTON_HEIGHT ) && currentIndex < getCurrentRecipeList().size()) { - currentIndex = currentIndex + 1; + changeRecipe(currentTab, currentIndex + 1); Utils.playPressSound(); return; } @@ -338,7 +358,7 @@ public class GuiItemRecipe extends GuiScreen { TAB_SIZE_X, TAB_SIZE_Y )) { - currentTab = i; + changeRecipe(i, currentIndex); Utils.playPressSound(); return; } @@ -349,10 +369,14 @@ public class GuiItemRecipe extends GuiScreen { ItemStack itemStack = slot.getItemStack(); if (mouseButton == 0) { manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack)); + return; } else if (mouseButton == 1) { manager.displayGuiItemUsages(manager.getInternalNameForItem(itemStack)); + return; } } } + + currentRecipe.mouseClicked(this, mouseX, mouseY, mouseButton); } } |
