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); } }
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(); }
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(); }