public override void DoCell( Rect rect, Pawn pawn, PawnTable table ) { // bail out if showing worksettings is nonsensical if ( pawn.Dead || !pawn.workSettings.EverWork ) return; var incapable = IncapableOfWholeWorkType( pawn ); var worktype = def.workType; // create rect in centre of cell var pos = rect.center - new Vector2( WorkTypeBoxSize, WorkTypeBoxSize ) / 2f; var box = new Rect( pos.x, pos.y, WorkTypeBoxSize, WorkTypeBoxSize ); // plop in the tooltip Func<string> tipGetter = delegate { return DrawUtilities.TipForPawnWorker( pawn, worktype, incapable ); }; TooltipHandler.TipRegion( box, tipGetter, pawn.thingIDNumber ^ worktype.GetHashCode() ); // bail out if worktype is disabled (or pawn has no background story). if ( !ShouldDrawCell( pawn ) ) return; // draw the workbox Text.Font = GameFont.Medium; DrawWorkTypeBoxFor( box, pawn, worktype, incapable ); Text.Font = GameFont.Small; // handle interactions HandleInteractions( rect, pawn ); }
public override void DoCell(Rect rect, Pawn pawn, PawnTable table) { // bail out if showing worksettings is nonsensical if (pawn.Dead || !pawn.workSettings.EverWork) { return; } var workgiver = WorkGiver; // create rect in centre of cell, slightly offsetting left to give the appearance of aligning to worktype. var pos = rect.center - new Vector2(WorkGiverBoxSize, WorkGiverBoxSize) / 2f; var box = new Rect(pos.x - 2f, pos.y, WorkGiverBoxSize, WorkGiverBoxSize); // is the pawn currently capable of doing this job? var incapable = !pawn.CapableOf(workgiver); // plop in the tooltip Func <string> tipGetter = delegate { return(DrawUtilities.TipForPawnWorker(pawn, workgiver, incapable)); }; TooltipHandler.TipRegion(box, tipGetter, pawn.thingIDNumber ^ workgiver.workType.GetHashCode()); // bail out if pawn can't actually do this work if (!ShouldDrawCell(pawn)) { return; } // draw the workbox Text.Font = GameFont.Tiny; DrawWorkGiverBoxFor(box, pawn, workgiver, incapable); // handle interactions HandleInteractions(rect, pawn); }