private float DrawTechprintInfo(Rect rect, ResearchProjectDef project)
        {
            if (selectedProject.TechprintCount == 0)
            {
                return(0f);
            }
            float  xMin = rect.xMin;
            float  yMin = rect.yMin;
            string text = "ResearchTechprintsFromFactions".Translate();
            float  num  = Text.CalcHeight(text, rect.width);

            Widgets.Label(new Rect(rect.x, yMin, rect.width, num), text);
            rect.x += 6f;
            if (selectedProject.heldByFactionCategoryTags != null)
            {
                foreach (string heldByFactionCategoryTag in selectedProject.heldByFactionCategoryTags)
                {
                    foreach (Faction item in Find.FactionManager.AllFactionsInViewOrder)
                    {
                        if (item.def.categoryTag == heldByFactionCategoryTag)
                        {
                            string name     = item.Name;
                            Rect   position = new Rect(rect.x, yMin + num, rect.width, Mathf.Max(24f, Text.CalcHeight(name, rect.width - 24f - 6f)));
                            GUI.BeginGroup(position);
                            Rect r = new Rect(0f, 0f, 24f, 24f).ContractedBy(2f);
                            FactionUIUtility.DrawFactionIconWithTooltip(r, item);
                            Rect rect2 = new Rect(r.xMax + 6f, 0f, position.width - r.width - 6f, position.height);
                            Text.Anchor   = TextAnchor.MiddleLeft;
                            Text.WordWrap = false;
                            Widgets.Label(rect2, item.Name);
                            Text.Anchor   = TextAnchor.UpperLeft;
                            Text.WordWrap = true;
                            GUI.EndGroup();
                            num += position.height;
                        }
                    }
                }
            }
            rect.xMin = xMin;
            return(num);
        }
        private void DoFactionInfo(Rect rect, Faction faction, ref float curX, ref float curY, ref int index)
        {
            if (index % 2 == 1)
            {
                Widgets.DrawLightHighlight(new Rect(curX, curY, rect.width, 45f));
            }
            FactionUIUtility.DrawFactionIconWithTooltip(new Rect(curX, curY + 5f, 35f, 35f), faction);
            curX += 45f;
            Rect rect2 = new Rect(curX, curY, 250f, 45f);

            Text.Anchor = TextAnchor.MiddleLeft;
            Widgets.Label(rect2, faction.Name);
            Text.Anchor = TextAnchor.UpperLeft;
            curX       += 250f;
            if (Mouse.IsOver(rect2))
            {
                TipSignal tip = new TipSignal(() => faction.Name + "\n\n" + faction.def.description + "\n\n" + faction.PlayerRelationKind.GetLabel().Colorize(faction.PlayerRelationKind.GetColor()), faction.loadID ^ 0x4468077);
                TooltipHandler.TipRegion(rect2, tip);
                Widgets.DrawHighlight(rect2);
            }
            index++;
        }