Example #1
0
        void UpdateInfoFromPawnChange()
        {
            selectedPawn = PawnUtilities.currentListOfPawns[iterator];

            PawnUtilities.TryFindUserAssigned(selectedPawn, out assignedUsername);

            usernameFromQueue = null;
        }
Example #2
0
 public PawnAssignmentWindow()
 {
     PawnUtilities.currentListOfPawns = PawnUtilities.ListOfColonists(out PawnUtilities.groupOfPawnsLabel, out selectedPawn);
     this.doCloseButton = true;
 }
Example #3
0
        public override void DoWindowContents(Rect inRect)
        {
            // Left Side

            Text.Anchor = TextAnchor.MiddleCenter;

            Rect leftArrow   = new Rect(0f, 0f, 32f, 32f);
            Rect middleLabel = new Rect(leftArrow.width + padding, 0f, 200f, 32f);
            Rect rightArrow  = new Rect(middleLabel.x + middleLabel.width + padding, 0f, 32f, 32f);

            if (Widgets.ButtonText(leftArrow, "<"))
            {
                PreviousPawn();
            }

            Widgets.Label(middleLabel, selectedPawn.NameFullColored);

            if (Widgets.ButtonText(rightArrow, ">"))
            {
                NextPawn();
            }

            leftArrow.y   += 37f;
            middleLabel.y += 37f;
            rightArrow.y  += 37f;

            if (Widgets.ButtonText(leftArrow, "<", true, true, false))
            {
            }

            Widgets.Label(middleLabel, PawnUtilities.groupOfPawnsLabel);

            if (Widgets.ButtonText(rightArrow, ">", true, true, false))
            {
            }

            Text.Anchor = TextAnchor.MiddleLeft;

            // Right Side

            Rect pawnCard = new Rect(inRect.width - 124 - padding, 0, 124, 124);

            PawnUtilities.DrawColonist(pawnCard, selectedPawn);

            // Bottom Section

            Rect pawnInformation = new Rect(0f, 140f, inRect.width, 32f);

            if (assignedUsername != null)
            {
                // Viewer Assigned
                Widgets.Label(pawnInformation, $"<color=green>Assigned User</color>: {assignedUsername}");
            }
            else
            {
                // Viewer Not Assigned
                Widgets.Label(pawnInformation, "<color=red>Not Assigned</color>");

                PawnUtilities.NewLine(pawnInformation, out Rect usernamesInfo);

                Widgets.Label(usernamesInfo, $"Users in Queue: {PawnUtilities.usernamesInQueue}");

                PawnUtilities.NewLine(usernamesInfo, out Rect pickUsername);

                if (PawnUtilities.usernamesInQueue > 0)
                {
                    Widgets.Label(pickUsername, "Pick User: "******"Next"))
                    {
                        NextUsername();
                    }

                    pickUsername.x += 100f;

                    if (Widgets.ButtonText(pickUsername, "Random"))
                    {
                        RandomUsername();
                    }

                    pickUsername.x     = 0;
                    pickUsername.width = usernamesInfo.width;
                }

                PawnUtilities.NewLine(pickUsername, out Rect usernameInput);

                if (usernameFromQueue != null)
                {
                    usernameFromQueue = Widgets.TextEntryLabeled(usernameInput, "Assign to User: "******"Assign to User: "******"");
                }

                Text.Anchor = TextAnchor.UpperLeft;
            }
        }
        public override void DoWindowContents(Rect inRect)
        {
            // Left Side

            Text.Anchor = TextAnchor.MiddleCenter;

            Rect leftArrow   = new Rect(0f, 0f, 32f, 32f);
            Rect middleLabel = new Rect(leftArrow.width + padding, 0f, 200f, 32f);
            Rect rightArrow  = new Rect(middleLabel.x + middleLabel.width + padding, 0f, 32f, 32f);

            if (Widgets.ButtonText(leftArrow, "<"))
            {
                PreviousPawn();
            }

            Widgets.Label(middleLabel, selectedPawn.NameFullColored);

            if (Widgets.ButtonText(rightArrow, ">"))
            {
                NextPawn();
            }

            leftArrow.y   += 37f;
            middleLabel.y += 37f;
            rightArrow.y  += 37f;

            if (Widgets.ButtonText(leftArrow, "<", true, true, false))
            {
            }

            Widgets.Label(middleLabel, PawnUtilities.groupOfPawnsLabel);

            if (Widgets.ButtonText(rightArrow, ">", true, true, false))
            {
            }

            Text.Anchor = TextAnchor.MiddleLeft;

            // Right Side

            Rect pawnCard = new Rect(inRect.width - 124 - padding, 0, 124, 124);

            PawnUtilities.DrawColonist(pawnCard, selectedPawn);

            // Bottom Section

            Rect pawnInformation = new Rect(0f, 140f, 240f, 24f);

            if (assignedUsername != null)
            {
                // Viewer Assigned
                Widgets.Label(pawnInformation, $"<color=green>Assigned User</color>: {assignedUsername}");

                PawnUtilities.NewLine(pawnInformation, out Rect unassignButton);
                unassignButton.width = 140f;

                if (Widgets.ButtonText(unassignButton, "Unassign Viewer"))
                {
                    component.UnassignUserFromPawn(assignedUsername);
                    UpdateInfoFromPawnChange();
                }
            }
            else
            {
                // Viewer Not Assigned
                Widgets.Label(pawnInformation, "<color=red>Not Assigned</color>");

                PawnUtilities.NewLine(pawnInformation, out Rect usernamesInfo);

                Widgets.Label(usernamesInfo, $"Users in Queue: {component.NumOfViewersInQueue}");

                PawnUtilities.NewLine(usernamesInfo, out Rect pickUsername);

                if (component.NumOfViewersInQueue > 0)
                {
                    Widgets.Label(pickUsername, "Pick Viewer: ");

                    pickUsername.x    += 100f;
                    pickUsername.width = 80f;
                    Text.Anchor        = TextAnchor.MiddleCenter;

                    if (Widgets.ButtonText(pickUsername, "Next"))
                    {
                        NextUsername();
                    }

                    pickUsername.x += 100f;

                    if (Widgets.ButtonText(pickUsername, "Random"))
                    {
                        RandomUsername();
                    }

                    pickUsername.x     = 0;
                    pickUsername.width = usernamesInfo.width;
                }

                PawnUtilities.NewLine(pickUsername, out Rect usernameInput);

                if (usernameFromQueue != null)
                {
                    usernameFromQueue = Widgets.TextEntryLabeled(usernameInput, "Assign to Viewer: ", usernameFromQueue);
                }
                else
                {
                    usernameFromQueue = Widgets.TextEntryLabeled(usernameInput, "Assign to Viewer: ", "");
                }

                PawnUtilities.NewLine(usernameInput, out Rect assignButton);

                if (usernameFromQueue != null & Widgets.ButtonText(assignButton, "Confirm Assignment"))
                {
                    bool viewerDataExists = ViewerController.ViewerExists(usernameFromQueue);

                    string pawnName = usernameFromQueue;

                    if (viewerDataExists)
                    {
                        string displayName = ViewerController.GetViewer(usernameFromQueue).DisplayName;
                        if (displayName != null && displayName != string.Empty)
                        {
                            pawnName = displayName;
                        }
                    }

                    component.TryAssigningUserToPawn(pawnName, selectedPawn);
                    UpdateInfoFromPawnChange();
                }
            }

            Text.Anchor = TextAnchor.UpperLeft;
        }