Логическая сеть и комбинаторы
Логические сети в Factorio - это наше всё для управления и автоматизации чего там.
С помощью разноцветных сигнальных проводов, зелёных Green wire
и красных Red wire
, которые соединяют различные игровые элементы як сундуки, резервуары, конвейеры и прочую лабуду, можно контролировать поток ресурсов, управлять производственными линиями и оптимизировать эффективность работы почти всего и вся. Основой логической сети являются комбинаторы, хотя иногда можно и без них.
Комбинаторы и сигналы по проводам
Имеется три типа комбинаторов, которые работают на основе заданных математических операций и логических условий. Арифметический комбинатор Arithmetic combinator
выполняет базовые арифметические операции, сложение, вычитание, умножение и деление. Сравнивающий комбинатор Decider combinator
сравнивает два сигнала и что-то решает. Постоянный комбинатор Constant combinator
генерирует заданные сигналы каждый квант игрового времени.
Сигналом может быть всё что угодно, реальные предметы, жидкости, а также виртуальные сигналы, которые не привязаны к игровым предметами, и которые являются числами, буквами, цветами и ещё какая-то виртуальная фигня. Вся суть в том, что по раскрашенным сигнальным проводам в логической сети гуляют сигналы от комбинатора к комбинатору и преобразуются в другие сигналы. А ещё, в зависимости от сигналов можно что-то включать или выключать. При этом сигналы по разным сигнальным проводам не смешиваются друг с другом, если только сигнальные провода не соединены вместе на каком-то комбинаторе.
Самый простой пример
Самое прос тое, что можно сделать, это написать щёта впечатляющее на заборе, точнее на постоянных комбинаторах Constant combinator
. Чтобы создать некое поэтическое творение, используются виртуальные сигналы, которые включают буквы английского алфавита (A-Z) и цифры (0-9). Букварь из великого и могучего не предусмотрен, но можно выкрутиться, например так:
Просто простой пример
Ещё один простой пример можно реализовать без комбинаторов, только с одним сигнальным проводом, без разницы какого цвета. Соединим например некий сундук, например стальной Steel chest
, и фонарь Lamp
зелёным сигнальным проводом Green wire
и зададим следующее условие на фонаре:
Такая конструкция будет зажигать фонарь, если сундук пустой и гасить его, если в сундуке чёта есть. Похоже на простую световую сигнализацию по условию. Такой же чертёж подойдёт и для цистерны Storage tank
.
Можно вообще создать полоску из фонарей и иллюминировать ими в зависимости от наполняемости сундука или цистерны. Пример:
В сундуке видим, лежат 224 железные плиты Iron plate
. Соответственно, светят три первых фонаря, а последний не светит. Всё просто. Ещё разные примеры без комбинаторов.
Простой пример с комбинаторами
Комбинаторами можно сделать много чего интересного, но для простой демонстрации трудно что-то придумать. Всё простое делается обычными сигнальными проводами, без комбинаторов. Попробую привести пример управления потоками жидкости, хотя такой пример и для сундуков тоже подходит.
Допустим мы хотим держать какое-то минимальное количество жидкости в цистерне Storage tank
и расходовать её при заполнении цистерны. Для этого понадобиться всего два комбинатора и помпа Pump
. Первый, сравнивающий комбинатор Decider combinator
, будет открывать помпу если количество жидкости скопилось больше, скажем 20K единиц в цистерне. Второй, арифметический комбинатор 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. А вот ещё материалы: