コード例 #1
0
        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...
        }