diff options
author | syeyoung <cyong06@naver.com> | 2021-07-20 21:49:59 +0900 |
---|---|---|
committer | syeyoung <cyong06@naver.com> | 2021-07-20 21:49:59 +0900 |
commit | aa804403a1dcc8f9b36672e0e56e591e810147b3 (patch) | |
tree | dbfbda2b57c23da17791031507a8693fb7313b0e /src/main/java/kr/syeyoung/dungeonsguide/features | |
parent | 82a849d7aee17d7e59397f0858a24b51b59a69a6 (diff) | |
download | Skyblock-Dungeons-Guide-aa804403a1dcc8f9b36672e0e56e591e810147b3.tar.gz Skyblock-Dungeons-Guide-aa804403a1dcc8f9b36672e0e56e591e810147b3.tar.bz2 Skyblock-Dungeons-Guide-aa804403a1dcc8f9b36672e0e56e591e810147b3.zip |
Popups in gui config
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/features')
-rw-r--r-- | src/main/java/kr/syeyoung/dungeonsguide/features/GuiFeature.java | 56 | ||||
-rw-r--r-- | src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java | 36 |
2 files changed, 83 insertions, 9 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/GuiFeature.java b/src/main/java/kr/syeyoung/dungeonsguide/features/GuiFeature.java index d878c28b..ceb7ec69 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/features/GuiFeature.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/features/GuiFeature.java @@ -19,24 +19,31 @@ package kr.syeyoung.dungeonsguide.features; import com.google.gson.JsonObject; +import kr.syeyoung.dungeonsguide.config.guiconfig.GuiConfig; +import kr.syeyoung.dungeonsguide.config.guiconfig.GuiGuiLocationConfig; import kr.syeyoung.dungeonsguide.config.types.GUIRectangle; import kr.syeyoung.dungeonsguide.config.types.TypeConverterRegistry; import kr.syeyoung.dungeonsguide.features.listener.ScreenRenderListener; -import kr.syeyoung.dungeonsguide.gui.elements.MTooltip; +import kr.syeyoung.dungeonsguide.features.text.TextHUDFeature; +import kr.syeyoung.dungeonsguide.gui.MPanel; +import kr.syeyoung.dungeonsguide.gui.elements.*; import lombok.AccessLevel; 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.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL14; -import org.w3c.dom.css.Rect; -import javax.sound.midi.MidiEvent; import java.awt.*; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; @Getter public abstract class GuiFeature extends AbstractFeature implements ScreenRenderListener { @@ -114,7 +121,44 @@ public abstract class GuiFeature extends AbstractFeature implements ScreenRender return object; } - public MTooltip getTooltipForEditor() { - return null; + public List<MPanel> getTooltipForEditor(GuiGuiLocationConfig guiGuiLocationConfig) { + ArrayList<MPanel> mPanels = new ArrayList<>(); + mPanels.add(new MLabel(){ + { + setText(getName()); + } + + @Override + public Dimension getPreferredSize() { + return new Dimension(Minecraft.getMinecraft().fontRendererObj.getStringWidth(getName()), 30); + } + }); + mPanels.add(new MButton() { + { + setText("Edit"); + setOnActionPerformed(() -> { + GuiScreen guiScreen = guiGuiLocationConfig.getBefore(); + if (guiScreen == null) { + guiScreen = new GuiConfig(); + } + Minecraft.getMinecraft().displayGuiScreen(guiScreen); + if (guiScreen instanceof GuiConfig) { + ((GuiConfig) guiScreen).getTabbedPane().setCurrentPage(getEditRoute((GuiConfig) guiScreen)); + } + }); + } + + @Override + public Dimension getPreferredSize() { + return new Dimension(150,30); + } + }); + mPanels.add(new MPassiveLabelAndElement("Enabled", new MToggleButton() {{ + setEnabled(GuiFeature.this.isEnabled()); + setOnToggle(() ->{ + GuiFeature.this.setEnabled(isEnabled()); + }); } + })); + return mPanels; } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java b/src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java index 463e1b2f..9ee1814c 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java @@ -21,12 +21,17 @@ package kr.syeyoung.dungeonsguide.features.text; import com.google.common.base.Supplier; import kr.syeyoung.dungeonsguide.config.guiconfig.ConfigPanelCreator; import kr.syeyoung.dungeonsguide.config.guiconfig.GuiConfig; +import kr.syeyoung.dungeonsguide.config.guiconfig.GuiGuiLocationConfig; import kr.syeyoung.dungeonsguide.config.guiconfig.PanelDefaultParameterConfig; import kr.syeyoung.dungeonsguide.config.types.AColor; import kr.syeyoung.dungeonsguide.features.AbstractFeature; import kr.syeyoung.dungeonsguide.features.FeatureParameter; import kr.syeyoung.dungeonsguide.features.GuiFeature; import kr.syeyoung.dungeonsguide.gui.MPanel; +import kr.syeyoung.dungeonsguide.gui.elements.MFloatSelectionButton; +import kr.syeyoung.dungeonsguide.gui.elements.MLabelAndElement; +import kr.syeyoung.dungeonsguide.gui.elements.MPassiveLabelAndElement; +import kr.syeyoung.dungeonsguide.gui.elements.MToggleButton; import kr.syeyoung.dungeonsguide.utils.RenderUtils; import lombok.AllArgsConstructor; import lombok.Data; @@ -45,9 +50,8 @@ public abstract class TextHUDFeature extends GuiFeature implements StyledTextPro this.parameters.put("textStylesNEW", new FeatureParameter<List<TextStyle>>("textStylesNEW", "", "", new ArrayList<TextStyle>(), "list_textStyle")); this.parameters.put("alignRight", new FeatureParameter<Boolean>("alignRight", "Align Right", "Align text to right", false, "boolean")); this.parameters.put("alignCenter", new FeatureParameter<Boolean>("alignCenter", "Align Center", "Align text to center (overrides alignright)", false, "boolean")); - if (!doesScaleWithHeight()) { - this.parameters.put("scale", new FeatureParameter<Float>("scale", "Scale", "Scale", 1.0f, "float")); - } + this.parameters.put("scale", new FeatureParameter<Float>("scale", "Scale", "Scale", 1.0f, "float")); + } @Override @@ -140,4 +144,30 @@ public abstract class TextHUDFeature extends GuiFeature implements StyledTextPro }); return "base." + getKey() ; } + + @Override + public List<MPanel> getTooltipForEditor(GuiGuiLocationConfig guiGuiLocationConfig) { + List<MPanel> mPanels = super.getTooltipForEditor(guiGuiLocationConfig); + mPanels.add(new MPassiveLabelAndElement("Align Right", new MToggleButton() {{ + setEnabled(TextHUDFeature.this.<Boolean>getParameter("alignRight").getValue()); + setOnToggle(() ->{ + TextHUDFeature.this.<Boolean>getParameter("alignRight").setValue(isEnabled()); + }); } + })); + mPanels.add(new MPassiveLabelAndElement("Align Center", new MToggleButton() {{ + setEnabled(TextHUDFeature.this.<Boolean>getParameter("alignCenter").getValue()); + setOnToggle(() ->{ + TextHUDFeature.this.<Boolean>getParameter("alignCenter").setValue(isEnabled()); + }); } + })); + if (!doesScaleWithHeight()) { + mPanels.add(new MPassiveLabelAndElement("Scale", new MFloatSelectionButton(TextHUDFeature.this.<Float>getParameter("scale").getValue()) {{ + setOnUpdate(() ->{ + TextHUDFeature.this.<Float>getParameter("scale").setValue(this.getData()); + }); } + })); + } + + return mPanels; + } } |