Ejemplo n.º 1
0
        public virtual void Sort(TabComparer sort1, TabComparer sort2)
        {
            var itemsWithValue = items.Where(x => x.MarketValueAll >= 1f);

            if (sort1 is TabComparer_MarketValueAll && sort2 is TabComparer_None)
            {
                items = itemsWithValue
                        .OrderByDescending(x => x, sort1)
                        .ToList();
                return;
            }

            // sort like trade window
            items = itemsWithValue
                    .OrderBy(x => x, sort1)
                    .ThenBy(x => x, sort2)
                    .ThenBy(x => TransferableUIUtility.DefaultListOrderPriority(x.thing.def))
                    .ToList();
        }
Ejemplo n.º 2
0
        public override void DoWindowContents(Rect rect)
        {
            float y = 0f;

            Text.Font   = GameFont.Small;
            Text.Anchor = TextAnchor.MiddleLeft;

            // draw button select tab
            float  btnWidth         = 150f;
            float  btnHeight        = 30f;
            float  lblOrderWidth    = 80f;
            float  btnOrderWidth    = 120f;
            Rect   btnSelectTabRect = new Rect(x: 10f, y: y, width: btnWidth, height: btnHeight);
            Rect   lblOrderRect     = new Rect(x: btnSelectTabRect.xMax + 10f, y: y, width: lblOrderWidth, height: btnHeight);
            Rect   btnOrder1Rect    = new Rect(x: lblOrderRect.xMax, y: y, width: btnOrderWidth, height: btnHeight);
            Rect   btnOrder2Rect    = new Rect(x: btnOrder1Rect.xMax, y: y, width: btnOrderWidth, height: btnHeight);
            string btnCaption       = _activeTab?.Caption ?? "capSelectTab".Translate();

            if (Widgets.ButtonText(btnSelectTabRect, "btnSelectTab".Translate(btnCaption)))
            {
                Find.WindowStack.Add(new FloatMenu(this.GetTabsList().ToList()));
            }

            Widgets.Label(lblOrderRect, "lblOrder".Translate());

            if (Widgets.ButtonText(btnOrder1Rect, _sort1.Name))
            {
                Find.WindowStack.Add(new FloatMenu(this.GetSortersList(comparer =>
                {
                    _sort1 = comparer;
                    _activeTab?.Sort(_sort1, _sort2);
                }).ToList()));
            }
            if (Widgets.ButtonText(btnOrder2Rect, _sort2.Name))
            {
                Find.WindowStack.Add(new FloatMenu(this.GetSortersList(comparer =>
                {
                    _sort2 = comparer;
                    _activeTab?.Sort(_sort1, _sort2);
                }).ToList()));
            }

            // draw raid points
            if (_raidPoints != null)
            {
                Rect labelRaidPointsRect = new Rect(x: btnOrder2Rect.xMax + 10f, y: y, width: 100f, height: btnHeight);
                Widgets.Label(labelRaidPointsRect, _raidPoints);
            }

            y += btnHeight + 20f;

            // draw content in scroll view
            Rect outRect  = new Rect(x: 0f, y: y, width: rect.width, height: rect.height - y);
            Rect viewRect = new Rect(x: 0f, y: y, width: rect.width - 30f, height: _activeTab?.ViewHeight ?? 0f);

            Widgets.BeginScrollView(outRect: outRect, scrollPosition: ref _scrollPosition, viewRect: viewRect);
            _activeTab?.Draw(outRect, viewRect, _scrollPosition);
            Widgets.EndScrollView();

            Text.Anchor = TextAnchor.UpperLeft;
        }
Ejemplo n.º 3
0
 public void Sort(TabComparer sort1, TabComparer sort2)
 {
     // empty
 }