diff options
| author | Rosa <rosaontheweb@proton.me> | 2026-07-10 15:42:41 -0400 |
|---|---|---|
| committer | Rosa <rosaontheweb@proton.me> | 2026-07-10 15:42:41 -0400 |
| commit | 420c272b9bd0229c70dafb112703b69a0e145b4d (patch) | |
| tree | b8889afa258df3dd3af00ad6f71ded7006a8c70c /src/main | |
| parent | 8e515ea69ad67725f183bfdd9543c8c7039d5c92 (diff) | |
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/net/inyourwalls/frank/Frank.java | 25 | ||||
| -rw-r--r-- | src/main/resources/assets/frank/lang/en_us.json | 1 |
2 files changed, 26 insertions, 0 deletions
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))) + ); + } + }); } /** diff --git a/src/main/resources/assets/frank/lang/en_us.json b/src/main/resources/assets/frank/lang/en_us.json index 1a7471d..0e732c9 100644 --- a/src/main/resources/assets/frank/lang/en_us.json +++ b/src/main/resources/assets/frank/lang/en_us.json @@ -1,6 +1,7 @@ { "ui.frank.time_left": "Time remaining: %sm %ss", "ui.frank.smeltable": "Items smeltable: %s", + "ui.frank.smelts": "Smelts %s items", "ui.frank.config": "Configuration - Frank", "ui.frank.config.preview": "Preview", |
