now able to toggle hud modules
This commit is contained in:
parent
8f6646b7e0
commit
90347f7476
5 changed files with 137 additions and 0 deletions
|
@ -55,4 +55,8 @@ public class HUDModule
|
|||
dragging = false;
|
||||
}
|
||||
|
||||
public void toggle()
|
||||
{
|
||||
enabled = !enabled;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,10 +9,12 @@ import net.minecraft.text.Text;
|
|||
public class HUDEditorScreen extends Screen
|
||||
{
|
||||
public static HUDEditorScreen INSTANCE = new HUDEditorScreen();
|
||||
HUDModuleList moduleList;
|
||||
|
||||
public HUDEditorScreen()
|
||||
{
|
||||
super(Text.literal("HUD Editor"));
|
||||
moduleList = new HUDModuleList(256, 2, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -23,6 +25,7 @@ public class HUDEditorScreen extends Screen
|
|||
{
|
||||
h.render(drawContext, mouseX, mouseY, textRenderer, true, h.enabled);
|
||||
}
|
||||
moduleList.render(drawContext, mouseX, mouseY, delta, textRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -32,6 +35,7 @@ public class HUDEditorScreen extends Screen
|
|||
{
|
||||
h.mouseClicked((int)mouseX, (int)mouseY, button);
|
||||
}
|
||||
moduleList.mouseClicked((int)mouseX, (int)mouseY, button);
|
||||
return super.mouseClicked(mouseX, mouseY, button);
|
||||
}
|
||||
|
||||
|
@ -42,6 +46,7 @@ public class HUDEditorScreen extends Screen
|
|||
{
|
||||
h.mouseReleased((int)mouseX, (int)mouseY, button);
|
||||
}
|
||||
moduleList.mouseReleased((int)mouseX, (int)mouseY, button);
|
||||
return super.mouseReleased(mouseX, mouseY, button);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
package me.kawaiizenbo.moonlight.ui.hud.editor;
|
||||
|
||||
import me.kawaiizenbo.moonlight.ui.hud.HUDModule;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
|
||||
public class HUDModuleButton
|
||||
{
|
||||
public HUDModule module;
|
||||
public int x, y, width, height = 0;
|
||||
|
||||
public HUDModuleButton(HUDModule module)
|
||||
{
|
||||
this.module = module;
|
||||
this.width = 124;
|
||||
this.height = 12;
|
||||
}
|
||||
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, int x, int y, TextRenderer textRenderer)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
public boolean hovered(int mouseX, int mouseY)
|
||||
{
|
||||
return mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height;
|
||||
}
|
||||
|
||||
public boolean mouseClicked(int mouseX, int mouseY, int button)
|
||||
{
|
||||
if (hovered(mouseX, mouseY))
|
||||
{
|
||||
if (button == 0)
|
||||
{
|
||||
module.toggle();
|
||||
}
|
||||
else if (button == 1)
|
||||
{
|
||||
// HUDModule Settings coming Soon TM
|
||||
//MinecraftClient.getInstance().setScreen(new SettingsScreen(module));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
package me.kawaiizenbo.moonlight.ui.hud.editor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import me.kawaiizenbo.moonlight.ui.hud.HUDModule;
|
||||
import me.kawaiizenbo.moonlight.ui.hud.HUDModuleManager;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class HUDModuleList
|
||||
{
|
||||
public int x, y, height, width = 128;
|
||||
int startX, startY;
|
||||
boolean dragging = false;
|
||||
public boolean collapsed = false;
|
||||
ArrayList<HUDModuleButton> buttons;
|
||||
|
||||
public HUDModuleList(int initialX, int initialY, boolean collapsed)
|
||||
{
|
||||
this.x = initialX;
|
||||
this.y = initialY;
|
||||
this.collapsed = collapsed;
|
||||
buttons = new ArrayList<HUDModuleButton>();
|
||||
for (HUDModule m : HUDModuleManager.INSTANCE.modules)
|
||||
{
|
||||
buttons.add(new HUDModuleButton(m));
|
||||
}
|
||||
if (buttons.size() == 0) collapsed = true;
|
||||
height = (buttons.size()*12) + 18;
|
||||
}
|
||||
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, float delta, TextRenderer textRenderer)
|
||||
{
|
||||
if (dragging)
|
||||
{
|
||||
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);
|
||||
if (!collapsed)
|
||||
{
|
||||
int buttonYOffset = y+16;
|
||||
for (HUDModuleButton m : buttons)
|
||||
{
|
||||
m.render(drawContext, mouseX, mouseY, x+2, buttonYOffset, textRenderer);
|
||||
buttonYOffset += 12;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hovered(int mouseX, int mouseY)
|
||||
{
|
||||
return mouseX >= x+2 && mouseX <= x+(width-2) && mouseY >= y+2 && mouseY <= y+14;
|
||||
}
|
||||
|
||||
public void mouseClicked(int mouseX, int mouseY, int button)
|
||||
{
|
||||
for (HUDModuleButton moduleButton : buttons)
|
||||
{
|
||||
if (moduleButton.mouseClicked(mouseX, mouseY, button)) return;
|
||||
}
|
||||
if (hovered(mouseX, mouseY) && button == 1) collapsed = !collapsed;
|
||||
else if (hovered(mouseX, mouseY) && button == 0)
|
||||
{
|
||||
startX = (int)mouseX-x;
|
||||
startY = (int)mouseY-y;
|
||||
dragging = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void mouseReleased(int mouseX, int mouseY, int button)
|
||||
{
|
||||
dragging = false;
|
||||
}
|
||||
}
|
BIN
src/main/resources/assets/moonlight/textures/gui/sprites/hud.png
Normal file
BIN
src/main/resources/assets/moonlight/textures/gui/sprites/hud.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 354 B |
Loading…
Add table
Reference in a new issue