aboutsummaryrefslogtreecommitdiff
path: root/src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java
diff options
context:
space:
mode:
authorXander <xander@isxander.dev>2022-12-09 16:31:25 +0000
committerGitHub <noreply@github.com>2022-12-09 16:31:25 +0000
commite4856a17133b0567d09cb6db3821674491d57e64 (patch)
tree0c59597708b3ea9f402ba119490537b5c18fdb93 /src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java
parente1f6d190d862dd86c251fdd5726efe99f8ec1baf (diff)
parent49ff470de36e719d5b963de405de891eca2b69d1 (diff)
downloadYetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.tar.gz
YetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.tar.bz2
YetAnotherConfigLib-e4856a17133b0567d09cb6db3821674491d57e64.zip
Merge pull request #38 from isXander/update/1.19.3
Diffstat (limited to 'src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java')
-rw-r--r--src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java b/src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java
new file mode 100644
index 0000000..2d0a99c
--- /dev/null
+++ b/src/client/java/dev/isxander/yacl/gui/TextScaledButtonWidget.java
@@ -0,0 +1,44 @@
+package dev.isxander.yacl.gui;
+
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.font.TextRenderer;
+import net.minecraft.client.gui.tooltip.Tooltip;
+import net.minecraft.client.gui.widget.ButtonWidget;
+import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.text.OrderedText;
+import net.minecraft.text.Text;
+import net.minecraft.util.math.MathHelper;
+
+public class TextScaledButtonWidget extends ButtonWidget {
+ public float textScale;
+
+ public TextScaledButtonWidget(int x, int y, int width, int height, float textScale, Text message, PressAction onPress) {
+ super(x, y, width, height, message, onPress, DEFAULT_NARRATION_SUPPLIER);
+ this.textScale = textScale;
+ }
+
+ public TextScaledButtonWidget(int x, int y, int width, int height, float textScale, Text message, PressAction onPress, Tooltip tooltip) {
+ this(x, y, width, height, textScale, message, onPress);
+ setTooltip(tooltip);
+ }
+
+ @Override
+ public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) {
+ // prevents super from rendering text
+ Text message = getMessage();
+ setMessage(Text.empty());
+
+ super.renderButton(matrices, mouseX, mouseY, delta);
+
+ setMessage(message);
+ int j = this.active ? 16777215 : 10526880;
+ OrderedText orderedText = getMessage().asOrderedText();
+ TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
+
+ matrices.push();
+ matrices.translate(((this.getX() + this.width / 2f) - textRenderer.getWidth(orderedText) * textScale / 2), (float)this.getY() + (this.height - 8 * textScale) / 2f / textScale, 0);
+ matrices.scale(textScale, textScale, 1);
+ textRenderer.drawWithShadow(matrices, orderedText, 0, 0, j | MathHelper.ceil(this.alpha * 255.0F) << 24);
+ matrices.pop();
+ }
+}