Руководства → BuildCraft4 [1.6.4] Часть 5. Автоматизация
Часть 5. Автоматизация
В прошлой части руководства Вы узнали про основные логические элементы Buildcraft. Давайте рассмотрим их на практике в нескольких примерах. Думаю, данные схемы будут не только интересны, но и полезны.
Как Вам уже известно, охлаждение двигателей является важной частью компоновки более-менее серьезных схем производства. На помпах установлены по нескольку механических двигателей, на каждом из них - по рычагу. В совокупности таких рычагов получается очень много, причем они могут быть в разных, отдаленных от друг друга местах. Запуск или остановка машин в таком случае становиться не самым приятным занятием. Для начала, научимся включать машину на расстоянии. Я построил простейший пример из нескольких двигателей, гейтов, трубопровода, красного провода и единственного рычага.
- Железный гейт, реагирующий на рычаг. С его помощью будет оправляться сигнал для запуска или остановки всех двигателей.
- Рычаг
- Булыжниковая конструкционная труба. Служит лишь для прокладки провода (красный).
- Железный гейт, принимает сигнал и запускает двигатель.
- Сам двигатель.
- Деревянная транспортная труба (для наглядности, без приемщиков энергии механические двигатели визуально не подают признаков жизни =)
Как это будет работать? На первом гейте нужно выбрать условие для подачи сигнала (в моем случае, сигнал - красный). Условием же послужит рычаг в положении ВКЛ. Вам нужно кликнуть правой кнопкой мыши по гейту и задать параметры, как на картинке ниже.
Здесь указано, что при получении редстоун сигнала (рычаг ВКЛ), гейт должен "зажечь" красный провод (красный+). На гейтах около двигателей нужно задать условия в точности до наоборот: как только получим красный+ , подать редстоун сигнал.
Таким образом, пока сигнал будет идти вдоль двигателей с гейтами по красному проводу, те будут активированы. Как только рычаг выключат - работа остановится.
Теперь перейдем непосредственно к самой схеме охлаждения ДВС. Я построил стандартную схему из нескольких помповых установок с бассейном 3х3 для ДВС и карьер, подобно схеме, описанной в руководстве по установке карьера. В отличии от старой системы, где приходилось включать и выключать с дюжину рычагов, здесь все будет работать благодаря одному рубильнику =)
Над каждой помпой разместил по железному гейту. С помощью булыжниковой конструкционной трубы я протянул провод между самими помпами, а так же по жидкостной трубе. Настройки гейтов заданы, как на примере выше: одним рычагом можно включить сразу 8 двигателей. Но это еще не предел, ведь есть еще 8 штук ДВС, запитывающих карьер, так почему бы не убить сразу двух зайцев? =) Дорабатываем схему, установив по одному гейту на деревянную двигательную трубу, к которой присоединены ДВС'ы для отвода энергии. Настройки гейтов аналогичны (красный+ дает сигнал редстоуна). Из-за компактного размещения, один гейт будет запускать сразу 4 двигателя.
Это тот частый случай, когда провода нельзя перебрасывать с одного типа труб на другой. Провод, идущий по жидкостной трубе, не соединяется с проводом на двигательной трубе. Придется снова применить булыжниковую конструкционную трубу и пустить провод "в обход".
В итоге, одним рычагом включатся более полтора десятка механизмов!
Но и это еще не все. Дабы быть уверенным в надежности схемы настолько, чтобы ее можно было оставить полностью без присмотра, нужно усложнять схему, разделив ее на несколько логических цепей. Грубо говоря, одна будет отвечать за включение помп, другая - за включение ДВС. Например, может случится так, что сундуки будут переполнены, карьер доберется до лавы или коренной породы, помпы будут не успевать охлаждать движки. Для всех этих случаев можно и нужно продумывать условия, которые дадут зеленый свет работе системы или же ее остановят. Другими словами, если хоть одно заданное условие не будет выполнено - работа не начинается или прекращается. Такой вариант уместен, если Вы копаете очень большую территорию, и на это уходит много-много времени. Для работы с парочкой чанков, на мой взгляд, заморачиваться не стоит.
Для демонстрации нескольких логических систем, объединенных в одно целое, выбрал свою давнюю схему по переработке нефти в топливо.
Не важно, в котором порядке она скомпонована, главное выделить для себя основные составляющие.
- Резервуар с нефтью
- Резервуар с топливом
- Нефтеперерабатывающая установка
- ДВС
- Охлаждение ДВС
- Главный рычаг
Начнем с резервуара для нефти. Он будет тесно "сотрудничать" с нефтеперерабатывающей установкой. Задача: сделать так, чтобы нефть автоматически закачивалась в установку, когда это будет необходимо.
У каждой цистерны устанавливается золотой И-гейт, красный и синий провода, механизм откачки (деревянная жидкостная труба и механический двигатель). Я люблю ставить двигатели под низ: так компактнее и не мешает настройке гейтов. Пусть пара цистерн будет с жидкостью и пара пустых (контрольная группа =).
Установке важно знать, имеется ли сырье для производства топлива. Но у меня может быть неограниченное количество цистерн, и если в одной нефть закончится, то как быть с остальными? Здесь нужно применить метод дизъюнкции:
- "1" тогда и только тогда, когда хотя бы на одном входе есть «1»,
- "0" тогда и только тогда, когда на всех входах «0»
Иными словами, система транспортировки нефти к установке будет работать тогда, когда хотя бы в одной цистерне имеется нефть! На гейтах у цистерн ставим следующие условия:
Наличие жидкости в контейнере генерирует красный+, отвечающий за статус цистерн (имеется ли жидкость вообще). Сигнал отправляется нефтеперерабатывающей установке. Та, в свою очередь, принимает сигнал и проверяет установку, нужно ли ей сырье. Если да, то установка генерирует синий+, оправляя его обратно цистернам. Гейты на цистерне активируют редстоун для запуска механических двигателей лишь тогда, когда получат синий+ и положительный результат проверки наличия жидкости в цистернах (зачем попусту гонять движки, если цистерна пуста?).
На золотых И-гейтах у нефтеперерабатывающих установок на трубах с нефтью ставим следующие условия:
Если есть свободное место для жидкости (нефти) И труба пустая И есть красный+, ТО дать синий+. Условие с пустой трубой добавил потому, что в процессе переработки нефти контейнер непрерывно опустошается, вызывая тем самым истинное условие. Гейт начинает "мерцать", то включая, то выключая насосы на цистернах. Чтобы снизить частоту сигналов (тем самым уменьшив нагрузку на ЦП), можно проверить, поступает ли нефть по трубе в данный момент. Если нефть есть, зачем снова включать насосы? Пусть сначала осушится труба =)
Так же, нам нужно сделать автоматическую откачку готовой продукции. Здесь все элементарно: деревянная жидкостная труба, золотой И-гейт, механический двигатель.
Я решил сэкономить место, поставив золотые И-гейты-пульсары и выбрал следующие настройки:
Если в контейнере есть топливо И труба пустая, то включить energy pulser. Он эффективнее механического двигателя в 50 раз, так что за один подход выкачает примерно 1000mB (1 ведро). Условие пустой трубы не даст гейту часто "мерцать". В теории, достаточно было бы задать лишь условие на полный контейнер, но на практике гейт не всегда определяет "полноту" перерабатывающей установки (даже если та остановится из-за невозможности сливать топливо). Вот такой вот казус... Другая беда случилась бы, если до установки гейтов трубы и цистерны были бы вообще пустыми: гейт стал бы выкачивать... НЕФТЬ! Благодаря золотому гейту, можно указать нужный тип жидкости.
Метод дизъюнкции применим и для хранилища топлива. Пока хоть в одной цистерне есть свободное место, будет генерироваться красный+.
Здесь можно обойтись обычным железным гейтом, т.к. применяется только один сигнал с одним условием.
Если в контейнере есть свободное место для жидкости, то подать красный+. Этот сигнал будет одним из условий для запуска ДВС. Вообще, главный "мозг" логической схемы будет размещен как раз на гейте у двигателей: они начинают работу завода и они ее остановят. Если хранилище для топлива будет заполнено доверху, двигатели остановятся или никогда не запустятся - это будет первым условием для ДВС.
Вторым условием запуска двигателей будет готовность к работе нефтеперерабатывающих установок. Придется установить еще один дополнительный гейт для каждой установки. У меня они размещены максимально компактно, поэтому я обошелся одним на двоих =)
Условие Work Scheduled (возможна работа) И красный+ будут давать синий+. Work Scheduled сообщает, что в нефтеперерабатывающей установке имеется сырье и место для готовой продукции, красный+ означает, что имеется наличие места в хранилище для топлива (цистерны). На этом гейте я решил применить метод конъюнкции, объединив первое и второе условия в одно целое, т.к. и то, и другое еще пригодятся для запуска помп. Следовательно, синий+ будет отправляться как ДВС'ам, так и помпам.
Здесь все кажется очень запутанно, одна схема взаимосвязана с другой, но если как следует разобраться, то ничего сложного нет. Далее еще веселее =)
Настройки на алмазном И-гейте ДВС так же принимают и возвращают сигналы:
Синий+ (совокупность готовности работы установки и наличия места в резервуаре для топлива), зеленый+ (полученный сигнал ВКЛ на главном рычаге) - отвечают за сам запуск двигателей. Сигнал о проверке наличия топлива (желтый+) отправляется на главный рычаг. Это пригодится позже для того, чтобы помпы включались только тогда, когда ДВС будут РЕАЛЬНО работать. Другого способа сообщить системе охлаждения о состоянии двигателей я пока не нашел...
Несмотря на всю свою, казалось бы, значимость, рычаг в этой схеме - лишь авторская прихоть =) Вся система вполне способна поддерживать саму себя и рычаги ей ни к чему: она умеет автоматически включатся и автоматически отключаться. Но поскольку это грозит восстанием киборгов, человек должен оставлять за собой право контролировать искусственный разум :D Следовательно, ничто не должно "думать" без воли на то игрока. Это жезл, которому будет повиноваться любая машина!
Настройки алмазного И-гейта на рычаге:
При подачи редстоуна (рычаг ВКЛ) И наличии желтого+ (двигатели заправлены), отправить зеленый+. Его принимают ДВС и гейт, отвечающий за работу помп - системы охлаждения.
С проблемой включения\отключения водяных насосов пришлось изрядно повозится и даже переделать часть всей изначальной схемы. Именно из-за помп пришлось собирать на одном из предыдущих гейтов два условия - в одно. Вас всегда будет преследовать "нехватка" проводов, т.к. сигналов всего 4, а условий могут быть десятки и сотни. В одних случаях удобно использовать дизъюнкцию, в других конъюнкцию, отрицание. Немаловажно и то, как именно Вы компонуете свои схемы, от компоновки сильно зависит размещение гейтов и проводов.
Итак, стандартный бассейн 3х3, помпа, 4 механических двигателя. Над каждым двигателем установлен железный И-гейт. Между ними над помпой - алмазный И-гейт:
Если есть зеленый+ (рычаг ВКЛ, двигатели заправлены) И синий+ (хранилище не переполнено, установка готова к работе), то дать красный+. Можно было бы установить по алмазному гейту сразу над каждым механическим двигателем, но я "сэкономил", преобразовав 4 условия в 1, с которым легко справляются железные гейты =)
В итоге,
- Если закончится нефть в хранилище - вся система будет работать до поры, пока не закончится сырье в установках.
- Если закончится нефть в установках - двс отключаются, помпы отключатся.
- Если переполниться хранилище для топлива - аналогично.
- Если в двигателях нет топлива - помпы не включатся.
- С помощью рычага можно отключать все систему целиком, кроме откачки нефти (она у нас автономная).
Надеюсь, Вам понравилось, старался все показать-объяснить. На этом серия руководств по Buildcraft4 завершена.
До новых встреч!
12-01-2014, 00:46 |
13401 |
руководства |