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.ModWidget;
import de.shiewk.widgets.WidgetSettings; 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.RGBAColorWidgetSetting;
import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting; import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting;
import net.minecraft.client.MinecraftClient; 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("y", Text.translatable("widgets.widgets.coordinates.showY"), true),
new ToggleWidgetSetting("z", Text.translatable("widgets.widgets.coordinates.showZ"), 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("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 @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) {
context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor); context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
final int PADDING = CoordinatesWidget.PADDING; final int padding = this.padding;
int y = PADDING; int y = padding;
if (showX){ if (showX){
y++; 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); context.drawText(textRenderer, textX, posX + txc, posY + y, textColor, true);
y += textRenderer.fontHeight + 1; y += textRenderer.fontHeight + 1;
} }
if (showY){ if (showY){
y++; 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); context.drawText(textRenderer, textY, posX + tyc, posY + y, textColor, true);
y += textRenderer.fontHeight + 1; y += textRenderer.fontHeight + 1;
} }
if (showZ){ if (showZ){
y++; 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); context.drawText(textRenderer, textZ, posX + tzc, posY + y, textColor, true);
} }
} }
@@ -55,9 +58,9 @@ public class CoordinatesWidget extends ModWidget {
@Override @Override
public void tick() { public void tick() {
final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
txc = width() - textRenderer.getWidth(textX) - PADDING; txc = width() - textRenderer.getWidth(textX) - padding;
tyc = width() - textRenderer.getWidth(textY) - PADDING; tyc = width() - textRenderer.getWidth(textY) - padding;
tzc = width() - textRenderer.getWidth(textZ) - PADDING; tzc = width() - textRenderer.getWidth(textZ) - padding;
final ClientPlayerEntity player = MinecraftClient.getInstance().player; final ClientPlayerEntity player = MinecraftClient.getInstance().player;
if (player == null){ if (player == null){
@@ -87,7 +90,7 @@ public class CoordinatesWidget extends ModWidget {
DEFAULT_BACKGROUND_COLOR = new Color(0, 0, 0, 80).getRGB(), DEFAULT_BACKGROUND_COLOR = new Color(0, 0, 0, 80).getRGB(),
DEFAULT_TEXT_COLOR = new Color(255, 255 ,255, 255).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; protected boolean showX = true, showY = true, showZ = true;
@Override @Override
@@ -97,16 +100,18 @@ public class CoordinatesWidget extends ModWidget {
this.showX = ((ToggleWidgetSetting) settings.optionById("x")).getValue(); this.showX = ((ToggleWidgetSetting) settings.optionById("x")).getValue();
this.showY = ((ToggleWidgetSetting) settings.optionById("y")).getValue(); this.showY = ((ToggleWidgetSetting) settings.optionById("y")).getValue();
this.showZ = ((ToggleWidgetSetting) settings.optionById("z")).getValue(); this.showZ = ((ToggleWidgetSetting) settings.optionById("z")).getValue();
this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue();
this.width = ((IntSliderWidgetSetting) settings.optionById("width")).getValue();
} }
@Override @Override
public int width() { public int width() {
return WIDTH; return width + padding * 2;
} }
@Override @Override
public int height() { public int height() {
int height = 2 * PADDING; int height = 2 * padding;
if (showX) height += 11; if (showX) height += 11;
if (showY) height += 11; if (showY) height += 11;
if (showZ) height += 11; if (showZ) height += 11;