aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/features
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-07-20 21:49:59 +0900
committersyeyoung <cyong06@naver.com>2021-07-20 21:49:59 +0900
commitaa804403a1dcc8f9b36672e0e56e591e810147b3 (patch)
treedbfbda2b57c23da17791031507a8693fb7313b0e /src/main/java/kr/syeyoung/dungeonsguide/features
parent82a849d7aee17d7e59397f0858a24b51b59a69a6 (diff)
downloadSkyblock-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.java56
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java36
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;
+ }
}