diff options
Diffstat (limited to 'api/src/main/java')
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 7734a4ff5..d2a3f2e37 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; @@ -170,6 +171,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); + } + Collection<ResourceLocation> getTagsFor(TagContainer tagContainer, EntryStack<T> entry, T value); @ApiStatus.NonExtendable 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 2638805e6..6b9356feb 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 ImmutableTextComponent.EMPTY; } + default Component asFormattedText(TooltipContext context) { + return asFormattedText(); + } + default Component asFormatStrippedText() { return new ImmutableTextComponent(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 38ed7c4c4..7164ea085 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java @@ -45,6 +45,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.TooltipFlag; +import org.apache.commons.lang3.function.TriFunction; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -66,7 +67,7 @@ public final class ClientInternals { private static Function<CompoundTag, DataResult<FavoriteEntry>> favoriteEntryFromJson = (object) -> throwNotSetup(); private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup(); private static BiFunction<@Nullable Point, Collection<Component>, 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 Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup; private static Supplier<Object> builtinClientPlugin = ClientInternals::throwNotSetup; @@ -123,8 +124,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 FavoriteEntry delegateFavoriteEntry(Supplier<DataResult<FavoriteEntry>> supplier, Supplier<CompoundTag> toJoin) { |
