public void Notify_ConnectorAdded(CompGas comp)
        {
            Log.Debug($"adding connector for '{comp.parent.Label}'");

            // sanity check; does this comp already exist?
            if (GasNetworks.Any(n => n.connectors.Contains(comp)) || comp.Network != null)
            {
                Log.Error($"adding gas comp that is already in a network: {comp.parent.Label}");
            }

            // check if it has neighbours that are in a Network.
            var neighbours    = comp.GetAdjacentGasComps(true);
            var neighbourNets = neighbours.Select(g => g.Network)
                                .Distinct()
                                .Where(n => n != null);

            // if 1, add
            if (neighbourNets.Count() == 1)
            {
                neighbourNets.First().Register(comp);
            }
            else
            {
                // if multiple, destroy
                foreach (var neighbourNet in neighbourNets)
                {
                    DestroyGasNet(neighbourNet);
                }

                // (re)create network(s)
                CreateGasNetworks(neighbours);
            }
        }
 public void Notify_ConnectorRemoved(CompGas comp)
 {
     DestroyGasNet(comp.Network);
     CreateGasNetworks(comp.GetAdjacentGasComps(map));
 }