aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuturemappermydud <54294576+Futuremappermydud@users.noreply.github.com>2023-07-07 21:31:19 -0400
committerFuturemappermydud <54294576+Futuremappermydud@users.noreply.github.com>2023-07-07 21:31:19 -0400
commit558bb3c1b3a52cc4a8ec3610fa88b9552a063433 (patch)
treeae747b8675d2b26abe25aa3b38ab5a4e70d486e0 /src
parenta4917d92ab77bc980b68017721adac2091a51f3e (diff)
downloadSkyblocker-558bb3c1b3a52cc4a8ec3610fa88b9552a063433.tar.gz
Skyblocker-558bb3c1b3a52cc4a8ec3610fa88b9552a063433.tar.bz2
Skyblocker-558bb3c1b3a52cc4a8ec3610fa88b9552a063433.zip
Proper Movement Menu
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java51
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java141
2 files changed, 159 insertions, 33 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java
index e888fbda..14db8d6e 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java
@@ -60,25 +60,18 @@ public class TitleContainer {
for (Title title : titlesToDraw) {
width += textRenderer.getWidth(title.text) * scale + 10;
}
- if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
- if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
- x = xPos - width / 2;
- } else {
- if (titlesToDraw.size() > 0) {
- if (titlesToDraw.size() > 0) {
- x = xPos - (textRenderer.getWidth(titlesToDraw.get(0).text) / 2 * scale);
- }
- }
+ if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
+ if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
+ x = xPos - (width / 2);
}
} else {
- if (alignment == SkyblockerConfig.Alignment.LEFT) {
+ if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
x = xPos;
- } else {
- if (titlesToDraw.size() > 0) {
- x = xPos - (textRenderer.getWidth(titlesToDraw.get(0).text) * scale);
- }
}
}
+ if(alignment == SkyblockerConfig.Alignment.LEFT || alignment == SkyblockerConfig.Alignment.RIGHT) {
+ x = xPos;
+ }
y = yPos;
for (Title title : titlesToDraw) {
@@ -86,22 +79,30 @@ public class TitleContainer {
context.getMatrices().translate(title.lastX, title.lastY, 200);
context.getMatrices().scale(scale, scale, scale);
- title.lastX = MathHelper.lerp(tickDelta * 0.5F, title.lastX, x);
+ float xToUse = 0;
+ if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
+ xToUse = alignment == SkyblockerConfig.Alignment.RIGHT ?
+ x - (textRenderer.getWidth(title.text) * scale) :
+ x;
+ } else {
+ xToUse = alignment == SkyblockerConfig.Alignment.MIDDLE ?
+ x - (textRenderer.getWidth(title.text) * scale) / 2 :
+ alignment == SkyblockerConfig.Alignment.RIGHT ?
+ x - (textRenderer.getWidth(title.text) * scale) :
+ x;
+ }
+ title.lastX = MathHelper.lerp(tickDelta * 0.5F, title.lastX, xToUse);
title.lastY = MathHelper.lerp(tickDelta * 0.5F, title.lastY, y);
if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
- switch (alignment) {
- case LEFT -> x += textRenderer.getWidth(title.text) * scale + 10;
- case RIGHT -> x -= (textRenderer.getWidth(title.text) * scale + 10);
- case MIDDLE -> x += textRenderer.getWidth(title.text) * scale + 10;
+ if (alignment == SkyblockerConfig.Alignment.MIDDLE || alignment == SkyblockerConfig.Alignment.LEFT) {
+ x += textRenderer.getWidth(title.text) * scale + 10;
}
- y = yPos;
- } else {
- switch (alignment) {
- case LEFT -> x = xPos;
- case RIGHT -> x = xPos - (textRenderer.getWidth(title.text) * scale);
- case MIDDLE -> x = xPos - ((textRenderer.getWidth(title.text) * scale));
+
+ if (alignment == SkyblockerConfig.Alignment.RIGHT) {
+ x -= textRenderer.getWidth(title.text) * scale + 10;
}
+ } else {
y += textRenderer.fontHeight * scale + 10;
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java
index 5a693ddb..41734dcb 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java
@@ -20,7 +20,7 @@ public class TitleContainerConfigScreen extends Screen {
private final Title example1 = new Title("Test1", Formatting.RED.getColorValue());
private final Title example2 = new Title("Test23", Formatting.AQUA.getColorValue());
- private final Title example3 = new Title("Testing123456", Formatting.DARK_GREEN.getColorValue());
+ private final Title example3 = new Title("Testing1234", Formatting.DARK_GREEN.getColorValue());
private int hudX = SkyblockerConfig.get().general.titleContainer.x;
private int hudY = SkyblockerConfig.get().general.titleContainer.y;
protected TitleContainerConfigScreen(Text title) {
@@ -33,17 +33,142 @@ public class TitleContainerConfigScreen extends Screen {
renderBackground(context);
TitleContainer.draw(List.of(example1, example2, example3), hudX, hudY, context, delta, true);
context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB());
- int width1 = client.textRenderer.getWidth("Press Q/E to change Alignment");
- int width2 = client.textRenderer.getWidth("Press R to change Direction");
- context.drawText(client.textRenderer, "Press Q/E to change Alignment", (width / 2) - width1 / 2, client.textRenderer.fontHeight * 2, Color.GRAY.getRGB(), true);
- context.drawText(client.textRenderer, "Press R to change Direction", (width / 2) - width2 / 2, client.textRenderer.fontHeight * 3 + 5, Color.GRAY.getRGB(), true);
+ var direction = SkyblockerConfig.get().general.titleContainer.direction;
+ var alignment = SkyblockerConfig.get().general.titleContainer.alignment;
+ int width1 = client.textRenderer.getWidth("Press Q/E to change Alignment: " + alignment.toString());
+ int width2 = client.textRenderer.getWidth("Press R to change Direction: " + direction.toString());
+ context.drawText(client.textRenderer, "Press Q/E to change Alignment: " + alignment.toString(), (width / 2) - width1 / 2, client.textRenderer.fontHeight * 2, Color.GRAY.getRGB(), true);
+ context.drawText(client.textRenderer, "Press R to change Direction: " + direction.toString(), (width / 2) - width2 / 2, client.textRenderer.fontHeight * 3 + 5, Color.GRAY.getRGB(), true);
+
+ int midWidth = getSelectionWidth() / 2;
+ int midHeight = getSelectionHeight() / 2;
+ int x1 = 0;
+ int x2 = 0;
+ int y1 = 0;
+ int y2 = 0;
+ if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
+ switch (alignment) {
+ case RIGHT:
+ x1 = hudX - midWidth * 2;
+ x2 = hudX;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case MIDDLE:
+ x1 = hudX - midWidth;
+ x2 = hudX + midWidth;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case LEFT:
+ x1 = hudX;
+ x2 = hudX + midWidth * 2;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ }
+ } else {
+ switch (alignment) {
+ case RIGHT:
+ x1 = hudX - midWidth * 2;
+ x2 = hudX;
+ y1 = hudY;
+ y2 = hudY + midHeight;
+ break;
+ case MIDDLE:
+ x1 = hudX - midWidth;
+ x2 = hudX + midWidth;
+ y1 = hudY;
+ y2 = hudY + midHeight;
+ break;
+ case LEFT:
+ x1 = hudX;
+ x2 = hudX + midWidth * 2;
+ y1 = hudY;
+ y2 = hudY + midHeight;
+ break;
+ }
+ }
+ context.drawHorizontalLine(x1, x2, y1, Color.RED.getRGB());
+ context.drawHorizontalLine(x1, x2, y2, Color.RED.getRGB());
+ context.drawVerticalLine(x1, y1, y2, Color.RED.getRGB());
+ context.drawVerticalLine(x2, y1, y2, Color.RED.getRGB());
+ }
+
+ public int getSelectionHeight()
+ {
+ int scale = (int) (3F * (SkyblockerConfig.get().general.titleContainer.titleContainerScale / 100F));
+ return SkyblockerConfig.get().general.titleContainer.direction == SkyblockerConfig.Direction.HORIZONTAL ?
+ textRenderer.fontHeight * scale :
+ (textRenderer.fontHeight + 10) * 3 * scale;
+ }
+
+ public int getSelectionWidth()
+ {
+ int scale = (int) (3F * (SkyblockerConfig.get().general.titleContainer.titleContainerScale / 100F));
+ return SkyblockerConfig.get().general.titleContainer.direction == SkyblockerConfig.Direction.HORIZONTAL ?
+ (textRenderer.getWidth("Test1") + 10 + textRenderer.getWidth("Test23") + 10 + textRenderer.getWidth("Testing1234")) * scale :
+ textRenderer.getWidth("Testing1234") * scale;
}
@Override
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) {
- if (RenderUtils.pointExistsInArea((int) mouseX, (int) mouseY, hudX - 100, hudY - 20, hudX + 110, hudY + 30) && button == 0) {
- hudX = (int) Math.max(Math.min(mouseX, this.width - 100), 110);
- hudY = (int) Math.max(Math.min(mouseY, this.height - 30), 0);
+ int midWidth = getSelectionWidth() / 2;
+ int midHeight = getSelectionHeight() / 2;
+ var direction = SkyblockerConfig.get().general.titleContainer.direction;
+ var alignment = SkyblockerConfig.get().general.titleContainer.alignment;
+ int x1 = 0;
+ int x2 = 0;
+ int y1 = 0;
+ int y2 = 0;
+ if(direction == SkyblockerConfig.Direction.HORIZONTAL) {
+ switch (alignment) {
+ case RIGHT:
+ x1 = hudX - midWidth * 2;
+ x2 = hudX;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case MIDDLE:
+ x1 = hudX - midWidth;
+ x2 = hudX + midWidth;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case LEFT:
+ x1 = hudX;
+ x2 = hudX + midWidth * 2;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ }
+ } else {
+ switch (alignment) {
+ case RIGHT:
+ x1 = hudX - midWidth * 2;
+ x2 = hudX;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case MIDDLE:
+ x1 = hudX - midWidth;
+ x2 = hudX + midWidth;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ case LEFT:
+ x1 = hudX;
+ x2 = hudX + midWidth * 2;
+ y1 = hudY + 0;
+ y2 = hudY + midHeight * 2;
+ break;
+ }
+ }
+ if (RenderUtils.pointExistsInArea((int) mouseX, (int) mouseY, x1, y1, x2, y2) && button == 0) {
+ hudX = alignment == SkyblockerConfig.Alignment.RIGHT ?
+ (int) mouseX + midWidth :
+ (int) mouseX - (midWidth / 2);
+ hudY = (int) mouseY - (midHeight);
}
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
}