aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java')
-rw-r--r--src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java b/src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java
index 3b7ed18..bfe8f51 100644
--- a/src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java
+++ b/src/main/java/net/inyourwalls/customlevelcolour/ConfigScreen.java
@@ -19,6 +19,8 @@ public class ConfigScreen extends Screen {
private static final Pattern HEX_COLOUR_REGEX = Pattern.compile("[0-9a-fA-F]{0,6}");
private final Screen previous;
private final CustomLevelColourConfig config;
+ private int previewOutlineColour;
+ private int previewTextColour;
public ConfigScreen() {
this(null);
@@ -41,6 +43,13 @@ public class ConfigScreen extends Screen {
OUTLINE_COLOUR_LABEL
);
outlineField.setTextPredicate(HEX_COLOUR_REGEX.asMatchPredicate());
+ outlineField.setChangedListener(text -> {
+ try {
+ this.previewOutlineColour = Integer.parseInt(text, 16);
+ } catch (NumberFormatException ex) {
+ // fail silently
+ }
+ });
outlineField.setText(String.format("%x", config.outlineColour));
TextFieldWidget textField = new TextFieldWidget(
this.textRenderer,
@@ -51,6 +60,11 @@ public class ConfigScreen extends Screen {
TEXT_COLOUR_LABEL
);
textField.setTextPredicate(HEX_COLOUR_REGEX.asMatchPredicate());
+ textField.setChangedListener(text -> {
+ try {
+ this.previewTextColour = Integer.parseInt(text, 16);
+ } catch (NumberFormatException ex) {}
+ });
textField.setText(String.format("%x", config.textColour));
ButtonWidget backButton = ButtonWidget.builder(Text.translatable("gui.back"), thisButton -> this.close())
@@ -61,9 +75,7 @@ public class ConfigScreen extends Screen {
try {
config.outlineColour = Integer.parseInt(outlineField.getText(), 16);
config.textColour = Integer.parseInt(textField.getText(), 16);
- } catch (NumberFormatException ex) {
- CustomLevelColour.LOGGER.error("Failed to parse colour", ex);
- }
+ } catch (NumberFormatException ex) {}
CustomLevelColour.saveConfig();
})
.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
@@ -96,10 +108,10 @@ public class ConfigScreen extends Screen {
// preview text
int previewX = (this.width / 2) - (this.textRenderer.getWidth("30") / 2);
- context.drawText(this.textRenderer, "30", previewX - 1, 90, config.outlineColour, false);
- context.drawText(this.textRenderer, "30", previewX + 1, 90, config.outlineColour, false);
- context.drawText(this.textRenderer, "30", previewX, 91, config.outlineColour, false);
- context.drawText(this.textRenderer, "30", previewX, 89, config.outlineColour, false);
- context.drawText(this.textRenderer, "30", previewX, 90, config.textColour, false);
+ context.drawText(this.textRenderer, "30", previewX - 1, 90, previewOutlineColour, false);
+ context.drawText(this.textRenderer, "30", previewX + 1, 90, previewOutlineColour, false);
+ context.drawText(this.textRenderer, "30", previewX, 91, previewOutlineColour, false);
+ context.drawText(this.textRenderer, "30", previewX, 89, previewOutlineColour, false);
+ context.drawText(this.textRenderer, "30", previewX, 90, previewTextColour, false);
}
}