
Tango's Hud Lib
A small client-side Fabric library for movable HUD widgets. Provides an API that other mods can use to register HUD elements. For players, that means TangosHudLib renders and stores the widgets that another mod registers through this l
26
0
Tango's HudLib
Tango's HudLib is a small client-side Fabric library for movable HUD widgets.
The mod itself does not add major gameplay features. It provides an API that other mods can use to register HUD elements. For players, that means TangosHudLib renders and stores the widgets that another mod registers through this library.
In-Game Usage
- Install the mod together with Fabric API.
- Start the game with a mod that registers widgets through TangosHudLib.
- Open the
Tango's HudLibcategory in the Minecraft controls menu. - Look for
HUD Editor (<Mod Name>). - Press the assigned key in-game to open that mod's HUD editor.
- Drag widgets with the left mouse button to move them.
- Close the editor with the same hotkey or with
Esc.
Widget positions are stored in config/tangos-hud-lib.json.
Using It In Your Own Mod
The smallest clean integration has two parts:
- A class with
staticmethods annotated with@HudWidget. - A registration call inside your
ClientModInitializer.
Example
package eu.example.mod;
import eu.tango.tangosHudLib.api.HudContent;
import eu.tango.tangosHudLib.api.HudLibrary;
import eu.tango.tangosHudLib.api.HudWidget;
import net.fabricmc.api.ClientModInitializer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.lwjgl.glfw.GLFW;
public final class ExampleModClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
HudLibrary.registerWidgets("examplemod", GLFW.GLFW_KEY_H, ExampleWidgets.class);
}
public static final class ExampleWidgets {
private ExampleWidgets() {
}
@HudWidget(id = "position")
public static HudContent position() {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null) {
return HudContent.builder()
.line(Text.literal("Position").formatted(Formatting.GOLD))
.line(Text.literal("No world loaded").formatted(Formatting.GRAY))
.build();
}
return HudContent.builder()
.line(Text.literal("Position").formatted(Formatting.GOLD))
.line(Text.literal(
client.player.getBlockX() + " "
+ client.player.getBlockY() + " "
+ client.player.getBlockZ()
).formatted(Formatting.WHITE))
.build();
}
}
}
Rules For @HudWidget
A widget method must:
- be
static - have no parameters
- return
HudContent - use a non-empty
id
HudContent must contain at least one non-blank line:
HudContent.builder()
.line(Text.literal("Title"))
.line(Text.literal("Content"))
.build();
API Summary
HudLibrary.registerWidgets(String ownerId, int defaultKey, Class<?> clazz)registers all@HudWidgetmethods in the class and assigns a default HUD editor hotkey.HudLibrary.registerWidgets(String ownerId, Class<?> clazz)registers widgets without a default hotkey.HudLibrary.registerWidgets(Class<?> clazz)uses the library defaultstangos-hud-libandH.
Совместимость
Создатели
Детали
Лицензия:GPL-3.0-only
Опубликован:3 дня назад
Обновлён:3 дня назад
