public void TryRefreshConnectors() { List <Tuple <MachineConnector, MachineConnector> > lostConnections = new List <Tuple <MachineConnector, MachineConnector> >(); foreach (MachineConnector m in _outputs) { if (m._conveyor != null) { lostConnections.Add(new Tuple <MachineConnector, MachineConnector>(m._conveyor._output, m._conveyor._input)); MachineManager.DisconnectMachines(m._conveyor); } } foreach (MachineConnector m in _inputs) { if (m._conveyor != null) { lostConnections.Add(new Tuple <MachineConnector, MachineConnector>(m._conveyor._output, m._conveyor._input)); MachineManager.DisconnectMachines(m._conveyor); } } foreach (Tuple <MachineConnector, MachineConnector> c in lostConnections) { MachineManager.ConnectMachines(c.Item1, c.Item2); } MachineManager.UpdateRecipes(); }