示例#1
0
        public PrisonerMenu(TieredFloatMenu parentWindow, ColonistGroup colonistGroup, Rect originRect, Texture2D backgroundTexture, string menuTitle)
            : base(parentWindow, colonistGroup, originRect, backgroundTexture, menuTitle)
        {
            prisonerNodes = new Dictionary <PrisonerInteractionModeDef, TreeNode_Pawns>();

            foreach (PrisonerInteractionModeDef item in DefDatabase <PrisonerInteractionModeDef> .AllDefs.OrderBy((PrisonerInteractionModeDef pim) => pim.listOrder))
            {
                prisonerNodes[item] = new TreeNode_Pawns(null, item.LabelCap);
                prisonerNodes[item].SetOpen(32, true);
            }
        }
示例#2
0
        public void DoCategory(TreeNode_Pawns node, int nestLevel, int openMask, bool showSlaveSuppresion = false)
        {
            OpenCloseWidget(node, nestLevel, openMask);
            Rect rect = new Rect(15f, curY, LabelWidth, lineHeight);

            Widgets.Label(rect, node.Label);
            EndLine();

            if (node.IsOpen(openMask))
            {
                rect.xMin = XAtIndentLevel(nestLevel) + 18f;
                if (node.pawns != null)
                {
                    var pawnRows = GetPawnRows(node, 4);
                    for (var i = 0; i < pawnRows.Count; i++)
                    {
                        for (var j = 0; j < pawnRows[i].Count; j++)
                        {
                            Rect pawnRect = new Rect(xPawnRectOffset + (j * (TacticalColonistBar.DefaultBaseSize.x + xPawnIconMargin)),
                                                     rect.yMax + 10 + (i * (TacticalColonistBar.DefaultBaseSize.y + yPawnIconMargin)),
                                                     TacticalColonistBar.DefaultBaseSize.x, TacticalColonistBar.DefaultBaseSize.y);
                            Widgets.DrawBox(pawnRect);
                            ManagementMenu.DrawColonist(pawnRect, pawnRows[i][j], pawnRows[i][j].Map, false, false, showSlaveSuppresion: showSlaveSuppresion);
                            if (Event.current.type == EventType.MouseDown && Event.current.button == 0 && Event.current.clickCount == 2 && Mouse.IsOver(pawnRect))
                            {
                                Event.current.Use();
                                CameraJumper.TryJump(pawnRows[i][j]);
                            }
                            if (Event.current.type == EventType.MouseDown && Event.current.button == 0 && Event.current.clickCount == 1 && Mouse.IsOver(pawnRect))
                            {
                                Event.current.Use();
                                Find.Selector.ClearSelection();
                                Find.Selector.Select(pawnRows[i][j]);
                            }
                        }
                        curY += TacticalColonistBar.DefaultBaseSize.y + yPawnIconMargin;
                    }
                }
            }
        }
示例#3
0
        public List <List <Pawn> > GetPawnRows(TreeNode_Pawns node, int columnCount)
        {
            int num = 0;
            List <List <Pawn> > pawnRows = new List <List <Pawn> >();
            List <Pawn>         row      = new List <Pawn>();

            foreach (var icon in node.pawns)
            {
                if (num == columnCount)
                {
                    pawnRows.Add(row.ListFullCopy());
                    row = new List <Pawn>();
                    num = 0;
                }
                num++;
                row.Add(icon);
            }
            if (row.Any())
            {
                pawnRows.Add(row);
            }
            return(pawnRows);
        }
示例#4
0
 public SlaveMenu(TieredFloatMenu parentWindow, ColonistGroup colonistGroup, Rect originRect, Texture2D backgroundTexture, string menuTitle)
     : base(parentWindow, colonistGroup, originRect, backgroundTexture, menuTitle)
 {
     slaveNodes = new TreeNode_Pawns(new List <Pawn>(), Strings.Slaves);
     slaveNodes.SetOpen(32, true);
 }