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

Add option to toggle text shadow on BasicTextWidget

This commit is contained in:
Shy
2024-12-05 15:09:21 +01:00
parent c8252ff7db
commit c483c39a5d
3 changed files with 9 additions and 3 deletions
@@ -6,6 +6,7 @@ import de.shiewk.widgets.WidgetSettings;
import de.shiewk.widgets.widgets.settings.EnumWidgetSetting; import de.shiewk.widgets.widgets.settings.EnumWidgetSetting;
import de.shiewk.widgets.widgets.settings.IntSliderWidgetSetting; 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 it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
@@ -39,6 +40,7 @@ public abstract class BasicTextWidget extends ModWidget {
private int textY = 0; private int textY = 0;
private int padding = 0; private int padding = 0;
private TextRenderer renderer = null; private TextRenderer renderer = null;
private boolean textShadow = true;
private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) { private static ObjectArrayList<WidgetSettingOption> getCustomSettings(List<WidgetSettingOption> otherCustomOptions) {
final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions); final ObjectArrayList<WidgetSettingOption> list = new ObjectArrayList<>(otherCustomOptions);
@@ -47,6 +49,7 @@ public abstract class BasicTextWidget extends ModWidget {
list.add(new IntSliderWidgetSetting("width", Text.translatable("widgets.widgets.basictext.width"), 10, DEFAULT_WIDTH, 80*3)); list.add(new IntSliderWidgetSetting("width", Text.translatable("widgets.widgets.basictext.width"), 10, DEFAULT_WIDTH, 80*3));
list.add(new IntSliderWidgetSetting("height", Text.translatable("widgets.widgets.basictext.height"), 9, DEFAULT_HEIGHT, 80)); list.add(new IntSliderWidgetSetting("height", Text.translatable("widgets.widgets.basictext.height"), 9, DEFAULT_HEIGHT, 80));
list.add(new IntSliderWidgetSetting("size", Text.translatable("widgets.widgets.common.sizePercent"), 25, 100, 400)); list.add(new IntSliderWidgetSetting("size", Text.translatable("widgets.widgets.common.sizePercent"), 25, 100, 400));
list.add(new ToggleWidgetSetting("shadow", Text.translatable("widgets.widgets.basictext.textshadow"), true));
list.add(new EnumWidgetSetting<>("alignment", Text.translatable("widgets.widgets.basictext.alignment"), TextAlignment.class, TextAlignment.CENTER, TextAlignment::text)); list.add(new EnumWidgetSetting<>("alignment", Text.translatable("widgets.widgets.basictext.alignment"), TextAlignment.class, TextAlignment.CENTER, TextAlignment::text));
list.add(new IntSliderWidgetSetting("padding", Text.translatable("widgets.widgets.basictext.padding"), 0, 5, 20)); list.add(new IntSliderWidgetSetting("padding", Text.translatable("widgets.widgets.basictext.padding"), 0, 5, 20));
return list; return list;
@@ -87,7 +90,7 @@ public abstract class BasicTextWidget extends ModWidget {
} }
renderer = textRenderer; renderer = textRenderer;
context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor); context.fill(posX, posY, posX + width(), posY + height(), this.backgroundColor);
context.drawText(textRenderer, renderText, posX + textX, posY + textY, this.textColor, true); context.drawText(textRenderer, renderText, posX + textX, posY + (textShadow ? textY : textY + 1 /* offset 1 without text shadow so that it looks more aligned */), this.textColor, textShadow);
if (size != 1f) matrices.pop(); if (size != 1f) matrices.pop();
} }
@@ -121,5 +124,6 @@ public abstract class BasicTextWidget extends ModWidget {
this.textAlignment = (TextAlignment) ((EnumWidgetSetting<?>) settings.optionById("alignment")).getValue(); this.textAlignment = (TextAlignment) ((EnumWidgetSetting<?>) settings.optionById("alignment")).getValue();
this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue(); this.padding = ((IntSliderWidgetSetting) settings.optionById("padding")).getValue();
this.size = 0.01f * ((IntSliderWidgetSetting) settings.optionById("size")).getValue(); this.size = 0.01f * ((IntSliderWidgetSetting) settings.optionById("size")).getValue();
this.textShadow = ((ToggleWidgetSetting) settings.optionById("shadow")).getValue();
} }
} }
@@ -80,5 +80,6 @@
"widgets.widgets.keystrokes.colorKeyPressed": "Farbe der Taste (gedrückt)", "widgets.widgets.keystrokes.colorKeyPressed": "Farbe der Taste (gedrückt)",
"widgets.widgets.keystrokes.colorKeyUnpressed": "Farbe der Taste (nicht gedrückt)", "widgets.widgets.keystrokes.colorKeyUnpressed": "Farbe der Taste (nicht gedrückt)",
"widgets.widgets.keystrokes": "Keystrokes", "widgets.widgets.keystrokes": "Keystrokes",
"widgets.widgets.keystrokes.description": "Zeigt an, welche Tasten du momentan drückst." "widgets.widgets.keystrokes.description": "Zeigt an, welche Tasten du momentan drückst.",
"widgets.widgets.basictext.textshadow": "Textschatten"
} }
@@ -80,5 +80,6 @@
"widgets.widgets.keystrokes.colorKeyPressed": "Key color (pressed)", "widgets.widgets.keystrokes.colorKeyPressed": "Key color (pressed)",
"widgets.widgets.keystrokes.colorKeyUnpressed": "Key color (not pressed)", "widgets.widgets.keystrokes.colorKeyUnpressed": "Key color (not pressed)",
"widgets.widgets.keystrokes": "Keystrokes", "widgets.widgets.keystrokes": "Keystrokes",
"widgets.widgets.keystrokes.description": "Shows which keys you are currently pressing." "widgets.widgets.keystrokes.description": "Shows which keys you are currently pressing.",
"widgets.widgets.basictext.textshadow": "Text shadow"
} }