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 | ||||
| { | ||||
| 	// 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<Module> enabledModules = ModuleManager.INSTANCE.getEnabledModules(); | ||||
|  |  | |||
|  | @ -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); | ||||
|     	} | ||||
|     } | ||||
|  |  | |||
|  | @ -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<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 | ||||
|     	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); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -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); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -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); | ||||
| 		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); | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 kawaiizenbo
						kawaiizenbo