Exemplo n.º 1
0
        protected override void UpdateSize()
        {
            this.EnsureSpecificNeedsTabForPawnValid();
            base.UpdateSize();

            this.size   = ITab_Ship_Passengers.GetSize(AllAboard, this.PaneTopY, true);
            this.size.y = Mathf.Max(this.size.y, NeedsCardUtility.FullSize.y);
        }
Exemplo n.º 2
0
        protected override void FillTab()
        {
            this.EnsureSpecificNeedsTabForPawnValid();

            Text.Font = GameFont.Small;
            Rect rect     = new Rect(0f, 0f, size.x, size.y).ContractedBy(10f);
            Rect viewRect = new Rect(0f, 0f, rect.width - 16f, scrollViewHeight);

            Widgets.BeginScrollView(rect, ref scrollPosition, viewRect, true);
            float num  = 0f;
            bool  flag = false;

            foreach (ShipHandler handler in Handlers)
            {
                if (handler.role.handlingType != HandlingTypeFlags.None)
                {
                    Widgets.ListSeparator(ref num, viewRect.width, handler.role.label);
                    foreach (Pawn pawn in handler.handlers.InnerListForReading)
                    {
                        ITab_Ship_Passengers.DoRow(ref num, viewRect, rect, scrollPosition, pawn, ref specificNeedsTabForPawn);
                    }
                }
            }

            foreach (Pawn pawn in Passengers)
            {
                if (pawn.IsColonist)
                {
                    if (!flag)
                    {
                        Widgets.ListSeparator(ref num, viewRect.width, "CaravanPassengers".Translate());
                        flag = true;
                    }
                    ITab_Ship_Passengers.DoRow(ref num, viewRect, rect, scrollPosition, pawn, ref specificNeedsTabForPawn);
                }
            }
            bool flag2 = false;

            foreach (Pawn pawn in Passengers)
            {
                if (!pawn.IsColonist)
                {
                    if (!flag2)
                    {
                        Widgets.ListSeparator(ref num, viewRect.width, "CaravanPrisonersAndAnimals".Translate());
                        flag2 = true;
                    }
                    ITab_Ship_Passengers.DoRow(ref num, viewRect, rect, scrollPosition, pawn, ref specificNeedsTabForPawn);
                }
            }
            if (Event.current.type is EventType.Layout)
            {
                scrollViewHeight = num + 30f;
            }
            Widgets.EndScrollView();
        }
Exemplo n.º 3
0
        private static Vector2 GetSize(List <Pawn> pawns, float paneTopY, bool doNeeds = true)
        {
            float num = 100f;

            if (doNeeds)
            {
                num += (float)ITab_Ship_Passengers.MaxNeedsCount(pawns) * 100f;
            }
            num += 24f;
            Vector2 result;

            result.x = 103f + num + 16f;
            result.y = Mathf.Min(550f, paneTopY - 30f);
            return(result);
        }