private void RecacheSelectedModRequirements() { anyReqsCached = false; anyReqsInfoToShowCached = false; anyUnfulfilledReqsCached = false; anyOrderingIssuesCached = false; visibleReqsCached.Clear(); if (selectedMod == null) { return; } foreach (ModRequirement item in (from r in selectedMod.GetRequirements() orderby r.IsSatisfied, r.RequirementTypeLabel select r).ToList()) { bool isSatisfied = item.IsSatisfied; if (!isSatisfied || displayFullfilledRequirements) { visibleReqsCached.Add(item); if (!isSatisfied) { anyUnfulfilledReqsCached = true; } } anyReqsCached = true; anyReqsInfoToShowCached = true; } anyOrderingIssuesCached = ModsConfig.ModHasAnyOrderingIssues(selectedMod); if (visibleReqsCached.Any() || anyOrderingIssuesCached) { anyReqsInfoToShowCached = true; modRequirementsHeightCached = (float)visibleReqsCached.Count * 26f + (float)(visibleReqsCached.Count - 1) * 4f + 20f + 1f; if (anyOrderingIssuesCached) { modRequirementsHeightCached += Text.LineHeight * 2f + 4f; } } else { modRequirementsHeightCached = 0f; } }