1
mirror of https://github.com/Shiewk/Widgets.git synced 2026-04-28 11:34:17 +02:00

Allow resizing Coordinates widget

This commit is contained in:
Shy
2024-10-20 12:24:43 +02:00
parent 0027b67eac
commit 9e4958bc96
@@ -9,6 +9,7 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Identifier; 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("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 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("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("paddingX", Text.translatable("widgets.widgets.basictext.paddingX"), 0, 5, 20),
new IntSliderWidgetSetting("paddingY", Text.translatable("widgets.widgets.basictext.paddingY"), 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 String textX = "X", textY = "Y", textZ = "Z";
private int txc = 0, tyc = 0, tzc = 0; private int txc = 0, tyc = 0, tzc = 0;
@Override @Override
public void render(DrawContext context, long measuringTimeNano, TextRenderer textRenderer, int posX, int posY) { 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); context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
int y = this.paddingY; int y = this.paddingY;
if (showX){ if (showX){
@@ -53,6 +62,7 @@ public class CoordinatesWidget extends ModWidget {
context.drawText(textRenderer, "Z: ", posX + paddingX, posY + y, textColor, true); context.drawText(textRenderer, "Z: ", posX + paddingX, posY + y, textColor, true);
context.drawText(textRenderer, textZ, posX + tzc, posY + y, textColor, true); context.drawText(textRenderer, textZ, posX + tzc, posY + y, textColor, true);
} }
if (size != 1f) matrices.pop();
} }
@Override @Override
@@ -103,6 +113,12 @@ public class CoordinatesWidget extends ModWidget {
this.paddingX = ((IntSliderWidgetSetting) settings.optionById("paddingX")).getValue(); this.paddingX = ((IntSliderWidgetSetting) settings.optionById("paddingX")).getValue();
this.paddingY = ((IntSliderWidgetSetting) settings.optionById("paddingY")).getValue(); this.paddingY = ((IntSliderWidgetSetting) settings.optionById("paddingY")).getValue();
this.width = ((IntSliderWidgetSetting) settings.optionById("width")).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 @Override