aboutsummaryrefslogtreecommitdiff
path: root/api/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-19 20:05:32 +0800
committershedaniel <daniel@shedaniel.me>2022-06-28 03:21:12 +0800
commit2db69e7c104bcb0ec8019fe538c1f910ace23da0 (patch)
tree474ab3ba47294539ea99f07ce0f6d4bc63eed2aa /api/src/main
parent42ad22e9d671520eec5c78b587972ac50830c719 (diff)
downloadRoughlyEnoughItems-2db69e7c104bcb0ec8019fe538c1f910ace23da0.tar.gz
RoughlyEnoughItems-2db69e7c104bcb0ec8019fe538c1f910ace23da0.tar.bz2
RoughlyEnoughItems-2db69e7c104bcb0ec8019fe538c1f910ace23da0.zip
Add isSearch into TooltipContext and add TooltipContext into asFormattedText
Diffstat (limited to 'api/src/main')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java12
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/type/EntryDefinition.java5
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java5
-rw-r--r--api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java7
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) {