Факторио как сделать таймер
13 мар. 2017 в 22:48
Я тупо прицепляю паровые машины через рубильник, который выставляю быть включенным если аккум меньше X%, поскольку аккумы в одной сети, то заряд у них на одинаковом уровне.
Т.е. ципляем красны кабелем аккум к выключателю, выставляем на аккуме выход А например и на выключателе условие, A<25%, только надо вручную разрезать или отделить линии питания паровых машин.
P.S. по такому принципу у меня несколько генераторов зацеплены, и срабатывают поэтапно. + Если заряд остается меьше 5, то подцепляется дополнительный блок аккумов, что бы питать защиту.
I'm using steam engines over switch(engines in separated segments), with control by accumulator percent in shared network (accumulator share charge level in one network).
+ separate accumulation buffer connected if percent too low, for emergency defense.
Полный вперед! T-A-R
Big Community Gamesрада объявить об очередном ивенте Factorio MMO. Был обнаружен очень богатый рудой кусок Nauvis , что дало нам прекрасную возможность вместе запустить ракету в эту субботу! Темой этой вечеринки будет Steampunk. Deadlock989’s Industrial Revolution 2 принесет весь пар и тлеющее топливо, которые мы любим, и, возможно, даже немного больше.
По сравнению с ванилью, наш набор инструментов расширен за счет всевозможных технологий. Новые материалы и процессы сделают создание ракеты немного более сложным и очень увлекательным. На странице события есть полный набор модов и дополнительная информация. Сервер будет запущен в обычном многопользовательском лобби в субботу в 18:00 UTC / GMT.
Посетите наш Discord для чата и голосовых каналов. Инженеры уже составляют планы. BCG также приветствует людей, которые хотели бы участвовать в организации подобных мероприятий в будущем.
Смазывайте свои экзоскелеты и наслаждайтесь событием!
Введение
Комбинаторная логика реализуется путем перекрестного соединения выходов со входами устройств таким образом, чтобы достичь необходимой логической схемы. Хотя для продвинутой логики требуется много комбинаторов, базовая логика, но не менее полезная, может быть реализована с использованием лишь нескольких комбинаторов. Комбинаторная логика возможна благодаря тому, что Factorio обновляется 60 раз в секунду, что позволяет комбинаторам обрабатывать логику на одном такте, а результат, например суммирования и/или деления, выдавать на следующем.
Пока логическое значение вычисляется в комбинаторе, его выходы не определены до следующего такта. Поэтому сравнивающий комбинатор, используемый для проверки определенного условия на входе, не будет влиять на схему после него до следующего такта. Эту особенность работы комбинаторов необходимо запомнить, т.к. она может приводить к ошибкам и большим задержкам, в случае последовательного соединения множества комбинаторов.
Логические провода аналогичны шине в электронике; они передают информацию подключенным к ним проводам, а это означает, что если в проводе есть похожие сигналы, они автоматически просуммируются.
При перекрестном соединении комбинаторов, хорошей практикой для межсоединений считается применение проводов другого цвета, что разделяет входные и выходные сети и предотвращает случайное подключение нежелательных входов к более крупной сети.
Продвинутый загрузчик поездов
Эта схема решает проблему равномерной загрузки предметов в сундуки на станциях погрузки, из-за которой погрузка предметов в вагоны поездов происходит медленнее.
Для установки этой схемы потребуется арифметический комбинатор и красный и зеленый провода. Все сундуки соединяются проводом, который заводится на вход комбинатора. В арифметическом комбинаторе введите: количество предметов / -количество сундуков — это дает среднее значение предметов в одном сундуке; результат деления передается по каналу тех предметов, что находятся в сундуке. Все используемые манипуляторы соединяются проводом, который заводится на выход комбинатора, причем его цвет отличен от цвета провода, соединяющего сундуки. Далее, в манипуляторах необходимо установить условие: предмет < 1.
Вот как работает эта схема:
в манипуляторах производится сравнение среднего значения количества предметов с количество предметов из сундука напротив манипулятора (суммируется отрицательное среднее с положительным числом предметов из сундука). Манипулятор включается, когда среднее значение больше количества в сундуке.
Комбинаторы и почему их не стоит бояться pocarski
В дереве исследований есть много технологий, которые не нужны для завершения игры и поэтому часто остаются в стороне. Некоторые из них совершенно понятны, например, военные технологии в мирном режиме. Другие иногда даже не рассматриваются, хотя они могут обеспечить исключительное улучшение в игре. Одной из таких технологий является логическая сеть, которую я рассмотрю в этой статье.
Схема сети состоит из четырех основных компонентов: проводов, комбинаторов постоянного, сравнивающего и арифметического.
Постоянные комбинаторы непрерывно выводят все, что вы в них установили (и также не требуют питания); сравнивающие комбинаторы выдают некоторый сигнал, когда выполняется определенное логическое условие; арифметические комбинаторы выполняют математические операции. Провода действуют как своего рода «сигнальное облако», где все сигналы, поступающие в провод, могут быть прочитаны всем, что к нему подключено. Красный и зеленый провода имеют идентичную функциональность, но оба могут быть подключены к одному и тому же устройству, не мешая друг другу.
Базовые элементы
Давайте посмотрим на три очень простых модуля с одним комбинатором, которые широко используются. Этими модулями являются: схема генератора импульсов, RS триггер и счетчик. Начнем с генератора импульсов, который выглядит так:
Наконец, счетчик. Конструктивно он идентичен RS триггеру, но на этот раз выход установлен на «подсчет всего на входе». Это означает, что пока выполняется условие , он будет продолжать выдавать свои результаты, запоминая их. Для каждого тика, который он получает, он будет увеличивать значение этого сигнала в своей памяти на полученную сумму. Как только условие нарушается, память очищается, так как решающий блок больше не пропускает сигналы. Подобно генератору импульсов, если вы хотите, чтобы он запомнил только один сигнал, замените «все» на выходе желаемым сигналом. Эта схема, как и генератор импульсов, имеет огромное количество применений, но наиболее популярной из них является отслеживание количества предметов.
Примеры
Теперь давайте рассмотрим некоторые случаи, когда каждый из этих модулей может пригодиться.
Допустим, у вас есть чертеж ядерного реактора, в котором извлечение отработанного топлива вызывает загрузку нового. Такую конструкцию придется запускать вручную, поскольку реакторы строятся пустыми. В идеале вы хотите добавить схему, которая после того, как все сундуки окажутся с топливом , запускает заправку ровно один раз. Здесь на помощь приходит импульсный генератор. Установите комбинатор в каждом сундуке, сравнивающий, достаточно ли в нем предметов, а затем соедините их все вместе в один комбинатор, который проверяет, все ли сундуки готовы. Затем это сравнивающее устройство выдает сигнал «использовано топливо» в импульсный генератор, который подключен к каждому устройству подачи топлива в реактор. Это приводит к срабатыванию всех устройств для заправки топливом ровно в тот момент, когда топливо становится доступным для всех из них, и реактор запускается автоматически. Кроме того, это также приводит к автоматическому перезапуску реактора, если в нем когда-либо заканчивается топливо.
Далее классический пример: резервное питание. Представьте, что у вас есть набор аккумуляторов, и вы хотите активировать свои паровые генераторы, если накопленная энергия станет слишком низкой. Вы можете просто подключить переключатель непосредственно к аккумулятору и сказать ему, чтобы он активировался, если уровень заряда аккумуляторов ниже, скажем, 20%, но это просто приведет к его быстрому включению и выключению, постоянно поддерживая аккумуляторы на уровне ровно 20%. Вместо этого следует использовать RS триггер. У комбинатора на выходе «S», когда заряд аккумулятора ниже 20%, и на другом выходе «R», когда заряд выше 70%. Подсоедините их оба к триггеру и подключите выход триггера к переключателю, установленному для активации, если S> 0. Переключатель активируется, как только заряд упадет ниже 20%, и поддерживает работу резервного питания, пока заряд не поднимется выше 70%.
Наконец, процесс, который многие опасаются внедрять: обогащение урана. Нам нужно рассмотреть 3 манипуляторы: ввод, вывод и переработка. Последний не является манипулятором, мы заботимся только о первом звене цепочки манипуляторов. манипулятор ввода не нуждается в какой-либо управляющей логике, он просто захватывает 3 элемента U-238 и загружает их, когда они нужны. Выходной манипулятор должен быть отключен во время переработки , чтобы не удалить какие-либо элементы катализатора. Манипулятор для утилизации должен выводить ровно 40 U-235, а также 2 U-238. Манипулятор для переработки получает постоянный сигнал U-238, что вносит его в черный список. Он начинает вынимать U-235 и каждый раз увеличивает счетчик на полученное количество. Манипулятор также получает постоянный сигнал -39 U-235, который не влияет на фильтр. В конце концов, манипулятор будет считывать 40 U-235 с зеленого провода и -39 U-235 с красного провода. Теперь он видит положительное общее количество U-235, и, поскольку U-235 находится раньше в списке сигналов, он имеет приоритет над сигналом U-238. Теперь манипулятор заносит U-235 в черный список, что означает, что он переключается на извлечение двух предметов U-238. Это делает две вещи: очищает счетчик и запускает манипулятор вывода, которому теперь ничего не остается, кроме как вынуть оставшийся U-235. 2 переработанных предмета из U-238 будут вставлены в начале следующего цикла. Переработка U-238 не требует какой-либо дополнительной логики, поскольку входной манипулятор ограничен максимум 3 предметами, оставляя 2 других места для переработки урана.
Заключение
Каждый из приведенных примеров может быть улучшен и конкретизирован в соответствии с потребностями пользователя. Иногда это можно сделать с помощью базовой математики и логики, а иногда нужно добавить еще пару базовых модулей. Например, вы можете добавить второй счетчик в контур обогащения, чтобы предотвратить переполнение и остановку центрифуги, если во входном потоке присутствует U-235.
Обучение: Руководство по комбинаторам
Руководство для продвинутых, предполагающее базовое понимание логических схем. Охватывает более сложные темы, такие как SR-триггеры, ячейки памяти и таймеры. Начинающим, прежде, необходимо изучить Обучение: Руководство по логической сети и Логическая сеть.
Contents
Память
Для сохранения некоторого числа для последующего использования, например, в таймере или более сложной схеме, необходимо соединить вход и выход сравнивающего комбинатора и для любого канала (или всех сразу) настроить условие "> 0". Т.о., передавая значение с выхода на вход, комбинатор сохраняет его до тех пор, пока на в входах не появится какой-либо сигнал.
Любой, ненулевой сигнал на входе, соответствующий условию в комбинаторе, создает простейший таймер. Сохраненное число инкрементируется на каждом такте на значение входного сигнала. Импульсный сигнал на входе, инкрементирует сохраненное значение один раз. Сброс до нуля происходит лишь в том случае, если не выполняется условие либо, когда на входе возникает импульсный сигнал с таким же, но отрицательным значением.
Свежие записи
Рубрики
опубликовали pocarski, T-A-R, stringweasel, Nanogamer7, Conor_, Therenas, Firerazer
Содействие
Факторио как сделать таймер
Эта публикация удалена, так как она нарушает рекомендации по поведению и контенту в Steam. Её можете видеть только вы. Если вы уверены, что публикацию удалили по ошибке, свяжитесь со службой поддержки Steam.
Этот предмет несовместим с Factorio. Пожалуйста, прочитайте справочную статью, почему этот предмет может не работать в Factorio.
Этот предмет виден только вам, администраторам и тем, кто будет отмечен как создатель.
В результатах поиска этот предмет сможете видеть только вы, ваши друзья и администраторы.
Установка/Сброс триггера
Допустим вы хотите, чтобы что-то установило триггер по достижению определенного количества каких-либо предметов, и оставался в этом состоянии, пока количество этих предметов не достигло другого значения, после чего бы триггер был сброшен. Для реализации подобной схемы, вам потребуется один сравнивающий и один арифметический комбинатор (для реализации мультиканальной схемы потребуется еще 2 сравнивающий и один постоянный комбинатор).
Установите первый сравнивающий комбинатор с условием, при выполнении которого на выход подается 1. Затем соедините выход сравнивающего комбинатора со входом арифметического и умножте его на разницу между значениями устанавливающего и сбрасывающего триггер. Обратите внимание, что на выходе арифметического устройства выбран тот же канал, что и на сравнивающем комбинаторе. Теперь соедините выход арифметического комбинатора со входом сравнивающего. Это число будет добавлено к изначальному входу.
Аналогичная схема, но для резервирования пара детально описана здесь: Обучение: Руководство по логической сети.
Виртуальные сигналы
В дополнение к стандартным сигналам, в Factorio существуют дополнительные сигналы, не представляющие какие-либо предметы из игры. Вместо этого, они позиционируется как определяемые игроком сигналы — иначе говоря, их значение определяется тем смыслом, который заложил в него сам игрок. На текущий момент существует 48 виртуальных сигналов:
- 26 букв английского алфавита (A-Z) и 10 цифр (0-9);
- 9 цветов: красный, зеленый, синий, желтый, пурпурный, голубой, белый, серый и черный;
- 3 иконки: зеленая галочка, информационная буква 'i' и маленькая белая точка.
Логические сигналы
Помимо описанных, в игре есть три дополнительных виртуальных сигнала, известные как логические сигналы. Они отличны от других сигналов тем, что не могут отсылаться в сеть, вместо этого они дают дополнительные возможности комбинаторам. Иными словами, логические символы представляют собой метасимволы, которые являются специальными сигналами, представляющие собой "ноль и более" произвольных сигналов вместо представления одного дискретного сигнала.
Метасимвол "Все"
Метасимвол Все используется в сравнивающем комбинаторе. Его поведение зависит от того, используется ли он на входе или на выходе:
Когда метасимвол Все используется на входе, он может пониматься как логическое "И" или квантор всеобщности. На выходе, он подобен 'эхо' входного сигнала.
Примечание: может использоваться на выход только в том случае, если на входе не используется метасимвол Каждый.
Метасимвол "Любой"
Метасимвол Любой тоже используется в сравнивающем комбинаторе, но только на вход.
Представляет любой, хотя бы один входной сигнал и возвращает "истина", если он удовлетворяет условию. Если ни один из сигналов не удовлетворяет условию или на входе нет сигналов, возвращает "ложь". Метасимвол Любой может пониматься как логическое "ИЛИ" или как квантор существования.
Метасимвол "Каждый"
Метасимвол Каждый используется в сравнивающем и арифметическом комбинаторе. Поведение этого метасимвола несколько отлично от поведения предыдущих: он выполняет функцию комбинатора над каждым сигналом в отдельности. То, как он применяется, зависит от конкретной функции комбинатора и типа комбинатора. Применяется он на входе и на выходе, но только тогда, когда используется и на входе.
В сравнивающем комбинаторе, при использовании метасимвола на входе, возвращается каждый входной сигнал, удовлетворяющий условию комбинатора. В зависимости от того, используется ли метасимвол Каждый только на входе или на входе и выходе одновременно, результат на выходе комбинатора будет разным:
В арифметическом комбинаторе, назначенная операция применяется для каждого входного сигнала и, аналогично сравнивающему комбинатору, возвращаемый сигнал зависит от, того, применяется ли метасимвол только на входе или на входе и выходе одновременно:
Как видно, метасимвол Каждый более сложный чем два предыдущих, однако при этом он является более полезным.
Изолятор и устройство стробирования
Арифметический комбинатор с настройками — (вход: Каждый + 0; выход: Каждый) — представляет собой изолятор или устройство для развязки сетей. Оно может использоваться для замены одного цвета провода на другой, предотвращая проникновение в сеть нежелательных сигналов из схемы после комбинатора.
Сравнивающий комбинатор с настройками — (вход: сигнал с выхода > сигнала на входе; выход: Все) — действует как изолятор, пока верно заданное логическое условие. Таким образом, это устройство позволяет фильтровать и стробировать входные сигналы. С помощью стробирующего устройство можно последовательно опрашивать удаленные хранилища ж/д станций, что бы включать только нужные станции.
Базовый таймер
Для конструирования базового таймера необходимо соединить вход и выход комбинатора, что приводит к увеличению значения на каждом такте. Использовать можно как арифметический, так и сравнивающий комбинаторы.
Арифметический комбинатор просто заводится сам на себя, однако потребуется дополнительная схема для сброса таймера.
Для самосбрасывающегося таймера нужен всего лишь один сравнивающий комбинатор с соединенными входом и выходом и условием "меньше чем" (сигнал со входа передается на выход). Поставив на вход постоянный комбинатор, каждый такт таймер будет инкрементироваться на значение указанное в постоянном комбинаторе до тех пор, пока не достигнет значения в условии, после чего на выходе образуется 0 и цикл начнется заново.
Таймер всегда начинает свою работу не с нуля, а с предустановленного в постоянном комбинаторе числа. В арифметическом комбинаторе стартовое значение можно изменять, однако нужно помнить, что его выходы обрабатываются на такт позже.
Читайте также: