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) {