public static bool TryFindBestBetterStoreCellFor(Thing t, Pawn carrier, Map map, StoragePriority currentPriority, Faction faction, out IntVec3 foundCell, bool needAccurateResult = true) { List <SlotGroup> allGroupsListInPriorityOrder = map.haulDestinationManager.AllGroupsListInPriorityOrder; if (allGroupsListInPriorityOrder.Count == 0) { foundCell = IntVec3.Invalid; return(false); } StoragePriority storagePriority = currentPriority; float num = 2.14748365E+09f; IntVec3 invalid = IntVec3.Invalid; int count = allGroupsListInPriorityOrder.Count; for (int i = 0; i < count; i++) { SlotGroup slotGroup = allGroupsListInPriorityOrder[i]; StoragePriority priority = slotGroup.Settings.Priority; if (priority < storagePriority || priority <= currentPriority) { break; } StoreUtility.TryFindBestBetterStoreCellForWorker(t, carrier, map, faction, slotGroup, needAccurateResult, ref invalid, ref num, ref storagePriority); } if (!invalid.IsValid) { foundCell = IntVec3.Invalid; return(false); } foundCell = invalid; return(true); }
public static bool TryFindBestBetterStoreCellForIn(Thing t, Pawn carrier, Map map, StoragePriority currentPriority, Faction faction, SlotGroup slotGroup, out IntVec3 foundCell, bool needAccurateResult = true) { foundCell = IntVec3.Invalid; float num = 2.14748365E+09f; StoreUtility.TryFindBestBetterStoreCellForWorker(t, carrier, map, faction, slotGroup, needAccurateResult, ref foundCell, ref num, ref currentPriority); return(foundCell.IsValid); }