diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java index c661450..95d6a5e 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/ModulesListOverlay.java @@ -10,6 +10,8 @@ import net.minecraft.client.gui.DrawContext; public class ModulesListOverlay { + // this will be replaced with a new hud version at some point + public static ModulesListOverlay INSTANCE = new ModulesListOverlay(); private MinecraftClient mc = MinecraftClient.getInstance(); private ArrayList enabledModules = ModuleManager.INSTANCE.getEnabledModules(); 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 e44c719..2bdcf18 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModule.java @@ -1,5 +1,6 @@ package me.kawaiizenbo.moonlight.ui.hud; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -9,6 +10,9 @@ public class HUDModule public String name; int startX, startY; boolean dragging = false; + public boolean enabled = false; + + protected static MinecraftClient mc = MinecraftClient.getInstance(); public HUDModule(String name, int x, int y) { @@ -17,7 +21,7 @@ public class HUDModule this.y = y; } - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode) + public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) { if (editMode) { @@ -26,7 +30,7 @@ public class HUDModule x = mouseX - startX; y = mouseY - startY; } - drawContext.fill(x-1, y-1, x+width+1, y+height+1, 0xFF55FFFF); + drawContext.fill(x-1, y-1, x+width+1, y+height+1, enabled ? 0xFF55FFFF : 0xFF555555); drawContext.fill(x, y, x+width, y+height, 0xFF222222); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java index bd48064..3c44cba 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDModuleManager.java @@ -2,7 +2,7 @@ package me.kawaiizenbo.moonlight.ui.hud; import java.util.ArrayList; -import me.kawaiizenbo.moonlight.ui.hud.modules.TestModuleHUD; +import me.kawaiizenbo.moonlight.ui.hud.modules.*; public class HUDModuleManager { @@ -12,7 +12,11 @@ public class HUDModuleManager public HUDModuleManager() { registerModules( - new TestModuleHUD(0, 0) + new ClientTag(2, 2), + new FPS(2, 12), + new Ping(2, 22), + new MovementSpeed(2, 32), + new Coordinates(2, 42) ); } @@ -34,4 +38,16 @@ public class HUDModuleManager } return null; } + + public ArrayList getEnabledModules() + { + ArrayList enabledModules = new ArrayList<>(); + for (HUDModule module : modules) + { + if (!module.enabled) + continue; + enabledModules.add(module); + } + return enabledModules; + } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java index 5fd47bc..8c03be3 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/HUDRenderer.java @@ -13,10 +13,10 @@ public class HUDRenderer // do not draw if F3 enabled if (mc.getDebugHud().shouldShowDebugHud()) return; - for (HUDModule h : HUDModuleManager.INSTANCE.modules) + for (HUDModule h : HUDModuleManager.INSTANCE.getEnabledModules()) { // mouse coords are not needed when not in edit mode - h.render(drawContext, 0, 0, mc.textRenderer, false); + h.render(drawContext, 0, 0, mc.textRenderer, false, true); } } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java index b4acc21..76b54fb 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/editor/HUDEditorScreen.java @@ -21,7 +21,7 @@ public class HUDEditorScreen extends Screen this.renderBackground(drawContext, mouseX, mouseY, delta); for (HUDModule h : HUDModuleManager.INSTANCE.modules) { - h.render(drawContext, mouseX, mouseY, textRenderer, true); + h.render(drawContext, mouseX, mouseY, textRenderer, true, h.enabled); } } diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java new file mode 100644 index 0000000..d8f0ff8 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/ClientTag.java @@ -0,0 +1,24 @@ +package me.kawaiizenbo.moonlight.ui.hud.modules; + +import me.kawaiizenbo.moonlight.Moonlight; +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; + +public class ClientTag extends HUDModule +{ + public ClientTag(int x, int y) + { + super("Client Tag", x, y); + this.width = 128; + this.height = 8; + this.enabled = true; + } + + @Override + 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, Moonlight.clientTag + " " + Moonlight.versionTag, x, y, 16777215); + } +} 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 new file mode 100644 index 0000000..42f8611 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Coordinates.java @@ -0,0 +1,28 @@ +package me.kawaiizenbo.moonlight.ui.hud.modules; + +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import me.kawaiizenbo.moonlight.util.ColorUtils; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; + +public class Coordinates extends HUDModule +{ + public Coordinates(int x, int y) + { + super("Coordinates", x, y); + this.width = 128; + this.height = 8; + this.enabled = true; + } + + @Override + 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, + "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 + ); + } +} 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 new file mode 100644 index 0000000..2b6ecc2 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/FPS.java @@ -0,0 +1,24 @@ +package me.kawaiizenbo.moonlight.ui.hud.modules; + +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import me.kawaiizenbo.moonlight.util.ColorUtils; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; + +public class FPS extends HUDModule +{ + public FPS(int x, int y) + { + super("FPS", x, y); + this.width = 48; + this.height = 8; + this.enabled = true; + } + + @Override + 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); + } +} 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 new file mode 100644 index 0000000..f5edcdf --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/MovementSpeed.java @@ -0,0 +1,32 @@ +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.util.math.Vec3d; + +public class MovementSpeed extends HUDModule +{ + public MovementSpeed(int x, int y) + { + super("Movement Speed", x, y); + this.width = 72; + this.height = 8; + this.enabled = true; + } + + @Override + 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); + } + + private double moveSpeed() + { + Vec3d move = new Vec3d(mc.player.getX() - mc.player.prevX, 0, mc.player.getZ() - mc.player.prevZ).multiply(20); + return Math.abs(MathUtils.length2D(move)) ; + } +} 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 new file mode 100644 index 0000000..d6596c5 --- /dev/null +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/Ping.java @@ -0,0 +1,24 @@ +package me.kawaiizenbo.moonlight.ui.hud.modules; + +import me.kawaiizenbo.moonlight.ui.hud.HUDModule; +import me.kawaiizenbo.moonlight.util.ColorUtils; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; + +public class Ping extends HUDModule +{ + public Ping(int x, int y) + { + super("Ping", x, y); + this.width = 48; + this.height = 8; + this.enabled = true; + } + + @Override + 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); + } +} diff --git a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java index 0e45d61..aaeed6d 100644 --- a/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java +++ b/src/main/java/me/kawaiizenbo/moonlight/ui/hud/modules/TestModuleHUD.java @@ -10,13 +10,13 @@ public class TestModuleHUD extends HUDModule { super("Test HUD Module", x, y); this.width = 96; - this.height = 12; + this.height = 8; } @Override - public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode) + public void render(DrawContext drawContext, int mouseX, int mouseY, TextRenderer textRenderer, boolean editMode, boolean enabled) { - super.render(drawContext, mouseX, mouseY, textRenderer, editMode); - drawContext.drawText(textRenderer, "heloooooo", x, y, 0x55FFFF, false); + super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled); + drawContext.drawText(textRenderer, "Text Text Text Test :3", x, y, 0xFFFFFF, false); } }