@Module(name="Item Tags", category="VISUAL", description="Simple Item Tags", defaultEnabled=true)
void meta(vm) {
vm.registerSliderDouble("scale", "Text Scale", 0.5, 3.0, 1.5, 0.1);
vm.registerSliderDouble("offset", "Y Offset", 0.2, 2.0, 0.6, 0.1);
vm.registerBoolean("shadow", "Text Shadow", true);
vm.registerBoolean("show_count", "Show Count", true);
}
@EventTarget(events="render_3d")
void onRender3D(event) {
if (!render3d.isPost()) return;
world = me.getWorld();
if (world == null) return;
items = world.getItemEntities();
if (items.isEmpty()) return;
render3d.clearDepth();
for (ent : items) {
if (!(ent instanceof ItemEntity)) continue;
pos = render3d.interpolatedPos(ent);
if (pos == null) continue;
label = ent.getItemName();
if (label == null || label.isEmpty()) label = "Item";
if (me.getBool("show_count") && ent.getItemCount() > 1) {
label = label + " x" + ent.getItemCount();
}
render3d.text(label,
pos.x,
pos.y + me.getNumber("offset"),
pos.z,
me.getNumber("scale"),
me.getBool("shadow"));
}
}
@OnEnable
void onEnable() { me.subChat("§a[Item Tags] on§r"); }
@OnDisable
void onDisable() { me.subChat("§c[Item Tags] off§r"); }