From ef06d6ea42b0508cdeacfa13de0a06af40aac4e5 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sun, 31 Dec 2023 14:34:11 +1100 Subject: [PATCH] Implemented item tooltips --- .../client/handler/TooltipHandler.java | 51 ++++--------------- .../java/toughasnails/core/ToughAsNails.java | 3 ++ gradle.properties | 2 +- 3 files changed, 13 insertions(+), 43 deletions(-) rename {forge => common}/src/main/java/toughasnails/client/handler/TooltipHandler.java (64%) diff --git a/forge/src/main/java/toughasnails/client/handler/TooltipHandler.java b/common/src/main/java/toughasnails/client/handler/TooltipHandler.java similarity index 64% rename from forge/src/main/java/toughasnails/client/handler/TooltipHandler.java rename to common/src/main/java/toughasnails/client/handler/TooltipHandler.java index 3feb70df..ee21a970 100644 --- a/forge/src/main/java/toughasnails/client/handler/TooltipHandler.java +++ b/common/src/main/java/toughasnails/client/handler/TooltipHandler.java @@ -4,80 +4,47 @@ ******************************************************************************/ package toughasnails.client.handler; -import com.mojang.datafixers.util.Either; +import glitchcore.event.client.ItemTooltipEvent; +import glitchcore.event.client.RenderTooltipEvent; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; -import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.RegisterClientTooltipComponentFactoriesEvent; -import net.minecraftforge.client.event.RenderTooltipEvent; -import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import toughasnails.core.ToughAsNails; import toughasnails.init.ModTags; import toughasnails.thirst.ThirstOverlayRenderer; -@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public class TooltipHandler { - @SubscribeEvent public static void onTooltip(ItemTooltipEvent event) { - ItemStack stack = event.getItemStack(); + ItemStack stack = event.getStack(); Block block = Block.byItem(stack.getItem()); BlockState state = block.defaultBlockState(); if (stack.is(ModTags.Items.HEATING_ITEMS) || stack.is(ModTags.Items.HEATING_ARMOR) || state.is(ModTags.Blocks.HEATING_BLOCKS)) { - event.getToolTip().add(Component.literal("\uD83D\uDD25 ").append(Component.translatable("desc.toughasnails.heating")).withStyle(ChatFormatting.GOLD)); + event.getTooltip().add(Component.literal("\uD83D\uDD25 ").append(Component.translatable("desc.toughasnails.heating")).withStyle(ChatFormatting.GOLD)); } if (stack.is(ModTags.Items.COOLING_ITEMS) || stack.is(ModTags.Items.COOLING_ARMOR) || state.is(ModTags.Blocks.COOLING_BLOCKS)) { - event.getToolTip().add(Component.literal("\u2744 ").append(Component.translatable("desc.toughasnails.cooling")).withStyle(ChatFormatting.AQUA)); + event.getTooltip().add(Component.literal("\u2744 ").append(Component.translatable("desc.toughasnails.cooling")).withStyle(ChatFormatting.AQUA)); } } - @SubscribeEvent - public static void onRenderTooltip(RenderTooltipEvent.GatherComponents event) + public static void onRenderTooltip(RenderTooltipEvent event) { - ItemStack stack = event.getItemStack(); + ItemStack stack = event.getStack(); if (stack.is(ModTags.Items.DRINKS)) { - event.getTooltipElements().add(Either.right(new ThirstTooltipComponent(ModTags.Items.getThirstRestored(stack)))); - } - } - - @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - private static class ClientTooltipRegisterHandler - { - @SubscribeEvent - public static void onRegisterFactories(RegisterClientTooltipComponentFactoriesEvent event) - { - event.register(ThirstTooltipComponent.class, component -> new ThirstClientTooltipComponent(component.getAmount())); - } - } - - private static class ThirstTooltipComponent implements TooltipComponent - { - private final int amount; - - private ThirstTooltipComponent(int amount) - { - this.amount = amount; - } - - public int getAmount() - { - return this.amount; + event.getComponents().add(new ThirstClientTooltipComponent(ModTags.Items.getThirstRestored(stack))); } } diff --git a/common/src/main/java/toughasnails/core/ToughAsNails.java b/common/src/main/java/toughasnails/core/ToughAsNails.java index 3c980292..2224bb28 100644 --- a/common/src/main/java/toughasnails/core/ToughAsNails.java +++ b/common/src/main/java/toughasnails/core/ToughAsNails.java @@ -14,6 +14,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import toughasnails.api.TANAPI; +import toughasnails.client.handler.TooltipHandler; import toughasnails.init.*; import toughasnails.temperature.TemperatureHandler; import toughasnails.temperature.TemperatureOverlayRenderer; @@ -78,5 +79,7 @@ private static void addHandlers() // Client handlers EventManager.addListener(ModBlocks::registerBlockColors); EventManager.addListener(ModItems::registerItemColors); + EventManager.addListener(TooltipHandler::onTooltip); + EventManager.addListener(TooltipHandler::onRenderTooltip); } } diff --git a/gradle.properties b/gradle.properties index 40b1d9f9..c486fd49 100644 --- a/gradle.properties +++ b/gradle.properties @@ -40,5 +40,5 @@ org.gradle.daemon=false # Dependencies nightconfig_version=3.6.7 -glitchcore_version=1.0.0.14 +glitchcore_version=1.0.0.17 serene_seasons_version=9.3.0.0