diff --git a/me/GridNode.java b/me/GridNode.java index 918d4968c..a90af9107 100644 --- a/me/GridNode.java +++ b/me/GridNode.java @@ -1,5 +1,7 @@ package appeng.me; +import java.util.Collections; +import java.util.Comparator; import java.util.EnumSet; import java.util.LinkedList; import java.util.List; @@ -354,6 +356,21 @@ public class GridNode implements IGridNode, IPathItem Connections.add( gridConnection ); if ( gridConnection.hasDirection() ) gridProxy.onGridNotification( GridNotification.ConnectionsChanged ); + + final IGridNode gn = this; + + Collections.sort( Connections, new Comparator() { + + @Override + public int compare(IGridConnection o1, IGridConnection o2) + { + boolean preferedA = o1.getOtherSide( gn ).hasFlag( GridFlags.PREFERED ); + boolean preferedB = o2.getOtherSide( gn ).hasFlag( GridFlags.PREFERED ); + + return preferedA == preferedB ? 0 : (preferedA ? -1 : 1); + } + + } ); } public void removeConnection(IGridConnection gridConnection) diff --git a/parts/networking/PartCable.java b/parts/networking/PartCable.java index b761e8ac0..866cb2539 100644 --- a/parts/networking/PartCable.java +++ b/parts/networking/PartCable.java @@ -52,6 +52,7 @@ public class PartCable extends AEBasePart implements IPartCable public PartCable(Class c, ItemStack is) { super( c, is ); + proxy.setFlags( GridFlags.PREFERED ); proxy.setIdlePowerUsage( 0.0 ); proxy.myColor = AEColor.values()[((ItemMultiPart) is.getItem()).varientOf( is.getItemDamage() )]; } diff --git a/parts/networking/PartDenseCable.java b/parts/networking/PartDenseCable.java index 17363dd9e..419f270e1 100644 --- a/parts/networking/PartDenseCable.java +++ b/parts/networking/PartDenseCable.java @@ -56,7 +56,7 @@ public class PartDenseCable extends PartCable public PartDenseCable(Class c, ItemStack is) { super( c, is ); - proxy.setFlags( GridFlags.TIER_2_CAPACITY ); + proxy.setFlags( GridFlags.TIER_2_CAPACITY, GridFlags.PREFERED ); } public PartDenseCable(ItemStack is) {