Ejemplo n.º 1
0
        static ButtonInConsoleSetter[] SetControl(string name, KeyboardMenu <ButtonInConsole> menu, ConsolePrintMenu printer, string[] buttonsName, needOption[] buttonsOptions)
        {
            if (buttonsName.Length != buttonsOptions.Length)
            {
                throw new Exception();
            }
            var buttons = new ButtonInConsoleSetter[buttonsName.Length];

            for (int i = 0; i < buttons.Length; i++)
            {
                buttons[i] = new ButtonInConsoleSetter(printer.Width - 10, 1, printer, SignConsole.GetSignConsoles(buttonsName[i]));
                printer.Register((5, 8 + i * 2), buttons[i], buttons[i].GetCoordinates());
                menu.AddLastButton(buttons[i]);
                var option = buttonsOptions[i];
                buttons[i].IsPressed += () =>
                {
                    var newKey = Console.ReadKey(true);
                    KeyPress.Remove(name, KeyPress.GetKey(name, Keys[option]));
                    KeyPress.Reset(name, newKey.Key, Keys[option]);
                    setValue();
                };
            }
            setValue();
            void setValue()
            {
                for (int i = 0; i < buttons.Length; i++)
                {
                    buttons[i].Value = SignConsole.GetSignConsoles(KeyPress.GetKey(name, Keys[buttonsOptions[i]]).ToString());
                }
            }

            return(buttons);
        }
Ejemplo n.º 2
0
        static void SnakeSettings(IDrawningRectangle <SignConsole> location, Action startWithClose, bool clear = false)
        {
            var menu         = new KeyboardMenu <ButtonInConsole>("Snake Settings");
            var sattingsMenu = new ConsolePrintMenu(location.Width, location.Height, location, menu);

            location.Register((0, 0), sattingsMenu, sattingsMenu.GetCoordinates());
            var printer = new BigPixelPrint(sattingsMenu.Width, 5, sattingsMenu, letters);

            sattingsMenu.Register((0, 1), printer, printer.GetCoordinates());
            sattingsMenu.SetWriter(printer);
            if (clear)
            {
                sattingsMenu.Fill(new SignConsole(' '));
            }
            var buttons = SetControl("Snake", menu, sattingsMenu,
                                     new string[] { "Snake Up", "Snake Down", "Snake Left", "Snake Right", "Second Snake Up", "Second Snake Down", "Second Snake Left", "Second Snake Right" },
                                     new needOption[] { needOption.snakeUp, needOption.snakeDown, needOption.snakeLeft, needOption.snakeRigh,
                                                        needOption.secondSnakeUp, needOption.secondSnakeDown, needOption.secondSnakeLeft, needOption.secondSnakeRigh });
            var exit = new ButtonInConsoleSetter(6, 1, sattingsMenu, SignConsole.GetSignConsoles("Exit"));

            sattingsMenu.Register((5, 9 + buttons.Length * 2), exit, exit.GetCoordinates());

            menu.AddLastButton(exit);
            exit.IsPressed += () =>
            {
                sattingsMenu.Close();
                location.CancelRegistration(sattingsMenu);
                MenuKeyClose();
                startWithClose?.Invoke();
            };

            sattingsMenu.Load();
            MenuKeySet(menu);
        }
Ejemplo n.º 3
0
        static void CommonSettings(IDrawningRectangle <SignConsole> location, Action startWithClose)
        {
            var menu         = new KeyboardMenu <ButtonInConsole>("Settings");
            var sattingsMenu = new ConsolePrintMenu(location.Width, location.Height, location, menu);

            location.Register((0, 0), sattingsMenu, sattingsMenu.GetCoordinates());
            var printer = new BigPixelPrint(sattingsMenu.Width, 5, sattingsMenu, letters);

            sattingsMenu.Register((0, 1), printer, printer.GetCoordinates());
            sattingsMenu.SetWriter(printer);

            var buttons = SetControl("Menu", menu, sattingsMenu,
                                     new string[] { "Menu Up", "Menu Down", "Menu Select" },
                                     new needOption[] { needOption.menuUp, needOption.menuDown, needOption.menuPress });
            var b4 = new ButtonInConsole(6, 1, sattingsMenu, SignConsole.GetSignConsoles("Exit"));

            sattingsMenu.Register((5, 9 + buttons.Length * 2), b4, b4.GetCoordinates());

            menu.AddLastButton(b4);
            b4.IsPressed += () =>
            {
                sattingsMenu.Close();
                location.CancelRegistration(sattingsMenu);
                MenuKeyClose();
                startWithClose?.Invoke();
            };

            sattingsMenu.Load();
            MenuKeySet(menu);
        }
Ejemplo n.º 4
0
        static ButtonInConsoleSetter[] SetMobe(KeyboardMenu <ButtonInConsole> menu, ConsolePrintMenu printer, string[] buttonsName)
        {
            var buttons = new ButtonInConsoleSetter[buttonsName.Length];

            for (int i = 0; i < buttons.Length; i++)
            {
                buttons[i] = new ButtonInConsoleSetter(printer.Width - 10, 1, printer, SignConsole.GetSignConsoles(buttonsName[i]));
                printer.Register((5, 8 + i * 2), buttons[i], buttons[i].GetCoordinates());
                menu.AddLastButton(buttons[i]);
            }
            return(buttons);
        }
Ejemplo n.º 5
0
        static ButtonInConsole[] MenuInicialisation(KeyboardMenu <ButtonInConsole> menu, IDrawningRectangle <SignConsole> menuPrinter, string[] buttonsName)
        {
            var buttons = new ButtonInConsole[buttonsName.Length];

            for (int i = 0; i < buttons.Length; i++)
            {
                buttons[i] = new ButtonInConsole(menuPrinter.Width - 10, 1, menuPrinter, SignConsole.GetSignConsoles(buttonsName[i]));
                menuPrinter.Register((5, 8 + i * 2), buttons[i], buttons[i].GetCoordinates());
                menu.AddLastButton(buttons[i]);
            }
            return(buttons);
        }
Ejemplo n.º 6
0
        static void SnakeMode(IDrawningRectangle <SignConsole> location, Action startWithClose, SnakeSettings settings)
        {
            var menu     = new KeyboardMenu <ButtonInConsole>("Snake Mode");
            var modeMenu = new ConsolePrintMenu(location.Width, location.Height, location, menu);

            location.Register((0, 0), modeMenu, modeMenu.GetCoordinates());
            var printer = new BigPixelPrint(modeMenu.Width, 5, modeMenu, letters);

            modeMenu.Register((0, 1), printer, printer.GetCoordinates());
            modeMenu.SetWriter(printer);
            void act()
            {
                modeMenu.Load();
                MenuKeySet(menu, new bool[] { false, false, false });
            }

            act();

            var buttons = SetMobe(menu, modeMenu, new string[] { "Start speed", "Acceleration", "Multiplayer", "Special berries", "Few special berries " });

            buttons[0].Value = SignConsole.GetSignConsoles(settings.StartSpeed.ToString());
            buttons[1].Value = SignConsole.GetSignConsoles(settings.Acceleration.ToString());
            buttons[2].Value = SignConsole.GetSignConsoles(settings.Multy.ToString());
            buttons[3].Value = SignConsole.GetSignConsoles(settings.Event.ToString());
            buttons[4].Value = SignConsole.GetSignConsoles(settings.EventMulty.ToString());

            buttons[0].IsPressed += () =>
            {
                settings.StartSpeed = (SnakeStartSpeed)EnumValues.Next(settings.StartSpeed);
                buttons[0].Value    = SignConsole.GetSignConsoles(settings.StartSpeed.ToString());
            };

            buttons[1].IsPressed += () =>
            {
                settings.Acceleration = (SnakeAcceleration)EnumValues.Next(settings.Acceleration);
                buttons[1].Value      = SignConsole.GetSignConsoles(settings.Acceleration.ToString());
            };

            buttons[2].IsPressed += () =>
            {
                settings.Multy   = !settings.Multy;
                buttons[2].Value = SignConsole.GetSignConsoles(settings.Multy.ToString());
            };
            buttons[3].IsPressed += () =>
            {
                settings.Event   = !settings.Event;
                buttons[3].Value = SignConsole.GetSignConsoles(settings.Event.ToString());
            };
            buttons[4].IsPressed += () =>
            {
                settings.EventMulty = !settings.EventMulty;
                buttons[4].Value    = SignConsole.GetSignConsoles(settings.EventMulty.ToString());
            };

            var exit = new ButtonInConsoleSetter(6, 1, modeMenu, SignConsole.GetSignConsoles("Exit"));

            modeMenu.Register((5, 8 + buttons.Length * 2), exit, exit.GetCoordinates());
            menu.AddLastButton(exit);
            exit.IsPressed += () =>
            {
                modeMenu.Close();
                location.CancelRegistration(modeMenu);
                MenuKeyClose();
                startWithClose?.Invoke();
            };
            modeMenu.Load();
        }