public void AddConnection(Connection con) { NodePos pos1 = con.pos1; NodePos pos2 = con.pos2; SignalNetwork net1 = GetNetworkAt(pos1, false); SignalNetwork net2 = GetNetworkAt(pos2, false); if (net1 == null || net2 == null) { return; } SignalNetwork mergedNetwork; if (net1 != net2) { mergedNetwork = net1.Merge(net2); Api.Logger.Debug("Merging signal networks {0} and {1}, into net {2}", net1.networkId, net2.networkId, mergedNetwork.networkId); foreach (ISignalNode node in mergedNetwork.nodes.Values) { SetNodeNetwork(node, mergedNetwork); } } else { mergedNetwork = net1; } Api.Logger.Debug("Adding connection into net {0}", mergedNetwork.networkId); mergedNetwork.AddConnection(con); //Notify handler and sync ect... }