-
Notifications
You must be signed in to change notification settings - Fork 0
qrender
qloak edited this page May 13, 2026
·
1 revision
HUD overlays, widgets, and particle helpers.
Register a HUD renderer during mod init:
HudOverlay.init(); // call once
HudOverlay.register((graphics, delta) -> {
graphics.drawString(Minecraft.getInstance().font,
Component.literal("Hello HUD"), 4, 4, 0xFFFFFF);
});Widgets are simple. Build a tree, render it.
QPanel panel = new QPanel(0, 0, 120, 50).background(0xCC000000);
panel.addChild(new QLabel(5, 5, Component.literal("Title")).color(0xFFAA55));
panel.addChild(new QProgressBar(5, 20, 110, 8).progress(0.75f));
// position panel on screen
HudAnchor a = HudAnchor.topRight(8, 8);
panel.setPosition(a.resolveX(panel.width()), a.resolveY(panel.height()));
panel.render(graphics, mouseX, mouseY, 0);| Widget | What it does |
|---|---|
QLabel |
Text with color and shadow |
QProgressBar |
Horizontal bar, 0..1 |
QButton |
Clickable with hover state |
QPanel |
Container with background, offsets children |
QPanel uses pose translation so children are positioned relative to the panel origin. Don't set children to screen coordinates.
HudAnchor.topLeft(8, 8);
HudAnchor.topRight(8, 8);
HudAnchor.bottomLeft(8, 8);
HudAnchor.bottomRight(8, 8);
HudAnchor.topCenter(0, 8);// client-side burst
ParticleHelper.spawnBurst(level, ParticleTypes.PORTAL, centerVec3, spread, count);
// server-side (sent to all players)
ParticleHelper.spawn(level, ParticleTypes.FLAME, x, y, z, vx, vy, vz, count);spawnBurst is client-only. spawn auto-detects side.