diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/TooltipHelper.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/TooltipHelper.java index ac23c182c..951d0f716 100644 --- a/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/TooltipHelper.java +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/TooltipHelper.java @@ -2,6 +2,7 @@ import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.modificationstation.stationapi.api.StationAPI; import net.modificationstation.stationapi.api.client.event.gui.screen.container.TooltipBuildEvent; @@ -16,8 +17,16 @@ public class TooltipHelper { */ public static ArrayList getTooltipForItemStack(String originalTooltip, ItemStack itemStack, PlayerInventory playerInventory, HandledScreen container) { ArrayList newTooltip; + CustomTooltipProvider provider = null; - if (itemStack.getItem() instanceof CustomTooltipProvider provider) { + if (itemStack.getItem() instanceof CustomTooltipProvider itemProvider) { + provider = itemProvider; + } + else if (itemStack.getItem() instanceof BlockItem blockItem && blockItem.getBlock() instanceof CustomTooltipProvider blockProvider) { + provider = blockProvider; + } + + if (provider != null) { newTooltip = new ArrayList<>(Arrays.asList(provider.getTooltip(itemStack, originalTooltip))); } else { diff --git a/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/item/CustomTooltipProvider.java b/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/item/CustomTooltipProvider.java index 5f74e43a2..9bc1c495e 100644 --- a/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/item/CustomTooltipProvider.java +++ b/station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/item/CustomTooltipProvider.java @@ -1,7 +1,16 @@ package net.modificationstation.stationapi.api.client.item; import net.minecraft.item.ItemStack; +import org.jetbrains.annotations.NotNull; +/** + * Can be implemented on Items, BlockItems and Blocks. + * BlockItems take precedence over Blocks if both have this implemented. + */ public interface CustomTooltipProvider { - String[] getTooltip(ItemStack stack, String originalTooltip); + + /** + * @return An array of Strings, each new array entry is a new line. Supports formatting codes. + */ + @NotNull String[] getTooltip(ItemStack stack, String originalTooltip); }