Example #1
0
        private void DoAreaRestriction(Listing_Standard listing, Area area, Action <Area> setArea, Func <Area, string> getLabel)
        {
            var areaRect = listing.GetRect(24);

            // Needed for GUI
            if (SelPawn.playerSettings == null)
            {
                SelPawn.playerSettings = new Pawn_PlayerSettings(SelPawn)
                {
                    AreaRestriction = area
                };
            }

            SelPawn.playerSettings.AreaRestriction = area;
            GuestUtility.DoAllowedAreaSelectors(areaRect, SelPawn, getLabel);
            var newArea = SelPawn.playerSettings.AreaRestriction;

            SelPawn.playerSettings.AreaRestriction = null;
            Text.Anchor = TextAnchor.UpperLeft;

            if (newArea != area)
            {
                setArea(newArea);
            }
        }
Example #2
0
        public static void DoAreaRestriction(Rect rect, Area area, Action <Area> setArea, Func <Area, string> getLabel)
        {
            var newArea = area;

            GuestUtility.DoAllowedAreaSelectors(rect, getLabel, ref newArea);
            Text.Anchor = TextAnchor.UpperLeft;

            if (newArea != area)
            {
                setArea(newArea);
            }
        }
        public static void DoAreaRestriction(Pawn pawn, Rect rect, Area area, Action <Area> setArea, Func <Area, string> getLabel)
        {
            // Needed for GUI
            if (pawn.playerSettings == null)
            {
                pawn.playerSettings = new Pawn_PlayerSettings(pawn)
                {
                    AreaRestriction = area
                };
            }

            pawn.playerSettings.AreaRestriction = area;
            GuestUtility.DoAllowedAreaSelectors(rect, pawn, getLabel);
            var newArea = pawn.playerSettings.AreaRestriction;

            pawn.playerSettings.AreaRestriction = null;
            Text.Anchor = TextAnchor.UpperLeft;

            if (newArea != area)
            {
                setArea(newArea);
            }
        }