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

Add width and padding options to Coordinates widget

This commit is contained in:
Shy
2024-09-09 11:04:25 +02:00
parent a9debfda28
commit a03fa01e89
@@ -2,6 +2,7 @@ package de.shiewk.widgets.widgets;
import de.shiewk.widgets.ModWidget;
import de.shiewk.widgets.WidgetSettings;
import de.shiewk.widgets.widgets.settings.IntSliderWidgetSetting;
import de.shiewk.widgets.widgets.settings.RGBAColorWidgetSetting;
import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting;
import net.minecraft.client.MinecraftClient;
@@ -21,7 +22,9 @@ public class CoordinatesWidget extends ModWidget {
new ToggleWidgetSetting("y", Text.translatable("widgets.widgets.coordinates.showY"), true),
new ToggleWidgetSetting("z", Text.translatable("widgets.widgets.coordinates.showZ"), true),
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("padding", Text.translatable("widgets.widgets.basictext.padding"), 0, 5, 20)
));
}
@@ -31,23 +34,23 @@ public class CoordinatesWidget extends ModWidget {
@Override
public void render(DrawContext context, long measuringTimeNano, TextRenderer textRenderer, int posX, int posY) {
context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
final int PADDING = CoordinatesWidget.PADDING;
int y = PADDING;
final int padding = this.padding;
int y = padding;
if (showX){
y++;
context.drawText(textRenderer, "X: ", posX + PADDING, posY + y, textColor, true);
context.drawText(textRenderer, "X: ", posX + padding, posY + y, textColor, true);
context.drawText(textRenderer, textX, posX + txc, posY + y, textColor, true);
y += textRenderer.fontHeight + 1;
}
if (showY){
y++;
context.drawText(textRenderer, "Y: ", posX + PADDING, posY + y, textColor, true);
context.drawText(textRenderer, "Y: ", posX + padding, posY + y, textColor, true);
context.drawText(textRenderer, textY, posX + tyc, posY + y, textColor, true);
y += textRenderer.fontHeight + 1;
}
if (showZ){
y++;
context.drawText(textRenderer, "Z: ", posX + PADDING, posY + y, textColor, true);
context.drawText(textRenderer, "Z: ", posX + padding, posY + y, textColor, true);
context.drawText(textRenderer, textZ, posX + tzc, posY + y, textColor, true);
}
}
@@ -55,9 +58,9 @@ public class CoordinatesWidget extends ModWidget {
@Override
public void tick() {
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
txc = width() - textRenderer.getWidth(textX) - PADDING;
tyc = width() - textRenderer.getWidth(textY) - PADDING;
tzc = width() - textRenderer.getWidth(textZ) - PADDING;
txc = width() - textRenderer.getWidth(textX) - padding;
tyc = width() - textRenderer.getWidth(textY) - padding;
tzc = width() - textRenderer.getWidth(textZ) - padding;
final ClientPlayerEntity player = MinecraftClient.getInstance().player;
if (player == null){
@@ -87,7 +90,7 @@ public class CoordinatesWidget extends ModWidget {
DEFAULT_BACKGROUND_COLOR = new Color(0, 0, 0, 80).getRGB(),
DEFAULT_TEXT_COLOR = new Color(255, 255 ,255, 255).getRGB();
protected int backgroundColor = DEFAULT_BACKGROUND_COLOR, textColor = DEFAULT_TEXT_COLOR;
protected int backgroundColor = DEFAULT_BACKGROUND_COLOR, textColor = DEFAULT_TEXT_COLOR, padding = PADDING, width = WIDTH;
protected boolean showX = true, showY = true, showZ = true;
@Override
@@ -97,16 +100,18 @@ public class CoordinatesWidget extends ModWidget {
this.showX = ((ToggleWidgetSetting) settings.optionById("x")).getValue();
this.showY = ((ToggleWidgetSetting) settings.optionById("y")).getValue();
this.showZ = ((ToggleWidgetSetting) settings.optionById("z")).getValue();
this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue();
this.width = ((IntSliderWidgetSetting) settings.optionById("width")).getValue();
}
@Override
public int width() {
return WIDTH;
return width + padding * 2;
}
@Override
public int height() {
int height = 2 * PADDING;
int height = 2 * padding;
if (showX) height += 11;
if (showY) height += 11;
if (showZ) height += 11;