Пример #1
0
        /// <summary>
        /// Find a nearby substation
        /// </summary>
        /// <returns></returns>
        public Sim_Substation FindNearbySubstation(List <Sim_Substation> Substations, double Distance, List <Sim_Line> Lines, Sim_Builder Builder)
        {
            Dictionary <Sim_Substation, Sim_Line> AlreadySubs = ConnectedSubstations(Lines);

            List <SubstationDistance> Distances = new List <SubstationDistance>();

            foreach (Sim_Substation Sub in Substations)
            {
                if (Sub != this && !AlreadySubs.ContainsKey(Sub))
                {
                    double Dist = Sub.DistanceTo(this);
                    if (Dist <= Distance)
                    {
                        Distances.Add(new SubstationDistance(Sub, Dist));
                    }
                }
            }
            Distances.Sort();
            if (Distances.Count == 0)
            {
                return(null);
            }
            else
            {
                return(Distances[Builder.Randomizer.Next(Distances.Count)].Sub);
            }
        }