From 66874b7164d7a3a01a28b8b9eaf9774ad72ca2e1 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Thu, 2 Oct 2025 16:22:47 +0200 Subject: [PATCH] feat: fancy input mode icons --- .../midnightcontrols/ControlsMode.java | 32 +++++++++++++++--- .../gui/sprites/icon/keyboard_mouse.png | Bin 0 -> 1648 bytes .../textures/gui/sprites/icon/touchscreen.png | Bin 0 -> 1601 bytes 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 common/src/main/resources/assets/midnightcontrols/textures/gui/sprites/icon/keyboard_mouse.png create mode 100644 common/src/main/resources/assets/midnightcontrols/textures/gui/sprites/icon/touchscreen.png diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/ControlsMode.java b/common/src/main/java/eu/midnightdust/midnightcontrols/ControlsMode.java index bc25f10..baeee58 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/ControlsMode.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/ControlsMode.java @@ -9,12 +9,20 @@ package eu.midnightdust.midnightcontrols; +import net.minecraft.text.Text; +import net.minecraft.text.object.AtlasTextObjectContents; +import net.minecraft.text.object.TextObjectContents; +import net.minecraft.util.Atlases; +import net.minecraft.util.Identifier; +import net.minecraft.util.TranslatableOption; import org.jetbrains.annotations.NotNull; import org.thinkingstudio.obsidianui.util.Nameable; import java.util.Arrays; import java.util.Optional; +import static eu.midnightdust.midnightcontrols.MidnightControls.id; + /** * Represents the controls mode. * @@ -22,10 +30,15 @@ import java.util.Optional; * @version 1.7.0 * @since 1.0.0 */ -public enum ControlsMode { - DEFAULT, - CONTROLLER, - TOUCHSCREEN; +public enum ControlsMode implements TranslatableOption { + DEFAULT("icon/keyboard_mouse"), + CONTROLLER("icon/controller"), + TOUCHSCREEN("icon/touchscreen"); + final String emoji; + + ControlsMode(String emoji) { + this.emoji = emoji; + } /** * Returns the next controls mode available. @@ -39,6 +52,16 @@ public enum ControlsMode { return v[this.ordinal() + 1]; } + @Override + public int getId() { + return this.ordinal(); + } + + @Override + public Text getText() { + return Text.object(new AtlasTextObjectContents(Atlases.GUI, id(emoji))).append(" ").append(Text.translatable(getTranslationKey())); + } + /** * Gets the translation key of this controls mode. * @@ -49,6 +72,7 @@ public enum ControlsMode { return "midnightcontrols.controls_mode." + this.getName(); } + public @NotNull String getName() { return this.name().toLowerCase(); } diff --git a/common/src/main/resources/assets/midnightcontrols/textures/gui/sprites/icon/keyboard_mouse.png b/common/src/main/resources/assets/midnightcontrols/textures/gui/sprites/icon/keyboard_mouse.png new file mode 100644 index 0000000000000000000000000000000000000000..c6c742bc5322582c88c726676540dc8374ce8bbd GIT binary patch literal 1648 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