From 9e4958bc965a11e9484edd9b1eb3128bbf229ab4 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Sun, 20 Oct 2024 12:24:43 +0200 Subject: [PATCH] Allow resizing Coordinates widget --- .../widgets/widgets/CoordinatesWidget.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/de/shiewk/widgets/widgets/CoordinatesWidget.java b/src/main/java/de/shiewk/widgets/widgets/CoordinatesWidget.java index 3001b64..c8bf64e 100644 --- a/src/main/java/de/shiewk/widgets/widgets/CoordinatesWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/CoordinatesWidget.java @@ -9,6 +9,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; @@ -24,16 +25,24 @@ public class CoordinatesWidget extends ModWidget { new RGBAColorWidgetSetting("backgroundcolor", Text.translatable("widgets.widgets.basictext.background"), 0, 0, 0, 80), new RGBAColorWidgetSetting("textcolor", Text.translatable("widgets.widgets.basictext.textcolor"), 255, 255, 255, 255), new IntSliderWidgetSetting("width", Text.translatable("widgets.widgets.basictext.width"), 10, WIDTH, 80*3), + new IntSliderWidgetSetting("size", Text.translatable("widgets.widgets.common.sizePercent"), 25, 100, 400), new IntSliderWidgetSetting("paddingX", Text.translatable("widgets.widgets.basictext.paddingX"), 0, 5, 20), new IntSliderWidgetSetting("paddingY", Text.translatable("widgets.widgets.basictext.paddingY"), 0, 5, 20) )); } + private float size = 1f; private String textX = "X", textY = "Y", textZ = "Z"; private int txc = 0, tyc = 0, tzc = 0; @Override public void render(DrawContext context, long measuringTimeNano, TextRenderer textRenderer, int posX, int posY) { + MatrixStack matrices = context.getMatrices(); + if (size != 1f){ + matrices.push(); + matrices.translate(-(size-1) * posX, -(size-1) * posY, 0); + matrices.scale(size, size, 1); + } context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor); int y = this.paddingY; if (showX){ @@ -53,6 +62,7 @@ public class CoordinatesWidget extends ModWidget { context.drawText(textRenderer, "Z: ", posX + paddingX, posY + y, textColor, true); context.drawText(textRenderer, textZ, posX + tzc, posY + y, textColor, true); } + if (size != 1f) matrices.pop(); } @Override @@ -103,6 +113,12 @@ public class CoordinatesWidget extends ModWidget { this.paddingX = ((IntSliderWidgetSetting) settings.optionById("paddingX")).getValue(); this.paddingY = ((IntSliderWidgetSetting) settings.optionById("paddingY")).getValue(); this.width = ((IntSliderWidgetSetting) settings.optionById("width")).getValue(); + this.size = 0.01f * ((IntSliderWidgetSetting) settings.optionById("size")).getValue(); + } + + @Override + public float getScaleFactor() { + return this.size; } @Override