@Override
 public void disconnectAll() {
   update = true;
   ArrayList<IInterPoleWire> list = new ArrayList<IInterPoleWire>();
   list.addAll(connections);
   for (IInterPoleWire con : list) {
     if (con.getWorld() == null) {
       if (parent == null) continue;
       con.setWorld(parent.getWorldObj());
     }
     if (con.getStart() != null) con.getStart().onDisconnect(con);
     if (con.getEnd() != null) con.getEnd().onDisconnect(con);
   }
 }
 @Override
 public void iterate() {
   if (update) {
     update = false;
     for (IInterPoleWire c : connections) {
       c.setWorld(getParent().getWorldObj());
     }
     refreshList();
   }
   if (parent.getWorldObj().isRemote) return;
   for (IInterPoleWire c : connections) {
     if (c.getStart() == this) {
       c.iterate();
     }
   }
 }