// Token: 0x060005D9 RID: 1497 RVA: 0x0003930C File Offset: 0x0003770C private static bool TryFindSpotToPlaceHaulableCloseTo(Thing haulable, Pawn worker, IntVec3 center, IntVec3 center2, int radius, out IntVec3 spot) { Region region = center.GetRegion(worker.Map, RegionType.Set_Passable); if (region == null) { spot = center; return(false); } TraverseParms traverseParms = TraverseParms.For(worker, Danger.Deadly, TraverseMode.ByPawn, false); IntVec3 foundCell = IntVec3.Invalid; RegionTraverser.BreadthFirstTraverse(region, (Region from, Region r) => r.Allows(traverseParms, false), delegate(Region r) { XenomorphUtil.candidates.Clear(); XenomorphUtil.candidates.AddRange(r.Cells); XenomorphUtil.candidates.Sort((IntVec3 a, IntVec3 b) => a.DistanceToSquared(center).CompareTo(b.DistanceToSquared(center))); for (int i = 0; i < XenomorphUtil.candidates.Count; i++) { IntVec3 intVec = XenomorphUtil.candidates[i]; if (XenomorphUtil.HaulablePlaceValidator(haulable, worker, intVec, center2, radius)) { foundCell = intVec; return(true); } } return(false); }, 100, RegionType.Set_Passable); if (foundCell.IsValid) { spot = foundCell; return(true); } spot = center; return(false); }