aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-01-01 14:24:06 +0900
committersyeyoung <cyong06@naver.com>2021-01-01 14:24:06 +0900
commitbe44a7665e4982934998020d3bb930be25a50c25 (patch)
tree62a8ba38bf5dccf98eec1876f1d3267bf161bca0 /src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig
parenta09e7553a93a177df7a6a3c7db5a1383b08a2416 (diff)
downloadSkyblock-Dungeons-Guide-be44a7665e4982934998020d3bb930be25a50c25.tar.gz
Skyblock-Dungeons-Guide-be44a7665e4982934998020d3bb930be25a50c25.tar.bz2
Skyblock-Dungeons-Guide-be44a7665e4982934998020d3bb930be25a50c25.zip
gui glitch fix and such
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/GuiGuiLocationConfig.java13
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/PanelDelegate.java84
2 files changed, 72 insertions, 25 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/GuiGuiLocationConfig.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/GuiGuiLocationConfig.java
index 75021e66..f7660788 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/GuiGuiLocationConfig.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/GuiGuiLocationConfig.java
@@ -6,7 +6,6 @@ import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.features.GuiFeature;
import kr.syeyoung.dungeonsguide.roomedit.MPanel;
import kr.syeyoung.dungeonsguide.roomedit.elements.MButton;
-import kr.syeyoung.dungeonsguide.roomedit.elements.MTabbedPane;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
@@ -16,8 +15,6 @@ import org.lwjgl.opengl.GL11;
import java.awt.*;
import java.io.IOException;
-import java.util.List;
-import java.util.Map;
public class GuiGuiLocationConfig extends GuiScreen {
@@ -25,15 +22,17 @@ public class GuiGuiLocationConfig extends GuiScreen {
public GuiGuiLocationConfig() {
for (AbstractFeature feature : FeatureRegistry.getFeatureList()) {
- if (feature instanceof GuiFeature) {
+ if (feature instanceof GuiFeature && feature.isEnabled()) {
mainPanel.add(new PanelDelegate((GuiFeature) feature));
}
}
+
+ mainPanel.setBackgroundColor(new Color(0,0,0, 60));
{
MButton button = new MButton() {
@Override
public void resize(int parentWidth, int parentHeight) {
- setBounds(new Rectangle(parentWidth-100,parentHeight-30,100,30));
+ setBounds(new Rectangle(parentWidth-50,parentHeight-20,50,20));
}
};
button.setText("back");
@@ -59,10 +58,10 @@ public class GuiGuiLocationConfig extends GuiScreen {
ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft());
GL11.glPushMatrix();
- GlStateManager.pushAttrib();
+ GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
GlStateManager.color(0,0,0,0);
mainPanel.render0(scaledResolution, new Point(0,0), new Rectangle(0,0,scaledResolution.getScaledWidth(),scaledResolution.getScaledHeight()), mouseX, mouseY, mouseX, mouseY, partialTicks);
- GlStateManager.popAttrib();
+ GL11.glPopAttrib();
GL11.glPopMatrix();
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/PanelDelegate.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/PanelDelegate.java
index fd8b3f25..2e6ca8be 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/PanelDelegate.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/PanelDelegate.java
@@ -3,6 +3,7 @@ package kr.syeyoung.dungeonsguide.config.guiconfig;
import kr.syeyoung.dungeonsguide.features.GuiFeature;
import kr.syeyoung.dungeonsguide.roomedit.MPanel;
import net.minecraft.client.gui.Gui;
+import org.lwjgl.opengl.GL11;
import org.w3c.dom.css.Rect;
import java.awt.*;
@@ -20,28 +21,30 @@ public class PanelDelegate extends MPanel {
@Override
public void render(int absMousex, int absMousey, int relMouseX, int relMouseY, float partialTicks, Rectangle scissor) {
+ GL11.glPushMatrix();
guiFeature.drawDemo(partialTicks);
+ GL11.glPopMatrix();
- Gui.drawRect(0,0, 3, 3, 0x55777777);
- Gui.drawRect(0, getBounds().height - 3, 3, 3, 0x55777777);
- Gui.drawRect(getBounds().width - 3,0, 3, 3, 0x55777777);
- Gui.drawRect(getBounds().width - 3,getBounds().height - 3, 3, 3, 0x55777777);
+ Gui.drawRect(0,0, 3, 3, 0xFFBBBBBB);
+ Gui.drawRect(0, getBounds().height - 3, 3, getBounds().height, 0xFFBBBBBB);
+ Gui.drawRect(getBounds().width - 3,0, getBounds().width, 3, 0xFFBBBBBB);
+ Gui.drawRect(getBounds().width - 3,getBounds().height - 3, getBounds().width, getBounds().height, 0xFFBBBBBB);
if (lastAbsClip.contains(absMousex, absMousey)) {
if (relMouseX < 3 && relMouseY < 3) {
Gui.drawRect(0,0, 3, 3, 0x55FFFFFF);
} else if (relMouseX < 3 && relMouseY > getBounds().height - 3) {
- Gui.drawRect(0, getBounds().height - 3, 3, 3, 0x55FFFFFF);
- } else if (relMouseX > getBounds().width - 3 && relMouseY < getBounds().height - 3) {
- Gui.drawRect(getBounds().width - 3,getBounds().height - 3, 3, 3, 0x55FFFFFF);
+ Gui.drawRect(0, getBounds().height - 3, 3, getBounds().height, 0x55FFFFFF);
+ } else if (relMouseX > getBounds().width - 3 && relMouseY > getBounds().height - 3) {
+ Gui.drawRect(getBounds().width - 3,getBounds().height - 3, getBounds().width, getBounds().height, 0x55FFFFFF);
} else if (relMouseX > getBounds().width - 3 && relMouseY < 3) {
- Gui.drawRect(getBounds().width - 3,0, 3, 3, 0x55FFFFFF);
- } else {
+ Gui.drawRect(getBounds().width - 3,0, getBounds().width, 3, 0x55FFFFFF);
+ } else if (selectedPart == -2){
Gui.drawRect(0,0, getBounds().width, getBounds().height, 0x55FFFFFF);
}
}
}
- private int selectedPart = 0;
+ private int selectedPart = -2;
private int lastX = 0;
private int lastY = 0;
@@ -54,7 +57,7 @@ public class PanelDelegate extends MPanel {
selectedPart = 0;
} else if (relMouseX < 3 && relMouseY > getBounds().height - 3) {
selectedPart = 2;
- } else if (relMouseX > getBounds().width - 3 && relMouseY < getBounds().height - 3) {
+ } else if (relMouseX > getBounds().width - 3 && relMouseY > getBounds().height - 3) {
selectedPart = 3;
} else if (relMouseX > getBounds().width - 3 && relMouseY < 3) {
selectedPart = 1;
@@ -67,22 +70,46 @@ public class PanelDelegate extends MPanel {
@Override
public void mouseReleased(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int state) {
- selectedPart = 0;
+ if (selectedPart >= -1) {
+ int minWidth;
+ int minHeight;
+ if (guiFeature.isKeepRatio()) {
+ minHeight = (int) Math.max(10, 10 / guiFeature.getDefaultRatio());
+ minWidth = (int) (guiFeature.getDefaultRatio() * minHeight);
+ } else {
+ minWidth = 10;
+ minHeight = 10;
+ }
+ Rectangle rectangle = guiFeature.getFeatureRect().getBounds();
+ if (rectangle.width < minWidth || rectangle.height < minHeight) {
+ rectangle.width = minWidth;
+ rectangle.height= minHeight;
+ }
+
+ if (rectangle.x < 0) rectangle.x = 0;
+ if (rectangle.y < 0) rectangle.y = 0;
+
+ guiFeature.setFeatureRect(rectangle);
+ }
+
+ selectedPart = -2;
+
+
}
@Override
public void mouseClickMove(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int clickedMouseButton, long timeSinceLastClick) {
int dx = absMouseX - lastX;
int dy = absMouseY - lastY;
- if (selectedPart > 0) {
+ if (selectedPart >= 0) {
boolean revChangeX = (selectedPart & 0x1) == 0;
boolean revChangeY = (selectedPart & 0x2) == 0;
Rectangle rectangle = guiFeature.getFeatureRect().getBounds();
int prevWidth = rectangle.width;
int prevHeight= rectangle.height;
- rectangle.width = prevWidth + dx;
- rectangle.height = prevHeight + dy;
+ rectangle.width = prevWidth + (revChangeX ? -1 : 1) * dx;
+ rectangle.height = prevHeight + (revChangeY ? - 1: 1 ) * dy;
if (guiFeature.isKeepRatio()) {
double ratio = guiFeature.getDefaultRatio();
@@ -92,22 +119,43 @@ public class PanelDelegate extends MPanel {
int width2 = (int) (rectangle.height * ratio);
int height2 = rectangle.height;
- if (width1 * height1 < width2 * height2) {
+ if (ratio >= 1) {
rectangle.width = width1;
rectangle.height = height1;
} else {
rectangle.width = width2;
- rectangle.height= height2;
+ rectangle.height = height2;
}
}
- if (revChangeX) rectangle.x -= (rectangle.width - prevWidth);
+
+
+ if (revChangeX) rectangle.x -= (rectangle.width - prevWidth );
if (revChangeY) rectangle.y -= (rectangle.height - prevHeight);
+ lastX = absMouseX;
+ lastY = absMouseY;
+
+ if (rectangle.height < 0) {
+ rectangle.height = -rectangle.height;
+ rectangle.y -= rectangle.height;
+ selectedPart = selectedPart ^ 0x2;
+ lastY += revChangeY ? 3 : 3;
+ }
+
+ if (rectangle.width < 0) {
+ rectangle.width = -rectangle.width;
+ rectangle.x -= rectangle.width;
+ selectedPart = selectedPart ^ 0x1;
+ lastX += revChangeX ? 3 : 3;
+ }
+
guiFeature.setFeatureRect(rectangle);
} else if (selectedPart == -1){
Rectangle rectangle = guiFeature.getFeatureRect().getBounds();
rectangle.translate(dx, dy);
guiFeature.setFeatureRect(rectangle);
+ lastX = absMouseX;
+ lastY = absMouseY;
}
}
}