31 октября, 2016

Factorio, заметки по комбинаторам. (старое)

Заметки про комбинаторы со старого форума mtgm.ru

У решающего комбинатора есть 3 специальных сигнала.
Each - считает количество сигналов, если галка Input count не стоит или количество предметов в принципе, если она стоит.
Everything - работает аналогично предыдущему варианту. Разница в том, что если у нас условие - сигнал больше 10. То в случае everything сначала будут сложены все сигналы, а потом сумма сравнена с 10. В случаес each - каждый из сигналов будет сравнен с 10 и на выходе будут только те, которые подошли по условию.
Anything - берет один сигнал из нескольиких. Выдает цифру 1, если галка input count не стоит, или количество предметов в выбранном сигнале - если стоит. Скорей всего выбирает первый провод из всех подключенных и первый сигнал по списку из всех сигналов.


Еще хочется отметить что на данный момент (0.12.1), данные можно получать только с умных сундуков и резервуаров с жидкостью. А управлять можно только умным манипулятором, маленьким насосом, насосом который качает воду из озер, ну и лампами.



Еще одна логическая схемка, на этот раз более полезная. На входе есть 4 типа банок, накапливать их в буферных сундуках таким образом, чтобы их там было равное количество. Причем при исследовании чего-то не требующего всех 4 типов банок, будут добавляться недостающие.



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

Думаю вот тут видно в принципе какой провод куда идет:


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



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

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

Из особенностей работы. Если из сундука к примеру с зелеными схемами извлечь 100 банок, а из сундука с синими схемами 50, то сначала будет работать только манипулятор на зеленые банки, а только после того как недостаток уравняется, начнут работать оба манипулятора.

Ну и да, из-за прибавления банок, в буфере фактически на 2 фиолетовые банки меньше чем всех остальных, поэтому схемка не 100% точная, но для практического применения этого достаточно, чтобы избежать перерасхода материала на банки одного типа, при недостатке банок остальных типов.

Комментариев нет:

Отправить комментарий