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); } } } } } }