Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }