aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosa <rosaontheweb@proton.me>2026-07-10 15:42:41 -0400
committerRosa <rosaontheweb@proton.me>2026-07-10 15:42:41 -0400
commit420c272b9bd0229c70dafb112703b69a0e145b4d (patch)
treeb8889afa258df3dd3af00ad6f71ded7006a8c70c
parent8e515ea69ad67725f183bfdd9543c8c7039d5c92 (diff)
add fuel information to item tooltipsHEADmain
-rw-r--r--build.gradle.kts2
-rw-r--r--src/main/java/net/inyourwalls/frank/Frank.java25
-rw-r--r--src/main/resources/assets/frank/lang/en_us.json1
3 files changed, 27 insertions, 1 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index a8bae63..422e65d 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -4,7 +4,7 @@ plugins {
}
val minecraftVersion = "26.2"
-version = "1.0.5+$minecraftVersion"
+version = "1.1.0+$minecraftVersion"
group = "net.inyourwalls"
repositories {
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",