From e67969f52f7edd3dfdbda04dc8b3f1bcca4867b1 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Mon, 7 Nov 2016 00:44:53 +0100 Subject: [PATCH] Fixes #2566: Update packet deserialization was broken when parts were present that were not a grid host. --- .../appeng/parts/networking/PartCable.java | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/main/java/appeng/parts/networking/PartCable.java b/src/main/java/appeng/parts/networking/PartCable.java index 9c27a487..4b8f45b3 100644 --- a/src/main/java/appeng/parts/networking/PartCable.java +++ b/src/main/java/appeng/parts/networking/PartCable.java @@ -290,27 +290,28 @@ public class PartCable extends AEBasePart implements IPartCable boolean[] writeSide = new boolean[EnumFacing.values().length]; int[] channelsPerSide = new int[EnumFacing.values().length]; + for( EnumFacing thisSide : EnumFacing.values() ) + { + final IPart part = this.getHost().getPart( thisSide ); + if( part != null ) + { + writeSide[thisSide.ordinal()] = true; + int channels = 0; + if( part.getGridNode() != null ) + { + final IReadOnlyCollection set = part.getGridNode().getConnections(); + for( final IGridConnection gc : set ) + { + channels = Math.max( channels, gc.getUsedChannels() ); + } + } + channelsPerSide[thisSide.ordinal()] = channels; + } + } + IGridNode n = this.getGridNode(); if( n != null ) { - for( EnumFacing thisSide : EnumFacing.values() ) - { - final IPart part = this.getHost().getPart( thisSide ); - if( part != null ) - { - if( part.getGridNode() != null ) - { - writeSide[thisSide.ordinal()] = true; - - final IReadOnlyCollection set = part.getGridNode().getConnections(); - for( final IGridConnection gc : set ) - { - channelsPerSide[thisSide.ordinal()] = gc.getUsedChannels(); - } - } - } - } - for( final IGridConnection gc : n.getConnections() ) { final AEPartLocation side = gc.getDirection( n );