implement legacy hud elements as modules
This commit is contained in:
parent
31ecdd4f04
commit
8f6646b7e0
11 changed files with 165 additions and 11 deletions
|
@ -10,6 +10,8 @@ import net.minecraft.client.gui.DrawContext;
|
||||||
|
|
||||||
public class ModulesListOverlay
|
public class ModulesListOverlay
|
||||||
{
|
{
|
||||||
|
// this will be replaced with a new hud version at some point
|
||||||
|
|
||||||
public static ModulesListOverlay INSTANCE = new ModulesListOverlay();
|
public static ModulesListOverlay INSTANCE = new ModulesListOverlay();
|
||||||
private MinecraftClient mc = MinecraftClient.getInstance();
|
private MinecraftClient mc = MinecraftClient.getInstance();
|
||||||
private ArrayList<Module> enabledModules = ModuleManager.INSTANCE.getEnabledModules();
|
private ArrayList<Module> enabledModules = ModuleManager.INSTANCE.getEnabledModules();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package me.kawaiizenbo.moonlight.ui.hud;
|
package me.kawaiizenbo.moonlight.ui.hud;
|
||||||
|
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
|
||||||
|
@ -9,6 +10,9 @@ public class HUDModule
|
||||||
public String name;
|
public String name;
|
||||||
int startX, startY;
|
int startX, startY;
|
||||||
boolean dragging = false;
|
boolean dragging = false;
|
||||||
|
public boolean enabled = false;
|
||||||
|
|
||||||
|
protected static MinecraftClient mc = MinecraftClient.getInstance();
|
||||||
|
|
||||||
public HUDModule(String name, int x, int y)
|
public HUDModule(String name, int x, int y)
|
||||||
{
|
{
|
||||||
|
@ -17,7 +21,7 @@ public class HUDModule
|
||||||
this.y = y;
|
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)
|
if (editMode)
|
||||||
{
|
{
|
||||||
|
@ -26,7 +30,7 @@ public class HUDModule
|
||||||
x = mouseX - startX;
|
x = mouseX - startX;
|
||||||
y = mouseY - startY;
|
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);
|
drawContext.fill(x, y, x+width, y+height, 0xFF222222);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ package me.kawaiizenbo.moonlight.ui.hud;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import me.kawaiizenbo.moonlight.ui.hud.modules.TestModuleHUD;
|
import me.kawaiizenbo.moonlight.ui.hud.modules.*;
|
||||||
|
|
||||||
public class HUDModuleManager
|
public class HUDModuleManager
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,11 @@ public class HUDModuleManager
|
||||||
public HUDModuleManager()
|
public HUDModuleManager()
|
||||||
{
|
{
|
||||||
registerModules(
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<HUDModule> getEnabledModules()
|
||||||
|
{
|
||||||
|
ArrayList<HUDModule> enabledModules = new ArrayList<>();
|
||||||
|
for (HUDModule module : modules)
|
||||||
|
{
|
||||||
|
if (!module.enabled)
|
||||||
|
continue;
|
||||||
|
enabledModules.add(module);
|
||||||
|
}
|
||||||
|
return enabledModules;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,10 @@ public class HUDRenderer
|
||||||
// do not draw if F3 enabled
|
// do not draw if F3 enabled
|
||||||
if (mc.getDebugHud().shouldShowDebugHud()) return;
|
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
|
// 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class HUDEditorScreen extends Screen
|
||||||
this.renderBackground(drawContext, mouseX, mouseY, delta);
|
this.renderBackground(drawContext, mouseX, mouseY, delta);
|
||||||
for (HUDModule h : HUDModuleManager.INSTANCE.modules)
|
for (HUDModule h : HUDModuleManager.INSTANCE.modules)
|
||||||
{
|
{
|
||||||
h.render(drawContext, mouseX, mouseY, textRenderer, true);
|
h.render(drawContext, mouseX, mouseY, textRenderer, true, h.enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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)) ;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,13 +10,13 @@ public class TestModuleHUD extends HUDModule
|
||||||
{
|
{
|
||||||
super("Test HUD Module", x, y);
|
super("Test HUD Module", x, y);
|
||||||
this.width = 96;
|
this.width = 96;
|
||||||
this.height = 12;
|
this.height = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
super.render(drawContext, mouseX, mouseY, textRenderer, editMode, enabled);
|
||||||
drawContext.drawText(textRenderer, "heloooooo", x, y, 0x55FFFF, false);
|
drawContext.drawText(textRenderer, "Text Text Text Test :3", x, y, 0xFFFFFF, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue