コード例 #1
0
        private List <WorldGenStep_Roads.Link> GenerateFinalLinks(List <WorldGenStep_Roads.Link> linkProspective, int endpointCount)
        {
            List <WorldGenStep_Roads.Connectedness> list = new List <WorldGenStep_Roads.Connectedness>();

            for (int i = 0; i < endpointCount; i++)
            {
                list.Add(new WorldGenStep_Roads.Connectedness());
            }
            List <WorldGenStep_Roads.Link> list2 = new List <WorldGenStep_Roads.Link>();
            int j = 0;

            while (j < linkProspective.Count)
            {
                WorldGenStep_Roads.Link prospective = linkProspective[j];
                if (list[prospective.indexA].Group() != list[prospective.indexB].Group())
                {
                    goto IL_A9;
                }
                if (Rand.Value <= 0.015f)
                {
                    if (!list2.Any((WorldGenStep_Roads.Link link) => link.indexB == prospective.indexA && link.indexA == prospective.indexB))
                    {
                        goto IL_A9;
                    }
                }
IL_13B:
                j++;
                continue;
IL_A9:
                if (Rand.Value > 0.1f)
                {
                    list2.Add(prospective);
                }
                if (list[prospective.indexA].Group() != list[prospective.indexB].Group())
                {
                    WorldGenStep_Roads.Connectedness parent = new WorldGenStep_Roads.Connectedness();
                    list[prospective.indexA].Group().parent = parent;
                    list[prospective.indexB].Group().parent = parent;
                    goto IL_13B;
                }
                goto IL_13B;
            }
            return(list2);
        }
コード例 #2
0
 private static int <GenerateProspectiveLinks> m__3(WorldGenStep_Roads.Link lhs, WorldGenStep_Roads.Link rhs)
 {
     return(lhs.distance.CompareTo(rhs.distance));
 }