private void DoItemsLists(Rect inRect, ref float curY) { LordJob_FormAndSendCaravan lordJob_FormAndSendCaravan = (LordJob_FormAndSendCaravan)base.SelPawn.GetLord().LordJob; Rect position = new Rect(0f, curY, (inRect.width - 10f) / 2f, inRect.height); float a = 0f; GUI.BeginGroup(position); Widgets.ListSeparator(ref a, position.width, "ItemsToLoad".Translate()); bool flag = false; for (int i = 0; i < lordJob_FormAndSendCaravan.transferables.Count; i++) { TransferableOneWay transferableOneWay = lordJob_FormAndSendCaravan.transferables[i]; if (transferableOneWay.CountToTransfer > 0 && transferableOneWay.HasAnyThing) { flag = true; this.DoThingRow(transferableOneWay.ThingDef, transferableOneWay.CountToTransfer, transferableOneWay.things, position.width, ref a); } } if (!flag) { Widgets.NoneLabel(ref a, position.width, null); } GUI.EndGroup(); Rect position2 = new Rect((inRect.width + 10f) / 2f, curY, (inRect.width - 10f) / 2f, inRect.height); float b = 0f; GUI.BeginGroup(position2); Widgets.ListSeparator(ref b, position2.width, "LoadedItems".Translate()); bool flag2 = false; for (int j = 0; j < lordJob_FormAndSendCaravan.lord.ownedPawns.Count; j++) { Pawn pawn = lordJob_FormAndSendCaravan.lord.ownedPawns[j]; if (!pawn.inventory.UnloadEverything) { for (int k = 0; k < pawn.inventory.innerContainer.Count; k++) { Thing thing = pawn.inventory.innerContainer[k]; flag2 = true; ITab_Pawn_FormingCaravan.tmpSingleThing.Clear(); ITab_Pawn_FormingCaravan.tmpSingleThing.Add(thing); this.DoThingRow(thing.def, thing.stackCount, ITab_Pawn_FormingCaravan.tmpSingleThing, position2.width, ref b); ITab_Pawn_FormingCaravan.tmpSingleThing.Clear(); } } } if (!flag2) { Widgets.NoneLabel(ref b, position.width, null); } GUI.EndGroup(); curY += Mathf.Max(a, b); }
public override Job NonScanJob(Pawn pawn) { List <Lord> lords = pawn.Map.lordManager.lords; for (int i = 0; i < lords.Count; i++) { LordJob_FormAndSendCaravan lordJob_FormAndSendCaravan = lords[i].LordJob as LordJob_FormAndSendCaravan; if (lordJob_FormAndSendCaravan != null && lordJob_FormAndSendCaravan.GatheringItemsNow) { Thing thing = GatherItemsForCaravanUtility.FindThingToHaul(pawn, lords[i]); if (thing != null && this.AnyReachableCarrierOrColonist(pawn, lords[i])) { Job job = new Job(JobDefOf.PrepareCaravan_GatherItems, thing); job.lord = lords[i]; return(job); } } } return(null); }