diff options
Diffstat (limited to 'api/src/main/java/me')
4 files changed, 25 insertions, 4 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java index 7bc2ecd15..598bbc292 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java @@ -35,12 +35,20 @@ import org.jetbrains.annotations.Nullable; @Environment(EnvType.CLIENT) @ApiStatus.NonExtendable public interface TooltipContext { + static TooltipContext of() { + return TooltipContext.of(new Point()); + } + static TooltipContext of(Point point) { return TooltipContext.of(point, null); } static TooltipContext of(Point point, @Nullable TooltipFlag flag) { - return ClientInternals.createTooltipContext(point, flag); + return TooltipContext.of(point, flag, false); + } + + static TooltipContext of(Point point, @Nullable TooltipFlag flag, boolean isSearch) { + return ClientInternals.createTooltipContext(point, flag, isSearch); } static TooltipContext ofMouse() { @@ -50,4 +58,6 @@ public interface TooltipContext { TooltipFlag getFlag(); Point getPoint(); + + boolean isSearch(); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java index d2e3e62e5..e6a6e112e 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.api.common.entry.type; import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer; +import me.shedaniel.rei.api.client.gui.widgets.TooltipContext; import me.shedaniel.rei.api.common.entry.EntrySerializer; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.comparison.ComparisonContext; @@ -168,6 +169,10 @@ public interface EntryDefinition<T> { Component asFormattedText(EntryStack<T> entry, T value); + default Component asFormattedText(EntryStack<T> entry, T value, TooltipContext context) { + return asFormattedText(entry, value); + } + /** * Returns a stream of {@link TagKey} for an entry. * It is not guaranteed that the stream is ordered, or that the {@link TagKey} diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java b/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java index 23f96182e..a2e7fa86c 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java @@ -23,6 +23,7 @@ package me.shedaniel.rei.api.common.util; +import me.shedaniel.rei.api.client.gui.widgets.TooltipContext; import net.minecraft.network.chat.Component; /** @@ -33,6 +34,10 @@ public interface TextRepresentable { return Component.empty(); } + default Component asFormattedText(TooltipContext context) { + return asFormattedText(); + } + default Component asFormatStrippedText() { return Component.literal(FormattingUtils.stripFormatting(asFormattedText().getString())); } 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 10b29150f..bdf2cbefa 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java @@ -47,6 +47,7 @@ import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.TooltipFlag; +import org.apache.commons.lang3.function.TriFunction; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -70,7 +71,7 @@ public final class ClientInternals { private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup(); private static BiConsumer<List<ClientTooltipComponent>, TooltipComponent> clientTooltipComponentProvider = (tooltip, result) -> throwNotSetup(); private static BiFunction<@Nullable Point, Collection<Tooltip.Entry>, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup(); - private static BiFunction<Point, @Nullable TooltipFlag, TooltipContext> tooltipContextProvider = (point, texts) -> throwNotSetup(); + private static TriFunction<Point, @Nullable TooltipFlag, Boolean, TooltipContext> tooltipContextProvider = (point, texts, search) -> throwNotSetup(); private static Function<Object, Tooltip.Entry> tooltipEntryProvider = (component) -> throwNotSetup(); private static Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup; private static Supplier<Object> builtinClientPlugin = ClientInternals::throwNotSetup; @@ -132,8 +133,8 @@ public final class ClientInternals { return tooltipProvider.apply(point, texts); } - public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag) { - return tooltipContextProvider.apply(point, flag); + public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag, boolean isSearch) { + return tooltipContextProvider.apply(point, flag, isSearch); } public static Tooltip.Entry createTooltipEntry(Object component) { |
