Существуют множество версий триггеров в Minecraft, от простых редстоуновских до сложных рельсовых. Триггер — это система, которая может хранить своё состояние и менять его по сигналам извне. Сейчас я вам покажу одну из версий триггера созданную с помощью ComputerCraft. Все что нам нужно в начале это любой Компьютер, а где его применять ограничивается только вашей фантазией, к примеру это может быть лампа которую нужно включать с помощью кнопки и в двух местах.
Создание
Давайте разберемся, как пишется программа для кодового замка. Кому не интересно, вы можете просто скопировать код. Заходим в компьютер и пишем:
edit trigger
Открывается окно редактора кода. Вот код нашей программы:
while true do red1 = rs.getInput('left') red2 = rs.getInput('right') if red1 == true then if red2 == true then rs.setOutput('right',false) sleep(2) elseif red2 == false then rs.setOutput("right",true) sleep(2) end end sleep(0,5) end
Строка | Описание | Комментарий |
---|---|---|
while true do | Бесконечный цикл | While - "в то время как", true - если просто спросить консоль будет ли true или false то будет всегда будет true и никогда false, do - "сделать" |
red1 = rs.getInput('left') | Заменяет команду rs.getInput('left') на red1 | rs.getInput('left') - спросить у компьютера есть ли положительный вход редстоуна Слева. red1 можно заменить на что либо другое, я написал так. 'left' - обозначает сторону где вы спрашиваете, можно поменять в зависимости от стороны входа редстоуна |
red2 = rs.getInput('right') | Заменяет команду rs.getInput('right')) на red2 | rs.getInput('right') - спросить у компьютера есть ли положительный вход редстоуна Справа. red2 можно заменить на что либо другое, я написал так. 'right' - обозначает сторону где вы спрашиваете, можно поменять в зависимости от стороны входа редстоуна |
if red1 == true then | "Если red1 будет true тогда" | red1 это rs.getInput('left'), значит если rs.getInput('left') будет положительным тогда... |
if red2 == true then | "Если red2 будет true тогда" | red2 это rs.getInput('right'), значит если rs.getInput('right') будет положительным тогда... |
rs.setOutput('right',false) | rs.setOutput('right',false) - установить сигнал редстоуна справа на негативное | 'right' - можно поменять в зависимости от стороны где будет выход редстоуна |
sleep(2) | Спать 2 секунды | Сделано для того что бы не было замыкание, т.к. сигнал кнопки зажимается на 2 секунды |
elseif red2 == false then | "Другое если red будет негативным тогда" | red2 это rs.getInput('right'), значит если rs.getInput('right') будет негативным тогда... |
rs.setOutput("right",true) | rs.setOutput('right',false) - установить сигнал редстоуна справа на положительное | 'right' - можно поменять в зависимости от стороны где будет выход редстоуна |
sleep(2) | Спать 2 секунды | Сделано для того что бы не было замыкание, т.к. сигнал кнопки зажимается на 2 секунды |
end | Конец ветвления | Для определения количества end проще использовать форматирование "лесенкой" |
end | Конец ветвления | Для определения количества end проще использовать форматирование "лесенкой" |
sleep(0,5) | Спать 0,5 секунды | Сделано для того что бы не было ошибки из-за длительного не изменения переменных red1 и red2 |
end | Конец цикла | Если количество end будет больше, чем нужно, будет выдана ошибка "<eof> expected". Если меньше, то другая |
Завершение создания
Для сохранения нажимаем клавишу Ctrl и выбираем пункт Save. Потом Ctrl и выбираем пункт Exit. После этого пишем trigger. Готово. Если вы сделали код точно как я, тогда просто слева от компьютера располагаем вход редстоуна, а справа выход.