From 420c272b9bd0229c70dafb112703b69a0e145b4d Mon Sep 17 00:00:00 2001 From: Rosa Date: Fri, 10 Jul 2026 15:42:41 -0400 Subject: add fuel information to item tooltips --- src/main/java/net/inyourwalls/frank/Frank.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/net/inyourwalls/frank/Frank.java b/src/main/java/net/inyourwalls/frank/Frank.java index d992208..6044f89 100644 --- a/src/main/java/net/inyourwalls/frank/Frank.java +++ b/src/main/java/net/inyourwalls/frank/Frank.java @@ -3,10 +3,17 @@ package net.inyourwalls.frank; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.inyourwalls.frank.config.FrankConfig; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.inventory.AbstractFurnaceScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextColor; +import net.minecraft.network.chat.contents.objects.AtlasSprite; +import net.minecraft.resources.Identifier; import net.minecraft.world.inventory.AbstractFurnaceMenu; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,6 +43,24 @@ public class Frank implements ClientModInitializer { } }); LOGGER.info("Screen events registered."); + + ItemTooltipCallback.EVENT.register((stack, ctx, flag, components) -> { + Minecraft client = Minecraft.getInstance(); + if (client.level != null && client.level.fuelValues().isFuel(stack)) { + int burnDuration = client.level.fuelValues().burnDuration(stack); + components.add(Component.empty() + .append(Component.translatable("ui.frank.smelts", String.format("%.2f", (double)burnDuration / 200)).withStyle(t -> t.withColor(TextColor.GRAY))) + .append(Component.literal(" (").withStyle(t -> t.withColor(TextColor.GRAY))) + .append(Component.object(new AtlasSprite(AtlasSprite.DEFAULT_ATLAS, Identifier.withDefaultNamespace("block/furnace_front_on")))) + .append(Component.literal(" " + burnDuration + "gt").withStyle(t -> t.withColor(TextColor.GRAY))) + .append(Component.literal(" / ").withStyle(t -> t.withColor(TextColor.GRAY))) + .append(Component.object(new AtlasSprite(AtlasSprite.DEFAULT_ATLAS, Identifier.withDefaultNamespace("block/blast_furnace_front_on")))) + .append(Component.object(new AtlasSprite(AtlasSprite.DEFAULT_ATLAS, Identifier.withDefaultNamespace("block/smoker_front_on")))) + .append(Component.literal(" " + burnDuration / 2 + "gt").withStyle(t -> t.withColor(TextColor.GRAY))) + .append(Component.literal(")").withStyle(t -> t.withColor(TextColor.GRAY))) + ); + } + }); } /** -- cgit v1.3.1