public override Job JobOnThing(Pawn pawn, Thing t) { Vehicle_Cart cart = t as Vehicle_Cart; if (cart == null) { return((Job)null); } if (cart.IsForbidden(pawn.Faction) || !ReservationUtility.CanReserveAndReach(pawn, cart, PathEndMode.ClosestTouch, DangerUtility.NormalMaxDanger(pawn))) { return((Job)null); } if (FireUtility.IsBurning(cart)) { JobFailReason.Is(ToolsForHaulUtility.BurningLowerTrans); return((Job)null); } if (ListerHaulables.ThingsPotentiallyNeedingHauling().Count == 0 && cart.storage.Count == 0) { JobFailReason.Is(ToolsForHaulUtility.NoHaulable); return((Job)null); } if (Find.SlotGroupManager.AllGroupsListInPriorityOrder.Count == 0) { JobFailReason.Is(ToolsForHaulUtility.NoEmptyPlaceLowerTrans); return((Job)null); } if (ToolsForHaulUtility.AvailableAnimalCart(cart) || ToolsForHaulUtility.AvailableCart(cart, pawn)) { return(ToolsForHaulUtility.HaulWithTools(pawn, cart)); } JobFailReason.Is(ToolsForHaulUtility.NoAvailableCart); return((Job)null); }
public override Job NonScanJob(Pawn pawn) { if (ToolsForHaulUtility.TryGetBackpack(pawn) != null) { return(ToolsForHaulUtility.HaulWithTools(pawn)); } JobFailReason.Is(NoBackpack); return((Job)null); }