aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java
diff options
context:
space:
mode:
authorsyeyoung <cyoung06@naver.com>2022-05-21 21:18:14 +0900
committersyeyoung <cyoung06@naver.com>2022-05-21 21:28:52 +0900
commit20dd3f99a7b139b5848128246c622fd9cfefa478 (patch)
tree78e5f84ad22fd53876d488f6b58c3528aebe6501 /src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java
parent50de034c046c4ddea033b73793c8825ecb5bb86f (diff)
downloadSkyblock-Dungeons-Guide-20dd3f99a7b139b5848128246c622fd9cfefa478.tar.gz
Skyblock-Dungeons-Guide-20dd3f99a7b139b5848128246c622fd9cfefa478.tar.bz2
Skyblock-Dungeons-Guide-20dd3f99a7b139b5848128246c622fd9cfefa478.zip
- Project separation
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java214
1 files changed, 0 insertions, 214 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java
deleted file mode 100755
index 4ad6bd45..00000000
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MNavigatingPane.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
- * Copyright (C) 2021 cyoung06
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program 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 Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-
-package kr.syeyoung.dungeonsguide.gui.elements;
-
-import com.google.common.base.Function;
-import kr.syeyoung.dungeonsguide.gui.MPanel;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
-import lombok.Getter;
-import lombok.Setter;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.FontRenderer;
-import net.minecraft.client.gui.Gui;
-import net.minecraft.client.renderer.GlStateManager;
-import org.lwjgl.opengl.GL11;
-import org.lwjgl.opengl.GL14;
-
-import java.awt.*;
-import java.util.*;
-import java.util.List;
-
-public class MNavigatingPane extends MPanel {
-
- private final Map<String, MPanel> pages = new HashMap<String, MPanel>();
- private final List<MTabButton> bookMarks = new ArrayList<MTabButton>();
-
- @Getter
- @Setter
- private Function<String, MPanel> pageGenerator;
-
- @Getter
- private String currentPage = "";
-
- public void setCurrentPage(String currentPage) {
- this.history.push(this.currentPage);
- this.currentPage = currentPage;
- }
-
- @Getter
- private Color background2;
-
- private final Stack<String> history = new Stack<String>();
-
- private final MButton back = new MButton();
-
- public MNavigatingPane() {
- back.setText("<");
- back.setOnActionPerformed(new Runnable() {
- @Override
- public void run() {
- if (history.size() > 0)
- currentPage = history.pop();
- }
- });
- back.setBackgroundColor(Color.darkGray);
- back.setBounds(new Rectangle(3,18,12,12));
- add(back);
- }
-
- public void setBackground2(Color background2) {
- this.background2 = background2;
- for (MPanel value : pages.values()) {
- value.setBackgroundColor(background2);
- }
- }
-
- @Override
- public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) {
-
- Gui.drawRect(0, 15, getBounds().width, getBounds().height, 0xFF444444);
- Gui.drawRect(1, 16, getBounds().width-1, getBounds().height-1, background2 != null ? background2.getRGB() : 0);
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
-
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- fr.drawString(currentPage.replace(".", " > "), 20, 20, 0xFFFFFFFF);
-
- }
-
- public void addBookmark(String name, String addr) {
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- MTabButton button = new MTabButton(this, name, addr);
- int totalX = 0;
- for (MTabButton button1:bookMarks)
- totalX += button1.getBounds().width;
- button.setBounds(new Rectangle(totalX, 0, Math.max(25, fr.getStringWidth(name) + 6), 15));
- bookMarks.add(button);
- if (currentPage.isEmpty())
- currentPage = addr;
- }
- public void addBookmarkRunnable(String name, final Runnable toRun) {
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- MTabButton button = new MTabButton(this, name, null) {
- @Override
- public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {
- if (lastAbsClip.contains(absMouseX, absMouseY)) {
- toRun.run();
- }
- }
- };
- int totalX = 0;
- for (MTabButton button1:bookMarks)
- totalX += button1.getBounds().width;
- button.setBounds(new Rectangle(totalX, 0, Math.max(25, fr.getStringWidth(name) + 6), 15));
- bookMarks.add(button);
- }
-
- @Override
- public List<MPanel> getChildComponents() {
- ArrayList<MPanel> dynamic = new ArrayList<MPanel>(bookMarks);
- if (!pages.containsKey(currentPage)) {
- MPanel panel = pageGenerator.apply(currentPage);
- MPanel panel2 = new MPanel() ;
- if (panel != null)
- panel2.add(panel);
- panel2.setBackgroundColor(background2);
- pages.put(currentPage, panel2);
- panel2.setBounds(new Rectangle(1,30,getBounds().width-2, getBounds().height-31));
- panel2.setParent(this);
- }
- dynamic.add(pages.get(currentPage));
- dynamic.add(back);
- return dynamic;
- }
-
- @Override
- public void resize(int parentWidth, int parentHeight) {
- this.setBounds(new Rectangle(0,0,parentWidth, parentHeight));
- for (MPanel ma:pages.values())
- ma.setBounds(new Rectangle(1,30,getBounds().width-2, getBounds().height-31));
- }
-
- @Override
- public void setBounds(Rectangle bounds) {
- if (bounds == null) return;
- this.bounds.x = bounds.x;
- this.bounds.y = bounds.y;
- this.bounds.width = bounds.width;
- this.bounds.height = bounds.height;
- }
-
- @Getter
- @Setter
- public static class MTabButton extends MPanel {
- private String text;
- private String address;
-
- private Color foreground = Color.white;
- private Color hover = new Color(154, 154, 154, 255);
- private Color clicked = new Color(88, 88, 88,255);
- private Color selected = new Color(111, 111, 111,255);
- private Color disabled = new Color(0,0,0);
-
- private boolean enabled = true;
-
- private MNavigatingPane tabbedPane;
-
- public MTabButton(MNavigatingPane tabbedPane, String key, String address) {
- this.tabbedPane = tabbedPane;
- this.text = key;
- this.address = address;
- }
-
- @Override
- public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle clip) {
- Dimension bounds = getSize();
-
- Color bg = null;
- if (!enabled) {
- bg = disabled;
- } else if (tabbedPane.getCurrentPage().equals(address)) {
- bg = selected;
- } else if (new Rectangle(new Point(0,0),bounds).contains(relMousex0, relMousey0)) {
- bg = hover;
- }
- Gui.drawRect(0, tabbedPane.getCurrentPage().equals(address) ? 0 : 2, getBounds().width, getBounds().height, 0xFF444444);
- if (bg != null)
- Gui.drawRect(1,tabbedPane.getCurrentPage().equals(address) ? 1 : 3,getBounds().width - 1, getBounds().height, bg.getRGB());
-
- FontRenderer renderer = Minecraft.getMinecraft().fontRendererObj;
- int width = renderer.getStringWidth(text);
- int x = (getBounds().width - width) / 2;
- int y = (getBounds().height - 3 - renderer.FONT_HEIGHT) / 2 + 3;
-
- GlStateManager.enableBlend();
- GL14.glBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- renderer.drawString(text, x,y, foreground.getRGB());
- }
-
- @Override
- public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {
- if (lastAbsClip.contains(absMouseX, absMouseY)) {
- tabbedPane.setCurrentPage(address);
- }
- }
- }
-}