From d63f61b5d1c0399330b1b10062b925a02346d4b9 Mon Sep 17 00:00:00 2001 From: Aleksandr Avdeev Date: Thu, 24 Oct 2024 17:00:53 +0300 Subject: [PATCH] mtsr version --- hyperloop/locale/hyperloop.ru.tr | 142 +++ minecart/locale/minecart.ru.tr | 61 + minecart/manual.lua | 10 +- minecart/manual_RU.lua | 118 ++ minecart/manual_RU.md | 112 ++ minecart/markdown_to_lua.py | 4 + minecart/monitoring.lua | 52 +- signs_bot/manual.lua | 2 + signs_bot/manual_RU.lua | 590 +++++++++ signs_bot/manual_RU.md | 542 +++++++++ signs_bot/markdown_to_lua.py | 4 + ta4_addons/init.lua | 1 + ta4_addons/manual_RU.lua | 95 ++ ta4_addons/manual_RU.md | 117 ++ ta4_jetpack/init.lua | 1 + ta4_jetpack/locale/ta4_jetpack.ru.tr | 13 + ta4_jetpack/manual_RU.lua | 35 + ta4_jetpack/manual_RU.md | 30 + ta4_paraglider/locale/ta4_paraglider.ru.tr | 5 + techage/doc/guide.lua | 68 +- techage/doc/items.lua | 1 + techage/doc/manual_RU.lua | 144 +++ techage/doc/manual_ta1_RU.lua | 170 +++ techage/doc/manual_ta2_RU.lua | 308 +++++ techage/doc/manual_ta3_RU.lua | 931 +++++++++++++++ techage/doc/manual_ta4_RU.lua | 1054 +++++++++++++++++ techage/doc/manual_ta5_RU.lua | 214 ++++ techage/doc/plans.lua | 1 + techage/manuals/manual_RU.md | 137 +++ techage/manuals/markdown_to_lua.py | 4 + techage/textures/techage_constr_plan_de.png | Bin 0 -> 1011 bytes techage/textures/techage_constr_plan_en.png | Bin 0 -> 725 bytes .../textures/techage_constr_plan_inv_de.png | Bin 0 -> 546 bytes .../textures/techage_constr_plan_inv_en.png | Bin 0 -> 582 bytes .../textures/techage_constr_plan_inv_ru.png | Bin 0 -> 559 bytes techage/textures/techage_constr_plan_ru.png | Bin 0 -> 1019 bytes .../locale/techpack_stairway.ru.tr | 22 + towercrane/locale/towercrane.ru.tr | 16 + tubelib2/locale/tubelib2.ru.tr | 8 + unified_inventory/.gitignore | 2 + unified_inventory/.luacheckrc | 1 + unified_inventory/api.lua | 32 + unified_inventory/category.lua | 5 + unified_inventory/default-categories.lua | 142 +-- unified_inventory/init.lua | 3 +- unified_inventory/internal.lua | 49 +- unified_inventory/register.lua | 2 +- unified_inventory/settingtypes.txt | 4 + 48 files changed, 5133 insertions(+), 119 deletions(-) create mode 100644 hyperloop/locale/hyperloop.ru.tr create mode 100644 minecart/locale/minecart.ru.tr create mode 100644 minecart/manual_RU.lua create mode 100644 minecart/manual_RU.md create mode 100644 signs_bot/manual_RU.lua create mode 100644 signs_bot/manual_RU.md create mode 100644 ta4_addons/manual_RU.lua create mode 100644 ta4_addons/manual_RU.md create mode 100644 ta4_jetpack/locale/ta4_jetpack.ru.tr create mode 100644 ta4_jetpack/manual_RU.lua create mode 100644 ta4_jetpack/manual_RU.md create mode 100644 ta4_paraglider/locale/ta4_paraglider.ru.tr create mode 100644 techage/doc/manual_RU.lua create mode 100644 techage/doc/manual_ta1_RU.lua create mode 100644 techage/doc/manual_ta2_RU.lua create mode 100644 techage/doc/manual_ta3_RU.lua create mode 100644 techage/doc/manual_ta4_RU.lua create mode 100644 techage/doc/manual_ta5_RU.lua create mode 100644 techage/manuals/manual_RU.md create mode 100644 techage/textures/techage_constr_plan_de.png create mode 100644 techage/textures/techage_constr_plan_en.png create mode 100644 techage/textures/techage_constr_plan_inv_de.png create mode 100644 techage/textures/techage_constr_plan_inv_en.png create mode 100644 techage/textures/techage_constr_plan_inv_ru.png create mode 100644 techage/textures/techage_constr_plan_ru.png create mode 100644 techpack_stairway/locale/techpack_stairway.ru.tr create mode 100644 towercrane/locale/towercrane.ru.tr create mode 100644 tubelib2/locale/tubelib2.ru.tr create mode 100644 unified_inventory/.gitignore diff --git a/hyperloop/locale/hyperloop.ru.tr b/hyperloop/locale/hyperloop.ru.tr new file mode 100644 index 0000000..913c709 --- /dev/null +++ b/hyperloop/locale/hyperloop.ru.tr @@ -0,0 +1,142 @@ +# textdomain: hyperloop + + + +### booking.lua ### + +Station data is corrupted. Please rebuild the station!=Данные станции повреждены. Пожалуйста, постройте станцию заново! +Station is still blocked. Please try again in a few seconds!=Станция ещё заблокирована. Пожалуйста, попробуйте через несколько секунд! + +### booking_node.lua ### + +Please enter the station name to@nwhich this booking machine belongs.=Пожалуйста, введите название станции к@nкоторой относится эта билетная касса. +Station name=Название станции +Additional station information=Дополнительная информация о станции +Station has already a booking machine!=У станции уже есть билетная касса! +Invalid station name!=Недопустимое имя станции! +Hyperloop Booking Machine=Билетная касса Гиперпетли + +### booking_node.lua ### +### elevator.lua ### + +Select your destination=Выберите пункт назначения + +### booking_node.lua ### +### migrate.lua ### + +=<неизвестное> + +### deco.lua ### + +Hyperloop Promo Poster =Промо-плакат Гиперпетли +Hyperloop Station Sign=Вывеска станции Гиперпетли +Hyperloop Station Sign Right=Вывеска - вправо станция Гиперпетли +Hyperloop Station Sign Left=Вывеска - влево станция Гиперпетли + +### door.lua ### + +The Booking Machine for this station is missing!=У этой станции отсутствует билетная касса! +Hyperloop Door Top=Верх двери Гиперпетли +Hyperloop Door Bottom=Низ двери Гиперпетли + +### elevator.lua ### + +Hyperloop Elevator Shaft=Шахта лифта Гиперпетли +Destination=Назначение +Floor=Этаж +(current position)=(текущее положение) +Hyperloop Elevator=Лифт Гиперпетли +Please insert floor name=Пожалуйста, введите название этажа +Floor name=Название этажа +Base=База + +### elevator.lua ### +### wifi.lua ### + +Save=Сохранить + +### junction.lua ### + +Station connected with =Станция соединена с +Junction connected with =Развязка соединена с +Hyperloop Junction Block=Блок - развязка Гиперпетли +Hyperloop Pillar=Колонна Гиперпетли + +### junction.lua ### +### migrate.lua ### + +Junction=Развязка + +### lcd.lua ### + +Hyperloop Display=Дисплей Гиперпетли + +### map.lua ### + +Dist.=Расстояние +Station/Junction=Станция/Развязка +Position=Положение +Owner=Владелец +Conn. with=Соедин. с +Close=Закрыт +Hyperloop Station Book=Реестр станций Гиперпетли + +### migrate.lua ### + +Hyperloop Legacy Tube=Трубка наследования Гиперпетли +unknown=неизвестно + +### recipes.lua ### +### station.lua ### + +Hypersteel Ingot=Слиток гиперстали + +### seat.lua ### + +[Hyperloop] No booking entered!=[Hyperloop] Не введен билет! +Hyperloop Pod Seat=Сиденье кабины Гиперпетли + +### station.lua ### + +Station completed. Now place the Booking Machine!=Станция готова! Теперь разместите билетную кассу! +Area is protected!=Территория защищена! +Not enough space to build the station!=Недостаточно места для строительства станции! +Hyperloop Station Pod Builder=Возводитель кабины станции Гиперпетли +Hyperloop Pod Shell=Ячейка кабины Гиперпетли +Blue Wool=Голубая шерсть +Glass=Стекло +Not enough inventory items to build the station!=Недостаточно предметов в инвентаре для строительства станции! +Destroy Station=Разобрать станцию +Build Station=Построить станцию +Hyperloop Station Block=Блок станции Гиперпетли +Station=Станция + +### tube.lua ### + +Junction at =Развязка у +Station '=Станция ' +Station at =Станция у +Open end at =Открытый конец у +There is no station/junction on this level. =На этом уровне нет станции/развязки. +Do you really want to start a new network?!=Вы действительно хотите начать новую сеть?! +Hyperloop Tube=Труба Гиперпетли + +### tubecrowbar.lua ### + +[Hyperloop] Error: Tube is too long!=[Hyperloop] Ошибка: Труба слишком длинная! +[Crowbar Help]@n=[Помощь ломика]@n + left: remove node@n= влево: удалить ноду@n + right: repair tube/shaft line@n= вправо: починить трубу/линию шахты@n +You don't have the necessary privs!=У вас нет нужных привилегий! +Hyperloop Tube Crowbar=Ломик трубы Гиперпетли +Rights to remove tube nodes by means of the crowbar=Права на удаление нод трубы посредством ломика +Repair via WorldEdit placed Hyperloop tubes by reusing WorldEdit pos1/pos2=Почините с помощью WorldEdit трубы Гиперпетли, используя повторно pos1/pos2 + +### waypoint.lua ### + +Hyperloop Waypoint=Дорожная метка Гиперпетли + +### wifi.lua ### + +Enter channel string=Введите строку канала +Hyperloop WiFi Tube=WiFi-труба Гиперпетли diff --git a/minecart/locale/minecart.ru.tr b/minecart/locale/minecart.ru.tr new file mode 100644 index 0000000..67f952f --- /dev/null +++ b/minecart/locale/minecart.ru.tr @@ -0,0 +1,61 @@ +# textdomain: minecart +Station name=Название станции +Waiting time/sec=Время ожидания, сек. +connected to=соединена с +Not connected!=Нет соединения! +Minecart Railway Buffer=Железнодорожный буфер вагонетки +Summary=Резюме +1. Place your rails and build a route with two endpoints. Junctions are allowed as long as each route has its own start and endpoint.=1. Размещайте рельсы и постройте маршрут с двумя концами. Развязки допускаются, если у каждого маршрута есть свой начальный и конечный пункты. +2. Place a Railway Buffer at both endpoints (buffers are always needed, they store the route and timing information).=1. Разместите Железнодорожный буфер вагонетки на каждом конце маршрута (буферы нужны всегда, в них хранится информация о маршруте и времени). +3. Give both Railway Buffers unique station names, like Oxford and Cambridge.=Дайте каждому буферу уникальное название станции, например Оксфорд и Кембридж. +4. Place a Minecart at a buffer and give it a cart number (1..999)=Поместите вагонетку возле буфера и присвойте ей номер (1...999) +5. Drive from buffer to buffer in both directions using the Minecart(!) to record the routes (use 'right-left' keys to control the Minecart).=Проедьте от буфера до буфера в обе стороны на Вагонетке(!), чтобы записать маршрут (используйте клавиши влево-вправо для управления вагонеткой). +6. Punch the buffers to check the connection data (e.g. 'Oxford: connected to Cambridge').=Ударьте буферы, чтобы проверить сведения о соединении (например 'Оксфорд: соединен с Кембриджем'). +7. Optional: Configure the Minecart waiting time in both buffers. The Minecart will then start automatically after the configured time.=Опционально: Настойте вагонетке время ожидания на каждом буфере. Вагонетка отъедет автоматически по прошествии указанного времени. +8. Optional: Protect your rail network with the Protection Landmarks (one Landmark at least every 16 nodes/meters).=Опционально: Защитите свою железную дорогу Защитными Вешками (минимум одна вешка на каждый 16 нод/метров). +9. Place a Minecart in front of the buffer and check whether it starts after the configured time.=Поставьте вагонетку перед буфером и проверьте как она стартует про прошествии установленного времени. +10. Check the cart state via the chat command: /mycart @n '' is the cart number=Проверяйте состояние вагонетки командой чата: /mycart @n '' - это номер вагонетки. +11. Drop items into the Minecart and punch the cart to start it.=Кладите предметы в вагонетку и ударьте её, чтобы поехала. +12. Dig the cart with 'sneak+click' (as usual). The items will be drop down.=Выкапывайте из вагонетки Красться+клик (как обычно). Предметы выпадут. +13. To retrieve lost carts, use the chat command: /stopcart =Чтобы вернуть потерянные вагонетки, используйте команду чата: /stopcart +Primary used to transport items. You can drop items into the Minecart and punch the cart to get started. Sneak+click the cart to get cart and items back=Первоначально используется для перевозки предметов. Предметы можно бросать в вагонетку и ударять её чтобы поехала. Красться+клик на вагонетку, чтобы взять её и предметы. +Used as buffer on both rail ends. Needed to be able to record the cart routes=Используется как буфер на обоих концах рельсов. Необходимо для записи маршрутов вагонетки. +Protect your rails with the Landmarks (one Landmark at least every 16 blocks near the rail)=Защитите свои рельсы Вешками (минимум 1 вешка на 16 блоков возле рельс) +Used to load/unload Minecart. The Hopper can push/pull items to/from chests and drop/pickup items to/from Minecarts. To unload a Minecart place the hopper below the rail. To load the Minecart, place the hopper right next to the Minecart.=Используется для загрузки/разгрузки вагонетки. Хоппер может толкать/тянуть предметы из сундуков/в сундуки и ронять/подбирать предметы в вагонетку/из вагонетки. Чтобы разгрузить вагонетку, поместите хоппер ниже рельс. Чтобы загрузить вагонетку, разместите хоппер рядом с вагонеткой. +Minecart=Вагонетка +Minecart, the lean railway transportation automation system=Вагонетка, опорная система железнодорожного транспорта +Minecart Cart=Вагонетка +Minecart Speed Signs=Указатели скорости вагонетки +If several carts are running on one route,@nit can happen that a buffer position is already occupied and one cart therefore stops earlier.@nIn this case, the cart pusher is used to push the cart towards the buffer again.@nThis block must be placed under the rail at a distance of 2 m in front of the buffer.=Если на маршруте несколько вагонеток,@nто место возле буфера может быть занято и тогда одна из вагонеток остановится раньше.@nДля этого случая Толкатель нужен чтобы подтолкнуть вагонетку в сторону буфера.@nЭтот блок должен быть размещён под рельсами на расстоянии 2 м спереди от буфера. +Limit the cart speed with speed limit signs.@n@nAs before, the speed of the carts is also influenced by power rails.@nBrake rails are irrelevant, the cart does not brake here.@nThe maximum speed is 8 m/s. This assumes a ratio of power rails@nto normal rails of 1 to 4 on a flat section of rail. A rail section is a@nseries of rail nodes without a change of direction. After every curve / kink,@nthe speed for the next section of the route is newly determined,@ntaking into account the swing of the cart. This means that a cart can@nroll over short rail sections without power rails.@n@nIn order to additionally brake the cart at certain points@n(at switches or in front of a buffer), speed limit signs can be placed@non the track. With these signs the speed can be reduced to 4, 2, or 1 m / s.@nThe "No speed limit" sign can be used to remove the speed limit.@n@nThe speed limit signs must be placed next to the track so that they can@nbe read from the cart. This allows different speeds in each direction of travel.=Ограничьте скорость вагонетки ограничительными указателями.@n@nКак и раньше, на скорость вагонетки также влияет мощьность рельс.@nТормозящие рельсы не принимаются во внимание, здесь вагонетка не затормозит.@nМаксимальная скорость 8 м/с. Здесь устанавливается коэффициент мощности рельс@nк нормальным рельсам от 1 до 4 на плоской части пути. Секция пути - это последовательность нод-рельсов без изменения направления. После каждого изгиба,@nскорость для следующей секции пути выставляется заново,@nс учётом раскачки вагонетки. Это значит, что вагонетка может@прокатиться недолгую секцию пути без силовых рельс.@n@nЧтобы дополнительно притормозить вагонетку на отдельных точках@n(на переключателях или перед буфером), можно ставить указатели ограничения скорости@nна пути. Знаками можно снизить скорость до 4, 2 или 1 м/с.@nУказатель "Без ограничения скорости" можно использовать, чтобы снять ограничения.@n@nУказатели ограничения скорости должны быть размещены рядом с путями так, чтобы их было@nвидно с вагонетки. Так достигается разная скорость на каждом направлении путешествия. +Minecart Hopper=Хоппер +Minecart (Sneak+Click to pick up)=Вагонетка (Красться+клик чтобы взять) +Output cart state and position, or a list of carts, if no cart number is given.=Выдается состояние и положение вагонетки, или список вагонеток, если номер на задан. +List of carts=Список вагонеток +Stop and return/drop a missing/running cart.=Остановить и вернуть/бросить потерянную/движущуюся вагонетку. +Cart=Вагонетка +dropped=сброшено +is not existing!=не существует" +Enter cart number=Введите номер вагонетки +Save=Сохранить +[minecart] Area is protected!=[minecart] Территория защищена! +Allow to dig/place rails in Minecart Landmark areas=Позволяет выкапывать/размещать рельсы в зоне действия Железнодорожных Вешек. +Minecart Landmark=Железнодорожная Вешка +Cart Pusher=Толкатель +left=лево +right=право +straight=прямо +Recording=Запись +speed=скорость +next junction=следующая развязка +Travel time=Время в пути +[minecart] Recording canceled!=[minecart] Запись прервана" +[minecart] Route stored!=[minecart] Маршрут сохранён! +[minecart] Speed @= %u m/s, Time @= %u s, Route length @= %u m=[minecart] Скорость @= %u м/с, время @= %u с, длина маршрута @= %u м= +[minecart] Your route is too short to record!=[minecart] Ваш маршрут слишком короткий для записи! +Speed "1"=Скорость "1" +Speed "2"=Скорость "2" +Speed "4"=Скорость "4" +No speed limit=Без ограничения скорости +Cart List=Список вагонеток +Cart Terminal=Вокзал diff --git a/minecart/manual.lua b/minecart/manual.lua index a2569af..c54c416 100644 --- a/minecart/manual.lua +++ b/minecart/manual.lua @@ -14,7 +14,7 @@ local MP = minetest.get_modpath("minecart") -if not minetest.get_modpath("techage") and +--[[if not minetest.get_modpath("techage") and minetest.get_modpath("doclib") then minetest.register_node("minecart:manual", { @@ -119,7 +119,7 @@ if not minetest.get_modpath("techage") and output = "minecart:manual", recipe = {"minecart:handbuch"}, }) -end +end]]-- minetest.register_on_mods_loaded(function() if minetest.get_modpath("techage") then @@ -129,6 +129,8 @@ minetest.register_on_mods_loaded(function() doclib.add_to_manual("techage", "EN", content) local content = dofile(MP.."/manual_DE.lua") doclib.add_to_manual("techage", "DE", content) + local content = dofile(MP.."/manual_RU.lua") + doclib.add_to_manual("techage", "RU", content) elseif minetest.get_modpath("doclib") then @@ -145,5 +147,9 @@ minetest.register_on_mods_loaded(function() local content = dofile(MP.."/manual_DE.lua") doclib.add_to_manual("minecart", "DE", content) + doclib.create_manual("minecart", "RU", settings) + local content = dofile(MP.."/manual_RU.lua") + doclib.add_to_manual("minecart", "RU", content) + end end) diff --git a/minecart/manual_RU.lua b/minecart/manual_RU.lua new file mode 100644 index 0000000..429a1b2 --- /dev/null +++ b/minecart/manual_RU.lua @@ -0,0 +1,118 @@ +return { + titles = { + "1,Шахтная тележка", + "2,Краткое руководство по эксплуатации", + "2,Блоки Minecart", + "3,Тележка", + "3,Буфер", + "3,Ориентир", + "3,Бункер", + "3,Толкатель тележек", + "3,Знаки ограничения скорости", + "2,Команды чата", + "2,Онлайн-руководство", + }, + texts = { + "Мод Minecart имеет свои собственные тележки (называемые Minecart) в дополнение к стандартным тележкам.\n".. + "Minecart используются для автоматизированной транспортировки предметов по частным и общественным железнодорожным сетям.\n".. + "Основные возможности:\n".. + "\n".. + " - Перевозка предметов от станции к станции\n".. + " - Тележки могут проезжать через незагруженные участки (только обе станции должны быть загружены)\n".. + " - Автоматизированная погрузка/разгрузка вагонов Minecarts с помощью бункера Minecart Hopper\n".. + " - Рельсы могут быть защищены с помощью ориентиров\n".. + "\n".. + "Если доступен мод Techage\\, то:\n".. + "\n".. + " - Доступны две дополнительные тележки для перевозки предметов и жидкостей\n".. + " - Тележки можно загружать/разгружать с помощью толкателей и насосов Techage\n".. + "\n".. + "Вы можете:\n".. + "\n".. + " - Войти в тележку\\, щелкнув правой кнопкой мыши\n".. + " - Покинуть тележку с помощью прыжка или щелчка правой кнопкой мыши\n".. + " - Толкать/запускать тележку левым щелчком мыши.\n".. + "\n".. + "Но тележки имеют своего владельца\\, и вы не можете запускать\\, останавливать или удалять чужие тележки.\n".. + "Тележки можно запускать только в буфере. Если тележка остановится по дороге\\, удалите ее и поставьте на место в буфере.\n".. + "\n".. + "\n".. + "\n", + " - Разместите рельсы и постройте маршрут с двумя конечными точками.\nПересечения разрешены\\, если у каждого маршрута есть своя начальная и конечная точка.\n".. + " - Разместите железнодорожный буфер в обеих конечных точках (буферы всегда нужны\\,\nв них хранится информация о маршруте и времени).\n".. + " - Дайте обоим железнодорожным буферам уникальные названия станций\\, например Оксфорд и Кембридж.\n".. + " - Поместите тележку в буфер и присвойте ей номер (1..999).\n".. + " - Проедьте от буфера к буферу в обоих направлениях\\, используя Minecart(!)\\, чтобы\nзаписать маршруты (используйте клавиши \"вправо-влево\" для управления Minecart).\n".. + " - Пробейте буферы\\, чтобы проверить данные о соединениях.\n(например\\, \"Оксфорд: соединен с Кембриджем\").\n".. + " - Дополнительно: Настройте время ожидания Minecart в обоих буферах.\nMinecart будет автоматически запускаться по истечении заданного времени.\n".. + " - Поместите тележку перед буфером и проверьте\\, запускается ли она\nпо истечении заданного времени.\n".. + " - Бросьте предметы в тележку и ударьте по ней\\, чтобы запустить ее.\n".. + " - Откопайте тележку с помощью 'sneak+click' (как обычно). Предметы будут падать вниз.\n".. + "\n".. + "\n".. + "\n", + "\n".. + "\n", + "Используется для транспортировки предметов. Вы можете положить предметы в тележку и ударить по ней\\, чтобы начать движение. \n".. + "Нажмите на тележку\\, чтобы вернуть тележку и предметы обратно.\n".. + "\n".. + "\n".. + "\n", + "Используется в качестве буфера на обоих концах рельс. Необходим для записи маршрутов тележек.\n".. + "\n".. + "\n".. + "\n", + "Защитите свои рельсы с помощью ориентиров (по одному ориентиру не реже\\, чем через каждые 16 блоков рядом с рельсами.\n".. + "\n".. + "\n".. + "\n", + "Используется для загрузки/разгрузки тележки. Бункер может толкать/тянуть предметы в/из сундуков\n".. + "и сбрасывать/поднимать предметы в/из тележки. Чтобы разгрузить тележку\\, поместите бункер \n".. + "под рельсы. Чтобы загрузить тележку\\, поместите бункер прямо рядом с тележкой.\n".. + "\n".. + "\n".. + "\n", + "Если несколько тележек движутся по одному маршруту\\, может случиться так\\, что буферная позиция уже занята\\, и поэтому одна тележка останавливается раньше.\n".. + "В этом случае толкатель тележки используется для того\\, чтобы снова подтолкнуть тележку к буферу.\n".. + "Этот блок должен быть размещен под рельсом на расстоянии 2 м перед буфером.\n".. + "\n".. + "\n".. + "\n", + "Ограничьте скорость тележки с помощью знаков ограничения скорости.\n".. + "\n".. + "\n".. + "\n", + " - Команда '/mycart ' для вывода состояния и местоположения тележки\n".. + " - Команда '/stopcart ' для возврата потерянных тележек\n".. + "\n", + "Полное руководство доступно онлайн.\n".. + "Смотрите: https://github.com/joe7575/minecart/wiki\n".. + "\n", + }, + images = { + "minecart_manual_image.png", + "minecart_manual_image.png", + "minecart:cart", + "minecart:cart", + "minecart:buffer", + "minecart:landmark", + "minecart:hopper", + "minecart:cart_pusher", + "minecart:speed2", + "", + "", + }, + plans = { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + } +} \ No newline at end of file diff --git a/minecart/manual_RU.md b/minecart/manual_RU.md new file mode 100644 index 0000000..02a60ee --- /dev/null +++ b/minecart/manual_RU.md @@ -0,0 +1,112 @@ +# Шахтная тележка + +Мод Minecart имеет свои собственные тележки (называемые Minecart) в дополнение к стандартным тележкам. +Minecart используются для автоматизированной транспортировки предметов по частным и общественным железнодорожным сетям. +Основные возможности: + +- Перевозка предметов от станции к станции +- Тележки могут проезжать через незагруженные участки (только обе станции должны быть загружены) +- Автоматизированная погрузка/разгрузка вагонов Minecarts с помощью бункера Minecart Hopper +- Рельсы могут быть защищены с помощью ориентиров + +Если доступен мод Techage, то: + +- Доступны две дополнительные тележки для перевозки предметов и жидкостей +- Тележки можно загружать/разгружать с помощью толкателей и насосов Techage + +Вы можете: + +- Войти в тележку, щелкнув правой кнопкой мыши +- Покинуть тележку с помощью прыжка или щелчка правой кнопкой мыши +- Толкать/запускать тележку левым щелчком мыши. + +Но тележки имеют своего владельца, и вы не можете запускать, останавливать или удалять чужие тележки. +Тележки можно запускать только в буфере. Если тележка остановится по дороге, удалите ее и поставьте на место в буфере. + +[minecart_manual_image.png|image] + + +## Краткое руководство по эксплуатации + +1. Разместите рельсы и постройте маршрут с двумя конечными точками. + Пересечения разрешены, если у каждого маршрута есть своя начальная и конечная точка. +2. Разместите железнодорожный буфер в обеих конечных точках (буферы всегда нужны, + в них хранится информация о маршруте и времени). +3. Дайте обоим железнодорожным буферам уникальные названия станций, например Оксфорд и Кембридж. +4. Поместите минитележку в буфер и присвойте ей номер (1..999). +5. Проедьте от буфера к буферу в обоих направлениях, используя Minecart(!), чтобы + записать маршруты (используйте клавиши "вправо-влево" для управления Minecart). +6. Пробейте буферы, чтобы проверить данные о соединениях. + (например, "Оксфорд: соединен с Кембриджем"). +7. Дополнительно: Настройте время ожидания Minecart в обоих буферах. + Minecart будет автоматически запускаться по истечении заданного времени. +9. Поместите минитележку перед буфером и проверьте, запускается ли она + по истечении заданного времени. +10. Бросьте предметы в мини-тележку и ударьте по ней, чтобы запустить ее. +11. Откопайте тележку с помощью 'sneak+click' (как обычно). Предметы будут падать вниз. + +[minecart_manual_image.png|image] + + +## Блоки Minecart + +[minecart:cart|image] + + +### Тележка + +Используется для транспортировки предметов. Вы можете положить предметы в минитележку и ударить по ней, чтобы начать движение. +Нажмите на тележку, чтобы вернуть тележку и предметы обратно. + +[minecart:cart|image] + + +### Буфер + +Используется в качестве буфера на обоих концах рельс. Необходим для записи маршрутов тележек. + +[minecart:buffer|image] + + +### Ориентир + +Защитите свои рельсы с помощью ориентиров (по одному ориентиру не реже, чем через каждые 16 блоков рядом с рельсами. + +[minecart:landmark|image] + + +### Бункер + +Используется для загрузки/разгрузки минитележки. Бункер может толкать/тянуть предметы в/из сундуков +и сбрасывать/поднимать предметы в/из минитележки. Чтобы разгрузить минитележку, поместите бункер +под рельсы. Чтобы загрузить минитележку, поместите бункер прямо рядом с минитележкой. + +[minecart:hopper|image] + + +### Толкатель тележек + +Если несколько тележек движутся по одному маршруту, может случиться так, что буферная позиция уже занята, и поэтому одна тележка останавливается раньше. +В этом случае толкатель тележки используется для того, чтобы снова подтолкнуть тележку к буферу. +Этот блок должен быть размещен под рельсом на расстоянии 2 м перед буфером. + +[minecart:cart_pusher|image] + + +### Знаки ограничения скорости + +Ограничьте скорость тележки с помощью знаков ограничения скорости. + +[minecart:speed2|image] + + +## Команды чата + +- Команда `/mycart ` для вывода состояния и местоположения тележки +- Команда `/stopcart ` для возврата потерянных тележек + + +## Онлайн-руководство + +Полное руководство доступно онлайн. +Смотрите: https://github.com/joe7575/minecart/wiki \ No newline at end of file diff --git a/minecart/markdown_to_lua.py b/minecart/markdown_to_lua.py index 4093f2d..c6267de 100644 --- a/minecart/markdown_to_lua.py +++ b/minecart/markdown_to_lua.py @@ -199,3 +199,7 @@ m2l.gen_lua_file("./manual_EN.lua") m2l = MarkdownToLua() m2l.parse_md_file("./manual_DE.md") m2l.gen_lua_file("./manual_DE.lua") + +m2l = MarkdownToLua() +m2l.parse_md_file("./manual_RU.md") +m2l.gen_lua_file("./manual_RU.lua") diff --git a/minecart/monitoring.lua b/minecart/monitoring.lua index 121b487..0875379 100644 --- a/minecart/monitoring.lua +++ b/minecart/monitoring.lua @@ -288,37 +288,39 @@ minetest.register_chatcommand("mycart", { minetest.register_chatcommand("stopcart", { params = "", description = S("Stop and return/drop a missing/running cart."), - func = function(owner, param) - local userID = tonumber(param) - local player_pos = minetest.get_player_by_name(owner):get_pos() - if userID then - local data = minecart.get_cart_monitoring_data(owner, userID) - if data and data.objID then - local entity = minetest.luaentities[data.objID] - --print("stopcart", userID, data.pos, data.objID, entity) - if data.objID == 0 then - -- Cart as node - if data.pos then - local meta = M(data.pos) - if owner == meta:get_string("owner") and userID == meta:get_int("userID") then - minecart.remove_nodecart(data.pos) + func = function(owner, param) + if player~=nil then + local userID = tonumber(param) + local player_pos = minetest.get_player_by_name(owner):get_pos() + if userID then + local data = minecart.get_cart_monitoring_data(owner, userID) + if data and data.objID then + local entity = minetest.luaentities[data.objID] + --print("stopcart", userID, data.pos, data.objID, entity) + if data.objID == 0 then + -- Cart as node + if data.pos then + local meta = M(data.pos) + if owner == meta:get_string("owner") and userID == meta:get_int("userID") then + minecart.remove_nodecart(data.pos) + end end + elseif entity then + -- Cart as entity + minecart.remove_entity(entity, data.pos) + else + -- Cart as zombie/invalid/corrupted + minetest.log("warning", "[Minecart] data.objID ~= 0, but no entity available!") end - elseif entity then - -- Cart as entity - minecart.remove_entity(entity, data.pos) + minetest.add_item(player_pos, ItemStack({name = data.node_name})) + minecart.monitoring_remove_cart(owner, userID) + return true, S("Cart") .. " " .. userID .. " " .. S("dropped") else - -- Cart as zombie/invalid/corrupted - minetest.log("warning", "[Minecart] data.objID ~= 0, but no entity available!") + return false, S("Cart") .. " " .. userID .. " " .. S("is not existing!") end - minetest.add_item(player_pos, ItemStack({name = data.node_name})) - minecart.monitoring_remove_cart(owner, userID) - return true, S("Cart") .. " " .. userID .. " " .. S("dropped") else - return false, S("Cart") .. " " .. userID .. " " .. S("is not existing!") + return false end - else - return false end end }) diff --git a/signs_bot/manual.lua b/signs_bot/manual.lua index 5f21baf..4040248 100644 --- a/signs_bot/manual.lua +++ b/signs_bot/manual.lua @@ -21,6 +21,8 @@ if minetest.global_exists("techage") then doclib.add_to_manual("techage", "EN", content) local content = dofile(MP.."/manual_DE.lua") doclib.add_to_manual("techage", "DE", content) + local content = dofile(MP.."/manual_RU.lua") + doclib.add_to_manual("techage", "RU", content) elseif minetest.global_exists("doclib") then diff --git a/signs_bot/manual_RU.lua b/signs_bot/manual_RU.lua new file mode 100644 index 0000000..630c1d4 --- /dev/null +++ b/signs_bot/manual_RU.lua @@ -0,0 +1,590 @@ +return { + titles = { + "1,Управляемый бот", + "2,Первые шаги", + "2,Знаки", + "2,Датчики и приводы", + "2,Инструмент подключения датчиков", + "2,Инвентарь", + "2,Узлы / Блоки", + "3,Бокс бота", + "3,Заслонка бота", + "3,Дубликатор знаков", + "3,Датчик ботов", + "3,Датчик узла", + "3,Датчик урожая", + "3,Сундук бота", + "3,Таймер бота", + "3,Блок управления ботом", + "3,Расширитель датчиков", + "3,Сигнал И", + "3,Задержка сигнала", + "3,Знак 'farming'", + "3,Знак 'pattern'", + "3,Знак 'copy3x3x3'", + "3,Знак 'flowers'", + "3,Знак 'aspen'", + "3,Знак 'command'", + "3,Знак \"turn right\"", + "3,Знак \"turn left\"", + "3,Знак \"take item\"", + "3,Знак \"add item\"", + "3,Знак \"stop\"", + "3,Знак \"add to cart\" (minecart)", + "3,Знак \"взять из тележки\" (minecart)", + "3,Знак \"take water\" (xdecor)", + "3,Знак 'cook soup' (xdecor)", + "2,Команды бота", + "3,Techage специальные команды", + "3,Команды управления потоком", + "3,Дополнительные команды перехода", + "3,Управление потоком Примеры", + "4,Пример с функцией в начале:", + "4,Пример с функцией в конце:", + }, + texts = { + "Робот\\, управляемый знаками.\n".. + "\n".. + "В сети: https://github.com/joe7575/signs_bot/blob/master/manual_EN.md\n".. + "\n".. + "\n".. + "\n", + "После того как вы разместили бокс с управляемым роботом\\, вы можете запустить бота \n".. + "с помощью кнопки 'On' в меню бокса. Если бот сразу же вернется в свою коробку\\,\n".. + "вам нужно будет сначала зарядить его электрической энергией (techage).\n".. + "Затем бот бежит прямо вперед\\, пока не достигнет препятствия\n".. + "(ступенька с двумя или более блоками вверх или вниз или знак).\n".. + "\n".. + "Управлять ботом можно только с помощью знаков\\, которые расположены на его пути.\n".. + "\n".. + "Если бот первым достигнет знака\\, он выполнит команды\\, указанные на нем.\n".. + "Если первой командой на знаке будет\\, например\\, 'turn_around'\\, бот повернет и пойдет обратно.\n".. + "В этом случае бот снова дойдет до своего ящика и выключится.\n".. + "\n".. + "Если бот первым достигнет препятствия\\, он остановится или\\, если есть возможность\\, \n".. + "выполнит следующие команды\\, начиная с последнего знака.\n".. + "\n".. + "У бота есть инвентарь с 6 стеками для знаков и 8 стеками для других предметов \n".. + "(которые размещаются/добываются ботом). Этот инвентарь имитирует внутренний инвентарь. \n".. + "Это означает\\, что вы будете иметь доступ к инвентарю только в том случае\\, \n".. + "если бот выключен (\"сидит\" в своем боксе).\n".. + "\n".. + "Также есть следующие блоки:\n".. + "\n".. + " - Датчики: Они могут посылать сигнал на исполнительный механизм\\, если подключены к нему.\n".. + " - Актуаторы: Они выполняют действие\\, когда получают сигнал от датчика.\n".. + "\n".. + "\n".. + "\n", + "Вы управляете направлением движения бота с помощью знаков \"turn left\" и\n".. + "\"turn right\" (знаки со стрелкой). Бот может преодолевать ступеньки\n".. + "(один блок вверх/вниз). Но есть и команды\\, позволяющие перемещать бота вверх и вниз.\n".. + "\n".. + "Не обязательно отмечать путь обратно к коробке. С помощью команды 'turn_off'\n".. + "бот выключится и вернется в свой бокс из любого положения. То же самое касается\n".. + "если вы выключите бота через меню бокса. Если бот достигнет знака в неправильном\n".. + "направлении (сзади или сбоку)\\, то знак будет проигнорирован.\n".. + "Бот просто перешагнет через знак.\n".. + "\n".. + "Все предопределенные знаки имеют меню со списком команд бота. Эти знаки \n".. + "не могут быть изменены\\, но вы можете создавать и программировать свои собственные знаки. \n".. + "Для этого нужно использовать знак \"command\". В этом знаке есть поле для редактирования команд \n".. + "и страница помощи со всеми доступными командами. На странице помощи есть кнопка копирования \n".. + "чтобы упростить программирование.\n".. + "\n".. + "Также для ваших собственных знаков важно знать: После выполнения последней\n".. + "команды знака\\, бот возвращается к своему поведению по умолчанию и бежит в\n".. + "выбранном направлении.\n".. + "\n".. + "Стандартным заданием для бота является перемещение предметов из одного сундука в другой сундук\n".. + "(или узел с сундуком\\, похожим на инвентарь). Это можно сделать с помощью двух знаков\n".. + "'взять предмет' и 'добавить предмет'. Эти знаки должны быть размещены над узлами сундуков.\n".. + "\n".. + "\n".. + "\n", + "В дополнение к знакам бот может управляться с помощью датчиков. \n".. + "Датчики\\, такие как датчик бота\\, имеют два состояния: включено и выключено. \n".. + "Если датчик бота обнаруживает бота он переключится в состояние \"включено\" \n".. + "и пошлёт сигнал подключённому блоку\\, называемому исполнительным механизмом.\n".. + "\n".. + "Датчиками являются:\n".. + "\n".. + " - Датчик бота: Посылает сигнал\\, когда мимо проезжает робот.\n".. + " - Датчик узла: Посылает сигнал\\, когда обнаруживает любой (новый) узел.\n".. + " - Датчик урожая: Посылает сигнал\\, когда\\, например\\, пшеница полностью выросла\n".. + " - Сундук бота: Посылает сигнал в зависимости от состояния сундука (пустой\\, полный)\n".. + "\n".. + "Приводы:\n".. + "\n".. + " - Знаки Bot Box: Может выключать и включать бота\n".. + " - Блок управления: Может использоваться для смены знака\\, чтобы управлять ботом.\n".. + "\n".. + "Датчики должны быть соединены (спарены) с исполнительными механизмами. Для этого используется\n".. + "\"Инструмент подключения датчиков\".\n".. + "\n".. + "\n".. + "\n", + "Чтобы отправить сигнал от датчика к приводу\\, датчик должен быть соединен\n".. + "(сопряжен) с исполнительным механизмом. Чтобы соединить датчик и исполнительный механизм\\, \n".. + "необходимо использовать инструмент Sensor Connection Tool. Просто нажмите инструментом на оба блока\\, и \n".. + "датчик будет соединен с исполнительным механизмом. Об успешном подключении сигнализирует звук ping/pong.\n".. + "\n".. + "Прежде чем соединить датчик с приводом\\, убедитесь\\, что привод находится в\n".. + "требуемом состоянии. Например: Если вы хотите запустить бота с помощью датчика\\, подключите\n".. + "датчик с блоком бота\\, когда бот находится в состоянии \"включено\". В противном случае \n".. + "сигнал датчика остановит Бота\\, вместо того чтобы запустить его.\n".. + "\n".. + "\n".. + "\n", + "Следующее относится ко всем командам\\, которые помещают предметы/элементы в инвентарь бота\\, например:\n".. + "\n".. + " - 'take_item '\n".. + " - 'pickup_items '\n".. + " - 'trash_sign '\n".. + " - 'harvest '\n".. + " - 'dig_front '\n".. + "\n".. + "Если в команде не был указан слот или слот 0 (случай A)\\, то все 8 слотов инвентаря бота\n".. + "проверяются один за другим. Если был указан слот (случай B)\\,\n".. + "проверяется только этот слот. \n".. + "В обоих случаях действует следующее: \n".. + "\n".. + "Если слот предварительно сконфигурирован и соответствует предмету\\, или если слот не сконфигурирован\n".. + "и пуст\\, или только частично заполнен типом добавляемого элемента\\, \n".. + "то элемент(ы) будет(ут) добавлен(ы).\n".. + "Если не все предметы могут быть добавлены\\, то в случае A пробуются оставшиеся слоты. \n".. + "Все\\, что не удалось добавить в инвентарь\\, вернется обратно или будет сброшено.\n".. + "\n".. + "Сказанное ниже относится ко всем командам\\, которые используются для взятия предметов из инвентаря бота\\, например:\n".. + "\n".. + " - 'add_item '.\n".. + "\n".. + "Не имеет значения\\, настроен слот или нет. Бот берет первый стек\n".. + "который он может найти в своем инвентаре\\, и пытается его использовать. Если указан слот\\,\n".. + "он берет только его\\, если слот не указан\\, он проверяет все слоты по очереди\n".. + "если слот не указан\\, то проверяет все слоты по очереди\\, начиная со слота 1\\, пока не найдет что-нибудь. Если найденное число\n".. + "меньше запрошенного\\, он пытается взять остаток из любого другого слота.\n".. + "\n".. + "\n".. + "\n", + "", + "Бокс - это корпус бота. Разместите бокс и запустите бота с помощью кнопки\n".. + "'On'. Если установлен мод techage\\, боту требуется электричество.\n".. + "Бот выходит из коробки с правой стороны. Он не запустится\\, если эта позиция заблокирована.\n".. + "\n".. + "Чтобы остановить и удалить бота\\, нажмите кнопку \"Off\".\n".. + "Инвентарь коробки имитирует инвентарь бота.\n".. + "Вы не сможете получить доступ к инвентарю\\, если бот запущен.\n".. + "Бот может носить с собой до 8 стаков и 6 знаков.\n".. + "\n".. + "\n".. + "\n", + "Заслонка - это простой блок\\, используемый в качестве двери для бота. Поместите заслонку в любую стену\\,\n".. + "и бот будет автоматически открывать и закрывать заслонку\\, проходя через нее.\n".. + "\n".. + "\n".. + "\n", + "Дубликатор можно использовать для создания копий знаков:\n".. + "\n".. + " - Положите один знак 'cmnd'\\, который будет использоваться в качестве шаблона\\, в инвентарь 'Template'.\n".. + " - Добавьте один или несколько 'blank signs' в инвентарь 'In'.\n".. + " - Возьмите копии из инвентаря 'Output'.\n".. + "\n".. + "В качестве шаблона можно также использовать написанные книги \\[default:book_written\\].\n".. + "Уже написанные знаки тоже можно использовать в качестве входных.\n".. + "\n".. + "\n".. + "\n", + "Датчик ботов обнаруживает любого бота и посылает сигнал\\, если бот находится поблизости.\n".. + "Радиус действия датчика - один узел/метр\". Направление датчика не имеет значения.\n".. + "\n".. + "\n".. + "\n", + "Датчик узлов посылает циклические сигналы\\, когда обнаруживает\\, что узлы появились\n".. + "или исчезновения\\, но должен быть настроен соответствующим образом. Действительными узлами являются все виды\n".. + "блоки и растения. Радиус действия датчика - 3 узла/метра в одном направлении.\n".. + "У датчика есть активная сторона (красная)\\, которая должна указывать на наблюдаемую область.\n".. + "\n".. + "\n".. + "\n", + "Датчик сельскохозяйственных культур посылает циклические сигналы\\, когда\\, например\\, пшеница полностью выросла.\n".. + "Радиус действия датчика составляет один узел/метр. Датчик имеет активную сторону (красную)\\, которая\n".. + "должна быть направлена на культуру/поле.\n".. + "\n".. + "\n".. + "\n", + "Сундук бота - это специальный сундук с функцией датчика. Он посылает сигнал\n".. + "в зависимости от состояния сундука. Возможные состояния: 'empty'\\, 'not empty'\\, 'almost full'\n".. + "\n".. + "Типичный вариант использования - выключить бота\\, когда сундук почти полон или пуст.\n".. + "\n".. + "\n".. + "\n", + "Это особый вид датчиков. Может быть запрограммирован на время в секундах\\,\n".. + "например\\, для циклического запуска бота.\n".. + "\n".. + "\n".. + "\n", + "Блок управления ботом используется для управления ботом с помощью знаков. Блок может быть\n".. + "загружено до 4 различных знаков и может быть запрограммировано с помощью датчиков.\n".. + "\n".. + "Чтобы загрузить блок\\, поместите знак на красную сторону блока и нажмите на блок.\n".. + "Знак исчезает / перемещается в инвентарь блока.\n".. + "Эту операцию можно повторить 3 раза.\n".. + "\n".. + "Используйте инструмент подключения\\, чтобы соединить до 4 датчиков с блоком управления ботом.\n".. + "\n".. + "\n".. + "\n", + "С помощью расширителя датчиков сигналы датчиков можно передавать на несколько исполнительных механизмов.\n".. + "Поместите один или несколько удлинителей рядом с датчиком и соедините каждый удлинитель с одним\n".. + "одним исполнительным механизмом с помощью инструмента подключения.\n".. + "\n".. + "\n".. + "\n", + "Сигнал посылается\\, если получены все входные сигналы.\n".. + "\n".. + "\n".. + "\n", + "Сигналы пересылаются с задержкой. Последующие сигналы ставятся в очередь. \n".. + "Время задержки может быть настроено.\n".. + "\n".. + "\n".. + "\n", + "Используется для сбора урожая и засева поля 3x3. Поместите знак перед полем.\n".. + "Используемое семя должно находиться в первом слоте инвентаря бота.\n".. + "Когда бот закончит\\, он повернется и пойдет обратно.\n".. + "\n".. + "\n".. + "\n", + "Используется для создания копии куба 3x3x3. Поместите знак перед деталью\n".. + "который нужно скопировать. Используйте знак копирования\\, чтобы сделать копию этой детали на другом\n".. + "месте. Бот должен сначала добраться до знака детали\\, а затем до знака копии.\n".. + "\n".. + "Используется для создания копии куба 3x3x3. Поместите щит перед блоками\n".. + "которые нужно скопировать. Используйте знак копирования\\, чтобы сделать копию этих блоков в другом\n".. + "месте. Сначала бот должен обработать знак \"pattern\"\\, только после этого он может\n".. + "направить его к знаку копирования.\n".. + "\n".. + "\n".. + "\n", + "Используется для создания копии куба 3x3x3. Поместите знак перед тем местом\\, где вы хотите\n".. + "чтобы была сделана копия. См. также знак \"шаблон\".\n".. + "\n".. + "\n".. + "\n", + "Используется для срезания цветов на поле 3x3. Поместите знак перед полем.\n".. + "По окончании бот поворачивается.\n".. + "\n".. + "\n".. + "\n", + "Используется для заготовки ствола осины или сосны.\n".. + "\n".. + " - Поместите знак перед деревом.\n".. + " - Поставьте сундук справа от знака.\n".. + " - Положите в сундук стопку грязи (минимум 10 предметов).\n".. + " - Предварительно настройте слот 1 инвентаря бота на грязь\n".. + " - Заранее настройте слот 2 инвентаря бота с саженцами\n".. + "\n".. + "\n".. + "\n", + "Знак 'command' может быть запрограммирован игроком. Поместите знак перед собой\n".. + "перед собой и используйте меню узла\\, чтобы запрограммировать последовательность команд бота.\n".. + "В меню есть поле для редактирования команд и страница помощи со всеми\n".. + "доступными командами. На странице помощи есть кнопка копирования\\, чтобы упростить программирование.\n".. + "\n".. + "\n".. + "\n", + "Бот поворачивает направо\\, когда обнаруживает перед собой этот знак.\n".. + "\n".. + "\n".. + "\n", + "Бот поворачивает налево\\, когда обнаруживает этот знак перед собой.\n".. + "\n".. + "\n".. + "\n", + "Бот берет предметы из сундука перед собой\\, а затем поворачивается.\n".. + "Этот знак должен быть помещен на верхнюю часть сундука.\n".. + "\n".. + "\n".. + "\n", + "Бот кладет предметы в стоящий перед ним сундук\\, а затем разворачивается.\n".. + "Этот знак должен быть размещен поверх сундука.\n".. + "\n".. + "\n".. + "\n", + "Бот будет останавливаться перед этим знаком до тех пор\\, пока знак не будет убран или\n".. + "пока бот не будет выключен.\n".. + "\n".. + "\n".. + "\n", + "Бот кладет товары в стоящую перед ним мини-тележку\\, толкает тележку\\, а затем разворачивается\n".. + "разворачивается. Этот знак должен быть размещен на рельсе в конечном положении тележки.\n".. + "\n".. + "\n".. + "\n", + "Бот берет предметы из стоящей перед ним мини-тележки\\, толкает тележку и затем\n".. + "поворачивается. Этот знак должен быть размещен на рельсе в конечном положении тележки.\n".. + "\n".. + "\n".. + "\n", + "Используется для набирания воды в ведро. Поместите знак на берегу\\, перед бассейном с неподвижной водой. \n".. + "\n".. + "Предметы в слотах:\n".. + "\n".. + " 1 - пустое ведро\n".. + "\n".. + "В результате в выбранном слоте инвентаря появится одно ведро с водой. По окончании\\,\n".. + "бот поворачивается.\n".. + "\n".. + "\n".. + "\n", + "Используется для приготовления овощного супа в котелке. Котелок должен быть пустым и находиться\n".. + "над легковоспламеняющимися материалами. Поместите знак перед казаном с одним полем\n".. + "чтобы предотвратить возгорание деревянной вывески.\n".. + "\n".. + "Предметы в слотах:\n".. + "\n".. + " 1 - ведро с водой\"\n".. + " 2 - овощ № 1 (например\\, помидор)\n".. + " 3 - овощ № 2 (например\\, морковь)\n".. + " 4 - пустая миска (из модов farming или xdecor).\n".. + "\n".. + " В результате в выбранном слоте инвентаря окажется одна миска с овощным супом.\n".. + "Закончив\\, бот разворачивается.\n".. + "\n".. + "\n".. + "\n", + "Все команды также описаны в виде помощи в узле \"Команда знака\".\n".. + "Все блоки или знаки\\, которые устанавливаются\\, берутся из инвентаря бота.\n".. + "Все удаленные блоки или знаки будут добавлены обратно в инвентарь бота.\n".. + "'<слот>' - это всегда внутренний стек инвентаря бота (1..8).\n".. + "\n".. + " move - перейти на один или несколько шагов вперед\n".. + " cond_move - перейти к ближайшему препятствию или знаку\n".. + " turn_left - повернуть налево\n".. + " turn_right - повернуть направо\n".. + " turn_around - повернуться\n".. + " backward - сделать шаг назад\n".. + " turn_off - выключить робота / вернуться в коробку\n".. + " pause - подождать одну или несколько секунд\n".. + " move_up - двигаться вверх (не более 2 раз)\n".. + " move_down - двигаться вниз\n".. + " fall_down - упасть в яму/пропасть (до 10 блоков)\n".. + " take_item - взять один или несколько предметов из ящика\n".. + " add_item - положить один или несколько предметов в ящик\n".. + " add_fuel - положить топливо в печь\n".. + " place_front - поместить блок перед ботом\n".. + " place_left - поместить блок слева от бота\n".. + " place_right - поместить блок справа от бота\n".. + " place_below - поднять робота и поместить блок под него\n".. + " place_above - установить блок над роботом\n".. + " dig_front - убрать блок перед роботом\n".. + " dig_left - удалить блок слева\n".. + " dig_right - удалить блок справа\n".. + " dig_below - удалить блок под роботом\n".. + " dig_above - удалить блок над роботом\n".. + " rotate_item <шаги> - повернуть блок перед роботом\n".. + " set_param2 - установить параметр2 блока перед роботом\n".. + " place_sign - установить знак\n".. + " place_sign_behind - поставить знак позади робота\n".. + " dig_sign - удалить знак\n".. + " trash_sign - удалить знак\\, очистить данные и добавить в инвентарь.\n".. + " stop - бот остановится\\, пока не будет убран щит\n".. + " pickup_items - забрать предметы (в поле 3x3)\n".. + " drop_items - сбросить предметы\n".. + " harvest - собирать урожай на поле 3x3 (фермерство)\n".. + " cutting - срезать цветы на поле 3x3\n".. + " sow_seed <слот> - увидеть/посадить поле 3x3\n".. + " plant_sapling <слот> - посадить саженец перед роботом\n".. + " pattern - сохранить свойства блока за знаком (куб 3x3x3) в качестве шаблона\n".. + " copy - сделать копию сохраненного шаблона размером 3x3x3\n".. + " punch_cart - сбить тележку с шахтой\n".. + " add_compost - положить 2 листа в компостную бочку\n".. + " take_compost - взять компостный элемент из бочки\n".. + " print - Вывести сообщение чата для отладки\n".. + " take_water - Взять воду из пустого ведра\n".. + " fill_cauldron - Наполнить котел xdecor для супа\n".. + " take_soup - Взять кипящий суп в пустую миску из котла\n".. + " flame_on - Развести огонь\n".. + " flame_off - Погасить огонь\n".. + "\n".. + "\n".. + "\n", + " ignite - Зажечь угольную зажигалку techage\n".. + " low_batt - Выключить бот\\, если заряд батареи ниже \n".. + " заданного значения в процентах (1..99)\n".. + " jump_low_batt