From a3cd4d438b2d9363017ddce3a698c1374f33714a Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sun, 14 Sep 2025 00:15:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A0=E7=BA=BF?= =?UTF-8?q?=E6=94=B6=E5=8F=91=E5=99=A8=E5=8F=AA=E8=83=BD=E4=BC=A0=E9=80=92?= =?UTF-8?q?8=E9=A2=91=E9=81=93=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E7=BA=BF=E6=94=B6=E5=8F=91=E5=99=A8?= =?UTF-8?q?=E4=B8=8E=E7=BA=BF=E7=BC=86=E8=BF=9E=E6=8E=A5=E5=A4=84=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WirelessTransceiverBlockEntity.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlockEntity.java b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlockEntity.java index 7fe978d..9ac4d75 100644 --- a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlockEntity.java +++ b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlockEntity.java @@ -1,6 +1,7 @@ package com.extendedae_plus.content.wireless; import appeng.api.networking.*; +import appeng.api.util.AECableType; import com.extendedae_plus.init.ModBlockEntities; import com.extendedae_plus.init.ModItems; import com.extendedae_plus.wireless.IWirelessEndpoint; @@ -8,15 +9,16 @@ import com.extendedae_plus.wireless.WirelessMasterLink; import com.extendedae_plus.wireless.WirelessSlaveLink; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; -import net.minecraft.core.HolderLookup; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; import java.util.EnumSet; +import java.util.Objects; /** * 无线收发器方块实体(骨架): @@ -39,7 +41,8 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire public WirelessTransceiverBlockEntity(BlockPos pos, BlockState state) { super(ModBlockEntities.WIRELESS_TRANSCEIVER_BE.get(), pos, state); // 创建 AE2 管理节点 - this.managedNode = GridHelper.createManagedNode(this, NodeListener.INSTANCE); + this.managedNode = GridHelper.createManagedNode(this, NodeListener.INSTANCE) + .setFlags(GridFlags.DENSE_CAPACITY); this.managedNode.setIdlePowerUsage(1.0); // 可按需调整基础待机功耗 this.managedNode.setTagName("wireless_node"); this.managedNode.setInWorldNode(true); @@ -51,6 +54,20 @@ public class WirelessTransceiverBlockEntity extends BlockEntity implements IWire this.slaveLink = new WirelessSlaveLink(this); } + @Override + public appeng.api.util.AECableType getCableConnectionType(Direction dir) { + // 根据相邻方块的实际连接类型渲染(优先采用相邻主机返回的类型),回退为 GLASS。 + if (this.level == null) return AECableType.GLASS; + var adjacentPos = this.worldPosition.relative(dir); + if (!Objects.requireNonNull(this.getLevel()).hasChunkAt(adjacentPos)) return AECableType.GLASS; + var adjacentHost = GridHelper.getNodeHost(this.getLevel(), adjacentPos); + if (adjacentHost != null) { + var t = adjacentHost.getCableConnectionType(dir.getOpposite()); + if (t != null) return t; + } + return AECableType.GLASS; + } + /* ===================== IInWorldGridNodeHost ===================== */ @Override public @Nullable IGridNode getGridNode(Direction dir) { From 95ff0dd38db0461d94558507b8562077fb3afabe Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sun, 14 Sep 2025 00:43:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20eae=E6=89=A9=E5=B1=95=E6=A0=B7?= =?UTF-8?q?=E6=9D=BF=E7=AE=A1=E7=90=86=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?f=E9=94=AE=E6=90=9C=E7=B4=A2=E6=94=AF=E6=8C=81=20fix:=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=8A=E4=BC=A0=E6=8C=89=E9=92=AE=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/extendedae_plus/client/InputEvents.java | 8 ++++++++ .../ae2/client/gui/PatternEncodingTermScreenMixin.java | 10 +++++----- .../accessor/GuiExPatternTerminalAccessor.java | 4 ++++ 3 files changed, 17 insertions(+), 5 deletions(-) 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