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

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

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

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

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

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

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

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

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

Ещё один простой пример можно реализовать без комбинаторов, только с одним сигнальным проводом, без разницы какого цвета. Соединим например некий сундук, например стальной 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. А вот ещё материалы:

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