コード例 #1
0
 private static void FinalizeCachedDrawEntries(IEnumerable <StatDrawEntry> original)
 {
     StatsReportUtility.cachedDrawEntries = (from sd in original
                                             orderby sd.category.displayOrder, sd.DisplayPriorityWithinCategory descending, sd.LabelCap
                                             select sd).ToList();
     if (StatsReportUtility.cachedDrawEntries.Count > 0)
     {
         StatsReportUtility.SelectEntry(StatsReportUtility.cachedDrawEntries[0], false);
     }
 }
コード例 #2
0
        private static void DrawStatsWorker(Rect rect, Thing optionalThing, WorldObject optionalWorldObject)
        {
            Rect outRect = new Rect(rect);

            outRect.width *= 0.5f;
            Rect rect2 = new Rect(rect);

            rect2.x     = outRect.xMax;
            rect2.width = rect.xMax - rect2.x;
            Text.Font   = GameFont.Small;
            Rect viewRect = new Rect(0f, 0f, outRect.width - 16f, StatsReportUtility.listHeight);

            Widgets.BeginScrollView(outRect, ref StatsReportUtility.scrollPosition, viewRect, true);
            float  num = 0f;
            string b   = null;

            foreach (StatDrawEntry ent in StatsReportUtility.cachedDrawEntries)
            {
                if (ent.category.LabelCap != b)
                {
                    Widgets.ListSeparator(ref num, viewRect.width, ent.category.LabelCap);
                    b = ent.category.LabelCap;
                }
                num += ent.Draw(8f, num, viewRect.width - 8f, StatsReportUtility.selectedEntry == ent, delegate
                {
                    StatsReportUtility.SelectEntry(ent, true);
                });
            }
            StatsReportUtility.listHeight = num + 100f;
            Widgets.EndScrollView();
            Rect rect3 = rect2.ContractedBy(10f);

            GUI.BeginGroup(rect3);
            if (StatsReportUtility.selectedEntry != null)
            {
                StatRequest optionalReq;
                if (StatsReportUtility.selectedEntry.hasOptionalReq)
                {
                    optionalReq = StatsReportUtility.selectedEntry.optionalReq;
                }
                else if (optionalThing != null)
                {
                    optionalReq = StatRequest.For(optionalThing);
                }
                else
                {
                    optionalReq = StatRequest.ForEmpty();
                }
                string explanationText = StatsReportUtility.selectedEntry.GetExplanationText(optionalReq);
                Rect   rect4           = rect3.AtZero();
                Widgets.Label(rect4, explanationText);
            }
            GUI.EndGroup();
        }
コード例 #3
0
        private static void DrawStatsWorker(Rect rect, Thing optionalThing, WorldObject optionalWorldObject)
        {
            Rect rect2 = new Rect(rect);

            rect2.width *= 0.5f;
            Rect rect3 = new Rect(rect);

            rect3.x     = rect2.xMax;
            rect3.width = rect.xMax - rect3.x;
            Text.Font   = GameFont.Small;
            Rect viewRect = new Rect(0f, 0f, rect2.width - 16f, StatsReportUtility.listHeight);

            Widgets.BeginScrollView(rect2, ref StatsReportUtility.scrollPosition, viewRect, true);
            float  num = 0f;
            string b   = null;

            StatsReportUtility.mousedOverEntry = null;
            for (int i = 0; i < StatsReportUtility.cachedDrawEntries.Count; i++)
            {
                StatDrawEntry ent = StatsReportUtility.cachedDrawEntries[i];
                if (ent.category.LabelCap != b)
                {
                    Widgets.ListSeparator(ref num, viewRect.width, ent.category.LabelCap);
                    b = ent.category.LabelCap;
                }
                num += ent.Draw(8f, num, viewRect.width - 8f, StatsReportUtility.selectedEntry == ent, delegate
                {
                    StatsReportUtility.SelectEntry(ent, true);
                }, delegate
                {
                    StatsReportUtility.mousedOverEntry = ent;
                }, StatsReportUtility.scrollPosition, rect2);
            }
            StatsReportUtility.listHeight = num + 100f;
            Widgets.EndScrollView();
            Rect rect4 = rect3.ContractedBy(10f);

            GUI.BeginGroup(rect4);
            StatDrawEntry statDrawEntry;

            if ((statDrawEntry = StatsReportUtility.selectedEntry) == null)
            {
                statDrawEntry = (StatsReportUtility.mousedOverEntry ?? StatsReportUtility.cachedDrawEntries.FirstOrDefault <StatDrawEntry>());
            }
            StatDrawEntry statDrawEntry2 = statDrawEntry;

            if (statDrawEntry2 != null)
            {
                StatRequest optionalReq;
                if (statDrawEntry2.hasOptionalReq)
                {
                    optionalReq = statDrawEntry2.optionalReq;
                }
                else if (optionalThing != null)
                {
                    optionalReq = StatRequest.For(optionalThing);
                }
                else
                {
                    optionalReq = StatRequest.ForEmpty();
                }
                string explanationText = statDrawEntry2.GetExplanationText(optionalReq);
                Rect   rect5           = rect4.AtZero();
                Widgets.Label(rect5, explanationText);
            }
            GUI.EndGroup();
        }