// TODO: Add pawn icon in menu, next to name private static void AddButton(Rect rect, Listing_Standard list, Pawn pawn, bool fromColonistBar) { if (list == null) { throw new ArgumentNullException(nameof(list)); } if (pawn == null) { throw new ArgumentNullException(nameof(pawn)); } float truncWidth = rect.width / 2f - 4f; string pawnLabel = pawn.Label.Truncate(truncWidth); if (ColonistBarUtility.IsHidden(pawn)) { string buttonLabel = "ColonistBarHiding.Restore".Translate(); buttonLabel = buttonLabel.Truncate(truncWidth); if (list.ButtonTextLabeled(pawnLabel, buttonLabel)) { ColonistBarUtility.RestoreColonist(pawn); } } else { string buttonLabel = "ColonistBarHiding.Remove".Translate(); buttonLabel = buttonLabel.Truncate(truncWidth); if (list.ButtonTextLabeled(pawnLabel, buttonLabel)) { ColonistBarUtility.RemoveColonist(pawn, fromColonistBar); } } }
private static void AddPawnRow(Rect rect, Listing_Standard list, Pawn pawn, bool fromColonistBar) { if (list == null) { throw new ArgumentNullException(nameof(list)); } if (pawn == null) { throw new ArgumentNullException(nameof(pawn)); } float truncWidth = rect.width / 2f - 4f; string pawnLabel = pawn.Label.Truncate(truncWidth); string buttonLabel; if (ColonistBarUtility.IsHidden(pawn)) { buttonLabel = "ColonistBarHiding.Restore".Translate(); } else { buttonLabel = "ColonistBarHiding.Remove".Translate(); } buttonLabel = buttonLabel.Truncate(truncWidth); // Position it better //float yLabel = Text.CalcHeight(pawnLabel, rect.width); //Rect labelRect = list.GetRect(yLabel); //Widgets.Label(labelRect.LeftHalf(), pawnLabel); var rL = rect.LeftHalf(); rL.y += 5f; Widgets.Label(rL, pawnLabel); Rect iconButtonRect = rect.RightHalf(); //float iconWidth = 12f; if (ColonistBarUtility.IsHidden(pawn)) { Rect textureRect = new Rect(iconButtonRect.x, iconButtonRect.y, iconButtonRect.height, iconButtonRect.height); var texture = ContentFinder <Texture2D> .Get("ColonistBarHiding/HiddenIcon", true); Widgets.DrawTextureFitted(textureRect, texture, 1.0f); TooltipHandler.TipRegion(textureRect, () => { return("ColonistBarHiding.ColonistIsHidden".Translate()); }, 585743620); } float spacing = 6f; iconButtonRect.x += iconButtonRect.height + spacing; iconButtonRect.width -= iconButtonRect.height + spacing; if (ColonistBarUtility.IsHidden(pawn)) { if (Widgets.ButtonText(iconButtonRect, buttonLabel)) { ColonistBarUtility.RestoreColonist(pawn); } } else { if (Widgets.ButtonText(iconButtonRect, buttonLabel)) { ColonistBarUtility.RemoveColonist(pawn, fromColonistBar); } } list.Gap(); }