diff --git a/src/main/java/com/extendedae_plus/client/InputEvents.java b/src/main/java/com/extendedae_plus/client/InputEvents.java index fbe7f35..48c81e5 100644 --- a/src/main/java/com/extendedae_plus/client/InputEvents.java +++ b/src/main/java/com/extendedae_plus/client/InputEvents.java @@ -5,8 +5,10 @@ import appeng.client.gui.me.common.MEStorageScreen; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.integration.jei.JeiRuntimeProxy; import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor; +import com.extendedae_plus.mixin.extendedae.accessor.GuiExPatternTerminalAccessor; import com.extendedae_plus.network.OpenCraftFromJeiC2SPacket; import com.extendedae_plus.network.PullFromJeiOrCraftC2SPacket; +import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; import mezz.jei.api.ingredients.ITypedIngredient; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; @@ -121,6 +123,12 @@ public final class InputEvents { return; } catch (Throwable ignored) { } + }else if (screen instanceof GuiExPatternTerminal gpt) { + try { + GuiExPatternTerminalAccessor acc = (GuiExPatternTerminalAccessor) gpt; + acc.getSearchField().setValue(name); + event.setCanceled(true); + }catch (Throwable ignored) {} } } } diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java index 8d985e1..e61295d 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/PatternEncodingTermScreenMixin.java @@ -10,7 +10,7 @@ import appeng.menu.AEBaseMenu; import com.extendedae_plus.mixin.accessor.AbstractContainerScreenAccessor; import com.extendedae_plus.mixin.accessor.ScreenAccessor; import com.extendedae_plus.mixin.ae2.accessor.AEBaseScreenAccessor; -import com.extendedae_plus.network.ModNetwork; +import com.extendedae_plus.network.RequestProvidersListC2SPacket; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Tooltip; import net.minecraft.client.renderer.Rect2i; @@ -42,7 +42,7 @@ public abstract class PatternEncodingTermScreenMixin { // 复用已存在的按钮实例,避免重复创建 if (eap$uploadBtn == null) { eap$uploadBtn = new IconButton(btn -> PacketDistributor - .sendToServer(com.extendedae_plus.network.RequestProvidersListC2SPacket.INSTANCE)) { + .sendToServer(RequestProvidersListC2SPacket.INSTANCE)) { private final float eap$scale = 0.75f; // 约 12x12 @Override @@ -106,15 +106,15 @@ public abstract class PatternEncodingTermScreenMixin { int imageHeight = ((AbstractContainerScreenAccessor) (Object) this).eap$getImageHeight(); Rect2i bounds = new Rect2i(leftPos, topPos, imageWidth, imageHeight); var pos = ws.resolve(bounds); - int baseW = ws.getWidth() > 0 ? ws.getWidth() : 16; - int baseH = ws.getHeight() > 0 ? ws.getHeight() : 16; + int baseW = ws.getWidth() > 0 ? ws.getWidth() : 12; + int baseH = ws.getHeight() > 0 ? ws.getHeight() : 12; int targetW = Math.max(10, Math.round(baseW * 0.75f)); int targetH = Math.max(10, Math.round(baseH * 0.75f)); // 缩小为原尺寸的 0.75(稍微变大于 8x8) eap$uploadBtn.setWidth(targetW); eap$uploadBtn.setHeight(targetH); // 仍位于其左侧,但整体向右微移(减小间距)约 2px - eap$uploadBtn.setX(pos.getX() - targetW); // 原为 -targetW - 2,再右移 2px + eap$uploadBtn.setX(pos.getX() - baseW - 2); // 原为 -targetW - 2,再右移 2px eap$uploadBtn.setY(pos.getY()); } catch (Throwable t) { // 回退:放在界面右侧大致位置,避免不可见 diff --git a/src/main/java/com/extendedae_plus/mixin/extendedae/accessor/GuiExPatternTerminalAccessor.java b/src/main/java/com/extendedae_plus/mixin/extendedae/accessor/GuiExPatternTerminalAccessor.java index ecad062..84993ba 100644 --- a/src/main/java/com/extendedae_plus/mixin/extendedae/accessor/GuiExPatternTerminalAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/accessor/GuiExPatternTerminalAccessor.java @@ -1,5 +1,6 @@ package com.extendedae_plus.mixin.extendedae.accessor; +import appeng.client.gui.widgets.AETextField; import appeng.client.gui.widgets.Scrollbar; import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; import net.neoforged.api.distmarker.Dist; @@ -20,4 +21,7 @@ public interface GuiExPatternTerminalAccessor { @Accessor("rows") ArrayList getRows(); + + @Accessor("searchField") + AETextField getSearchField(); } \ No newline at end of file