From 84acf80773bb21e4a5f015f2981e3afd9ebaea3e Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 16 Apr 2024 00:33:32 +0900 Subject: [PATCH] Improve searching configs --- .../client/gui/config/REIConfigScreen.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java index 9bcaf73c3..7073df818 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java @@ -54,12 +54,11 @@ import me.shedaniel.rei.impl.client.gui.widget.basewidgets.TextFieldWidget; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.resources.language.I18n; -import net.minecraft.network.chat.TextComponent; -import net.minecraft.network.chat.TranslatableComponent; -import org.apache.commons.compress.harmony.unpack200.bytecode.forms.WideForm; +import net.minecraft.network.chat.Component; import org.apache.commons.lang3.mutable.Mutable; import org.apache.commons.lang3.mutable.MutableObject; import org.jetbrains.annotations.Nullable; @@ -92,7 +91,7 @@ public REIConfigScreen(Screen parent) { } public REIConfigScreen(Screen parent, List categories) { - super(new TranslatableComponent("config.roughlyenoughitems.title")); + super(Component.translatable("config.roughlyenoughitems.title")); this.parent = parent; this.categories = CollectionUtils.map(categories, OptionCategory::copy); this.cleanRequiresLevel(); @@ -158,6 +157,12 @@ protected void renderSuggestion(PoseStack matrices, int x, int y) { this.widgets.add(textField); this.widgets.add(Widgets.createDrawableWidget((helper, matrices, mouseX, mouseY, delta) -> { textField.setSuggestion(!textField.isFocused() && textField.getText().isEmpty() ? I18n.get("config.rei.texts.search_options") : null); + if (!textField.isFocused()) return; + Rectangle bounds = textField.getBounds(); + GuiComponent.fill(matrices, bounds.x - 6, bounds.y - 6, bounds.getMaxX() + 4, bounds.y - 5, 0xffe0e0e0); + GuiComponent.fill(matrices, bounds.x - 6, bounds.getMaxY() + 1, bounds.getMaxX() + 4, bounds.getMaxY() + 2, 0xffe0e0e0); + GuiComponent.fill(matrices, bounds.x - 6, bounds.y - 6, bounds.x - 7, bounds.getMaxY() + 2, 0xffe0e0e0); + GuiComponent.fill(matrices, bounds.getMaxX() + 3, bounds.y - 6, bounds.getMaxX() + 4, bounds.getMaxY() + 2, 0xffe0e0e0); })); this.widgets.add(ConfigSearchListWidget.create(this, this.categories, textField, new Rectangle(8, 32 + 20 + 4, width - 16, height - 32 - (32 + 20 + 4)))); } else { @@ -230,7 +235,11 @@ public void render(PoseStack poses, int mouseX, int mouseY, float delta) { @Override public void onClose() { - this.minecraft.setScreen(this.parent); + if (searching) { + setSearching(false); + } else { + this.minecraft.setScreen(this.parent); + } } @Override