BuildCraft/Гейты

Гейты
Загрузить Гейты (BuildCraft).png
ГейтАлмазный гейт ИАлмазный гейт ИЛИПульсирующий гейтПульсирующий железный гейт ИПульсирующий железный гейт ИЛИПульсирующий золотой гейт ИПульсирующий золотой гейт ИЛИПульсирующий алмазный гейт ИПульсирующий алмазный гейт ИЛИ
Тип Предметы
Редкость Обычный
Прочность Нет
Возобновляемый ?
Складываемый Да (64)

Гейты — это трубные логические элементы, выполняющие определённое действие при выполнении различных условий. Набор возможных условий может меняться в зависимости от того, к чему присоединена труба. Изготавливаются в сборочном столе. Гейт можно снять с трубы, нажав ⇧ Shift+ПКМ.

Сборка

Ингредиенты Крафт Результат
Чип,
Красный провод
Гейт
Железный чип,
Красный провод
Железный гейт
Золотой чип,
Красный провод,
Синий провод
Золотой гейт
Алмазный чип,
Красный провод,
Синий провод,
Жёлтый провод,
Зелёный провод
Алмазный гейт
Любой непульсирующий гейт,
Железный чип,
Пульсирующий чип
Пульсирующий гейт
того же уровня и
логики.
Рецепты гейтов несколько устарели. Пульсирующие гейты создаются на Столе интеграции.

Интерфейсы

Гейт

GUI самого простого гейта выглядит так.

GUI.png

  1. Это условие.
  2. Обозначает, выполнено ли данное условие.
  3. Действие, которое будет выполнять гейт, если условие выполнено.

Условия и действия выбираются с помощью нажатий на слотах ПКМ или ЛКМ.

Виды условий
Название Иконка Описание
Pipe Empty Pipe Empty (BuildCraft).png Срабатывает, если по участку трубы, на котором установлен гейт, ничего не передаётся.
Items Traversing Items Traversing (BuildCraft).png Срабатывает, если по участку трубы, на котором установлен гейт, транспортируется предмет. Условие доступно только у труб для предметов.
Liquid Traversing Liquid Traversing (BuildCraft).png Срабатывает если по участку трубы, на котором установлен гейт, транспортируется жидкость. Условие доступно только у труб для жидкостей.
Power Traversing Power Traversing (BuildCraft).png Срабатывает, если по участку трубы, на котором установлен гейт, передаётся энергия. Условие доступно только у труб для энергии.
Redstone Signal On Срабатывает, если на гейт подаётся сигнал красного камня.
Redstone Signal Off Redstone Signal Off (BuildCraft).png Срабатывает, если на гейт не подаётся сигнал красного камня.
Inventory Empty Inventory Empty (BuildCraft).png Срабатывает, если на соседних блоках (сверху, снизу или сбоку от гейта) есть пустой сундук или устройство с пустым инвентарём. Условие доступно, только если на соседних блоках есть сундук или устройство с инвентарём.
Items in Inventory Items in Inventory (BuildCraft).png Срабатывает, если на соседних блоках есть сундук или устройство с предметами в инвентаре. Условие доступно, только если на соседних блоках есть сундук или устройство с инвентарём.
Space in Inventory Space in Inventory (BuildCraft).png Срабатывает, если на соседних блоках есть сундук или устройство со свободными слотами в инвентаре. Условие доступно, только если на соседних блоках есть сундук или устройство с инвентарём.
Inventory Full Inventory Full (BuildCraft).png Срабатывает, если на соседних блоках есть сундук или устройство с полностью заполненным инвентарём. Условие доступно, только если на соседних блоках есть сундук или устройство с инвентарём.
Tank Empty Tank Empty (BuildCraft).png Срабатывает, если на соседних блоках есть пустая цистерна или устройство с пустой ёмкостью для жидкостей. Условие доступно, только если на соседних блоках есть цистерна или устройство с ёмкостью для жидкостей.
Liquid in Tank Liquid in Tank (BuildCraft).png Срабатывает, если на соседних блоках есть цистерна или устройство с залитой жидкостью. Условие доступно, только если на соседних блоках есть цистерна или устройство с ёмкостью для жидкостей.
Space for Liquid Space for Liquid (BuildCraft).png Срабатывает, если на соседних блоках есть цистерна или устройство со свободным местом для жидкости. Условие доступно, только если на соседних блоках есть цистерна или устройство с ёмкостью для жидкостей.
Tank Full Tank Full (BuildCraft).png Срабатывает, если на соседних блоках есть цистерна или устройство с полностью залитой ёмкостью для жидкостей. Условие доступно, только если на соседних блоках есть цистерна или устройство с ёмкостью для жидкостей.
Engine Stage Engine Stage1 (BuildCraft).pngEngine Stage2 (BuildCraft).png
Engine Stage3 (BuildCraft).pngEngine Stage4 (BuildCraft).png
Срабатывает, если на соседних блоках есть двигатель с таким же цветом нагрева. Условие доступно, только если на соседних блоках есть двигатель.
Capacitor Empty Capacitor Empty (BuildCraft).png Срабатывает, если на соседних блоках есть электрическое устройство IC2 c разряженным аккумулятором. Условие доступно, только если на соседних блоках есть электрическое устройство IC2.
Capacitor Has Energy Capacitor Has Energy (BuildCraft).png Срабатывает, если на соседних блоках есть электрическое устройство IC2 c энергией в аккумуляторе. Условие доступно, только если на соседних блоках есть электрическое устройство IC2.
Space For Energy Capacitor Has Energy (BuildCraft).png Срабатывает, если на соседних блоках есть электрическое устройство IC2 c аккумулятором, который можно зарядить. Условие доступно, только если на соседних блоках есть электрическое устройство IC2.
Capacitor Full Capacitor Full (BuildCraft).png Срабатывает, если на соседних блоках есть электрическое устройство IC2 c полностью заряженным аккумулятором. Условие доступно, только если на соседних блоках есть электрическое устройство IC2.
Виды действий
Redstone Signal При выполнении условия гейт светится красным цветом и генерирует сигнал красного камня.
Но условия вовсе не ограничиваются вышеперечисленными. Другие моды могут добавлять для своих устройств новые условия. И если рядом с гейтом будет находиться такое устройство, то можно будет выбрать это условие.

Железный гейт

Интерфейс железного гейта (BuildCraft).png В интерфейсе железного гейта можно задать 2 условия. Также железные гейты имеют тип И или ИЛИ. В первом случае действие сработает, только если будут выполнены все условия с такими же действиями. Во втором случае достаточно исполнения любого условия.

Условия и действия железного гейта такие же, как и у предыдущего, но добавляются несколько дополнительных для красного провода.

Виды условий
Название Иконка Описание
Red Pipe Signal On Red Pipe Signal On (BuildCraft).png Срабатывает, если красный провод на этом участке трубы активирован. Опция доступна, если на трубе установлен красный провод.
Red Pipe Signal Off Red Pipe Signal Off (BuildCraft).png Срабатывает, если красный провод на этом участке трубы не активирован. Опция доступна, если на трубе установлен красный провод.
Виды действий
Red Pipe Signal Red Pipe Signal On (BuildCraft).png При выполнении условия активируется красный провод. Опция доступна, если на трубе установлен красный провод.

Золотой гейт

Интерфейс золотого гейта (BuildCraft).png В интерфейсе золотого гейта 4 условия. Золотые, как и железные, имеют тип И или ИЛИ. Дополнительно у золотых гейтов есть вторичные параметры условий. По умолчанию они не определены и перечёркнуты. Они становятся доступны для некоторых условий с инвентарём, тогда можно добавить тип предмета, или для условий с цистерной, тогда можно добавить тип жидкости. Для этого во второй слот нужно добавить предмет из инвентаря, для условий с цистерной нужно добавить ёмкость с какой-либо жидкостью. Таким образом можно определить более точные условия для гейта. Условия и действия золотого гейта такие же, как и у предыдущего, но добавляются несколько дополнительных для синего провода. (Гейт работает и с красными проводами).
Виды условий
Название Иконка Описание
Blue Pipe Signal On Blue Pipe Signal On (BuildCraft).png Срабатывает, если синий провод на этом участке трубы активирован. Опция доступна, если на трубе установлен синий провод.
Blue Pipe Signal Off Blue Pipe Signal Off (BuildCraft).png Срабатывает, если синий провод на этом участке трубы не активирован. Опция доступна, если на трубе установлен синий провод.
Виды действий
Blue Pipe Signal Blue Pipe Signal On (BuildCraft).png При выполнении условия активируется синий провод. Опция доступна, если на трубе установлен синий провод.

Алмазный гейт

Интерфейс алмазного гейта (BuildCraft).png В интерфейсе алмазных гейтов 8 условий. Алмазные, как и предыдущие, имеют тип И или ИЛИ. Как и у золотых гейтов, у алмазных тоже есть вторичные параметры условий. Условия и действия алмазного гейта такие же, как и у предыдущего, но добавляются несколько дополнительных для зелёного и жёлтого проводов. (Гейт работает и с красными, и с синими проводами).
Виды условий
Название Иконка Описание
Green Pipe Signal On Green Pipe Signal On (BuildCraft).png Срабатывает, если зелёный провод на этом участке трубы активирован. Опция доступна, если на трубе установлен зелёный провод.
Green Pipe Signal Off Green Pipe Signal Off (BuildCraft).png Срабатывает, если зелёный провод на этом участке трубы не активирован. Опция доступна, если на трубе установлен зелёный провод.
Yellow Pipe Signal On Yellow Pipe Signal On (BuildCraft).png Срабатывает, если жёлтый провод на этом участке трубы активирован. Опция доступна, если на трубе установлен жёлтый провод.
Yellow Pipe Signal Off Yellow Pipe Signal Off (BuildCraft).png Срабатывает, если жёлтый провод на этом участке трубы не активирован. Опция доступна, если на трубе установлен жёлтый провод.
Виды действий
Green Pipe Signal Green Pipe Signal On (BuildCraft).png При выполнении условия активируется зелёный провод. Опция доступна, если на трубе установлен зелёный провод.
Yellow Pipe Signal Yellow Pipe Signal On (BuildCraft).png При выполнении условия активируется жёлтый провод. Опция доступна, если на трубе установлен жёлтый провод.

Пульсирующий гейт

Пульсирующие гейты могут быть всех вышеперечисленных типов, с теми же интерфейсами. Но у них дополнительно есть действие «Energy Pulser». Как и такты у механического двигателя, эти пульсации тоже ускоряются со временем.
Виды действий
Название Иконка Описание
Energy Pulser Energy Pulser (BuildCraft).png Работает, только если гейт установлен на деревянной или обсидиановой транспортной трубе. Если это деревянная труба для предметов, то будет извлекать предметы из инвентаря, к которому присоединена труба. Если это деревянная труба для жидкостей, то жидкости. Если это деревянная труба для энергии, то будет генерироваться энергия с мощностью механического двигателя. Если это обсидиановая транспортная труба, то будут подбираться предметы по одному перед трубой.

Примеры использования

Вводные примеры

Автоматическая обработка руды в печи

Гейты пример1 (BuildCraft).jpg
Здесь используются два железных гейта и красный провод. Гейт рядом с воронкой проверяет условие, что в ней нет предметов и активирует красный провод, если это так и есть. Гейт около сундука проверяет, есть ли в сундуке предметы и включён ли красный провод, и в этом случае он выдаёт сигнал красного камня. То есть если в воронке нет предметов, а в сундуке есть, то включится двигатель, и предметы из сундука будут перемещаться в воронку. Из воронки они будут помещаться в печь и обрабатываться (будем считать, что топлива в печи достаточно). И, конечно, ещё нужно добавить извлечение обработанных предметов из печи.

Продвинутые примеры

Логика гейтов позволяет заменить собой некоторые элементы редстоун-схем. И сделать их значительно более компактными. Элементы, которые на красном камне могут занять десятки блоков, здесь можно уместить в два-три. Но у них есть существенный недостаток: при перезагрузке игры все значения гейтов сбрасываются. Возможно, при выгрузке чанков — тоже. Таким образом, соорудить долговременную память здесь не получится. Но обычную — можно и нужно. С неё и начнем.

Ячейка памяти

Итак, для начала рассмотрим ячейку памяти, то есть устройство, которое бы после подачи сигнала на один из входов (в нашем случае это будет красный и синий провода) запоминало бы этот сигнал и продолжало его выдавать.

Что же представляет собой наша ячейка? Самый простой вариант — это обычный золотой ИЛИ-гейт, настроенный, как показано на рисунке ниже:

RS NOR триггер на гейтах (BuildCraft).png

Логика работы устройства очевидна: синий сигнал выключает красный, а красный, в свою очередь, выключает синий. Дополнительно, мы разместили там же возможность переключения её в одно из состояний подачей редстоун-сигнала, что позволяет разместить рядом с ней кнопку принудительного сброса. Казалось бы, всё просто. Но у этой схемы есть один недостаток, проявляющийся, чаще всего, именно при перезагрузке игры. Что будет, если сигнала нет на обоих проводах? Условия будут обработаны одновременно. То есть схема начнет выдавать и красный, и синий сигналы сразу. А в следующем такте — они оба снова отключатся. Мы получим мигалку. Конечно, достаточно долгий сигнал на один из входов (та самая кнопка сброса) выведет нашу ячейку из этого состояния… до первого перезапуска игры.

Чтобы избежать этого, мы должны настроить реакцию нашего гейта на перезагрузку сервера. Конечно, сохранить значение нам не удастся, но сделать, чтобы одно из значений устанавливалось по дефолту — можно и нужно.

Пусть, для определённости, мы хотим, чтобы после перезагрузки наша ячейка выдавала красный сигнал. Как мы можем эту перезагрузку определить? Очевидно, после перезагрузки оба провода — и красный, и синий — не будут нести сигнала. Используем этот факт, настроив соответствующим образом И-гейт:

RS NOR триггер на гейтах — стабилизатор(BuildCraft).png

Расположим оба гейта рядом и соединим их красными и синими проводами. Теперь при перезагрузке игры И-гейт выдаст красный сигнал, который ИЛИ-гейт немедленно «подхватит». И будет выдавать дальше. Теперь, нажав на кнопку сброса мы можем переключить нашу ячейку в «синие» состояние. И так далее. Обратите внимание, что данное устройство, по совместительству, может работать как детектор перезапуска игры.

Важно: Чтобы устройство правильно и стабильно работало, оба гейта должны находиться именно рядом друг с другом! На большем расстоянии сигнал от одного гейта может не успеть вовремя переключить другой.

Зарядка энергохранилищ

Ячейка памяти используется для контроля зарядки энергохранилища из Thermal Expansion биогазовыми двигателями из Forestry: 1 — ячейка памяти, 2 — энергохранилище, 3 — гейты, запускающие двигатели. Сейчас двигатели включены.

Где такая ячейка может пригодиться?

Рассмотрим в качестве первого примера одно из самых насущных применений — зарядку энергохранилищ из Thermal Expansion двигателями из других модов. Если просто подключить двигатели с помощью любых энергетических труб, то, заполнив хранилище, они продолжат свою работу. Трубы из Buildcraft в результате переполнятся и взорвутся. Собственные трубы Thermal Expansion не взорвутся, но энергия будет уходить впустую. Как этого избежать?

  • Соединим энергохранилище с двигателями трубами из Buildcraft (гейты можно ставить только на них).
  • Поставим нашу ячейку рядом с энергохранилищем, так чтобы ИЛИ-гейт непосредственно к нему прилегал.
  • Зададим в этом гейте следующие дополнительные условия: подавать красный сигнал, если хранилище пусто, и синий, если оно заполнено до конца.
  • Проведем от ячейки по трубе красный провод ко всем двигателям.
  • Разместим перед двигателями железные гейты (любого типа) и поставим условием «выдавать сигнал редстоуна при наличии красного сигнала».

Теперь при полной разрядке хранлилища двигатели будут включаться, а при полной зарядке выключаться. Что нам и требовалось.

Что касается поведения при перезагрузке сервера — то оно настраивается в И-гейте. Если он будет выдавать красный сигнал — такая перезагрузка начнет подзарядку хранилища, если синий — остановит её, если она была. Какой из этих вариантов выбрать — остается полностью на усмотрение игрока.

Поддержание ресурсов в устройстве

Ячейка памяти используется для обеспечения мультиферм Forestry минеральными удобрениями: 1 — ячейка памяти, 2 — сундук с удобрениями, 3 — труба от сундука к фермам, 4 — место подачи удобрения в первую ферму (гейт подает сигнал при нехватке удобрения или при нажатии на кнопку 6), 5 — труба, по которой удобрение возвращается в сундук, 6 — кнопка принудительной подачи удобрения, 7 — ферма с наибольшим расходом удобрений (древесная), 8 — остальные фермы.
Как можно видеть, сейчас начата подача удобрений в фермы. Ячейка памяти расположена таким образом, что И-гейт подает сигнал редстоуна на двигатель, извлекающий этот ресурс из сундука. ИЛИ-гейт же расположен на трубе, через которую осуществляется возврат удобрения. Когда оно там появится, ячейка переключится, а двигатель остановится.

Другой пример — поддержание устройств в работоспособном состоянии, за счёт подачи туда ресурсов.

Пусть у нас есть полный контейнер с ресурсами. И много устройств, в которых мы хотим поддерживать наличие этих ресурсов. Простейшая, ручная реализация без использования гейтов будет выглядеть так: мы выводим трубу из контейнера, ставим на входе редстоун-двигатель, к каждому устройству делаем ввод таким образом, чтобы, если в ней нет места, ресурсы шли дальше, к следующему устройству (это достигается алмазной трубой или, что предпочтительнее, вводящей трубой из Additional BuildCraft Objects). А в самом конце пути мы ставим железную трубу. Дойдя до неё, наши ресурсы развернутся и направятся обратно — туда, откуда пришли.

Эта схема хорошо работает с загрузкой удобрений в фермы и биореакторы Forestry, капсул в центрифуги и электролизёры GregTech и т. д. Но недостатком у неё является то, что ресурс всё время гуляет вперед-назад по трубе, вместо того, чтобы спокойно лежать в сундуке. Попробуем это исправить.

Очевидно, сигналом на включение системы должен быть сигнал о недостатке ресурса с того из устройств, которое тратит его быстрее других (для Forestry, например, это будет ферма деревьев). На выключение — тот факт, что ресурс заполнил все фермы и вернулся обратно. Чтобы различать это, поставим недалеко от нашего сундука алмазную трубу, которая будет ресурс, пришедший из сундука, направлять к фермам, а ресурс, пришедший от ферм — в другую трубу, на которой и будет находиться наша ячейка памяти (потом, разумеется, из неё он будет идти в тот же сундук).

Теперь осталось настроить синий сигнал на появление под ячейкой дропа, а красный — на нехватку ресурса в нашей ферме (или что там им снабжается). Разумеется, детектирование последнего осуществляется отдельным железным гейтом. После чего, как и в прошлом примере, подводим сигнал к двигателю — и наша конструкция готова.

Когда ресурс в устройстве будет заканчиваться (если есть возможность, целесообразно настраивать схему не на полное исчерпание ресурса, а скажем, на 10 %), двигатель включится и ресурс пойдет в трубу, заполняя все устройства. Когда он дойдет до конца и вернется обратно — двигатель выключится, переставая подавать в трубу новые ресурсы. Вскоре они все возвращаются обратно в сундук, где и остаются — до тех пор, пока нам не понадобится новая партия.

Т-триггер

Эта страница содержит неактуальную информацию о контенте.
Он был изменён в новых версиях игры.

Следующая задача значительно сложнее. Вот у нас есть эта ячейка. И теперь мы хотим, чтобы она переключала свои состояния при каждом проходе какого-либо объекта по трубе. Проблема здесь в том, что мы не можем просто задать условие «если есть синий сигнал и прошёл объект по трубе, то включить красный и наоборот». Такая схема просто начнет быстро переключать сама себя и перейдет в режим «мигалки», из которого она сама уже не выйдет. Здесь необходима более сложная логика, и именно она приведена на рисунке ниже:

T триггер на гейтах (BuildCraft).png

Как мы можем видеть, используется алмазный И-гейт. И задействованы все его выходы, один (точнее — два, настройки их входа должны быть идентичны) из которых и служит для детектирования предметов. Также задействованы все виды проводов (зелёные и жёлтые должны наноситься только на тот блок, в котором мы разместили триггер, красный и синий нужно соединить с ячейкой памяти). Таким образом, мы не можем использовать провода, чтобы подвести к триггеру сигнал, по которому он будет переключаться. Его надо располагать непосредственно в том месте, где мы будем этот сигнал снимать, либо передавать сигнал через редстоун.

И есть ещё одна тонкость — этот триггер, как и его аналог на редстоуне, по своей сути является колебательным контуром. Соответственно, он чувствителен к времени подачи сигнала. То есть в нашем случае — к времени прохождения предметов по сегменту трубы. Если это время будет достаточно длинным — он начнет переключаться из одного состояния в другие. Если же время будет, напротив, слишком коротким — гейт просто не успеет среагировать.

Поэтому важна скорость предметов. Вот условия, при которых гарантируется правильная работа триггера:

  • труба непосредственно под триггером должна быть золотой;
  • перед триггером не должно быть других золотых труб или иных подобных ускорителей.

Для гарантированного обеспечения этих условий, за несколько клеток до триггера рекомендуется поставить промежуточный контейнер.

Также триггер можно настроить, после замены соответствующего условия, не на предметы, а на сигнал редстоуна. Гарантируется его правильная работа от нажатия кнопки. В случае же использования панелей, а также — других источников с непостоянным временем сигнала, возможно повторное переключение триггера, если этот сигнал будет слишком длинным. В целом, условия его правильной работы такие же, как и у аналогичной конструкции из редстоуна. Разница лишь в размере.

Т-триггер же, который правильно работает при любой длительности сигнала, в принципе, можно построить, основываясь на свойстве железных труб циклически менять направление выхода под воздействием редстоун-сигнала, но это будет весьма громоздкая конструкция, размерами вполне сравнимая с аналогичным устройством на поршнях. Только более дорогая в исполнении.

В качестве примера использования Т-триггера можно назвать выведение новых видов пчёл. Для получения мутаций там требуется скрещивать два вида этих насекомых. Соответственно, в каждом новом цикле следует подавать трутней либо из одного, либо из другого контейнера. В этом случае Т-триггер будет реагировать на прохождение пчелиной матки по трубе, переключая ячейку памяти, а контейнер с трутнями будет выбираться в зависимости от состояния этой ячейки. Конечно, прежде, чем пускать матку через триггер, следует убедиться, что она сменила свой вид… Но это уже не относится к применению гейтов.

Индикатор

Можно сделать индикатор, который срабатывает при выполнении условия(полный сундук\энергохранилище\печь\т.д.)

Завод по переработке руды
Целый комплекс, логика работы которого основана на гейтах.
В данной статье используются материалы из статьи «BuildCraft/Гейты» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.