Exemple #1
0
        private static void OnDrawMainMenu(DrawMainMenuEvent args)
        {
            if (needsApproval == null)
            {
                return;
            }

            GuiData.spriteBatch.Draw(Utils.white,
                                     new Rectangle(0, 0, GuiData.spriteBatch.GraphicsDevice.Viewport.Width,
                                                   GuiData.spriteBatch.GraphicsDevice.Viewport.Height), new Color(0, 0, 0, 0.75f));

            TextItem.doLabel(new Vector2(650, 230), "Arbitary Code Warning", new Color(255, 130, 130));
            var endPfMessage = (int)TextItem.doMeasuredSmallLabel(new Vector2(650, 270),
                                                                  Utils.SuperSmartTwimForWidth(
                                                                      $"The extension {needsApproval.Name} contains DLLs inside the plugin folder that Pathfinder will attempt to load.\nThis will allow whatever code is in that DLL to be ran on your machine.\nPlease confirm that you acknowledge this and are comfortable with loading these plugins.\n\nLoading from {needsApproval.GetFullFolderPath()}",
                                                                      GuiData.spriteBatch.GraphicsDevice.Viewport.Width - 660, GuiData.smallfont), Color.White).Y + 280;
            var messageTextEnd = (int)TextItem.doMeasuredTinyLabel(new Vector2(650, endPfMessage), messages, Color.White).Y +
                                 endPfMessage + 10;

            Continue.Y = messageTextEnd;
            Cancel.Y   = messageTextEnd;
            if (Continue.Do())
            {
                approvedInfo  = needsApproval;
                needsApproval = null;
                screen.ActivateExtensionPage(approvedInfo);
            }
            else if (Cancel.Do())
            {
                needsApproval = null;
            }
        }
Exemple #2
0
        private void DrawDebug(Rectangle rect, Instance instance, float ticks, SpriteBatch sb)
        {
            OS           os      = instance.os;
            Color        colour  = new Color(45, 180, 231);
            const string doLabel = "doLabel";
            const string doMeasuredSmallLabel = "doMeasuredSmallLabel";
            const string doMeasuredTinyLabel  = "doMeasuredTinyLabel";
            const string doSmallLabel         = "doSmallLabel";

            TextItem.doLabel(new Vector2(500f, 400f), doLabel, null);
            TextItem.doMeasuredSmallLabel(new Vector2(500f, 500f), doMeasuredSmallLabel, null);
            TextItem.doMeasuredTinyLabel(new Vector2(500f, 600f), doMeasuredTinyLabel, null);
            TextItem.doSmallLabel(new Vector2(500f, 300f), doSmallLabel, null);
            if (Button.doButton(1, 800, 100, 200, 75, "Button", null))
            {
                State = DebugModState.HomePage;
            }
            Button.doButton(2, 685, 843, 25, 25, "<-", null);
            Button.doButton(2, 733, 843, 25, 25, "->", null);
        }
Exemple #3
0
        public void doEmailViewerDisplay(Rectangle bounds, SpriteBatch sb)
        {
            var vector2 = new Vector2(bounds.X + 2, bounds.Y + 20);

            if (Button.doButton(800007, (int)vector2.X, (int)vector2.Y, bounds.Width - 20 - corner.Width, 30,
                                "Return to Inbox", os.darkBackgroundColor))
            {
                state = 3;
            }
            vector2.Y += 35f;
            var destinationRectangle = GuiData.tmpRect;

            destinationRectangle.X      = bounds.X + 1;
            destinationRectangle.Y      = (int)vector2.Y;
            destinationRectangle.Width  = bounds.Width - 2;
            destinationRectangle.Height = 38;
            sb.Draw(Utils.white, destinationRectangle, textColor);
            vector2.Y += 3f;
            sb.DrawString(GuiData.UITinyfont, "<" + emailData[1] + ">", vector2, Color.Black);
            vector2.Y += 18f;
            sb.DrawString(GuiData.UITinyfont, "Subject: " + emailData[2], vector2, Color.Black);
            vector2.Y += 25f;
            vector2.X += 20f;
            var num1       = 25;
            var num2       = (emailData.Length - 4 + 1) * num1;
            var textBounds = new Rectangle((int)vector2.X, (int)vector2.Y, bounds.Width - 22,
                                           (int)(bounds.Height - (vector2.Y - (double)bounds.Y) - num2));
            var str = Utils.SmartTwimForWidth(emailData[3], bounds.Width - 50, GuiData.tinyfont);

            vector2.Y += DrawMailMessageText(textBounds, sb, str.Split(Utils.newlineDelim));
            vector2.Y += num1 - 5;
            var num3 = 0;

            for (var index1 = 4; index1 < emailData.Length; ++index1)
            {
                var strArray = emailData[index1].Split(spaceDelim, StringSplitOptions.RemoveEmptyEntries);
                var flag     = true;
                if (strArray.Length >= 1)
                {
                    if (strArray[0].Equals("link"))
                    {
                        var labelSize = TextItem.doMeasuredTinyLabel(vector2,
                                                                     "LINK : " + strArray[1] + "@" + strArray[2], new Color?());
                        var computer = Programs.getComputer(os, strArray[2]);
                        if (!os.netMap.visibleNodes.Contains(os.netMap.nodes.IndexOf(computer)))
                        {
                            DrawButtonGlow(vector2, labelSize);
                        }
                        if (Button.doButton(800009 + num3, (int)(vector2.X + (double)labelSize.X + 5.0),
                                            (int)vector2.Y, 20, 17, "+", new Color?()))
                        {
                            computer.highlightFlashTime = 1f;
                            os.netMap.discoverNode(computer);
                            SFX.addCircle(Programs.getComputer(os, strArray[2]).getScreenSpacePosition(), Color.White,
                                          32f);
                            buttonSound.Play();
                        }
                    }
                    else if (strArray[0].Equals("account"))
                    {
                        var labelSize = TextItem.doMeasuredTinyLabel(vector2,
                                                                     "ACCOUNT : " + strArray[1] + " : User="******" Pass="******"+", new Color?()))
                        {
                            var computer = Programs.getComputer(os, strArray[1]);
                            computer.highlightFlashTime = 1f;
                            os.netMap.discoverNode(computer);
                            computer.highlightFlashTime = 1f;
                            SFX.addCircle(computer.getScreenSpacePosition(), Color.White, 32f);
                            for (var index2 = 0; index2 < computer.users.Count; ++index2)
                            {
                                var userDetail = computer.users[index2];
                                if (userDetail.name.Equals(strArray[3]))
                                {
                                    userDetail.known       = true;
                                    computer.users[index2] = userDetail;
                                    break;
                                }
                            }
                            buttonSound.Play();
                        }
                    }
                    else if (strArray[0].Equals("note"))
                    {
                        var labelSize = TextItem.doMeasuredTinyLabel(vector2, "NOTE : " + strArray[1], new Color?());
                        if (!NotesExe.NoteExists(strArray[2], os))
                        {
                            DrawButtonGlow(vector2, labelSize);
                        }
                        if (Button.doButton(800009 + num3, (int)(vector2.X + (double)labelSize.X + 5.0),
                                            (int)vector2.Y, 20, 17, "+", new Color?()))
                        {
                            NotesExe.AddNoteToOS(strArray[2], os, false);
                        }
                    }
                    else
                    {
                        flag = false;
                    }
                    if (flag)
                    {
                        ++num3;
                        vector2.Y += num1;
                    }
                }
            }
            vector2.Y = bounds.Y + bounds.Height - 35;
            if (!Button.doButton(90200, (int)vector2.X, (int)vector2.Y, 300, 30, "Reply", new Color?()))
            {
                return;
            }
            emailReplyStrings.Clear();
            addingNewReplyString   = false;
            missionIncompleteReply = false;
            state = 5;
        }
        public static bool RenderAttachment(string data, object osObj, Vector2 dpos, int startingButtonIndex, SoundEffect buttonSound)
        {
            OS os = (OS)osObj;

            string[] strArray = data.Split(AttachmentRenderer.spaceDelim, StringSplitOptions.RemoveEmptyEntries);
            if (strArray.Length < 1)
            {
                return(false);
            }
            if (strArray[0].Equals("link"))
            {
                Vector2  labelSize = TextItem.doMeasuredTinyLabel(dpos, LocaleTerms.Loc("LINK") + " : " + strArray[1] + "@" + strArray[2], new Color?());
                Computer computer  = Programs.getComputer(os, strArray[2]);
                if (!os.netMap.visibleNodes.Contains(os.netMap.nodes.IndexOf(computer)))
                {
                    AttachmentRenderer.DrawButtonGlow(dpos, labelSize, os);
                }
                if (Button.doButton(800009 + startingButtonIndex, (int)((double)dpos.X + (double)labelSize.X + 5.0), (int)dpos.Y, 20, 17, "+", new Color?()))
                {
                    if (computer == null)
                    {
                        os.write("ERROR: Linked target not found");
                    }
                    else
                    {
                        computer.highlightFlashTime = 1f;
                        os.netMap.discoverNode(computer);
                        SFX.addCircle(Programs.getComputer(os, strArray[2]).getScreenSpacePosition(), Color.White, 32f);
                        if (buttonSound != null && !Settings.soundDisabled)
                        {
                            buttonSound.Play();
                        }
                    }
                }
            }
            else if (strArray[0].Equals("account"))
            {
                Vector2 labelSize = TextItem.doMeasuredTinyLabel(dpos, LocaleTerms.Loc("ACCOUNT") + " : " + strArray[1] + " : User="******" Pass="******"+", new Color?()))
                {
                    Computer computer = Programs.getComputer(os, strArray[2]);
                    computer.highlightFlashTime = 1f;
                    os.netMap.discoverNode(computer);
                    computer.highlightFlashTime = 1f;
                    SFX.addCircle(computer.getScreenSpacePosition(), Color.White, 32f);
                    for (int index = 0; index < computer.users.Count; ++index)
                    {
                        UserDetail user = computer.users[index];
                        if (user.name.Equals(strArray[3]))
                        {
                            user.known            = true;
                            computer.users[index] = user;
                            break;
                        }
                    }
                    if (buttonSound != null && !Settings.soundDisabled)
                    {
                        buttonSound.Play();
                    }
                }
            }
            else
            {
                if (!strArray[0].Equals("note"))
                {
                    return(false);
                }
                Vector2 labelSize = TextItem.doMeasuredTinyLabel(dpos, LocaleTerms.Loc("NOTE") + " : " + strArray[1], new Color?());
                string  note      = LocalizedFileLoader.SafeFilterString(strArray[2]);
                if (!NotesExe.NoteExists(note, os))
                {
                    AttachmentRenderer.DrawButtonGlow(dpos, labelSize, os);
                }
                if (Button.doButton(800009 + startingButtonIndex, (int)((double)dpos.X + (double)labelSize.X + 5.0), (int)dpos.Y, 20, 17, "+", new Color?()))
                {
                    NotesExe.AddNoteToOS(note, os, false);
                }
            }
            return(true);
        }