aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl
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 /runtime/src/main/java/me/shedaniel/rei/impl
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 'runtime/src/main/java/me/shedaniel/rei/impl')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java13
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java7
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java7
5 files changed, 34 insertions, 4 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java
index 20b0c9a5b..8936f4d61 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java
@@ -57,6 +57,19 @@ public class RenderingEntryDefinition {
}
return super.asFormattedText(entry, value);
}
+
+ @Override
+ public Component asFormattedText(EntryStack<Renderer> entry, Renderer value, TooltipContext context) {
+ Tooltip tooltip = value.getTooltip(context);
+ if (tooltip != null) {
+ for (Tooltip.Entry e : tooltip.entries()) {
+ if (e.isText()) {
+ return e.getAsText();
+ }
+ }
+ }
+ return super.asFormattedText(entry, value, context);
+ }
};
private static <T> T throwRendering() {
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java
index 0b91481ac..3f8504968 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TooltipContextImpl.java
@@ -35,10 +35,12 @@ public class TooltipContextImpl implements TooltipContext {
private final Point point;
@Nullable
private final TooltipFlag flag;
+ private final boolean isSearch;
- public TooltipContextImpl(Point point, @Nullable TooltipFlag flag) {
+ public TooltipContextImpl(Point point, @Nullable TooltipFlag flag, boolean isSearch) {
this.point = Objects.requireNonNull(point);
this.flag = flag;
+ this.isSearch = isSearch;
}
@Override
@@ -51,4 +53,9 @@ public class TooltipContextImpl implements TooltipContext {
public Point getPoint() {
return point;
}
+
+ @Override
+ public boolean isSearch() {
+ return isSearch;
+ }
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java
index 1342a2b0c..8d05ea91b 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TextArgumentType.java
@@ -23,11 +23,15 @@
package me.shedaniel.rei.impl.client.search.argument.type;
+import me.shedaniel.math.Point;
import me.shedaniel.rei.api.client.gui.config.SearchMode;
+import me.shedaniel.rei.api.client.gui.widgets.TooltipContext;
import me.shedaniel.rei.api.common.entry.EntryStack;
+import me.shedaniel.rei.api.common.util.FormattingUtils;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.util.Unit;
+import net.minecraft.world.item.TooltipFlag;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
@@ -37,6 +41,7 @@ import java.util.Locale;
@Environment(EnvType.CLIENT)
public final class TextArgumentType extends ArgumentType<Unit, String> {
public static final TextArgumentType INSTANCE = new TextArgumentType();
+ private static final TooltipContext CONTEXT = TooltipContext.of(new Point(), TooltipFlag.Default.NORMAL, true);
@Override
public String getName() {
@@ -56,7 +61,7 @@ public final class TextArgumentType extends ArgumentType<Unit, String> {
@Override
public String cacheData(EntryStack<?> stack) {
- return stack.asFormatStrippedText().getString().toLowerCase(Locale.ROOT);
+ return FormattingUtils.stripFormatting(stack.asFormattedText(CONTEXT).getString()).toLowerCase(Locale.ROOT);
}
@Override
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java
index 4557ddeae..4dcc0f00f 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/search/argument/type/TooltipArgumentType.java
@@ -46,7 +46,7 @@ import java.util.StringJoiner;
@Environment(EnvType.CLIENT)
public final class TooltipArgumentType extends ArgumentType<Unit, String> {
public static final TooltipArgumentType INSTANCE = new TooltipArgumentType();
- private static final TooltipContext CONTEXT = TooltipContext.of(new Point(), TooltipFlag.Default.NORMAL);
+ private static final TooltipContext CONTEXT = TooltipContext.of(new Point(), TooltipFlag.Default.NORMAL, true);
public static String INVALID = "INVALID_PIECE_OF_TOOLTIP_I_DONT_THINK_PEOPLE_WILL_EXACTLY_HAVE_THIS_REI_REI_REI";
private static final Style STYLE = Style.EMPTY.withColor(TextColor.fromRgb(0xffe0ad));
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
index 66aff5e0d..24994570e 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/AbstractEntryStack.java
@@ -257,7 +257,12 @@ public abstract class AbstractEntryStack<A> implements EntryStack<A>, Renderer {
@Override
public Component asFormattedText() {
- return getDefinition().asFormattedText(this, getValue());
+ return getDefinition().asFormattedText(this, getValue(), TooltipContext.of());
+ }
+
+ @Override
+ public Component asFormattedText(TooltipContext context) {
+ return getDefinition().asFormattedText(this, getValue(), context);
}
@Override