From 95ed46fff014c6cf571e2b37c47b28781e5ba327 Mon Sep 17 00:00:00 2001 From: kawaiizenbo <48113593+kawaiizenbo@users.noreply.github.com> Date: Thu, 8 Dec 2022 21:58:14 -0700 Subject: [PATCH] DoubleSetting working, new icon --- .../moonlight/module/ModuleManager.java | 3 +- .../moonlight/module/modules/TestDisplay.java | 4 +- .../module/settings/DoubleSetting.java | 52 ++++++++++++++---- .../moonlight/module/settings/Setting.java | 22 +++++++- .../moonlight/ui/clickgui/SettingsScreen.java | 36 ++++++++++-- src/main/resources/assets/moonlight/icon.png | Bin 10292 -> 15920 bytes 6 files changed, 94 insertions(+), 23 deletions(-) diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java index 2c44331..e6f53e3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/ModuleManager.java @@ -14,8 +14,7 @@ public class ModuleManager registerModules( new Fly(), new NoFall(), - new HUDModule(), - new TestDisplay() + new HUDModule() ); } diff --git a/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestDisplay.java b/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestDisplay.java index 6e85441..7b7230f 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestDisplay.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/modules/TestDisplay.java @@ -6,8 +6,8 @@ import me.kawaiizenbo.moonlight.module.settings.DoubleSetting; public class TestDisplay extends Module_ { - DoubleSetting test1 = new DoubleSetting("test1", 1, 0, 20, 1); - DoubleSetting test2 = new DoubleSetting("test2", 0, 0, 1, 0.1); + DoubleSetting test1 = new DoubleSetting("test1", 1, 0, 20, 0); + DoubleSetting test2 = new DoubleSetting("test2", 0, 0, 1, 1); public TestDisplay() { 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 1cd65d2..003b900 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/DoubleSetting.java @@ -10,23 +10,40 @@ import net.minecraft.text.Text; public class DoubleSetting extends Setting { public double value; - private double min, max, increment; + private double min, max; + private int roundingPlace; - public DoubleSetting(String name, double value, double min, double max, double increment) + boolean sliding = false; + + public DoubleSetting(String name, double value, double min, double max, int roundingPlace) { this.name = name; this.value = value; this.min = min; this.max = max; - this.increment = increment; + this.roundingPlace = roundingPlace; } @Override public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) - { - DrawableHelper.fill(matrices, x, y, x+192, y+24, hovered(mouseX, mouseY, x, y) ? 0xFF444444: 0xFF222222); - DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(name), x+2, y+2, 0xFFFFFF); - String valueString = ""+round(value, 1); + { + super.render(matrices, x, y, mouseX, mouseY); + double diff = Math.min(100, Math.max(0, (mouseX - x)/1.9)); + + if (sliding) + { + if (diff == 0) + { + value = min; + } + else + { + double newValue = round(((diff / 100) * (max - min) + min), roundingPlace); + value = newValue; + } + } + + String valueString = ""+round(value, roundingPlace); DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(valueString), (x+190)-textRenderer.getWidth(valueString), y+2, 0xFFFFFF); DrawableHelper.fill(matrices, x+2, y+16, x+190, y+18, 0xFF666666); int scaledValue = (int)((value/max)*190); @@ -34,11 +51,6 @@ public class DoubleSetting extends Setting DrawableHelper.fill(matrices, x+2+(scaledValue-1), y+14, x+2+(scaledValue+1), y+20, 0xFFFFFFFF); } - public boolean hovered(int mouseX, int mouseY, int x, int y) - { - return mouseX >= x && mouseX <= x + 192 && mouseY >= y && mouseY <= y + 24; - } - private static double round(double value, int places) { if (places < 0) throw new IllegalArgumentException(); @@ -47,4 +59,20 @@ public class DoubleSetting extends Setting bd = bd.setScale(places, RoundingMode.HALF_UP); return bd.doubleValue(); } + + @Override + public void mouseClicked(double mouseX, double mouseY, int button) + { + if (hovered((int)mouseX, (int)mouseY) && button == 0) + { + this.sliding = true; + } + } + + @Override + public void mouseReleased(double mouseX, double mouseY, int button) + { + sliding = 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 f8a5b9b..5eb9f89 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java +++ b/src/main/java/me/kawaiizenbo/moonlight/module/settings/Setting.java @@ -2,12 +2,32 @@ package me.kawaiizenbo.moonlight.module.settings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; public class Setting { public String name; protected TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; - public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) { } + int x = 0, y = 0; + public void render(MatrixStack matrices, int x, int y, int mouseX, int mouseY) + { + this.x = x; + this.y = y; + DrawableHelper.fill(matrices, x, y, x+192, y+24, hovered(mouseX, mouseY) ? 0xFF444444: 0xFF222222); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(name), x+2, y+2, 0xFFFFFF); + } + + public void mouseClicked(double mouseX, double mouseY, int button) { } + + public void mouseReleased(double mouseX, double mouseY, int button) { } + + public void keyPressed(int keyCode, int scanCode, int modifiers) { } + + protected boolean hovered(int mouseX, int mouseY) + { + return mouseX >= x && mouseX <= x + 192 && mouseY >= y && mouseY <= y + 24; + } } 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 a4f5e73..4e9a4d6 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/clickgui/SettingsScreen.java @@ -18,7 +18,6 @@ public class SettingsScreen extends Screen { super(Text.literal("Settings")); this.module = module; - backButton = new TextButton(ColorUtils.underline + "< Back", 112, 32, 0xFFFFFF); } @Override @@ -26,14 +25,15 @@ public class SettingsScreen extends Screen { this.renderBackground(matrices); DrawableHelper.fill(matrices, (width/2)-112, (height/2)-96, (width/2)+112, (height/2)+96, 0xFF222222); - DrawableHelper.drawCenteredText(matrices, textRenderer, module.name, width/2, 32, 0xFFFFFF); - DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(module.description), 112, 48, 0xFFFFFF); + DrawableHelper.drawCenteredText(matrices, textRenderer, module.name, width/2, (height/2)-88, 0xFFFFFF); + DrawableHelper.drawTextWithShadow(matrices, textRenderer, Text.literal(module.description), (width/2)-104, (height/2)-72, 0xFFFFFF); + backButton = new TextButton(ColorUtils.underline + "< Back", (width/2)-104, (height/2)-88, 0xFFFFFF); backButton.render(matrices, textRenderer, mouseX, mouseY); - int yOffset = 64; + int yOffset = (height/2)-56; for (Setting setting : module.settings) { - setting.render(matrices, 117, yOffset, mouseX, mouseY); - yOffset += 32; + setting.render(matrices, (width/2)-96, yOffset, mouseX, mouseY); + yOffset += 25; } // add keybind setting here eventually } @@ -48,6 +48,30 @@ public class SettingsScreen extends Screen public boolean mouseClicked(double mouseX, double mouseY, int button) { backButton.mouseClicked((int)mouseX, (int)mouseY); + for (Setting setting : module.settings) + { + setting.mouseClicked(mouseX, mouseY, button); + } return super.mouseClicked(mouseX, mouseY, button); } + + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) + { + for (Setting setting : module.settings) + { + setting.mouseReleased(mouseX, mouseY, button); + } + return super.mouseReleased(mouseX, mouseY, button); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) + { + for (Setting setting : module.settings) + { + setting.keyPressed(keyCode, scanCode, modifiers); + } + return super.keyPressed(keyCode, scanCode, modifiers); + } } diff --git a/src/main/resources/assets/moonlight/icon.png b/src/main/resources/assets/moonlight/icon.png index 7ef1bf42cc326976ee792131481efce7762a7ecd..0673fd98087fd5815d14073649465d1ec4e75755 100644 GIT binary patch literal 15920 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 literal 10292 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