diff --git a/src/main/scala/resonantinduction/mechanical/mech/gear/NodeGear.scala b/src/main/scala/resonantinduction/mechanical/mech/gear/NodeGear.scala index 5023296be..d9ed25c5f 100644 --- a/src/main/scala/resonantinduction/mechanical/mech/gear/NodeGear.scala +++ b/src/main/scala/resonantinduction/mechanical/mech/gear/NodeGear.scala @@ -64,7 +64,7 @@ class NodeGear(parent: PartGear) extends NodeMechanical(parent: PartGear) //Check internal for (i <- 0 until 6) { - val toDir = if (ForgeDirection.getOrientation(i) == gear.placementSide.getOpposite) ForgeDirection.UNKNOWN else ForgeDirection.getOrientation(i) + val toDir = ForgeDirection.getOrientation(i) var tile: TileEntity = gear.tile if (gear.getMultiBlock.isConstructed && toDir != gear.placementSide && toDir != gear.placementSide.getOpposite) @@ -74,7 +74,7 @@ class NodeGear(parent: PartGear) extends NodeMechanical(parent: PartGear) if (tile.isInstanceOf[INodeProvider]) { - val other = tile.asInstanceOf[INodeProvider].getNode(classOf[NodeMechanical], toDir) + val other = tile.asInstanceOf[INodeProvider].getNode(classOf[NodeMechanical], if (toDir == gear.placementSide.getOpposite) ForgeDirection.UNKNOWN else toDir) if (other != this && toDir != gear.placementSide && other != null && canConnect(other, toDir) && other.canConnect(this, toDir.getOpposite)) { @@ -193,7 +193,7 @@ class NodeGear(parent: PartGear) extends NodeMechanical(parent: PartGear) //We are connecting to a shaft. val shaft = otherParent.asInstanceOf[PartGearShaft] /*shaft.tile.partMap(from.getOpposite.ordinal) != gear && */ - return Math.abs(shaft.placementSide.offsetX) == Math.abs(gear.placementSide.offsetX) && Math.abs(shaft.placementSide.offsetY) == Math.abs(gear.placementSide.offsetY) && Math.abs(shaft.placementSide.offsetZ) == Math.abs(gear.placementSide.offsetZ) + return Math.abs(shaft.placementSide.offsetX) == Math.abs(gear.placementSide.offsetX) && Math.abs(shaft.placementSide.offsetY) == Math.abs(gear.placementSide.offsetY) && Math.abs(shaft.placementSide.offsetZ) == Math.abs(gear.placementSide.offsetZ) } } else if (from != ForgeDirection.UNKNOWN) diff --git a/src/main/scala/resonantinduction/mechanical/mech/gearshaft/NodeGearShaft.scala b/src/main/scala/resonantinduction/mechanical/mech/gearshaft/NodeGearShaft.scala index 3adde4af1..35685be6b 100644 --- a/src/main/scala/resonantinduction/mechanical/mech/gearshaft/NodeGearShaft.scala +++ b/src/main/scala/resonantinduction/mechanical/mech/gearshaft/NodeGearShaft.scala @@ -43,9 +43,9 @@ class NodeGearShaft(parent: PartGearShaft) extends NodeMechanical(parent) if (checkTile.isInstanceOf[INodeProvider]) { - val instance = (checkTile.asInstanceOf[INodeProvider]).getNode(classOf[NodeMechanical], toDir.getOpposite) + val instance = checkTile.asInstanceOf[INodeProvider].getNode(classOf[NodeMechanical], toDir.getOpposite) - if (instance != null && instance != this && instance.getParent.isInstanceOf[PartGearShaft] && instance.canConnect(this, toDir.getOpposite)) + if (instance != null && instance != this && instance.getParent.isInstanceOf[PartGearShaft] && canConnect(instance, toDir) && instance.canConnect(this, toDir.getOpposite)) { connect(instance, toDir) } @@ -58,15 +58,16 @@ class NodeGearShaft(parent: PartGearShaft) extends NodeMechanical(parent) { if (other.isInstanceOf[NodeMechanical]) { - if ((other.asInstanceOf[NodeMechanical]).getParent.isInstanceOf[PartGear]) + if (other.asInstanceOf[NodeMechanical].getParent.isInstanceOf[PartGear]) { - val gear: PartGear = (other.asInstanceOf[NodeMechanical]).getParent.asInstanceOf[PartGear] + val gear = other.asInstanceOf[NodeMechanical].getParent.asInstanceOf[PartGear] if (!(Math.abs(gear.placementSide.offsetX) == Math.abs(shaft.placementSide.offsetX) && Math.abs(gear.placementSide.offsetY) == Math.abs(shaft.placementSide.offsetY) && Math.abs(gear.placementSide.offsetZ) == Math.abs(shaft.placementSide.offsetZ))) { return false } } } + return from == shaft.placementSide || from == shaft.placementSide.getOpposite }