public static void ChowHall(List <Pawn> pawns) { foreach (var pawn in pawns) { if (!pawn.mindState.IsIdle && pawn.CurJobDef != JobDefOf.Ingest) { ThinkResult result = ThinkResult.NoJob; try { var joyGiver = new JobGiver_GetFood(); joyGiver.ResolveReferences(); result = joyGiver.TryIssueJobPackage(pawn, default(JobIssueParams)); } catch (Exception exception) { JobUtility.TryStartErrorRecoverJob(pawn, pawn.ToStringSafe() + " threw exception while determining job (main)", exception); } if (result.Job != null && result.Job.def != JobDefOf.GotoWander) { pawn.jobs.TryTakeOrderedJob(result.Job); } } } }