From 2343e458810fd59513ade9320e1ca15a8de253df Mon Sep 17 00:00:00 2001 From: Worive <13164341+Worive@users.noreply.github.com> Date: Sat, 17 Oct 2026 16:10:43 +0200 Subject: [PATCH] Improve cable previews for grid proxyable hosts and formed multiblocks (#1646) Co-authored-by: Martin Robertz --- .../render/previewBlocks/RendererCable.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/appeng/client/render/previewBlocks/RendererCable.java b/src/main/java/appeng/client/render/previewBlocks/RendererCable.java index b7a9e4f0f..1f600cc67 100644 --- a/src/main/java/appeng/client/render/previewBlocks/RendererCable.java +++ b/src/main/java/appeng/client/render/previewBlocks/RendererCable.java @@ -18,9 +18,10 @@ import appeng.api.parts.IPartHost; import appeng.api.util.AECableType; import appeng.api.util.AEColor; import appeng.me.helpers.AENetworkProxy; +import appeng.me.helpers.IGridProxyable; import appeng.parts.networking.PartCable; -import appeng.tile.grid.AENetworkInvTile; -import appeng.tile.grid.AENetworkPowerTile; +import appeng.tile.crafting.TileCraftingTile; +import appeng.tile.spatial.TileSpatialPylon; public class RendererCable extends AbstractRendererPreview implements IRenderPreview { @@ -233,12 +234,20 @@ public class RendererCable extends AbstractRendererPreview implements IRenderPre AEColor gridHostColor = gridHost instanceof IColorableTile ? ((IColorableTile) gridHost).getColor() : AEColor.Transparent; - if (gridHost instanceof AENetworkInvTile) { - return hasConnectableSide(((AENetworkInvTile) gridHost)::getProxy, side, cableColor, gridHostColor); + if (gridHost instanceof TileCraftingTile craftingTile) { + return craftingTile.isFormed() && connectionType != null + && connectionType != AECableType.NONE + && isColorCompatible(cableColor, gridHostColor); } - if (gridHost instanceof AENetworkPowerTile) { - return hasConnectableSide(((AENetworkPowerTile) gridHost)::getProxy, side, cableColor, gridHostColor); + if (gridHost instanceof TileSpatialPylon spatialPylon) { + return (spatialPylon.getDisplayBits() & TileSpatialPylon.MB_STATUS) != 0 && connectionType != null + && connectionType != AECableType.NONE + && isColorCompatible(cableColor, gridHostColor); + } + + if (gridHost instanceof IGridProxyable proxyable && proxyable.getProxy() != null) { + return hasConnectableSide(proxyable::getProxy, side, cableColor, gridHostColor); } return connectionType != null && connectionType != AECableType.NONE