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); }
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); }