Ejemplo n.º 1
0
        private MenuTreeNode GetBuildNode()
        {
            var node = new MenuTreeNode("Все готово", GetBuildMarkup());

            node.ButtonReaction = (msgArg) =>
            {
                if (msgArg.Message.Text == "Создать карту")
                {
                    var chatId = msgArg.Message.Chat.Id;
                    bot.SendMessage(chatId, "Начался процесс создания. Он может идти длительное время", EmptyMurkup);

                    var generator = mapCreator.CreateGenerator();
                    var map       = generator.GenerateMap();
                    var heightMap = map.ToHeightImage();
                    var colorMap  = map.GenerateColor(mapCreator.Biome, mapCreator.Smoothness);

                    bot.SendPhoto(chatId, heightMap);
                    bot.SendPhoto(chatId, colorMap);
                    Thread.Sleep(2000);
                    if (!DataBaseReaderWriter.TryAddMap(map, chatId))
                    {
                        bot.SendMessage(chatId, "Сервер временно недоступен, ваша карта не будет сохранена. " +
                                        "Позже вы сможете сгенерировать ее заново используя эти же параметры", EmptyMurkup);
                    }
                    menu.Current = menu.Current.NextNodes.First();
                }
                menu.Current.PrintCurrentMessage(bot, msgArg);
            };
            return(node);
        }
Ejemplo n.º 2
0
        private MenuTreeNode GetRoot()
        {
            var root = new MenuTreeNode("Приветствую тебя. Ты можешь:", GetMenuRootButtons());

            root.ButtonReaction = (msgArg) =>
            {
                switch (msgArg.Message.Text)
                {
                case "Создать новую карту":

                    menu.Current = menu.Root.NextNodes.First();
                    menu.Current.PrintCurrentMessage(bot, msgArg);
                    break;

                case "Вывести предыдущую созданную":
                    var chatId = msgArg.Message.Chat.Id;
                    DataBaseReaderWriter.TryGetMap(chatId, out Map map);
                    if (map == null)
                    {
                        bot.SendMessage(chatId, "Возникла ошибка чтения данных из базы. " +
                                        "Возможно вы еще не создавали карту либо возникла ошибка доступа к серверу", EmptyMurkup);
                        break;
                    }

                    bot.SendPhoto(chatId, map.ToHeightImage());
                    bot.SendPhoto(chatId, map.ColorMap.ToColorImage(map.SizeX, map.SizeY));

                    break;

                default:
                    root.PrintCurrentMessage(bot, msgArg);
                    break;
                }
            };
            return(root);
        }