Ejemplo n.º 1
0
        void NodeOptions(string name)
        {
            //Dialog
            var dlg = new List <UIElement>();

            dlg.Add(new PanelElement2D(manager)
            {
                FillColor = new Color4(0, 0, 0, 0.4f), Fullscreen = true
            });
            var bkg = new PanelElement2D(manager)
            {
                FillColor = Color4.White, Width = 300, Height = 200
            };

            bkg.CalculatePosition += () =>
            {
                bkg.Position2D = new Vector2(Game.Width / 2 - 150, Game.Height / 2 - 100);
            };
            dlg.Add(bkg);
            //Node info
            var node = fx.Nodes.Find((n) => n.NodeName == name);
            var lbl = new LabelElement2D(manager, uiFont);
            int a, b = 0;

            lbl.Text       = string.Join("\n", Infocards.InfocardDisplay.WrapText(Game.Renderer2D, uiFont, 10, string.Format("{0}: {1}", name, node.GetType().Name), 280, 0, out a, ref b));
            lbl.Position2D = new Vector2(10, 10);
            bkg.Children.Add(lbl);
            //Node options
            if (node is Fx.FxAppearance)
            {
                var fxapp      = (Fx.FxAppearance)node;
                var chkNormals = new CheckBoxElement2D(manager)
                {
                    Position2D = new Vector2(10, 40), Checked = fxapp.DrawNormals
                };
                chkNormals.Clicked += () => fxapp.DrawNormals = chkNormals.Checked;
                bkg.Children.Add(chkNormals);
                bkg.Children.Add(new LabelElement2D(manager, uiFont)
                {
                    Text = "Draw Normals", Position2D = new Vector2(30, 45)
                });
            }
            //Ok button
            var btnOk = new ButtonElement2D(manager, uiFont)
            {
                Label = "OK"
            };

            btnOk.AutoSize(Game.Renderer2D);
            btnOk.CalculatePosition += () =>
            {
                btnOk.Position2D = new Vector2(Game.Width / 2 - (btnOk.Width / 2), Game.Height / 2 + 50);
            };
            btnOk.Clicked += () => manager.Dialog = null;
            dlg.Add(btnOk);
            manager.Dialog = dlg;
        }
Ejemplo n.º 2
0
        void MessageDialog(string text, Action yes = null)
        {
            var dlg = new List <UIElement>();

            dlg.Add(new PanelElement2D(manager)
            {
                FillColor = new Color4(0, 0, 0, 0.4f), Fullscreen = true
            });
            var bkg = new PanelElement2D(manager)
            {
                FillColor = Color4.White, Width = 300, Height = 200
            };

            bkg.CalculatePosition += () =>
            {
                bkg.Position2D = new Vector2(Game.Width / 2 - 150, Game.Height / 2 - 100);
            };
            dlg.Add(bkg);
            var lbl = new LabelElement2D(manager, uiFont);
            int a, b = 0;

            lbl.Text       = string.Join("\n", Infocards.InfocardDisplay.WrapText(Game.Renderer2D, uiFont, 10, text, 280, 0, out a, ref b));
            lbl.Position2D = new Vector2(10, 10);
            bkg.Children.Add(lbl);

            if (yes == null)
            {
                var btnOk = new ButtonElement2D(manager, uiFont)
                {
                    Label = "OK"
                };
                btnOk.AutoSize(Game.Renderer2D);
                btnOk.CalculatePosition += () =>
                {
                    btnOk.Position2D = new Vector2(Game.Width / 2 - (btnOk.Width / 2), Game.Height / 2 + 50);
                };
                btnOk.Clicked += () => manager.Dialog = null;
                dlg.Add(btnOk);
            }
            else
            {
                var btnYes = new ButtonElement2D(manager, uiFont)
                {
                    Label = "Yes"
                };
                btnYes.AutoSize(Game.Renderer2D);
                btnYes.Clicked += yes;
                var btnNo = new ButtonElement2D(manager, uiFont)
                {
                    Label = "No"
                };
                btnNo.Width               = btnYes.Width;
                btnNo.Height              = btnYes.Height;
                btnNo.Clicked            += () => manager.Dialog = null;
                btnYes.CalculatePosition += () =>
                {
                    btnYes.Position2D = new Vector2(Game.Width / 2 - (btnYes.Width + btnNo.Width + 5) / 2, Game.Height / 2 + 50);
                };
                btnNo.CalculatePosition += () =>
                {
                    btnNo.Position2D = new Vector2(Game.Width / 2 + 5, Game.Height / 2 + 50);
                };
                dlg.Add(btnYes);
                dlg.Add(btnNo);
            }
            manager.Dialog = dlg;
        }
Ejemplo n.º 3
0
        public MainState(FreelancerGame game) : base(game)
        {
            manager = new UIManager(game);
            uiFont  = game.Fonts.GetSystemFont("Arial");
            //Construct Menu
            menuBackground           = new PanelElement2D(manager);
            menuBackground.FillColor = new Color4(0, 0, 0, 0.25f);
            manager.Elements.Add(menuBackground);
            var btnOpen = new ButtonElement2D(manager, uiFont)
            {
                Label = "Open"
            };

            btnOpen.AutoSize(Game.Renderer2D);
            btnOpen.Position2D    = new Vector2(10, 10);
            btnOpen.Clicked      += OpenFxDialog;
            menuBackground.Height = 20 + btnOpen.Height;
            manager.Elements.Add(btnOpen);

            var btnRefresh = new ButtonElement2D(manager, uiFont)
            {
                Label = "Refresh"
            };

            btnRefresh.AutoSize(Game.Renderer2D);
            btnRefresh.Position2D = new Vector2(10 + btnOpen.Position2D.X + btnOpen.Width, 10);
            btnRefresh.Clicked   += () => {
                if (currentOpen != null)
                {
                    DoOpenFx(currentOpen);
                }
            };
            manager.Elements.Add(btnRefresh);

            var btnOptions = new ButtonElement2D(manager, uiFont)
            {
                Label = "Options"
            };

            btnOptions.AutoSize(Game.Renderer2D);
            btnOptions.Position2D = new Vector2(10 + btnRefresh.Position2D.X + btnRefresh.Width, 10);
            btnOptions.Clicked   += OptionsDialog;
            manager.Elements.Add(btnOptions);

            var btnExit = new ButtonElement2D(manager, uiFont)
            {
                Label = "Exit"
            };

            btnExit.AutoSize(Game.Renderer2D);
            btnExit.Position2D = new Vector2(10 + btnOptions.Position2D.X + btnOptions.Width, 10);
            btnExit.Clicked   += () => MessageDialog("Are you sure you want to exit?", Game.Exit);
            manager.Elements.Add(btnExit);

            zoomSlider = new SliderElement2D(manager, uiFont)
            {
                Label = "Zoom:"
            };
            zoomSlider.AutoSize(Game.Renderer2D);
            zoomSlider.Position2D = new Vector2(10 + btnExit.Position2D.X + btnExit.Width, 10);
            manager.Elements.Add(zoomSlider);

            //Setup input and rendering
            Game.Keyboard.TextInput += Keyboard_TextInput;
            Game.Keyboard.KeyDown   += Keyboard_KeyDown;
            cam                = new ChaseCamera(Game.Viewport);
            renderer           = new SystemRenderer(cam, Game.GameData, Game.ResourceManager);
            renderer.NullColor = new Color4(0.1072961f, 0.1587983f, 0.1845494f, 1);
        }
Ejemplo n.º 4
0
        void OptionsDialog()
        {
            var dlg = new List <UIElement>();

            dlg.Add(new PanelElement2D(manager)
            {
                FillColor = new Color4(0, 0, 0, 0.4f), Fullscreen = true
            });
            var bkg = new PanelElement2D(manager)
            {
                FillColor = Color4.White, Width = 300, Height = 300
            };

            bkg.CalculatePosition += () =>
            {
                bkg.Position2D = new Vector2(Game.Width / 2 - 150, Game.Height / 2 - 150);
            };
            dlg.Add(bkg);

            var lbl = new LabelElement2D(manager, uiFont)
            {
                Text = "Background Color:"
            };

            lbl.Position2D = new Vector2(10, 10);
            bkg.Children.Add(lbl);

            var sliderR = new SliderElement2D(manager, uiFont)
            {
                Label = "R:", BlackText = true, Minimum = 0, Value = renderer.NullColor.R, Maximum = 1
            };

            sliderR.AutoSize(Game.Renderer2D);
            sliderR.Position2D = new Vector2(10, 50);
            bkg.Children.Add(sliderR);

            var sliderG = new SliderElement2D(manager, uiFont)
            {
                Label = "G:", BlackText = true, Minimum = 0, Value = renderer.NullColor.G, Maximum = 1
            };

            sliderG.AutoSize(Game.Renderer2D);
            sliderG.Position2D = new Vector2(10, 100);
            bkg.Children.Add(sliderG);

            var sliderB = new SliderElement2D(manager, uiFont)
            {
                Label = "B:", BlackText = true, Minimum = 0, Value = renderer.NullColor.B, Maximum = 1
            };

            sliderB.AutoSize(Game.Renderer2D);
            sliderB.Position2D = new Vector2(10, 150);
            bkg.Children.Add(sliderB);

            var prev = new PanelElement2D(manager)
            {
                FillColor = renderer.NullColor
            };

            prev.Width              = prev.Height = sliderB.Height;
            prev.Position2D         = new Vector2(200, 10);
            prev.CalculatePosition += () =>
            {
                prev.FillColor = new Color4(sliderR.Value, sliderG.Value, sliderB.Value, 1f);
            };
            bkg.Children.Add(prev);

            var btnCancel = new ButtonElement2D(manager, uiFont)
            {
                Label = "Cancel"
            };

            btnCancel.AutoSize(Game.Renderer2D);

            var btnOk = new ButtonElement2D(manager, uiFont)
            {
                Label = "OK"
            };

            btnOk.Width    = btnCancel.Width;
            btnOk.Height   = btnCancel.Height;
            btnOk.Clicked += () =>
            {
                renderer.NullColor = new Color4(sliderR.Value, sliderG.Value, sliderB.Value, 1f);
                manager.Dialog     = null;
            };

            btnCancel.Clicked       += () => manager.Dialog = null;
            btnOk.CalculatePosition += () =>
            {
                btnOk.Position2D = new Vector2(Game.Width / 2 - (btnOk.Width + btnCancel.Width + 5) / 2, Game.Height / 2 + 50);
            };
            btnCancel.CalculatePosition += () =>
            {
                btnCancel.Position2D = new Vector2(Game.Width / 2 + 5, Game.Height / 2 + 50);
            };
            dlg.Add(btnOk);
            dlg.Add(btnCancel);

            manager.Dialog = dlg;
        }