aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorFuturemappermydud <54294576+Futuremappermydud@users.noreply.github.com>2023-07-08 09:33:18 -0400
committerFuturemappermydud <54294576+Futuremappermydud@users.noreply.github.com>2023-07-08 09:33:18 -0400
commit28dde248aae76db0f82df54e7757292ecb5693ea (patch)
tree9e8ea4a47880cbae55407d500578f3fee22f8cab /src/main
parent796177d64aac6c64949973a5604aedc0d1f2651f (diff)
downloadSkyblocker-28dde248aae76db0f82df54e7757292ecb5693ea.tar.gz
Skyblocker-28dde248aae76db0f82df54e7757292ecb5693ea.tar.bz2
Skyblocker-28dde248aae76db0f82df54e7757292ecb5693ea.zip
Make Some more changes
Add +/- to change scale Mouse now properly goes to center for text box Added comments to rendering code
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java34
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java22
2 files changed, 40 insertions, 16 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 c4908a73..10b2553a 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainer.java
@@ -94,62 +94,76 @@ public class TitleContainer {
var client = MinecraftClient.getInstance();
TextRenderer textRenderer = client.textRenderer;
+ // Calculate Scale to use
float scale = 3F * (SkyblockerConfig.get().general.titleContainer.titleContainerScale / 100F);
+ // Grab direction and alignment values
SkyblockerConfig.Direction direction = SkyblockerConfig.get().general.titleContainer.direction;
SkyblockerConfig.Alignment alignment = SkyblockerConfig.get().general.titleContainer.alignment;
+ // x/y refer to the starting position for the text
+ // y always starts at yPos
float x = 0;
- float y;
+ float y = yPos;
+
+ //Calculate the width of combined text
float width = 0;
for (Title title : titles) {
width += textRenderer.getWidth(title.getText()) * scale + 10;
}
- if (direction == SkyblockerConfig.Direction.HORIZONTAL) {
- if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
+
+ if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
+ if (direction == SkyblockerConfig.Direction.HORIZONTAL) {
+ //If middle aligned horizontally, start the xPosition at half of the width to the left.
x = xPos - (width / 2);
- }
- } else {
- if (alignment == SkyblockerConfig.Alignment.MIDDLE) {
+ } else {
+ //If middle aligned vertically, start at xPos, we will shift each text to the left later
x = xPos;
}
}
if (alignment == SkyblockerConfig.Alignment.LEFT || alignment == SkyblockerConfig.Alignment.RIGHT) {
+ //If left or right aligned, start at xPos, we will shift each text later
x = xPos;
}
- y = yPos;
for (Title title : titles) {
+ //Translate the matrix to the texts position and scale
context.getMatrices().push();
context.getMatrices().translate(title.lastX, title.lastY, 200);
context.getMatrices().scale(scale, scale, scale);
+ //Calculate which x the text should use
float xToUse;
if (direction == SkyblockerConfig.Direction.HORIZONTAL) {
xToUse = alignment == SkyblockerConfig.Alignment.RIGHT ?
- x - (textRenderer.getWidth(title.getText()) * scale) :
+ x - (textRenderer.getWidth(title.getText()) * scale) : //if right aligned we need the text position to be aligned on the right side.
x;
} else {
xToUse = alignment == SkyblockerConfig.Alignment.MIDDLE ?
- x - (textRenderer.getWidth(title.getText()) * scale) / 2 :
+ x - (textRenderer.getWidth(title.getText()) * scale) / 2 : //if middle aligned we need the text position to be aligned in the middle.
alignment == SkyblockerConfig.Alignment.RIGHT ?
- x - (textRenderer.getWidth(title.getText()) * scale) :
+ x - (textRenderer.getWidth(title.getText()) * scale) : //if right aligned we need the text position to be aligned on the right side.
x;
}
+ //Lerp the texts x and y variables
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) {
if (alignment == SkyblockerConfig.Alignment.MIDDLE || alignment == SkyblockerConfig.Alignment.LEFT) {
+ //Move to the right if middle or left aligned
x += textRenderer.getWidth(title.getText()) * scale + 10;
}
if (alignment == SkyblockerConfig.Alignment.RIGHT) {
+ //Move to the left if right aligned
x -= textRenderer.getWidth(title.getText()) * scale + 10;
}
} else {
+ //Y always moves by the same amount if vertical
y += textRenderer.fontHeight * scale + 10;
}
+ //Draw text
context.drawTextWithShadow(textRenderer, title.getText(), 0, 0, 0xFFFFFF);
context.getMatrices().pop();
}
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 b4f3093f..be5cc58d 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/utils/title/TitleContainerConfigScreen.java
@@ -14,6 +14,7 @@ import org.lwjgl.glfw.GLFW;
import java.awt.*;
import java.util.Set;
+import java.util.stream.Collectors;
public class TitleContainerConfigScreen extends Screen {
private final Title example1 = new Title(Text.literal("Test1").formatted(Formatting.RED));
@@ -33,9 +34,10 @@ public class TitleContainerConfigScreen extends Screen {
TitleContainer.render(context, Set.of(example1, example2, example3), hudX, hudY, delta);
SkyblockerConfig.Direction direction = SkyblockerConfig.get().general.titleContainer.direction;
SkyblockerConfig.Alignment alignment = SkyblockerConfig.get().general.titleContainer.alignment;
- context.drawCenteredTextWithShadow(client.textRenderer, "Press Q/E to change Alignment: " + alignment, width / 2, client.textRenderer.fontHeight * 2, Color.WHITE.getRGB());
- context.drawCenteredTextWithShadow(client.textRenderer, "Press R to change Direction: " + direction, width / 2, client.textRenderer.fontHeight * 3 + 5, Color.WHITE.getRGB());
- context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, client.textRenderer.fontHeight * 4 + 10, Color.GRAY.getRGB());
+ context.drawCenteredTextWithShadow(textRenderer, "Press Q/E to change Alignment: " + alignment, width / 2, textRenderer.fontHeight * 2, Color.WHITE.getRGB());
+ context.drawCenteredTextWithShadow(textRenderer, "Press R to change Direction: " + direction, width / 2, textRenderer.fontHeight * 3 + 5, Color.WHITE.getRGB());
+ context.drawCenteredTextWithShadow(textRenderer, "Press +/- to change Scale", width / 2, textRenderer.fontHeight * 4 + 10, Color.WHITE.getRGB());
+ context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, textRenderer.fontHeight * 5 + 15, Color.GRAY.getRGB());
Pair<Vector2i, Vector2i> boundingBox = getSelectionBoundingBox();
int x1 = boundingBox.getLeft().x;
@@ -101,9 +103,11 @@ public class TitleContainerConfigScreen extends Screen {
int y2 = boundingBox.getRight().y;
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);
+ hudX = switch (alignment) {
+ case LEFT ->(int) mouseX - midWidth;
+ case MIDDLE -> (int) mouseX;
+ case RIGHT -> (int) mouseX + midWidth;
+ };
hudY = (int) mouseY - (midHeight);
}
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
@@ -143,6 +147,12 @@ public class TitleContainerConfigScreen extends Screen {
case VERTICAL -> SkyblockerConfig.Direction.HORIZONTAL;
};
}
+ if (keyCode == GLFW.GLFW_KEY_EQUAL) {
+ SkyblockerConfig.get().general.titleContainer.titleContainerScale += 10;
+ }
+ if (keyCode == GLFW.GLFW_KEY_MINUS) {
+ SkyblockerConfig.get().general.titleContainer.titleContainerScale -= 10;
+ }
return super.keyPressed(keyCode, scanCode, modifiers);
}