From 376229d97def549ff577e37cbf1b3fa2d9dd255b Mon Sep 17 00:00:00 2001 From: Lorenz Date: Tue, 2 Aug 2022 09:42:44 +0200 Subject: renamed the overview logic --- .../miscgui/minionhelper/Minion.java | 10 +++- .../minionhelper/render/MinionHelperOverlay.java | 59 +++++++++++----------- .../render/MinionHelperOverlayHover.java | 20 ++++---- .../render/renderables/OverviewLine.java | 25 +++++++++ .../render/renderables/OverviewText.java | 42 +++++++++++++++ .../render/renderables/RenderableObject.java | 23 --------- .../render/renderables/RenderableText.java | 40 --------------- 7 files changed, 115 insertions(+), 104 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewLine.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewText.java delete mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableObject.java delete mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableText.java (limited to 'src/main/java/io') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java index e712b134..27e7ac22 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/Minion.java @@ -19,14 +19,15 @@ package io.github.moulberry.notenoughupdates.miscgui.minionhelper; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.RenderableObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewLine; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.requirements.MinionRequirement; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.sources.MinionSource; import java.util.ArrayList; import java.util.List; -public class Minion extends RenderableObject { +public class Minion extends OverviewLine { private final String internalName; private final int tier; private String displayName; @@ -93,4 +94,9 @@ public class Minion extends RenderableObject { public void setMeetRequirements(boolean meetRequirements) { this.meetRequirements = meetRequirements; } + + @Override + public void onClick() { + NotEnoughUpdates.INSTANCE.manager.displayGuiItemRecipe(internalName); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlay.java index cd4762f1..396bd49d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlay.java @@ -24,9 +24,8 @@ import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.miscgui.TrophyRewardOverlay; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.Minion; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.MinionHelperManager; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.RenderableObject; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.RenderableText; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.sources.MinionSource; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewLine; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewText; import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.Utils; @@ -45,6 +44,7 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -53,8 +53,8 @@ public class MinionHelperOverlay { private final MinionHelperManager manager; private final MinionHelperOverlayHover hover; - private LinkedHashMap cacheRenderMapShift = null; - private LinkedHashMap cacheRenderMapNoShift = null; + private LinkedHashMap cacheRenderMapShift = null; + private LinkedHashMap cacheRenderMapNoShift = null; public MinionHelperOverlay(MinionHelperManager manager) { this.manager = manager; @@ -90,7 +90,7 @@ public class MinionHelperOverlay { manager.getApi().setNotifyNoCollectionApi(false); } - LinkedHashMap renderMap = getRenderMap(); + LinkedHashMap renderMap = getRenderMap(); hover.renderHover(renderMap); render(event, renderMap); @@ -102,15 +102,10 @@ public class MinionHelperOverlay { if (!manager.isReadyToUse()) return; if (!Mouse.getEventButtonState()) return; - RenderableObject mouseObject = getObjectOverMouse(getRenderMap()); - - if (mouseObject != null) { - if (mouseObject instanceof Minion) { - - event.setCanceled(true); - Minion minion = ((Minion) mouseObject); - NotEnoughUpdates.INSTANCE.manager.displayGuiItemRecipe(minion.getInternalName()); - } + OverviewLine overviewLine = getObjectOverMouse(getRenderMap()); + if (overviewLine != null) { + overviewLine.onClick(); + event.setCanceled(true); } } @@ -127,7 +122,7 @@ public class MinionHelperOverlay { return prices; } - private void render(GuiScreenEvent.BackgroundDrawnEvent event, Map renderMap) { + private void render(GuiScreenEvent.BackgroundDrawnEvent event, Map renderMap) { Minecraft minecraft = Minecraft.getMinecraft(); if (!(Minecraft.getMinecraft().currentScreen instanceof GuiChest)) return; Gui gui = event.gui; @@ -143,12 +138,12 @@ public class MinionHelperOverlay { FontRenderer fontRendererObj = minecraft.fontRendererObj; int extra = 0; - for (Map.Entry entry : renderMap.entrySet()) { + for (Map.Entry entry : renderMap.entrySet()) { String line = entry.getKey(); - RenderableObject renderableObject = entry.getValue(); + OverviewLine overviewLine = entry.getValue(); String prefix = ""; - if (renderableObject instanceof Minion) { - Minion minion = (Minion) renderableObject; + if (overviewLine instanceof Minion) { + Minion minion = (Minion) overviewLine; if (minion == hover.getLastHovered()) { prefix = "§e"; } @@ -158,7 +153,7 @@ public class MinionHelperOverlay { } } - private LinkedHashMap getRenderMap() { + private LinkedHashMap getRenderMap() { boolean shift = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT); if (!shift) { if (cacheRenderMapNoShift != null) return cacheRenderMapNoShift; @@ -167,19 +162,25 @@ public class MinionHelperOverlay { } Map prices = getMissing(shift); - LinkedHashMap renderMap = new LinkedHashMap<>(); + LinkedHashMap renderMap = new LinkedHashMap<>(); if (prices.isEmpty()) { - renderMap.put("all minions collected!", new RenderableText("You have all the minions available collected! :)")); + renderMap.put("all minions collected!", new OverviewText(Arrays.asList("No minions to craft avaliable!"), () -> { + //TODO formatting + Utils.addChatMessage("you can't craft anything rn!"); + + })); } else { renderMap.put( "To craft: " + prices.size(), - //TODO formulierung - new RenderableText("you can craft that many more minions!") + //TODO formatting + new OverviewText(Arrays.asList("You can craft " + prices.size() + " more minions!"), () -> { + Utils.addChatMessage("craft them now!"); + }) ); int i = 0; //TODO change - int max = 20; + int max = 9; Map sort = TrophyRewardOverlay.sortByValue(prices); for (Minion minion : sort.keySet()) { @@ -213,7 +214,7 @@ public class MinionHelperOverlay { return renderMap; } - RenderableObject getObjectOverMouse(LinkedHashMap renderMap) { + OverviewLine getObjectOverMouse(LinkedHashMap renderMap) { GuiScreen gui = Minecraft.getMinecraft().currentScreen; if (!(gui instanceof GuiChest)) return null; @@ -231,11 +232,11 @@ public class MinionHelperOverlay { int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; int index = 0; - for (RenderableObject renderableObject : renderMap.values()) { + for (OverviewLine overviewLine : renderMap.values()) { if (mouseX > x && mouseX < x + 130 && mouseY > y + index && mouseY < y + 13 + index) { - return renderableObject; + return overviewLine; } index += 10; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlayHover.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlayHover.java index c7ae6b53..58c735e2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlayHover.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/MinionHelperOverlayHover.java @@ -22,8 +22,8 @@ package io.github.moulberry.notenoughupdates.miscgui.minionhelper.render; import com.google.common.collect.ArrayListMultimap; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.Minion; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.MinionHelperManager; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.RenderableObject; -import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.RenderableText; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewLine; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables.OverviewText; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.requirements.CollectionRequirement; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.requirements.MinionRequirement; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.sources.CraftingSource; @@ -53,7 +53,7 @@ public class MinionHelperOverlayHover { this.manager = manager; } - void renderHover(LinkedHashMap renderMap) { + void renderHover(LinkedHashMap renderMap) { lastHovered = null; if (!(Minecraft.getMinecraft().currentScreen instanceof GuiChest)) return; @@ -64,7 +64,7 @@ public class MinionHelperOverlayHover { int mouseX = Mouse.getX() * scaledWidth / Minecraft.getMinecraft().displayWidth; int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; - RenderableObject mouseObject = overlay.getObjectOverMouse(renderMap); + OverviewLine mouseObject = overlay.getObjectOverMouse(renderMap); if (mouseObject != null) { GlStateManager.pushMatrix(); GlStateManager.scale(2f / scaledresolution.getScaleFactor(), 2f / scaledresolution.getScaleFactor(), 1); @@ -78,15 +78,15 @@ public class MinionHelperOverlayHover { } } - private List getTooltip(RenderableObject renderableObject) { + private List getTooltip(OverviewLine overviewLine) { List lines = new ArrayList<>(); - if (renderableObject instanceof RenderableText) { - RenderableText renderableText = (RenderableText) renderableObject; - lines.addAll(renderableText.getLines()); - } else if (renderableObject instanceof Minion) { + if (overviewLine instanceof OverviewText) { + OverviewText overviewText = (OverviewText) overviewLine; + lines.addAll(overviewText.getLines()); + } else if (overviewLine instanceof Minion) { - Minion minion = (Minion) renderableObject; + Minion minion = (Minion) overviewLine; MinionSource minionSource = minion.getMinionSource(); lastHovered = minion; String displayName = minion.getDisplayName(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewLine.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewLine.java new file mode 100644 index 00000000..85d682b3 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewLine.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables; + +public abstract class OverviewLine { + + public abstract void onClick(); +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewText.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewText.java new file mode 100644 index 00000000..499ca758 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/OverviewText.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables; + +import java.util.List; + +public class OverviewText extends OverviewLine { + + private final Runnable clickRunnable; + private final List lines; + + public OverviewText(List line, Runnable clickRunnable) { + this.lines = line; + this.clickRunnable = clickRunnable; + } + + public List getLines() { + return lines; + } + + @Override + public void onClick() { + clickRunnable.run(); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableObject.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableObject.java deleted file mode 100644 index 2ba6ca76..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableObject.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2022 NotEnoughUpdates contributors - * - * This file is part of NotEnoughUpdates. - * - * NotEnoughUpdates is free software: you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * NotEnoughUpdates is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with NotEnoughUpdates. If not, see . - */ - -package io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables; - -public abstract class RenderableObject { -} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableText.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableText.java deleted file mode 100644 index b2269b4f..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/render/renderables/RenderableText.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 NotEnoughUpdates contributors - * - * This file is part of NotEnoughUpdates. - * - * NotEnoughUpdates is free software: you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * NotEnoughUpdates is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with NotEnoughUpdates. If not, see . - */ - -package io.github.moulberry.notenoughupdates.miscgui.minionhelper.render.renderables; - -import java.util.Arrays; -import java.util.List; - -public class RenderableText extends RenderableObject { - - private final List lines; - - public RenderableText(List lines) { - this.lines = lines; - } - - public RenderableText(String... lines) { - this(Arrays.asList(lines)); - } - - public List getLines() { - return lines; - } -} -- cgit