diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-06-19 20:05:32 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-06-28 03:21:12 +0800 |
| commit | 2db69e7c104bcb0ec8019fe538c1f910ace23da0 (patch) | |
| tree | 474ab3ba47294539ea99f07ce0f6d4bc63eed2aa /runtime/src/main/java/me/shedaniel/rei/impl | |
| parent | 42ad22e9d671520eec5c78b587972ac50830c719 (diff) | |
| download | RoughlyEnoughItems-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')
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 |
