aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net')
-rw-r--r--src/main/java/net/inyourwalls/frank/Frank.java25
1 files changed, 25 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)))
+ );
+ }
+ });
}
/**