From bd5573c48f2d406a8c989a65cc4049b9dec22f96 Mon Sep 17 00:00:00 2001 From: kawaiizenbo <48113593+kawaiizenbo@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:04:47 -0700 Subject: [PATCH] many major changes, see store for details - bump version to v0.4.0 - add theme support - add high contrast and light themes - remove settingcommand (broken) - add icon variants for certain themes - remove text shadows from interfaces other than the hud --- gradle.properties | 2 +- .../java/me/kawaiizenbo/moonlight/Config.java | 1 + .../me/kawaiizenbo/moonlight/Moonlight.java | 8 +- .../moonlight/command/CommandManager.java | 1 - .../command/commands/SettingCommand.java | 115 ------------------ .../module/settings/BooleanSetting.java | 9 +- .../module/settings/DoubleSetting.java | 11 +- .../module/settings/IndexSetting.java | 9 +- .../module/settings/KeycodeSetting.java | 7 +- .../moonlight/module/settings/Setting.java | 3 +- .../module/settings/StringSetting.java | 11 +- .../me/kawaiizenbo/moonlight/theme/Theme.java | 81 ++++++++++++ .../moonlight/theme/ThemeColor.java | 32 +++++ .../moonlight/ui/SetScreenButton.java | 10 +- .../moonlight/ui/clickgui/CategoryPane.java | 10 +- .../moonlight/ui/clickgui/ClickGUIScreen.java | 10 ++ .../moonlight/ui/clickgui/ModuleButton.java | 5 +- .../moonlight/ui/clickgui/SettingsScreen.java | 16 +-- .../moonlight/ui/hud/HUDModule.java | 3 +- .../ui/hud/editor/HUDModuleButton.java | 5 +- .../ui/hud/editor/HUDModuleList.java | 11 +- .../hud/editor/HUDModuleSettingsScreen.java | 12 +- .../ui/hud/modules/ArmorDisplay.java | 4 - .../moonlight/ui/hud/modules/Coordinates.java | 3 +- .../moonlight/ui/hud/modules/FPS.java | 3 +- .../ui/hud/modules/MovementSpeed.java | 3 +- .../moonlight/ui/hud/modules/Ping.java | 3 +- .../ui/hud/modules/TotemCounter.java | 4 - .../kawaiizenbo/moonlight/util/DrawUtils.java | 13 ++ .../textures/gui/sprites/chat_light.png | Bin 0 -> 366 bytes .../textures/gui/sprites/combat_light.png | Bin 0 -> 382 bytes .../textures/gui/sprites/hud_light.png | Bin 0 -> 358 bytes .../textures/gui/sprites/movement_light.png | Bin 0 -> 371 bytes .../textures/gui/sprites/player_light.png | Bin 0 -> 372 bytes .../textures/gui/sprites/render_light.png | Bin 0 -> 379 bytes .../textures/gui/sprites/settings_light.png | Bin 0 -> 376 bytes .../textures/gui/sprites/world_light.png | Bin 0 -> 379 bytes src/main/resources/fabric.mod.json | 2 +- 38 files changed, 223 insertions(+), 184 deletions(-) delete mode 100644 src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java create mode 100644 src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java create mode 100644 src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java create mode 100644 src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/combat_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/movement_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/settings_light.png create mode 100644 src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png diff --git a/gradle.properties b/gradle.properties index 405dc6c..bb44ae8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.parallel=true loader_version=0.16.3 # Mod Properties - mod_version = 0.3.0 + mod_version = 0.4.0 maven_group = me.kawaiizenbo archives_base_name = moonlight diff --git a/src/main/java/me/kawaiizenbo/moonlight/Config.java b/src/main/java/me/kawaiizenbo/moonlight/Config.java index 69588e3..f2356cd 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Config.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Config.java @@ -44,6 +44,7 @@ public class Config public void loadDefaultConfig() { ModuleManager.INSTANCE = new ModuleManager(); + config.put("theme", 2); Map mi = new HashMap<>(); for (Module m : ModuleManager.INSTANCE.modules) { diff --git a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java index 628dca0..dfe4324 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java +++ b/src/main/java/me/kawaiizenbo/moonlight/Moonlight.java @@ -16,6 +16,7 @@ import me.kawaiizenbo.moonlight.module.settings.IndexSetting; import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.module.settings.StringSetting; +import me.kawaiizenbo.moonlight.theme.Theme; import me.kawaiizenbo.moonlight.ui.clickgui.CategoryPane; import me.kawaiizenbo.moonlight.ui.clickgui.ClickGUIScreen; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; @@ -27,7 +28,9 @@ public class Moonlight implements ModInitializer public static final Moonlight INSTANCE = new Moonlight(); public static final Logger LOGGER = LoggerFactory.getLogger("Moonlight"); public static final String clientTag = ColorUtils.aqua + "Moonlight Meadows"; - public static final String versionTag = ColorUtils.magenta + "v0.3.0"; + public static final String versionTag = ColorUtils.magenta + "v0.4.0"; + public static Theme THEME = Theme.DARK; + public static int THEME_IDX = 2; public static Config CONFIG = new Config(); @Override @@ -44,6 +47,8 @@ public class Moonlight implements ModInitializer { LOGGER.info("Loading config..."); CONFIG.load(); + THEME_IDX = ((Double)CONFIG.config.get("theme")).intValue(); + THEME = Theme.THEME_LIST[THEME_IDX]; for (Module m : ModuleManager.INSTANCE.modules) { m.enabled = (boolean)((Map)((Map)CONFIG.config.get("modules")).get(m.name)).get("enabled"); @@ -113,6 +118,7 @@ public class Moonlight implements ModInitializer public void saveConfig() { LOGGER.info("Saving config..."); + CONFIG.config.put("theme", THEME_IDX); Map mi = new HashMap<>(); for (Module m : ModuleManager.INSTANCE.modules) { diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java index c824b9e..a790653 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/command/CommandManager.java @@ -29,7 +29,6 @@ public class CommandManager add(new Help()); add(new Toggle()); add(new Teleport()); - add(new SettingCommand()); add(new Reset()); add(new DeathPos()); commands.sort(Comparator.comparing(Command::getName)); diff --git a/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java b/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java deleted file mode 100644 index 9d2d033..0000000 --- a/src/main/java/me/kawaiizenbo/moonlight/command/commands/SettingCommand.java +++ /dev/null @@ -1,115 +0,0 @@ -package me.kawaiizenbo.moonlight.command.commands; - -import com.mojang.brigadier.arguments.StringArgumentType; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; - -import me.kawaiizenbo.moonlight.command.Command; -import me.kawaiizenbo.moonlight.module.ModuleManager; -import me.kawaiizenbo.moonlight.module.settings.BooleanSetting; -import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; -import me.kawaiizenbo.moonlight.module.settings.KeycodeSetting; -import me.kawaiizenbo.moonlight.module.settings.Setting; -import me.kawaiizenbo.moonlight.module.settings.StringSetting; -import me.kawaiizenbo.moonlight.util.ChatUtils; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import me.kawaiizenbo.moonlight.module.Module; -import net.minecraft.command.CommandSource; - -public class SettingCommand extends Command -{ - public SettingCommand() - { - super("setting", "Change a setting of a module."); - } - - @Override - public void build(LiteralArgumentBuilder builder) - { - builder - .then(argument("module", StringArgumentType.string()) - .then(argument("setting", StringArgumentType.string()) - .then(argument("value", StringArgumentType.string()) - .executes(context -> - { - String m = context.getArgument("module", String.class); - String s = context.getArgument("setting", String.class); - String v = context.getArgument("value", String.class); - - Module module = ModuleManager.INSTANCE.getModuleByName(m); - if (module == null) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Module Name"); - return 0; - } - Setting setting = module.getSettingByName(s); - if (setting == null) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Setting Name"); - return 0; - } - - if (setting instanceof BooleanSetting) - { - try - { - ((BooleanSetting)setting).value = Boolean.parseBoolean(v); - } - catch (Exception e) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected boolean"); - return 0; - } - - } - else if (setting instanceof DoubleSetting) - { - try - { - ((DoubleSetting)setting).value = Double.parseDouble(v); - } - catch (Exception e) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected Double"); - return 0; - } - } - else if (setting instanceof StringSetting) - { - try - { - ((StringSetting)setting).value = v; - } - catch (Exception e) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected String"); - return 0; - } - } - else if (setting instanceof KeycodeSetting) - { - try - { - int kv = Integer.parseInt(v); - if (kv > 348) - { - ChatUtils.sendMsg(ColorUtils.red + "Keycode Value is too high, maximum is 348 (Menu)"); - return 0; - } - if (kv < 0) - { - ChatUtils.sendMsg(ColorUtils.red + "Keycode Value must be positive"); - return 0; - } - ((KeycodeSetting)setting).value = kv; - } - catch (Exception e) - { - ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected Keycode (integer)"); - return 0; - } - } - - return SINGLE_SUCCESS; - })))); - } -} diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java index 3232061..83338ec 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/BooleanSetting.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; +import me.kawaiizenbo.moonlight.Moonlight; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; @@ -18,10 +19,10 @@ public class BooleanSetting extends Setting public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) { super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF); - drawContext.fill(x+180, y+7, x+190, y+17, 0xFFFFFFFF); - drawContext.fill(x+181, y+8, x+189, y+16, 0xFF222222); - drawContext.fill(x+182, y+9, x+188, y+15, value ? 0xFF55FFFF : 0xFF222222); + drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); + drawContext.fill(x+180, y+7, x+190, y+17, Moonlight.THEME.border.getRGB()); + drawContext.fill(x+181, y+8, x+189, y+16, Moonlight.THEME.background.getRGB()); + drawContext.fill(x+182, y+9, x+188, y+15, value ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.background.getRGB()); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java index b1d1b6b..7a6a123 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.util.MathUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -26,7 +27,7 @@ public class DoubleSetting extends Setting public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) { super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+4, 0xFFFFFF); + drawContext.drawText(textRenderer, Text.literal(name), x+2, y+4, Moonlight.THEME.text.getRGB(), false); double diff = Math.min(100, Math.max(0, (mouseX - x)/1.9)); if (sliding) @@ -43,11 +44,11 @@ public class DoubleSetting extends Setting } String valueString = ""+MathUtils.round(value, roundingPlace); - drawContext.drawTextWithShadow(textRenderer, Text.literal(valueString), (x+190)-textRenderer.getWidth(valueString), y+4, 0xFFFFFF); - drawContext.fill(x+2, y+16, x+190, y+18, 0xFF666666); + drawContext.drawText(textRenderer, Text.literal(valueString), (x+190)-textRenderer.getWidth(valueString), y+4, Moonlight.THEME.text.getRGB(), false); + drawContext.fill(x+2, y+16, x+190, y+18, 0xFF777777); int scaledValue = (int)((value/max)*190); - drawContext.fill(x+2, y+16, (x+2)+scaledValue, y+18, 0xFF55FFFF); - drawContext.fill(x+2+(scaledValue-1), y+14, x+2+(scaledValue+1), y+20, 0xFFFFFFFF); + drawContext.fill(x+2, y+16, (x+2)+scaledValue, y+18, Moonlight.THEME.accent.getRGB()); + drawContext.fill(x+2+(scaledValue-1), y+14, x+2+(scaledValue+1), y+20, Moonlight.THEME.border.getRGB()); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java index a4bb5c5..b743754 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/IndexSetting.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; +import me.kawaiizenbo.moonlight.Moonlight; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; @@ -20,10 +21,10 @@ public class IndexSetting extends Setting public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) { super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF); - drawContext.fill(x+96, y+5, x+190, y+19, 0xFFFFFFFF); - drawContext.fill(x+97, y+6, x+189, y+18, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); - drawContext.drawTextWithShadow(textRenderer, elements[index], x+98, y+8, 0xFFFFFF); + drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); + drawContext.fill(x+96, y+5, x+190, y+19, Moonlight.THEME.border.getRGB()); + drawContext.fill(x+97, y+6, x+189, y+18, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, elements[index], x+98, y+8, Moonlight.THEME.text.getRGB(), false); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java index f4bbffe..37ab7c0 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/KeycodeSetting.java @@ -2,6 +2,7 @@ package me.kawaiizenbo.moonlight.module.settings; import org.lwjgl.glfw.GLFW; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.util.KeycodeUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -36,19 +37,19 @@ public class KeycodeSetting extends Setting public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) { super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF); + drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); if (isWaiting) { String waiting = "Press any key."; int twwidth = textRenderer.getWidth(waiting); - drawContext.drawTextWithShadow(textRenderer, waiting, x+190-twwidth, y+8, 0xFFFFFF); + drawContext.drawText(textRenderer, waiting, x+190-twwidth, y+8, Moonlight.THEME.text.getRGB(), false); } else { String key = KeycodeUtils.keyTable[value]; if (value == GLFW.GLFW_KEY_UNKNOWN) key = ""; int twidth = textRenderer.getWidth(key); - drawContext.drawTextWithShadow(textRenderer, key, x+190-twidth, y+8, 0xFFFFFF); + drawContext.drawText(textRenderer, key, x+190-twidth, y+8, Moonlight.THEME.text.getRGB(), false); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java index 6d33f21..cb6447a 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; +import me.kawaiizenbo.moonlight.Moonlight; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -12,7 +13,7 @@ public class Setting { this.x = x; this.y = y; - drawContext.fill(x, y, x+192, y+24, hovered(mouseX, mouseY) ? 0xFF444444: 0xFF222222); + drawContext.fill(x, y, x+192, y+24, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB(): Moonlight.THEME.background.getRGB()); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java index e76a87f..bee45b3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/StringSetting.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.module.settings; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.util.KeycodeUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -20,13 +21,13 @@ public class StringSetting extends Setting public void render(DrawContext drawContext, int x, int y, int mouseX, int mouseY, TextRenderer textRenderer) { super.render(drawContext, x, y, mouseX, mouseY, textRenderer); - drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF); + drawContext.drawText(textRenderer, Text.literal(name), x+2, y+8, Moonlight.THEME.text.getRGB(), false); int twidth = textRenderer.getWidth(value); - drawContext.fill(x+96, y+5, x+190, y+19, 0xFFFFFFFF); - drawContext.fill(x+97, y+6, x+189, y+18, 0xFF222222); + drawContext.fill(x+96, y+5, x+190, y+19, Moonlight.THEME.border.getRGB()); + drawContext.fill(x+97, y+6, x+189, y+18, Moonlight.THEME.background.getRGB()); int cursorPos = x+98+twidth; - if (focused) drawContext.fill(cursorPos, y+7, cursorPos+1, y+17, 0xFF55FFFF); - drawContext.drawTextWithShadow(textRenderer, value, x+98, y+8, 0xFFFFFF); + if (focused) drawContext.fill(cursorPos, y+7, cursorPos+1, y+17, Moonlight.THEME.accent.getRGB()); + drawContext.drawText(textRenderer, value, x+98, y+8, Moonlight.THEME.text.getRGB(), false); } @Override diff --git a/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java b/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java new file mode 100644 index 0000000..fd464ce --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/theme/Theme.java @@ -0,0 +1,81 @@ +package me.kawaiizenbo.moonlight.theme; + +public class Theme +{ + public static final Theme LIGHT = new Theme( + "Light", + new ThemeColor(0x222222), + new ThemeColor(0xFFFFFF), + new ThemeColor(0xFFFFFF), + new ThemeColor(0xDDDDDD), + new ThemeColor(0x00AAAA), + new ThemeColor(0x55FFFF), + new ThemeColor(0x222222), + false, + false + ); + public static final Theme HIGHCONTRAST = new Theme( + "High Contrast", + new ThemeColor(0x000000), + new ThemeColor(0xFFFFFF), + new ThemeColor(0xFFFFFF), + new ThemeColor(0x777777), + new ThemeColor(0x00AAAA), + new ThemeColor(0xFFFFFF), + new ThemeColor(0x000000), + false, + true + ); + public static final Theme DARK = new Theme( + "Dark", + new ThemeColor(0xFFFFFF), + new ThemeColor(0xFFFFFF), + new ThemeColor(0x222222), + new ThemeColor(0x333333), + new ThemeColor(0x55FFFF), + new ThemeColor(0x55FFFF), + new ThemeColor(0xFFFFFF), + false, + false + ); + public static final Theme[] THEME_LIST = + { + LIGHT, HIGHCONTRAST, DARK + }; + + public String name; + public ThemeColor text; + public ThemeColor headerText; + public ThemeColor background; + public ThemeColor hover; + public ThemeColor accent; + public ThemeColor hudAccent; + public ThemeColor border; + public boolean useDarkIcons; + public boolean themedWindowBorders; + + public Theme( + String name, + ThemeColor text, + ThemeColor headerText, + ThemeColor background, + ThemeColor hover, + ThemeColor accent, + ThemeColor hudAccent, + ThemeColor border, + boolean useDarkIcons, + boolean themedWindowBorders + ) + { + this.name = name; + this.text = text; + this.headerText = headerText; + this.background = background; + this.hover = hover; + this.accent = accent; + this.hudAccent = hudAccent; + this.border = border; + this.useDarkIcons = useDarkIcons; + this.themedWindowBorders = themedWindowBorders; + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java b/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java new file mode 100644 index 0000000..019cc44 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/theme/ThemeColor.java @@ -0,0 +1,32 @@ +package me.kawaiizenbo.moonlight.theme; + +public class ThemeColor +{ + public int r, g, b; + + public ThemeColor(int r, int g, int b) + { + this.r = r; + this.g = g; + this.b = b; + } + + public ThemeColor(int RGBcolor) + { + this.r = (RGBcolor&0x00FF0000)>>16; + this.g = (RGBcolor&0x0000FF00)>>8; + this.b = (RGBcolor&0x000000FF)>>0; + } + + public int getRGB() + { + return ((255&0x0ff)<<24)|((r&0x0ff)<<16)|((g&0x0ff)<<8)|(b&0x0ff); + } + + public void setRGB(int RGBcolor) + { + this.r = RGBcolor&0x00FF0000; + this.g = RGBcolor&0x0000FF00; + this.b = RGBcolor&0x000000FF; + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java index 4b0e187..8d735c1 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/SetScreenButton.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui; +import me.kawaiizenbo.moonlight.Moonlight; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -10,14 +11,13 @@ public class SetScreenButton { String text; Screen screen; - int x, y, color, width; + int x, y, width; - public SetScreenButton(String text, int x, int y, int color, Screen screen) + public SetScreenButton(String text, int x, int y, Screen screen) { this.text = text; this.x = x; this.y = y; - this.color = color; this.screen = screen; } @@ -26,8 +26,8 @@ public class SetScreenButton this.x = x; this.y = y; width = textRenderer.getWidth(text); - drawContext.fill(x-1, y-1, x + width + 1, y + 10, hovered(mouseX, mouseY) ? 0x55FFFFFF : 0); - drawContext.drawText(textRenderer, Text.literal(text), x, y, color, true); + drawContext.fill(x-1, y-1, x + width + 1, y + 10, hovered(mouseX, mouseY) ? 0x22222222 : 0); + drawContext.drawText(textRenderer, Text.literal(text), x, y, Moonlight.THEME.headerText.getRGB(), false); } public boolean hovered(int mouseX, int mouseY) diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java index 9ccfb67..7f5a51c 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/CategoryPane.java @@ -2,8 +2,10 @@ package me.kawaiizenbo.moonlight.ui.clickgui; import java.util.ArrayList; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Category; import me.kawaiizenbo.moonlight.module.ModuleManager; +import me.kawaiizenbo.moonlight.util.DrawUtils; import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -26,7 +28,7 @@ public class CategoryPane this.y = initialY; this.collapsed = collapsed; moduleButtons = new ArrayList(); - icon = Identifier.of("moonlight", category.name.toLowerCase()); + icon = DrawUtils.getThemedGUIIcon(category.name.toLowerCase()); for (Module m : ModuleManager.INSTANCE.getModulesByCategory(category)) { moduleButtons.add(new ModuleButton(m)); @@ -42,10 +44,10 @@ public class CategoryPane x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, category.color); - drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); + drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : category.color); + //drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); drawContext.drawGuiTexture(icon, x+2, y+2, 12, 12); - drawContext.drawText(textRenderer, category.name, x+16, y+4, 0xFFFFFFFF, false); + drawContext.drawText(textRenderer, category.name, x+16, y+4, Moonlight.THEME.headerText.getRGB(), false); if (!collapsed) { int buttonYOffset = y+16; diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java index 43e7dcb..c90375b 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ClickGUIScreen.java @@ -5,6 +5,7 @@ import java.util.Map; import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Category; +import me.kawaiizenbo.moonlight.theme.Theme; import me.kawaiizenbo.moonlight.util.MathUtils; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; @@ -35,6 +36,9 @@ public class ClickGUIScreen extends Screen public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) { this.renderBackground(drawContext, mouseX, mouseY, delta); + drawContext.fill(width-80, height-16, width, height, Moonlight.THEME.border.getRGB()); + drawContext.fill(width-78, height-14, width-2, height-2, (mouseX > width-80 && mouseY > height-16) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, "Change Theme", width-75, height-12, Moonlight.THEME.text.getRGB(), false); for (CategoryPane category : categoryPanes) { category.render(drawContext, mouseX, mouseY, delta, textRenderer); @@ -48,6 +52,12 @@ public class ClickGUIScreen extends Screen { category.mouseClicked((int) mouseX, (int) mouseY, button); } + if (mouseX > width-80 && mouseY > height-16) + { + if (Moonlight.THEME_IDX >= Theme.THEME_LIST.length-1) Moonlight.THEME_IDX = 0; + else Moonlight.THEME_IDX++; + Moonlight.THEME = Theme.THEME_LIST[Moonlight.THEME_IDX]; + } return super.mouseClicked(mouseX, mouseY, button); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java index 7fc0499..1627c6b 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/ModuleButton.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.clickgui; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Module; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -21,8 +22,8 @@ public class ModuleButton { this.x = x; this.y = y; - drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); - drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? 0x55FFFF : 0xFFFFFF, false); + drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.text.getRGB(), false); } public boolean hovered(int mouseX, int mouseY) diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java index ac5f916..5e8351f 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.clickgui; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.Module; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.ui.SetScreenButton; @@ -21,8 +22,8 @@ public class SettingsScreen extends Screen public SettingsScreen(Module module) { super(Text.literal("Settings")); - backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, 0xFFFFFF, ClickGUIScreen.INSTANCE); - editButton = new SetScreenButton(ColorUtils.underline + "Edit", x+windowWidth-22, y+4, 0xFFFFFF, HUDEditorScreen.INSTANCE); + backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, ClickGUIScreen.INSTANCE); + editButton = new SetScreenButton(ColorUtils.underline + "Edit", x+windowWidth-22, y+4, HUDEditorScreen.INSTANCE); this.module = module; } @@ -37,11 +38,12 @@ public class SettingsScreen extends Screen x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x, y, x+windowWidth, y+windowHeight, 0xFF222222); - drawContext.fill(x, y, x+windowWidth, y+16, module.category.color); - drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, 0xFF222222); - drawContext.drawCenteredTextWithShadow(textRenderer, module.name, x+(windowWidth/2), y+4, 0xFFFFFF); - drawContext.drawText(textRenderer, module.description, x+8, y+24, 0xFFFFFF, true); + drawContext.fill(x, y, x+windowWidth, y+windowHeight, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : module.category.color); + drawContext.fill(x+2, y+2, x+windowWidth-2, y+windowHeight-2, Moonlight.THEME.background.getRGB()); + drawContext.fill(x, y, x+windowWidth, y+16, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : module.category.color); + //drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, module.name, x+((windowWidth/2)-(textRenderer.getWidth(module.name)/2)), y+4, Moonlight.THEME.headerText.getRGB(), false); + drawContext.drawText(textRenderer, module.description, x+8, y+24, Moonlight.THEME.text.getRGB(), false); backButton.render(drawContext, textRenderer, mouseX, mouseY, x+4, y+4); if (module.showEditButton) editButton.render(drawContext, textRenderer, mouseX, mouseY, x+windowWidth-22, y+4); int yOffset = y+40; diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java index edbbe55..96cc293 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java @@ -2,6 +2,7 @@ package me.kawaiizenbo.moonlight.ui.hud; import java.util.ArrayList; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.settings.Setting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -35,7 +36,7 @@ public abstract class HUDModule x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x-1, y-1, x+width+1, y+height+1, enabled ? 0xFF55FFFF : 0xFF555555); + drawContext.fill(x-1, y-1, x+width+1, y+height+1, enabled ? Moonlight.THEME.accent.getRGB() : 0xFF555555); drawContext.fill(x, y, x+width, y+height, 0xFF222222); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java index 7be04fa..6e228d1 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleButton.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.editor; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -22,8 +23,8 @@ public class HUDModuleButton { this.x = x; this.y = y; - drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); - drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? 0x55FFFF : 0xFFFFFF, false); + drawContext.fill(x, y, x + width, y + height, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, module.name, x+2, y+2, module.enabled ? Moonlight.THEME.accent.getRGB() : Moonlight.THEME.text.getRGB(), false); if (!module.settings.isEmpty()) drawContext.drawGuiTexture(Identifier.of("moonlight", "settings"), x+width-12, y, 12, 12); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java index 69120b3..7748f05 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleList.java @@ -2,11 +2,12 @@ package me.kawaiizenbo.moonlight.ui.hud.editor; import java.util.ArrayList; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager; +import me.kawaiizenbo.moonlight.util.DrawUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.util.Identifier; public class HUDModuleList { @@ -37,10 +38,10 @@ public class HUDModuleList x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, 0xFF55FFFF); - drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? 0xFF333333 : 0xFF222222); - drawContext.drawGuiTexture(Identifier.of("moonlight", "hud"), x+2, y+2, 12, 12); - drawContext.drawText(textRenderer, "HUD Modules", x+16, y+4, 0xFFFFFFFF, false); + drawContext.fill(x, y, x+width, collapsed ? y+16 : y+height, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); + //drawContext.fill(x+2, y+2, x+(width-2), y+14, hovered(mouseX, mouseY) ? Moonlight.THEME.hover.getRGB() : Moonlight.THEME.background.getRGB()); + drawContext.drawGuiTexture(DrawUtils.getThemedGUIIcon("hud"), x+2, y+2, 12, 12); + drawContext.drawText(textRenderer, "HUD Modules", x+16, y+4, Moonlight.THEME.headerText.getRGB(), false); if (!collapsed) { int buttonYOffset = y+16; diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java index 6925709..a3d2a90 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDModuleSettingsScreen.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.editor; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.module.settings.Setting; import me.kawaiizenbo.moonlight.ui.SetScreenButton; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; @@ -20,7 +21,7 @@ public class HUDModuleSettingsScreen extends Screen public HUDModuleSettingsScreen(HUDModule module) { super(Text.literal("Settings")); - backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, 0xFFFFFF, HUDEditorScreen.INSTANCE); + backButton = new SetScreenButton(ColorUtils.underline + "< Back", x+4, y+4, HUDEditorScreen.INSTANCE); this.module = module; } @@ -35,10 +36,11 @@ public class HUDModuleSettingsScreen extends Screen x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x, y, x+windowWidth, y+windowHeight, 0xFF222222); - drawContext.fill(x, y, x+windowWidth, y+16, 0xFF55FFFF); - drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, 0xFF222222); - drawContext.drawCenteredTextWithShadow(textRenderer, module.name, x+(windowWidth/2), y+4, 0xFFFFFF); + drawContext.fill(x, y, x+windowWidth, y+windowHeight, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); + drawContext.fill(x+2, y+2, x+windowWidth-2, y+windowHeight-2, Moonlight.THEME.background.getRGB()); + drawContext.fill(x, y, x+windowWidth, y+16, Moonlight.THEME.themedWindowBorders ? Moonlight.THEME.border.getRGB() : Moonlight.THEME.accent.getRGB()); + //drawContext.fill(x+2, y+2, x+(windowWidth-2), y+14, Moonlight.THEME.background.getRGB()); + drawContext.drawText(textRenderer, module.name, x+((windowWidth/2)-(textRenderer.getWidth(module.name)/2)), y+4, Moonlight.THEME.headerText.getRGB(), false); backButton.render(drawContext, textRenderer, mouseX, mouseY, x+4, y+4); int yOffset = y+24; for (Setting setting : module.settings) diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java index eff197e..52da48f 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ArmorDisplay.java @@ -1,13 +1,9 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import me.kawaiizenbo.moonlight.util.MathUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.item.ItemStack; -import net.minecraft.util.math.Vec3d; public class ArmorDisplay extends HUDModule { diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java index 42f8611..699a5a9 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import me.kawaiizenbo.moonlight.util.ColorUtils; import net.minecraft.client.font.TextRenderer; @@ -22,7 +23,7 @@ public class Coordinates extends HUDModule drawContext.drawTextWithShadow(mc.textRenderer, "X: " + ColorUtils.gray + String.format("%.1f", mc.player.getX()) + ColorUtils.reset + " Y: " + ColorUtils.gray + String.format("%.1f", mc.player.getY()) + ColorUtils.reset + - " Z: " + ColorUtils.gray + String.format("%.1f", mc.player.getZ()), x, y, 0xFF55FFFF + " Z: " + ColorUtils.gray + String.format("%.1f", mc.player.getZ()), x, y, Moonlight.THEME.hudAccent.getRGB() ); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java index 2b6ecc2..c7dd4a6 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import me.kawaiizenbo.moonlight.util.ColorUtils; import net.minecraft.client.font.TextRenderer; @@ -19,6 +20,6 @@ public class FPS extends HUDModule public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) { super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "FPS: " + ColorUtils.gray + mc.fpsDebugString.split(" ")[0], x, y, 0xFF55FFFF); + drawContext.drawTextWithShadow(mc.textRenderer, "FPS: " + ColorUtils.gray + mc.fpsDebugString.split(" ")[0], x, y, Moonlight.THEME.hudAccent.getRGB()); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java index f5edcdf..a21c01f 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import me.kawaiizenbo.moonlight.util.ColorUtils; import me.kawaiizenbo.moonlight.util.MathUtils; @@ -21,7 +22,7 @@ public class MovementSpeed extends HUDModule public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) { super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "Meters/s: " + ColorUtils.gray + MathUtils.round(moveSpeed(), 2), x, y, 0xFF55FFFF); + drawContext.drawTextWithShadow(mc.textRenderer, "Meters/s: " + ColorUtils.gray + MathUtils.round(moveSpeed(), 2), x, y, Moonlight.THEME.hudAccent.getRGB()); } private double moveSpeed() diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java index d6596c5..935fbe4 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; +import me.kawaiizenbo.moonlight.Moonlight; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; import me.kawaiizenbo.moonlight.util.ColorUtils; import net.minecraft.client.font.TextRenderer; @@ -19,6 +20,6 @@ public class Ping extends HUDModule public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) { super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); - drawContext.drawTextWithShadow(mc.textRenderer, "Ping: " + ColorUtils.gray + (mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()) == null ? 0 : mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()).getLatency()), x, y, 0xFF55FFFF); + drawContext.drawTextWithShadow(mc.textRenderer, "Ping: " + ColorUtils.gray + (mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()) == null ? 0 : mc.getNetworkHandler().getPlayerListEntry(mc.player.getUuid()).getLatency()), x, y, Moonlight.THEME.hudAccent.getRGB()); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java index 7334683..fb0a618 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TotemCounter.java @@ -1,14 +1,10 @@ package me.kawaiizenbo.moonlight.ui.hud.modules; import me.kawaiizenbo.moonlight.ui.hud.HUDModule; -import me.kawaiizenbo.moonlight.util.ColorUtils; -import me.kawaiizenbo.moonlight.util.MathUtils; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.util.math.Vec3d; public class TotemCounter extends HUDModule { diff --git a/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java b/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java new file mode 100644 index 0000000..be83b3e --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/util/DrawUtils.java @@ -0,0 +1,13 @@ +package me.kawaiizenbo.moonlight.util; + +import me.kawaiizenbo.moonlight.Moonlight; +import net.minecraft.util.Identifier; + +public class DrawUtils +{ + public static Identifier getThemedGUIIcon(String textureName) + { + String addition = Moonlight.THEME.useDarkIcons ? "_light" : ""; + return Identifier.of("moonlight", textureName+addition); + } +} diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/chat_light.png new file mode 100644 index 0000000000000000000000000000000000000000..99d12cfe49ebb666e42e5457ee4ebcaea295fd14 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=Dh+K$tP>S|=w^a7${0XPT#{76S*6!^$AV$jZP7WO)IxG?Wdp zNrRCYEY1XE8!|F6@B!&4AkJ)O0gGn<*&wjLjFI65GlDKi%*-p%%S$a$Fx4|;07^_? zXJ7%UGcYnXU|aw(6J#Ij0*E=2fNT(80-DMMRvBbz0c1gS85$UXWYf1~P4u%id p+NGQID}Jopo49+Dw_KijiO$t%1k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D9gc)~C%zg_L z+>#pMnda%K#lQjNurf$7vNA9NSs?Y&P&UXV8jQ?faV8+!kdcXj4@gG=ab`OUSUdyB z27#Mpj0`V;4u;VMiJ5sNdU>fO3Z{C73_ytq>vp>5|9l7 zOh8kaz$$|*Er2YjE<*zYknBFwtF;?^^)>;S#-1*YArj%feV)L8<6wIGe?H&YBYcL; z+Y(j@Feqs#dfzyzo_2Je@_wt87dK3cs99x~pewtEA#v-Q`aFzopr0DUA) ARR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/hud_light.png new file mode 100644 index 0000000000000000000000000000000000000000..4052a19b2e09348faa8ca855dc1c96a46d7713dd GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DkxL735kHCP2GxFt2hGtJXei-7~kVP%kFWMyCkvb=y;8p;OQ zq`}Ax7H0yo4H=mj_<(d25NEctfWnu389^5$X6BXX<)xM=nCcla03{}{ zGq3>F85kKGFfM?Y39^rM0mPh1KsE?40ZnBBs|>QV0J5OE3=IrGvR7G;F;;!@?glcg zJzX3_G=lF=P~>AU;9$P}_y2iwR;I%d%gUB5+B+e^L73;nw~4G4tOrUJGk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D1gc(IOyc&Rl zTT&xD(>y)37&w3&Rt70XRt82O3#48e$_BYagOM35&IDu|GBPpn0qH0p&TMA^i)R4Y zAn>V-k>Lf>bbY%h?h;pyTSA`zaP;KIa{z~s|p$-`5?C*&~M o@pAJ6rA*esfF6g52d^+QGRRdhBs(5{Y6;Ts>FVdQ&MBb@06V8czW@LL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/player_light.png new file mode 100644 index 0000000000000000000000000000000000000000..e9454e9035a767d97ef4b707a737f0db02774ba9 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1O7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D9gc)~C%zg_L z+>#pMnda%K#lQjNurf$7vNA9NSs?Y&P&UXV8jQ?faV8+!kdcXj4@gG=ab`OUSUdyB z27#Mpj0`V;4u;VMiJ5sNdU>fO3Z{C73_ytq>vp>5|9l7 zOh8kaz$$|*Er2YjE<*zYknBFwtF;?^^)>;Snw~C>Arj%q2`)@L0+SehoH+y(&NyCV qW=@EdV01D#aH1ihdFKfk6$S>m6AY0@cH}Gr8Q|&a=d#Wzp$Py8=|$H7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/render_light.png new file mode 100644 index 0000000000000000000000000000000000000000..d42ca54aeeb9e4fb06cf00063eb282dcfe869a5c GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1O7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D9gc)~C%zg_L z+>#pMnda%K#lQjNurf$7vNA9NSs?Y&P&UXV8jQ?faV8+!kdcXj4@gG=ab`OUSUdyB z27#Mpj0`V;4u;VMiJ5sNdU>fO3Z{C73_ytq>vp>5|9l7 zOh8kaz$$|*Er2YjE<*zYknBFwtF;?^^)>;S2A(dCArj%q2`)@LGi2D<40x3e=m;=6 x@d$`9D|av|9rU_rA)p(Ox`J(i6fe7m41>Z&hU^&&Sk44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D1gc(IOyc&Rl zTT&xD(>y)37&w3&Rt70XRt82O3#48e$_BYagOM35&IDu|GBPpn0qH0p&TMA^i)R4Y zAn>V-k>Lf>bbY%h?h>*?YcA`zaP;KIby)5F7)z}CSk&RQ%X taUdunCE#nq!v@v`G8+sdQUiL~7#S2>7;^tIyQYB*@pScbS?83{1OSeEM7;n2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png b/src/main/resources/assets/moonlight/textures/gui/sprites/world_light.png new file mode 100644 index 0000000000000000000000000000000000000000..1308ef98de021a4d41bd2cc7983f43710e442bd2 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1O7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1M1^9%x0%;&vn!fWqkYXwc@(cdY@N~O@7m&wU;1OBOz`%D9gc)~C%zg_L z+>#pMnda%K#lQjNurf$7vNA9NSs?Y&P&UXV8jQ?faV8+!kdcXj4@gG=ab`OUSUdyB z27#Mpj0`V;4u;VMiJ5sNdU>fO3Z{C73_ytq>vp>5|9l7 zOh8kaz$$|*Er2YjE<*zYknBFwtF;?^^)>;S2A(dCArj%q2`tQPEGG{zI3@7SXzOqY xJs^4@