techage_modpack/signs_bot/manual_RU.md
Aleksandr Avdeev d63f61b5d1 mtsr version
2024-10-24 17:00:53 +03:00

543 lines
31 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Управляемый бот
Робот, управляемый знаками.
В сети: https://github.com/joe7575/signs_bot/blob/master/manual_EN.md
[signs_bot_bot_inv.png|image]
## Первые шаги
После того как вы разместили бокс с управляемым роботом, вы можете запустить бота
с помощью кнопки 'On' в меню бокса. Если бот сразу же вернется в свою коробку,
вам нужно будет сначала зарядить его электрической энергией (techage).
Затем бот бежит прямо вперед, пока не достигнет препятствия
(ступенька с двумя или более блоками вверх или вниз или знак).
Управлять ботом можно только с помощью знаков, которые расположены на его пути.
Если бот первым достигнет знака, он выполнит команды, указанные на нем.
Если первой командой на знаке будет, например, 'turn_around', бот повернет и пойдет обратно.
В этом случае бот снова дойдет до своего ящика и выключится.
Если бот первым достигнет препятствия, он остановится или, если есть возможность,
выполнит следующие команды, начиная с последнего знака.
У бота есть инвентарь с 6 стеками для знаков и 8 стеками для других предметов
(которые размещаются/добываются ботом). Этот инвентарь имитирует внутренний инвентарь.
Это означает, что вы будете иметь доступ к инвентарю только в том случае,
если бот выключен ("сидит" в своем боксе).
Также есть следующие блоки:
- Датчики: Они могут посылать сигнал на исполнительный механизм, если подключены к нему.
- Актуаторы: Они выполняют действие, когда получают сигнал от датчика.
[signs_bot_bot_inv.png|image]
## Знаки
Вы управляете направлением движения бота с помощью знаков "turn left" и
"turn right" (знаки со стрелкой). Бот может преодолевать ступеньки
(один блок вверх/вниз). Но есть и команды, позволяющие перемещать бота вверх и вниз.
Не обязательно отмечать путь обратно к коробке. С помощью команды 'turn_off'
бот выключится и вернется в свой бокс из любого положения. То же самое касается
если вы выключите бота через меню бокса. Если бот достигнет знака в неправильном
направлении (сзади или сбоку), то знак будет проигнорирован.
Бот просто перешагнет через знак.
Все предопределенные знаки имеют меню со списком команд бота. Эти знаки
не могут быть изменены, но вы можете создавать и программировать свои собственные знаки.
Для этого нужно использовать знак "command". В этом знаке есть поле для редактирования команд
и страница помощи со всеми доступными командами. На странице помощи есть кнопка копирования
чтобы упростить программирование.
Также для ваших собственных знаков важно знать: После выполнения последней
команды знака, бот возвращается к своему поведению по умолчанию и бежит в
выбранном направлении.
Стандартным заданием для бота является перемещение предметов из одного сундука в другой сундук
(или узел с сундуком, похожим на инвентарь). Это можно сделать с помощью двух знаков
'взять предмет' и 'добавить предмет'. Эти знаки должны быть размещены над узлами сундуков.
[signs_bot_sign_left.png|image]
## Датчики и приводы
В дополнение к знакам бот может управляться с помощью датчиков.
Датчики, такие как датчик бота, имеют два состояния: включено и выключено.
Если датчик бота обнаруживает бота он переключится в состояние "включено"
и пошлёт сигнал подключённому блоку, называемому исполнительным механизмом.
Датчиками являются:
- Датчик бота: Посылает сигнал, когда мимо проезжает робот.
- Датчик узла: Посылает сигнал, когда обнаруживает любой (новый) узел.
- Датчик урожая: Посылает сигнал, когда, например, пшеница полностью выросла
- Сундук бота: Посылает сигнал в зависимости от состояния сундука (пустой, полный)
Приводы:
- Знаки Bot Box: Может выключать и включать бота
- Блок управления: Может использоваться для смены знака, чтобы управлять ботом.
Датчики должны быть соединены (спарены) с исполнительными механизмами. Для этого используется
"Инструмент подключения датчиков".
[signs_bot_sensor_crop_inv.png|image]
## Инструмент подключения датчиков
Чтобы отправить сигнал от датчика к приводу, датчик должен быть соединен
(сопряжен) с исполнительным механизмом. Чтобы соединить датчик и исполнительный механизм,
необходимо использовать инструмент Sensor Connection Tool. Просто нажмите инструментом на оба блока, и
датчик будет соединен с исполнительным механизмом. Об успешном подключении сигнализирует звук ping/pong.
Прежде чем соединить датчик с приводом, убедитесь, что привод находится в
требуемом состоянии. Например: Если вы хотите запустить бота с помощью датчика, подключите
датчик с блоком бота, когда бот находится в состоянии "включено". В противном случае
сигнал датчика остановит Бота, вместо того чтобы запустить его.
[signs_bot_tool.png|image]
## Инвентарь
Следующее относится ко всем командам, которые помещают предметы/элементы в инвентарь бота, например:
- `take_item <num> <slot>`
- `pickup_items <slot>`
- `trash_sign <slot>`
- `harvest <slot>`
- `dig_front <slot> <lvl>`
Если в команде не был указан слот или слот 0 (случай A), то все 8 слотов инвентаря бота
проверяются один за другим. Если был указан слот (случай B),
проверяется только этот слот.
В обоих случаях действует следующее:
Если слот предварительно сконфигурирован и соответствует предмету, или если слот не сконфигурирован
и пуст, или только частично заполнен типом добавляемого элемента,
то элемент(ы) будет(ут) добавлен(ы).
Если не все предметы могут быть добавлены, то в случае A пробуются оставшиеся слоты.
Все, что не удалось добавить в инвентарь, вернется обратно или будет сброшено.
Сказанное ниже относится ко всем командам, которые используются для взятия предметов из инвентаря бота, например:
- `add_item <num> <slot>`.
Не имеет значения, настроен слот или нет. Бот берет первый стек
который он может найти в своем инвентаре, и пытается его использовать. Если указан слот,
он берет только его, если слот не указан, он проверяет все слоты по очереди
если слот не указан, то проверяет все слоты по очереди, начиная со слота 1, пока не найдет что-нибудь. Если найденное число
меньше запрошенного, он пытается взять остаток из любого другого слота.
[signs_bot:box|image]
## Узлы / Блоки
### Бокс бота
Бокс - это корпус бота. Разместите бокс и запустите бота с помощью кнопки
'On'. Если установлен мод techage, боту требуется электричество.
Бот выходит из коробки с правой стороны. Он не запустится, если эта позиция заблокирована.
Чтобы остановить и удалить бота, нажмите кнопку "Off".
Инвентарь коробки имитирует инвентарь бота.
Вы не сможете получить доступ к инвентарю, если бот запущен.
Бот может носить с собой до 8 стаков и 6 знаков.
[signs_bot:box|image]
### Заслонка бота
Заслонка - это простой блок, используемый в качестве двери для бота. Поместите заслонку в любую стену,
и бот будет автоматически открывать и закрывать заслонку, проходя через нее.
[signs_bot:bot_flap|image]
### Дубликатор знаков
Дубликатор можно использовать для создания копий знаков:
1. Положите один знак 'cmnd', который будет использоваться в качестве шаблона, в инвентарь 'Template'.
2. Добавьте один или несколько 'blank signs' в инвентарь 'In'.
3. Возьмите копии из инвентаря 'Output'.
В качестве шаблона можно также использовать написанные книги [default:book_written].
Уже написанные знаки тоже можно использовать в качестве входных.
[signs_bot:duplicator|image]
### Датчик ботов
Датчик ботов обнаруживает любого бота и посылает сигнал, если бот находится поблизости.
Радиус действия датчика - один узел/метр". Направление датчика не имеет значения.
[signs_bot:bot_sensor|image]
### Датчик узла
Датчик узлов посылает циклические сигналы, когда обнаруживает, что узлы появились
или исчезновения, но должен быть настроен соответствующим образом. Действительными узлами являются все виды
блоки и растения. Радиус действия датчика - 3 узла/метра в одном направлении.
У датчика есть активная сторона (красная), которая должна указывать на наблюдаемую область.
[signs_bot:node_sensor|image]
### Датчик урожая
Датчик сельскохозяйственных культур посылает циклические сигналы, когда, например, пшеница полностью выросла.
Радиус действия датчика составляет один узел/метр. Датчик имеет активную сторону (красную), которая
должна быть направлена на культуру/поле.
[signs_bot:crop_sensor|image]
### Сундук бота
Сундук бота - это специальный сундук с функцией датчика. Он посылает сигнал
в зависимости от состояния сундука. Возможные состояния: 'empty', 'not empty', 'almost full'
Типичный вариант использования - выключить бота, когда сундук почти полон или пуст.
[signs_bot:chest|image]
### Таймер бота
Это особый вид датчиков. Может быть запрограммирован на время в секундах,
например, для циклического запуска бота.
[signs_bot:timer|image]
### Блок управления ботом
Блок управления ботом используется для управления ботом с помощью знаков. Блок может быть
загружено до 4 различных знаков и может быть запрограммировано с помощью датчиков.
Чтобы загрузить блок, поместите знак на красную сторону блока и нажмите на блок.
Знак исчезает / перемещается в инвентарь блока.
Эту операцию можно повторить 3 раза.
Используйте инструмент подключения, чтобы соединить до 4 датчиков с блоком управления ботом.
[signs_bot:changer1|image]
### Расширитель датчиков
С помощью расширителя датчиков сигналы датчиков можно передавать на несколько исполнительных механизмов.
Поместите один или несколько удлинителей рядом с датчиком и соедините каждый удлинитель с одним
одним исполнительным механизмом с помощью инструмента подключения.
[signs_bot:sensor_extender|image]
### Сигнал И
Сигнал посылается, если получены все входные сигналы.
[signs_bot:and1|image]
### Задержка сигнала
Сигналы пересылаются с задержкой. Последующие сигналы ставятся в очередь.
Время задержки может быть настроено.
[signs_bot:delayer|image]
### Знак 'farming'
Используется для сбора урожая и засева поля 3x3. Поместите знак перед полем.
Используемое семя должно находиться в первом слоте инвентаря бота.
Когда бот закончит, он повернется и пойдет обратно.
[signs_bot:farming|image]
### Знак 'pattern'
Используется для создания копии куба 3x3x3. Поместите знак перед деталью
который нужно скопировать. Используйте знак копирования, чтобы сделать копию этой детали на другом
месте. Бот должен сначала добраться до знака детали, а затем до знака копии.
Используется для создания копии куба 3x3x3. Поместите щит перед блоками
которые нужно скопировать. Используйте знак копирования, чтобы сделать копию этих блоков в другом
месте. Сначала бот должен обработать знак "pattern", только после этого он может
направить его к знаку копирования.
[signs_bot:pattern|image]
### Знак 'copy3x3x3'
Используется для создания копии куба 3x3x3. Поместите знак перед тем местом, где вы хотите
чтобы была сделана копия. См. также знак "шаблон".
[signs_bot:copy3x3x3|image]
### Знак 'flowers'
Используется для срезания цветов на поле 3x3. Поместите знак перед полем.
По окончании бот поворачивается.
[signs_bot:flowers|image]
### Знак 'aspen'
Используется для заготовки ствола осины или сосны.
- Поместите знак перед деревом.
- Поставьте сундук справа от знака.
- Положите в сундук стопку грязи (минимум 10 предметов).
- Предварительно настройте слот 1 инвентаря бота на грязь
- Заранее настройте слот 2 инвентаря бота с саженцами
[signs_bot:aspen|image]
### Знак 'command'
Знак 'command' может быть запрограммирован игроком. Поместите знак перед собой
перед собой и используйте меню узла, чтобы запрограммировать последовательность команд бота.
В меню есть поле для редактирования команд и страница помощи со всеми
доступными командами. На странице помощи есть кнопка копирования, чтобы упростить программирование.
[signs_bot:sign_cmnd|image]
### Знак "turn right"
Бот поворачивает направо, когда обнаруживает перед собой этот знак.
[signs_bot:sign_right|image]
### Знак "turn left"
Бот поворачивает налево, когда обнаруживает этот знак перед собой.
[signs_bot:sign_left|image]
### Знак "take item"
Бот берет предметы из сундука перед собой, а затем поворачивается.
Этот знак должен быть помещен на верхнюю часть сундука.
[signs_bot:sign_take|image]
### Знак "add item"
Бот кладет предметы в стоящий перед ним сундук, а затем разворачивается.
Этот знак должен быть размещен поверх сундука.
[signs_bot:sign_add|image]
### Знак "stop"
Бот будет останавливаться перед этим знаком до тех пор, пока знак не будет убран или
пока бот не будет выключен.
[signs_bot:sign_stop|image]
### Знак "add to cart" (minecart)
Бот кладет товары в стоящую перед ним мини-тележку, толкает тележку, а затем разворачивается
разворачивается. Этот знак должен быть размещен на рельсе в конечном положении тележки.
[signs_bot:sign_add_cart|image]
### Знак "взять из тележки" (minecart)
Бот берет предметы из стоящей перед ним мини-тележки, толкает тележку и затем
поворачивается. Этот знак должен быть размещен на рельсе в конечном положении тележки.
[signs_bot:sign_take_cart|image]
### Знак "take water" (xdecor)
Используется для набирания воды в ведро. Поместите знак на берегу, перед бассейном с неподвижной водой.
Предметы в слотах:
1 - пустое ведро
В результате в выбранном слоте инвентаря появится одно ведро с водой. По окончании,
бот поворачивается.
[signs_bot:water|image]
### Знак 'cook soup' (xdecor)
Используется для приготовления овощного супа в котелке. Котелок должен быть пустым и находиться
над легковоспламеняющимися материалами. Поместите знак перед казаном с одним полем
чтобы предотвратить возгорание деревянной вывески.
Предметы в слотах:
1 - ведро с водой"
2 - овощ № 1 (например, помидор)
3 - овощ № 2 (например, морковь)
4 - пустая миска (из модов farming или xdecor).
В результате в выбранном слоте инвентаря окажется одна миска с овощным супом.
Закончив, бот разворачивается.
[signs_bot:soup|image]
## Команды бота
Все команды также описаны в виде помощи в узле "Команда знака".
Все блоки или знаки, которые устанавливаются, берутся из инвентаря бота.
Все удаленные блоки или знаки будут добавлены обратно в инвентарь бота.
'<слот>' - это всегда внутренний стек инвентаря бота (1..8).
move <steps> - перейти на один или несколько шагов вперед
cond_move - перейти к ближайшему препятствию или знаку
turn_left - повернуть налево
turn_right - повернуть направо
turn_around - повернуться
backward - сделать шаг назад
turn_off - выключить робота / вернуться в коробку
pause <sec> - подождать одну или несколько секунд
move_up - двигаться вверх (не более 2 раз)
move_down - двигаться вниз
fall_down - упасть в яму/пропасть (до 10 блоков)
take_item <num> <slot> - взять один или несколько предметов из ящика
add_item <num> <slot> - положить один или несколько предметов в ящик
add_fuel <num> <slot> - положить топливо в печь
place_front <slot> <lvl> - поместить блок перед ботом
place_left <slot> <lvl> - поместить блок слева от бота
place_right <slot> <lvl> - поместить блок справа от бота
place_below <slot> - поднять робота и поместить блок под него
place_above <slot> - установить блок над роботом
dig_front <slot> <lvl> - убрать блок перед роботом
dig_left <slot> <lvl> - удалить блок слева
dig_right <slot> <lvl> - удалить блок справа
dig_below <slot> - удалить блок под роботом
dig_above <slot> - удалить блок над роботом
rotate_item <lvl> <шаги> - повернуть блок перед роботом
set_param2 <lvl> <param2> - установить параметр2 блока перед роботом
place_sign <slot> - установить знак
place_sign_behind <slot> - поставить знак позади робота
dig_sign <slot> - удалить знак
trash_sign <slot> - удалить знак, очистить данные и добавить в инвентарь.
stop - бот остановится, пока не будет убран щит
pickup_items <slot> - забрать предметы (в поле 3x3)
drop_items <num> <slot> - сбросить предметы
harvest - собирать урожай на поле 3x3 (фермерство)
cutting - срезать цветы на поле 3x3
sow_seed <слот> - увидеть/посадить поле 3x3
plant_sapling <слот> - посадить саженец перед роботом
pattern - сохранить свойства блока за знаком (куб 3x3x3) в качестве шаблона
copy <size> - сделать копию сохраненного шаблона размером 3x3x3
punch_cart - сбить тележку с шахтой
add_compost <slot> - положить 2 листа в компостную бочку
take_compost <slot> - взять компостный элемент из бочки
print <text> - Вывести сообщение чата для отладки
take_water <slot> - Взять воду из пустого ведра
fill_cauldron <slot> - Наполнить котел xdecor для супа
take_soup <slot> - Взять кипящий суп в пустую миску из котла
flame_on - Развести огонь
flame_off - Погасить огонь
[signs_bot_bot_inv.png|image]
### Techage специальные команды
ignite - Зажечь угольную зажигалку techage
low_batt <percent> - Выключить бот, если заряд батареи ниже
заданного значения в процентах (1..99)
jump_low_batt <percent> <label> - Переход к <ярлыку>, если заряд батареи ниже
заданного значения в процентах (1..99)
(см. раздел "Команды управления потоком".)
send_cmnd <receiver> <command> - Отправка команды techage на заданный узел.
Получатель адресуется по номеру узла.
Для команд, состоящих из двух или более слов,
используйте символ '*' вместо пробелов, например:
send_cmnd 3465 pull*default:dirt*2
[signs_bot_bot_inv.png|image]
### Команды управления потоком
-- команда перехода, <label> - слово из символов a-z или A-Z
jump <label>
-- метка перехода / начало функции
<label>:
-- возврат из функции
return
-- начало блока цикла, <num> - число 1..999
repeat <num>
-- конец блока цикла
end
-- вызов функции (с возвратом через команду 'return')
call <label>
[signs_bot_bot_inv.png|image]
### Дополнительные команды перехода
-- Проверьте, есть ли в сундуке <num> предметов, как в узле.
-- Если нет, перейдите к <метке>.
-- <slot> - это слот инвентаря бота (1..8)
-- укажите элемент, или 0 для любого элемента.
jump_check_item <num> <slot> <label>
-- См. раздел "Специальные команды Techage".
jump_low_batt <percent> <label>
[signs_bot_bot_inv.png|image]
### Управление потоком Примеры
#### Пример с функцией в начале:
-- перейти к метке 'main'
jump main
-- начальная точка функции с именем 'foo'
foo:
cmnd ...
cmnd ...
-- конец 'foo'. Перейти назад
return
-- основная программа
main:
cmnd ...
-- повторите все команды до 'end' 10 раз
repeat 10
cmnd ...
-- вызвать подфункцию 'foo'
call foo
cmnd ...
-- конец цикла 'repeat'
end
-- конец программы
exit
#### Пример с функцией в конце:
cmnd ...
-- повторите все команды до 'end' 10 раз
repeat 10
cmnd ...
-- вызвать подфункцию 'foo'
call foo
cmnd ...
-- конец цикла 'repeat'
end
-- конец программы
exit
-- начальная точка функции с именем'foo'
foo:
cmnd ...
cmnd ...
-- конец 'foo'. Перейти назад
return