Программируемый динамик factorio как работает

Обновлено: 05.07.2024

Factorio - 2D-песочница в которой вам предстоит подготовить чужую планету для комфортного проживания земных жителей! Вы будете добывать ресурсы, исследовать технологии, строить инфраструктуру, автоматизировать производство, и сражаться с чужеземными врагами. Используйте воображение, для проектирования своих фабрик, комбинируйте простые элементы для создания сложных структур. Разумно применяйте навыки менеджмента, чтобы все это стабильно функционировало.

Запрещены ссылки на сторонние ресурсы, не относящиеся к игре и/или имеющие пиар подтекст.

Запрещены ссылки на стримы в комментариях, особенно в целях рекламы/пиара.

Случай в офисе

У нас сегодня в офисе раздался хлопок. Как потом выяснилось, это подорвался пердак одного из наших логистов, который давно просил новый монитор, а сегодня при получении аванса обнаружил что его стоимость вычли из его зарплаты.

Бухгалтер (недоумевая) - А чего ты кричишь то? Будешь увольняться, заберешь себе.

Действительно

Отзыв на электрический чайник

Действительно Отзыв, Яндекс Маркет, Чайник

Логистическая сеть

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

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

Логическая сеть

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


Устройства

Условия могут устанавливаться по логической (сигналы по красному и зеленому проводам суммируются) и логистической сетям, которые складываются по логическому И.

Ниже представлены устройства, которые могут быть подключены к логической сети.

  • Импульсный режим: Сигнал, длительностью 1 тик, посылается, когда предмет входит в конвейер.
  • Непрерывный режим: Сигнал посылается пока предмет проходит конвейер.
  • Импульсный режим: Сигнал, длительностью 1 тик, посылается, когда предмет взят.
  • Непрерывный режим: Сигнал посылается пока предмет удерживается манипулятором.

Это факт

Это факт

Быстрорастущая

Быстрорастущая


Применение

Транслируемая информация

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

Каналы отделены друг от друга, благодаря чему через сеть можно одновременно передавать информацию об каждом предмете и жидкости в игре, а так же виртуальные сигналы (цифры 0-9, буквы A-Z, и 9 разных цветов). По всем неиспользуемым каналам передается значение 0.

Если источников информации, использующие один и тот же канал, несколько, то их значения складываются: две цистерны, содержащие 1000 единиц нефти и подключенные к одной сети, по каналу "нефть" передают значение 2000.

Все провода одного цвета, соединенные между собой, функционируют как одна сеть, т.е. сигналы будут распространятся по всем проводам. Например, если два красных провода подключены ко входу комбинатора, то они принимают сигналы друг от друга. Это может привести к обратной связи (смотри ниже арифметический комбинатор), если не принять необходимые меры.

Значения представлены целочисленным знаковым 32 битным числом, т.е. от -2147483648 до 2147483647 включительно, в дополнительном коде. При переполнении, числа оборачиваются, т.е. 2147483647 + 10 станет -2147483639. При вводе числа в комбинатор может показаться, что оно превышает предел 32-битного числа, однако, когда графический интерфейс будет закрыт, число переполнится. [1] (англ.)

Управляемые устройства

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

Приемники суммируют все сигналы каждого подключенного провода, причем и красного, и зеленого. Например, если на манипулятор по красному проводу приходит значение 20 по каналу "медные пластины", а по зеленому - 10, то значение сигнала на этом же канале для манипулятора будет равно 30.

Несколько проводов одного цвета будут передавать и суммировать свои сигналы. Для примера, 3 ящика A, B и C, соединенные одной линией (A -> B -> C) зеленым проводом, будут передавать сумму содержимого в ящиках. Однако, если красный провод подключен к ящику A и манипулятору, то манипулятор будет получать информацию о содержимом только ящика A.

Руководства

  • Обучение: Руководство по логической сети - Туториал для начинающих, которые хотят разобраться и начать использовать логические сети.
  • Обучение: Руководство по комбинаторам - В основном текстовый, но детальный туториал.

Usernm's notes

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

  1. Показывать настраиваемые оповещения в интерфейсе и проигрывать звуковые оповещения в зависимости от логических условий.
  2. Создавать простые мелодии, управляя проигрыванием семплов с помощью логики.




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


Теперь к веселому. Мы хотели чтобы динамик мог проигрывать простые мелодии. Посыпались сумасшедшие идеи и все это разрослось до полноценной DAW системы с синтезаторами и полным контролем над происходящим. Но все это должно было просто управляться через логическую сеть без постройки компьютеров на комбинаторах. В итоге я сделал чтобы динамик работал как пошаговый секвенсор. Если мы посылаем импульс с сигналом по логической сети, семпл начинает проигрываться, в противном случае ничего не происходит. Длина семпла или эффекты не настраиваются, но в итоге динамиком легко управлять через логистическую сеть.

Довольно слов. Вот демо песни из уже добавленных семплов. Все что вы слышите сделано в фактории. Можете самостоятельно разобраться как именно генерируется мелодия.

В логической сети будут и другие улучшения в версии 0.15, но об этом как-нибудь в другой раз.

Борьба с багом при загрузке карты (техническая часть поста)

Сколько я помню в нашем загрузчике карты (среди других проблем) была проблема, когда подгрузка карты зависает на 100%. Проблема очень редкая и случайный человек решил сообщить о ней. Мы могли продолжать забивать на нее, перекидывая ее в "ожидающие" или в "дубликаты" или в "магия нулей и единиц", но через несколько месяцев другой человек снова сообщил о ней. Я обычно зацикливаюсь на этих редких "нерешаемых" багах (падение обработки звука, проблема с производительностью вертикальной синхронизации, не пиксельно точная отрисовка спрайтов), так что я начал разбираться с проблемой в загрузчике карт.

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

Похоже проблема решается если я добавлю один байт случайных данных в пакет, но в первую очередь я хоче знать почему это происходит. Если вы знаете что происходит или знаете кого-то, кто может знать - не стесняйтесь просветить нас. :)
Это показывает насколько сложно сделать, чтобы софт "просто работал" у всех. Всегда найдется 0,1% дюдей, которые сталкиваются с проблемами, которые никогда не происходят у остальных. Большое спасибо admalledd, dadymax, Rippie и другим форумчанам, которые помогли или продолжаются помогать с расследованием этой странной проблемы.

Еще одна хорошая новость, Rseding91 тоже разбирался с кодом загрузчика карт, чтобы разобраться с проблемой и в итоге нашел медленный код, который замедлял загрузку из-за поиска по хард диску. Он улучшил код и теперь должен быть заметен прирост скорости при передаче карт на высокоскоростных подключениях.

Contents

Одноклассник в Новосибирске воткнул девочке в глаз линейку на 6 мм. Буллинг в школе

Семиклассник в Новосибирске острой линейкой проткнул глаз однокласснице. Девочка оказалась в больнице, ей сделали операцию, предстоит еще одна. Речь о полном восстановлении зрения не идет. Мать школьницы рассказала, что дочку травили в учебном заведении, но учителя лишь предлагали перейти на домашнее обучение.

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

Ксюша подняла ее, хулиган выхватил еще одну. Видя, что девочка не реагирует, он окликнул ее и с силой швырнул угольник. Он на 6 миллиметров вошел в глаз.

Мама рассказала, что у дочки поврежден хрусталик, этим глазом она не видит вообще. Окончательный вред здоровью установит экспертиза после еще одной операции.

Женщина рассказала, что эти одноклассники давно терроризировали ее дочь. Но педагоги гимназии номер 7, по адресу Зорге 42а, не предпринимали ничего, а только предлагали перейти на домашнее обучение.

Один из обидчиков Ксюши перешел в другую школу. Но он чувствует себя уверенно, потому что понимает: в 13 лет отвечать по закону за сделанное не будет.

Когда Ксюша была в больнице, парни оскорбляли ее в WhatsApp и в группах ВКонтакте. В гимназии № 7, где учатся все подростки, никаких комментариев не дают.

Жадный таксист

Жадный таксист


Комбинаторы

Комбинаторы совмещают в себе возможности приемников и передатчиков и дают возможность проводить сложные операции в логической сети.

    способен передавать до 20 значений по любым каналам в сеть, к которой он подключен (на данный момент, нельзя указать на каком канале должен быть сигнал - красном или зеленом, поэтому, в случае необходимости, используйте два комбинатора). Вы можете использовать канал любого предмета и любого виртуального сигнала.
    • Примечание: использование двух из 20 слотов для формирования постоянного сигнала на одном и том же канале, равнозначно одному слоту со значением их суммы.
    • Подключение: арифметический комбинатор подключается к красной или зеленой логической сети со стороны входа (контакты установлены на корпусе и выглядят как автомобильные свечи зажигания); результат арифметической операции передается по заданному каналу на выход комбинатора (представляет собой провода несколько вынесенные за корпус комбинатора).
    • Обратная связь: важно чтобы входная сеть и выходная не были одной и той же сетью. При соединении входа и выхода комбинатора, образуется петля обратной связи. К примеру, прибавляя 1 к значению медных пластин и передавая результат по тому же каналу, в случае соединения входа и выхода, образуется бесконечный цикл (положительная обратная связь), в котором выходное значение быстро растет. Скорость роста значения определяется [[Game-tick/ru||игровым тиком]. Эта особенность комбинаторов вкупе со сравнивающим комбинатором может использоваться для создания электронных часов, ворот и других систем. Более подробно тут: Обучение: Руководство по комбинаторам.
    • Сигнал "Каждый": арифметический комбинатор может использовать сигнал "Каждый" на вход и на выход, благодаря которому можно произвести арифметическую операцию сразу над всеми не нулевыми сигналами, а результат передать на выход. Используя сигнал "Каждый" на вход и выход и не изменяющую операцию (такую как прибавление нуля), можно получить эквивалент "однонаправленного" провода: вся информация на входе передается на выход, а обратно - нет.
    • Мульти-сеть: арифметический комбинатор может объединять красную и зеленую сети на входе, передавая на выход их сумму.

    Виртуальные сигналы


    Виртуальные сигналы - это специальные символьные сигналы. За исключением трех логических сигналов, виртуальные сигналы не отличаются от сигналов предметов.

    Всего виртуальных сигналов 48: числа от 0 до 9, буквы от A до Z, иконки галочки и инфо, точка, а так же цвета: красный, зеленый, синий, желтый, пурпурный, голубой, белый, серый и черный.

    Логические сигналы


    Три виртуальных сигнала не являются сигналами в привычном понимании - они представляют собой логические операции над несколькими сигналами.

    Сигнал все используется в левой части условия. Условие истинно тогда, когда оно выполняется для всех входных сигналов или на входе нет ничего. Все аналогичен квантору всеобщности.

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

    Любой

    Сигнал любой используется в левой части условия. Когда на входе нет ни одного сигнала, любой выдает ложь. Условие истинно, когда оно выполняется по крайней мере для одного сигнала. Любой аналогичен квантору существования.

    Каждый

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

    Как продавцы на Вайлдберриз борются с негативными отзывами

    Жена заказала себе на Вайлдберриз защитное стекло на айфон, но приклеить его не удалось из-за брака. Оставила отзыв, но продавец удивил ответом:)

    З.Ы. Отмечу, что стёкла на разные телефоны она клеила очень много раз, получалось всегда отлично)

    Как продавцы на Вайлдберриз борются с негативными отзывами Wildberries, Обман, Отзыв, Покупка

    В Factorio добавят спикер. У меня всё.

    В Factorio добавят спикер. У меня всё. Factorio, Спикер, Пятничные факты, Видео, Gravity Falls

    Запрещены ссылки на стримы в комментариях, особенно в целях рекламы/пиара.

    Запрещено разжигание межнациональной розни.

    Господи, это офигенно.

    уже вижу задротов, делающих целые симфонии из этого

    Интересно будет построить 1 полный цикл на производство 1й ракеты без задержек, пустить точно отмеренное количество ресурсов в систему, определить на каждый шаг обработки какой нибудь звук, запустить и слушать.

    Мда в теории звучит легко.

    но тонкая настройка и расчёты займут много времени

    Задроты. Задроты повсюду.

    Иллюстрация к комментарию

    Круто, ждем, хрен что сыграем, но побаловаться можно.

    Парни, а ктонить сделал достижение "Недотепам здесь не место"? Поделитесь мыслями, как?

    Чтобы получить эту ачивку, рекомендую при создании карты выставить максимальную генерацию ресурсов в одном месте. Это позволит в дальнейшем не отвлекаться на строительства дополнительных заводов. Еще не помешает сразу распланировать порядок строительства. У меня к примеру все комплексы расписаны, к примеру уже по готовой своей схеме делаю производство пластика, бутылочек и т.д (не забываем про чертежи). Вот именно так необходимо и тебе все подготовить.

    Не поверишь, но ракету запустил с первой попытки в 7:59, в самую последнюю минуту =) Правда, несколько раз приходилось загружать старый процесс игры, дабы внести корректировки, которые всплывают поздней.

    Имеет смысл ждать тогда 0.15, когда введут перенос блюпринтов из игры в игру

    не понял, и как эт работает?

    Сложно. Поймут только задроты факторио овер9000 уровня

    не, я о том, что спикер по разному реагирует на разные предметы на конвеере?

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

    Собственно я не переводил еще FFF. Если трата времени на перевод будет не напрасна (в плане того что хотя бы почитают, а не закидают сцаными тапками) то можно было бы опубликовать постом.

    Только показываем

    Только показываем

    С двумя лучше

    С двумя лучше Картинка с текстом, Юмор, Майк Тайсон, Ориентация, Повтор, Комментарии

    Физическая структура сети

    Логическая сеть состоит только из тех устройств, которые соединены проводом одного цвета. Провод может быть натянут непосредственно между устройствами или посредством опор ЛЭП. Длина провода ограничена предыдущим подключением.

    Важно: каждый установленный провод создает отдельную сеть. К примеру, вполне возможно иметь 4 сети на основе красного провода и 3 на основе зеленого. Если красный и зеленый провод проходят через один и тот же столб ЛЭП или устройство, то они все равно остаются отдельными сетями. Однако, в случае проводов одинакового цвета, провода соединятся и образуют одну сеть. Используйте разные цвета проводов для разделения сетей находящихся в непосредственной близости друг от друга.

    • Для соединении сигнальных или силовых проводов, кликните на объект, а после на основание опоры ЛЭП.
    • Для демонтажа сигнальных или силовых проводов, поместите провод того же цвета поверх существующего соединения. Демонтированный провод не возвращается.
    • Для удаления всех соединений с опоры, нажмите на нее, удерживая Shift. Первый клик уберет все силовые провода, а второй - сигнальные. Демонтированные провода не возвращается.
    • При подключении к арифметическому комбинатору или сравнивающему комбинатору, позаботьтесь о том, чтобы подключить провод к правильной стороне входа или выхода. Для этого используйте режим "дополнительной информации" (Alt), показывающий ориентацию комбинатора.
    • Наведя курсор на устройство, все подключения подсветятся.
    • Наведя курсор на опору ЛЭП, которая является частью логической сети, будут отображены ее сигналы. При наведении курсора, некоторые устройства, такие как комбинаторы, отображают и входные, и выходные сигналы.

    Читайте также: