From 8ed0394fdda28be2acf59e8bc348b9304e275710 Mon Sep 17 00:00:00 2001 From: Jenny Date: Fri, 24 Jan 2025 22:28:00 +0100 Subject: [PATCH] added tooltips for TNTs --- .../jenny/compressedtnt/blocks/blocks.java | 24 +++++++------- .../compressedtnt/items/BlockItemTooltip.java | 33 +++++++++++++++++++ .../assets/compressedtnt/lang/en_us.json | 7 ++++ 3 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/jenny/compressedtnt/items/BlockItemTooltip.java diff --git a/src/main/java/com/jenny/compressedtnt/blocks/blocks.java b/src/main/java/com/jenny/compressedtnt/blocks/blocks.java index ae15056..dbe0b6a 100644 --- a/src/main/java/com/jenny/compressedtnt/blocks/blocks.java +++ b/src/main/java/com/jenny/compressedtnt/blocks/blocks.java @@ -1,5 +1,7 @@ package com.jenny.compressedtnt.blocks; +import com.jenny.compressedtnt.items.BlockItemTooltip; + import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -17,37 +19,37 @@ public class blocks { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); public static final RegistryObject TNT_8 = BLOCKS.register("tnt_8", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE), 8.0f, 80)); - public static final RegistryObject TNT_8_ITEM = ITEMS.register("tnt_8", () -> new BlockItem(TNT_8.get(), new Item.Properties())); + public static final RegistryObject TNT_8_ITEM = ITEMS.register("tnt_8", () -> new BlockItemTooltip(TNT_8.get(), new Item.Properties())); public static final RegistryObject TNT_16 = BLOCKS.register("tnt_16", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 16.0f, 80)); - public static final RegistryObject TNT_16_ITEM = ITEMS.register("tnt_16", () -> new BlockItem(TNT_16.get(), new Item.Properties())); + public static final RegistryObject TNT_16_ITEM = ITEMS.register("tnt_16", () -> new BlockItemTooltip(TNT_16.get(), new Item.Properties())); public static final RegistryObject TNT_32 = BLOCKS.register("tnt_32", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 32.0f, 80)); - public static final RegistryObject TNT_32_ITEM = ITEMS.register("tnt_32", () -> new BlockItem(TNT_32.get(), new Item.Properties())); + public static final RegistryObject TNT_32_ITEM = ITEMS.register("tnt_32", () -> new BlockItemTooltip(TNT_32.get(), new Item.Properties())); public static final RegistryObject TNT_64 = BLOCKS.register("tnt_64", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 64.0f, 80)); - public static final RegistryObject TNT_64_ITEM = ITEMS.register("tnt_64", () -> new BlockItem(TNT_64.get(), new Item.Properties())); + public static final RegistryObject TNT_64_ITEM = ITEMS.register("tnt_64", () -> new BlockItemTooltip(TNT_64.get(), new Item.Properties())); public static final RegistryObject TNT_128 = BLOCKS.register("tnt_128", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 128.0f, 80)); - public static final RegistryObject TNT_128_ITEM = ITEMS.register("tnt_128", () -> new BlockItem(TNT_128.get(), new Item.Properties())); + public static final RegistryObject TNT_128_ITEM = ITEMS.register("tnt_128", () -> new BlockItemTooltip(TNT_128.get(), new Item.Properties())); public static final RegistryObject TNT_CLUSTER_2 = BLOCKS.register("tnt_cluster_2", () -> new ClusterTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 4.0f, 80, 2, 10)); - public static final RegistryObject TNT_CLUSTER_2_ITEM = ITEMS.register("tnt_cluster_2", () -> new BlockItem(TNT_CLUSTER_2.get(), new Item.Properties())); + public static final RegistryObject TNT_CLUSTER_2_ITEM = ITEMS.register("tnt_cluster_2", () -> new BlockItemTooltip(TNT_CLUSTER_2.get(), new Item.Properties())); public static final RegistryObject TNT_CLUSTER_4 = BLOCKS.register("tnt_cluster_4", () -> new ClusterTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 4.0f, 80, 4, 10)); - public static final RegistryObject TNT_CLUSTER_4_ITEM = ITEMS.register("tnt_cluster_4", () -> new BlockItem(TNT_CLUSTER_4.get(), new Item.Properties())); + public static final RegistryObject TNT_CLUSTER_4_ITEM = ITEMS.register("tnt_cluster_4", () -> new BlockItemTooltip(TNT_CLUSTER_4.get(), new Item.Properties())); public static final RegistryObject TNT_CLUSTER_8 = BLOCKS.register("tnt_cluster_8", () -> new ClusterTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 4.0f, 80, 8, 10)); - public static final RegistryObject TNT_CLUSTER_8_ITEM = ITEMS.register("tnt_cluster_8", () -> new BlockItem(TNT_CLUSTER_8.get(), new Item.Properties())); + public static final RegistryObject TNT_CLUSTER_8_ITEM = ITEMS.register("tnt_cluster_8", () -> new BlockItemTooltip(TNT_CLUSTER_8.get(), new Item.Properties())); public static final RegistryObject TNT_HOMING= BLOCKS.register("tnt_homing", () -> new homingTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 4.0f, 80, 1)); - public static final RegistryObject TNT_HOMING_ITEM = ITEMS.register("tnt_homing", () -> new BlockItem(TNT_HOMING.get(), new Item.Properties())); + public static final RegistryObject TNT_HOMING_ITEM = ITEMS.register("tnt_homing", () -> new BlockItemTooltip(TNT_HOMING.get(), new Item.Properties())); public static final RegistryObject TNT_BLACK_HOLE= BLOCKS.register("tnt_black_hole", () -> new blackHoleTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 4.0f, 80, 1)); - public static final RegistryObject TNT_BLACK_HOLE_ITEM = ITEMS.register("tnt_black_hole", () -> new BlockItem(TNT_BLACK_HOLE.get(), new Item.Properties())); + public static final RegistryObject TNT_BLACK_HOLE_ITEM = ITEMS.register("tnt_black_hole", () -> new BlockItemTooltip(TNT_BLACK_HOLE.get(), new Item.Properties())); public static final RegistryObject TNT_CLAYMORE= BLOCKS.register("tnt_claymore", () -> new claymoreTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 2.0f, 20, 256)); - public static final RegistryObject TNT_CLAYMORE_ITEM = ITEMS.register("tnt_claymore", () -> new BlockItem(TNT_CLAYMORE.get(), new Item.Properties())); + public static final RegistryObject TNT_CLAYMORE_ITEM = ITEMS.register("tnt_claymore", () -> new BlockItemTooltip(TNT_CLAYMORE.get(), new Item.Properties())); public static void register(IEventBus bus) { diff --git a/src/main/java/com/jenny/compressedtnt/items/BlockItemTooltip.java b/src/main/java/com/jenny/compressedtnt/items/BlockItemTooltip.java new file mode 100644 index 0000000..aeab272 --- /dev/null +++ b/src/main/java/com/jenny/compressedtnt/items/BlockItemTooltip.java @@ -0,0 +1,33 @@ +package com.jenny.compressedtnt.items; + +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +import static com.jenny.compressedtnt.Compressedtnt.MODID; + +public class BlockItemTooltip extends BlockItem { + public BlockItemTooltip(Block pBlock, Item.Properties pProperties){ + super(pBlock, pProperties); + } + + @Override + public void appendHoverText(@NotNull ItemStack pStack, @Nullable Level pLevel, @NotNull List pTooltipComponents, @NotNull TooltipFlag pIsAdvanced) { + String key = String.format("tooltip.%s.%s", MODID, this); + MutableComponent toolTip = Component.translatable(key); + if (!toolTip.getString().equals(key)) { + pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE)); + super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced); + } + } +} diff --git a/src/main/resources/assets/compressedtnt/lang/en_us.json b/src/main/resources/assets/compressedtnt/lang/en_us.json index ff45361..a428a00 100644 --- a/src/main/resources/assets/compressedtnt/lang/en_us.json +++ b/src/main/resources/assets/compressedtnt/lang/en_us.json @@ -15,6 +15,13 @@ "item.compressedtnt.arrow_concussive": "Concussive Arrow", "item.compressedtnt.arrow_carpet": "Carpet Bombing Arrow", + "tooltip.compressedtnt.tnt_cluster_2": "splits into 2 small TNTs", + "tooltip.compressedtnt.tnt_cluster_4": "splits into 4 small TNTs", + "tooltip.compressedtnt.tnt_cluster_8": "splits into 8 small TNTs", + "tooltip.compressedtnt.tnt_homing": "follows the closest entity", + "tooltip.compressedtnt.tnt_black_hole": "pulls all entities towards itself", + "tooltip.compressedtnt.tnt_claymore": "throws arrows into all direcctions upon explosion", + "tooltip.compressedtnt.arrow_tnt": "explodes on impact", "tooltip.compressedtnt.arrow_concussive": "explodes on impact without block damage", "tooltip.compressedtnt.arrow_carpet": "splits into multiple TNT arrows when it starts falling"