From f6b10e75179c8237cab172d757238d1404273187 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 22 Jun 2021 16:08:14 +0800 Subject: Fix #568 --- .../java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java | 5 +++++ api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java | 8 ++++++++ 2 files changed, 13 insertions(+) (limited to 'api/src') diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java index 1971bb7d1..099061658 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java @@ -32,6 +32,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.network.chat.Component; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -91,10 +92,14 @@ public interface Tooltip { List entries(); + List components(); + Tooltip add(ClientTooltipComponent component); Tooltip add(Component text); + Tooltip add(TooltipComponent component); + default Tooltip addAll(ClientTooltipComponent... components) { for (ClientTooltipComponent component : components) { add(component); diff --git a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java index 5df95263b..daccb744d 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java @@ -36,16 +36,19 @@ import me.shedaniel.rei.api.client.view.ViewSearchBuilder; import me.shedaniel.rei.api.common.plugins.PluginManager; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.inventory.tooltip.TooltipComponent; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.lang.reflect.Field; import java.util.Collection; import java.util.List; +import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Supplier; @@ -60,6 +63,7 @@ public final class ClientInternals { private static BiFunction, Supplier, FavoriteEntry> delegateFavoriteEntry = (supplier, toJson) -> throwNotSetup(); private static Function favoriteEntryFromJson = (object) -> throwNotSetup(); private static Function clickAreaHandlerResult = (result) -> throwNotSetup(); + private static BiConsumer, TooltipComponent> clientTooltipComponentProvider = (tooltip, result) -> throwNotSetup(); private static BiFunction<@Nullable Point, Collection, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup(); private static Function tooltipEntryProvider = (component) -> throwNotSetup(); private static Supplier> jeiCompatMods = ClientInternals::throwNotSetup; @@ -114,6 +118,10 @@ public final class ClientInternals { return clickAreaHandlerResult.apply(applicable); } + public static void getClientTooltipComponent(List tooltip, TooltipComponent component) { + clientTooltipComponentProvider.accept(tooltip, component); + } + public static Tooltip createTooltip(@Nullable Point point, Collection texts) { return tooltipProvider.apply(point, texts); } -- cgit