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

Логическая сеть и комбинаторы

Вся статья, кратко

Логические сети в Factorio - это наше всё для управления и автоматизации чего там.

С помощью разноцветных сигнальных проводов, зелёных Green wire Green wire и красных Red wire Red wire, которые соединяют различные игровые элементы як сундуки, резервуары, конвейеры и прочую лабуду, можно контролировать поток ресурсов, управлять производственными линиями и оптимизировать эффективность работы почти всего и вся. Основой логической сети являются комбинаторы, хотя иногда можно и без них.

Комбинаторы и сигналы по проводам

Имеется три типа комбинаторов, которые работают на основе заданных математических операций и логических условий. Арифметический комбинатор Arithmetic combinator Arithmetic combinator выполняет базовые арифметические операции, сложение, вычитание, умножение и деление. Сравнивающий комбинатор Decider combinator Decider combinator сравнивает два сигнала и что-то решает. Постоянный комбинатор Constant combinator Constant combinator генерирует заданные сигналы каждый квант игрового времени.

Сигналом может быть всё что угодно, реальные предметы, жидкости, а также виртуальные сигналы, которые не привязаны к игровым предметами, и которые являются числами, буквами, цветами и ещё какая-то виртуальная фигня. Вся суть в том, что по раскрашенным сигнальным проводам в логической сети гуляют сигналы от комбинатора к комбинатору и преобразуются в другие сигналы. А ещё, в зависимости от сигналов можно что-то включать или выключать. При этом сигналы по разным сигнальным проводам не смешиваются друг с другом, если только сигнальные провода не соединены вместе на каком-то комбинаторе.

Самый простой пример

Самое простое, что можно сделать, это написать щёта впечатляющее на заборе, точнее на постоянных комбинаторах Constant combinator Constant combinator. Чтобы создать некое поэтическое творение, используются виртуальные сигналы, которые включают буквы английского алфавита (A-Z) и цифры (0-9). Букварь из великого и могучего не предусмотрен, но можно выкрутиться, например так:

Нет войне

Подробнее про письмена.

Просто простой пример

Ещё один простой пример можно реализовать без комбинаторов, только с одним сигнальным проводом, без разницы какого цвета. Соединим например некий сундук, например стальной Steel chest Steel chest, и фонарь Lamp Lamp зелёным сигнальным проводом Green wire Green wire и зададим следующее условие на фонаре:

Простой пример с фонарём

Такая конструкция будет зажигать фонарь, если сундук пустой и гасить его, если в сундуке чёта есть. Похоже на простую световую сигнализацию по условию. Такой же чертёж подойдёт и для цистерны Storage tank Storage tank.

Можно вообще создать полоску из фонарей и иллюминировать ими в зависимости от наполняемости сундука или цистерны. Пример:

Простой пример с фонарями

В сундуке видим, лежат 224 железные плиты Iron plate Iron plate. Соответственно, светят три первых фонаря, а последний не светит. Всё просто. Ещё разные примеры без комбинаторов.

Простой пример с комбинаторами

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

Допустим мы хотим держать какое-то минимальное количество жидкости в цистерне Storage tank Storage tank и расходовать её при заполнении цистерны. Для этого понадобиться всего два комбинатора и помпа Pump Pump. Первый, сравнивающий комбинатор Decider combinator Decider combinator, будет открывать помпу если количество жидкости скопилось больше, скажем 20K единиц в цистерне. Второй, арифметический комбинатор Arithmetic combinator Arithmetic combinator будет вычитать количество жидкости, которую можно слить при переполнении, пусть это будем 15K.

Простой пример с жидкостью

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

Чертёж для воды (меняйте жидкость на любую другую)
0eNqdVNuOmzAQ/Zd5rGAFDuTCQ6V+R7VCDkyyo4Jt+ZI2ivj32lBBtjHbdF+QBo+P55wzMzc4dg6VJmGhugE1Uhiovt/A0FnwLvyzV4VQAVnsIQHB+xAZKzU/Y2q5+AFDAiRa/AVVPrwmgMKSJZxwxuBaC9cfUfuEGUG5Xnk8JY1PliK85AFYmSVwhSo9FC+lx21JYzOdbxPw1Vktu/qIb/xCUodLDenGka39WTsjnUgbWz9wuJC2zv9ZaIwZ6bdAIVD3dLwOWQh6xTW34Q34CsN0LqZaTIDMw+esEcU9T2qhKpO5qBCy4XXw9x+kYIsUpLySMj1r6UQbEaXYv5RrsrAI9CbuU0RtNgNvRuDPksxXSBZzJVyTfevRUpN6cY8kRnEjXA9LSe+ZFvEGWICXHjCfbQKDAaNeeiEvs8z3g1Tou2EsA774q9JZ5SLgp85Ru0D/5NarMKy1j8b2ieZJgD2XvGZCOdfTYkMt6o8dKLN3DsQ0/4PznOBxTe4HjmWjyH8N3brK/5hjdfWFOWHrk5Z9TcJjQHXincH/MKJ4MCKJT8LmQ4uKB4tWYNbM2z6/JspiNo49bM/w8LjDq7uVn8AFtZn2yD4vdge22+9Zvtlth+E3uQIOkA==

Ещё разные примеры с комбинаторами.

Больше подробностей

В WiKi у Factorio есть множество неплохих примеров, изучить которые безусловно полезно. Хотя там такой задроцкий материал, что без горячительного не разобраться. Лучше у меня читайте и подписывайтесь на мой YouTube. А вот ещё материалы:

Примеры логических сетей на комбинаторах