@Override
 public void addConnection(O connection, int direction) {
   if (this.connections[direction] != connection) {
     if (this.connections[direction] == null && this.canConnect(connection)) {
       this.connections[direction] = connection;
       connection.addConnection(this, ForgeDirection.OPPOSITES[direction]);
       if (this.worldObj.isRemote) {
         this.markDirty();
         return;
       }
       if (connection.getNetwork() == null && this.network == null) {
         this.makeNewNetwork();
         this.network.addNode(connection);
       } else {
         if (connection.getNetwork() == null) {
           this.network.addNode(connection);
         } else if (this.network == null) {
           connection.getNetwork().addNode(this);
         }
       }
     } else this.verifyConnections();
     this.markDirty();
   }
   /*int index = direction.getIndex();
   if(this.connections[index] != connection){
   	if(this.connections[index] == null && this.canConnect(connection)) {
   		this.connections[index] = connection;
   		connection.addConnection(this, direction.getOpposite());
   		if(this.worldObj.isRemote) {
   			this.markDirty();
   			return;
   		}
   		if (connection.getNetwork() == null && this.network == null){
   			this.makeNewNetwork();
   			this.network.addNode(connection);
   		}
   		else{
   			if(connection.getNetwork() == null) {
   				this.network.addNode(connection);
   			}
   			else if (this.network == null){
   				connection.getNetwork().addNode(this);
   			}
   		}
   	}
   	else
   		this.verifyConnections();
   	this.markDirty();
   }
   */
 }