diff --git a/src/main/java/org/saturnclient/modules/mods/Coordinates.java b/src/main/java/org/saturnclient/modules/mods/Coordinates.java index dc9562d..abebd97 100644 --- a/src/main/java/org/saturnclient/modules/mods/Coordinates.java +++ b/src/main/java/org/saturnclient/modules/mods/Coordinates.java @@ -13,6 +13,7 @@ import net.minecraft.util.math.Vec3d; public class Coordinates extends Module implements HudMod { private static Property enabled = Property.bool(false); + private static Property displayMethod = Property.select(0, "Flat", "Flat annotated", "Newline", "Newline annotated"); private static ModDimensions dimensions = new ModDimensions(40, 18); public Coordinates() { @@ -21,25 +22,40 @@ public class Coordinates extends Module implements HudMod { .version("v0.1.0") .tags("Utility"), enabled.named("Enabled"), + displayMethod.named("Display Method"), dimensions.prop() ); } @Override public void renderDummy(RenderScope scope) { - String text = String.format("X: %.0f Y: %.0f Z: %.0f", 532, 69, 253); - scope.drawText(text, - 0, 0, dimensions.font.value, dimensions.fgColor.value); - dimensions.width = Fonts.getWidth(text, dimensions.font.value); + renderCoords(532, 69, 253, scope); } @Override public void renderHud(RenderScope scope) { Vec3d pos = SaturnClient.client.player.getPos(); - String text = String.format("X: %.0f Y: %.0f Z: %.0f", pos.x, pos.y, pos.z); + renderCoords((int) pos.x, (int) pos.y, (int) pos.z, scope); + } + + public void renderCoords(int x, int y, int z, RenderScope scope) { + String f = "%d %d %d"; // Flat + switch (displayMethod.value) { + case 1: // Flat annotated + f = "X: %d Y: %d Z: %d"; + break; + case 2: // Newline + f = "%d\n%d\n%d"; + break; + case 3: // Newline annotated + f = "X: %d\nY: %d\nZ: %d"; + break; + } + String text = String.format(f, x, y, z); scope.drawText(text, 0, 0, dimensions.font.value, dimensions.fgColor.value); dimensions.width = Fonts.getWidth(text, dimensions.font.value); + dimensions.height = 18 * text.split("\n").length; } @Override diff --git a/src/main/java/org/saturnclient/ui2/resources/Fonts.java b/src/main/java/org/saturnclient/ui2/resources/Fonts.java index 13786c5..5233f45 100644 --- a/src/main/java/org/saturnclient/ui2/resources/Fonts.java +++ b/src/main/java/org/saturnclient/ui2/resources/Fonts.java @@ -27,10 +27,14 @@ public class Fonts { } public static int getWidth(String text, int font) { + int w = 0; + for (String line : text.split("\n")) { + w = Math.max(w, getWidth(line, getFont(font))); + } if (font == 0) { - return getWidth(text, getFont(font)) * 2; + return w * 2; } else { - return getWidth(text, getFont(font)); + return w; } }