Example #1
0
 private void DetermineStartRegions(IntVec3 start)
 {
     startingRegions.Clear();
     if (pathGrid.WalkableFast(start))
     {
         VehicleRegion validRegionAt = regionGrid.GetValidRegionAt(start);
         QueueNewOpenRegion(validRegionAt);
         startingRegions.Add(validRegionAt);
     }
     else
     {
         for (int i = 0; i < 8; i++)
         {
             IntVec3 c = start + GenAdj.AdjacentCells[i];
             if (c.InBoundsShip(map))
             {
                 if (pathGrid.WalkableFast(c))
                 {
                     VehicleRegion validRegionAt2 = regionGrid.GetValidRegionAt(c);
                     if (!(validRegionAt2 is null) && validRegionAt2.reachedIndex != reachedIndex)
                     {
                         QueueNewOpenRegion(validRegionAt2);
                         startingRegions.Add(validRegionAt2);
                     }
                 }
             }
         }
     }
 }