Skip to content

Commit 5c048d2

Browse files
authored
Add Block Support to CustomTooltipProvider (#187)
* Add Block support to CustomTooltipProvider * Add some documentation to the interface
1 parent a7c5633 commit 5c048d2

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

station-items-v0/src/main/java/net/modificationstation/stationapi/api/client/TooltipHelper.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import net.minecraft.client.gui.screen.ingame.HandledScreen;
44
import net.minecraft.entity.player.PlayerInventory;
5+
import net.minecraft.item.BlockItem;
56
import net.minecraft.item.ItemStack;
67
import net.modificationstation.stationapi.api.StationAPI;
78
import net.modificationstation.stationapi.api.client.event.gui.screen.container.TooltipBuildEvent;
@@ -16,8 +17,16 @@ public class TooltipHelper {
1617
*/
1718
public static ArrayList<String> getTooltipForItemStack(String originalTooltip, ItemStack itemStack, PlayerInventory playerInventory, HandledScreen container) {
1819
ArrayList<String> newTooltip;
20+
CustomTooltipProvider provider = null;
1921

20-
if (itemStack.getItem() instanceof CustomTooltipProvider provider) {
22+
if (itemStack.getItem() instanceof CustomTooltipProvider itemProvider) {
23+
provider = itemProvider;
24+
}
25+
else if (itemStack.getItem() instanceof BlockItem blockItem && blockItem.getBlock() instanceof CustomTooltipProvider blockProvider) {
26+
provider = blockProvider;
27+
}
28+
29+
if (provider != null) {
2130
newTooltip = new ArrayList<>(Arrays.asList(provider.getTooltip(itemStack, originalTooltip)));
2231
}
2332
else {
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
package net.modificationstation.stationapi.api.client.item;
22

33
import net.minecraft.item.ItemStack;
4+
import org.jetbrains.annotations.NotNull;
45

6+
/**
7+
* Can be implemented on Items, BlockItems and Blocks.
8+
* BlockItems take precedence over Blocks if both have this implemented.
9+
*/
510
public interface CustomTooltipProvider {
6-
String[] getTooltip(ItemStack stack, String originalTooltip);
11+
12+
/**
13+
* @return An array of Strings, each new array entry is a new line. Supports formatting codes.
14+
*/
15+
@NotNull String[] getTooltip(ItemStack stack, String originalTooltip);
716
}

0 commit comments

Comments
 (0)