Логика в StarMade. Механики логики. Примеры логических схем и механизмов.

    Тема в разделе "FAQ, руководства и мануалы", создана пользователем SerMax, 9 Декабрь 2019.

    1. SerMax

      SerMax Новый участник

      Регистрация:
      26 Октябрь 2018
      Сообщения:
      6
      StarMade радует нас разнообразием механик, наиболее интересные из которых представлены логическими блоками. В игре реализована полная Тьюринговая логика, а также ряд игровых логических механик.

      1. Основы логических механик.

      1) Состояния блоков.
      Блоки могут находиться в разных состояниях и это состояние сохраняется даже в чертежах (blueprints, BP). Некоторые блоки могут быть в состоянии «включено» или «выключено», логическая «1» и «0», «есть» сигнал и «нету» (модуль активации, беспроводной логический модуль (далее для простоты - модуль WIFI), модуль flip-flop), некоторым блокам для передачи логического сигнала необходимо условие, например, для рельс — проходящая через блок структура (док-модуль на ней) во время движения.

      2) Соединение логических блоков.
      В игре присутствует последовательность сигнала, т. е. 2 соединенных блока работают по схеме ведущий-ведомый (или главный-подчиненный или master-slave). Сигнал всегда идет в 1 сторону — от ведущего к ведомому, для этого в билд-моде (по-умолчанию клавиша Z) выбираем нужный нам ведущий главный блок клавишей С (блок будет обведен жёлтой рамкой) и подключаем все ведомые блоки клавишей V (будут отображаться с синей рамкой). Между блоками будет визуализирована (не у всех блоков) связь в виде переливающейся «трубы» от ведущего главного блока к подчиненным ведомым.. Также можно подключить блоки не входя в режим строительства, от лица «человечка» (игрока). Далее по тексту, мы будем употреблять фразу «[название блока А] залинкуем\линкуем с [название блока(ов) В], что с устоявшегося в игре жаргонного будет означать “выбираем ведущим [блок А] клавишей С и соединяем с [блоком(ами) B] нажав на них клавишу V”, таким образом, у блока А есть ИСХОДЯЩИЙ сигнал к блоку(ам) В, а у блока(ов) В — ВХОДЯЩИЙ сигнал от блока А. Соединить 2 логического блока можно только на одной структуре (корабль, станция, планета, астероид), чтобы дать сигнал на рядостоящую или пристыкованную структуру используйте беспроводной модуль (WIFI).

      2. Виды логических блоков.
      logic1.jpg

      1) Логические переключатели.
      Блоки, которые текстурой визуализированы для использования в качестве рычагов, кнопок, подходят в интерьере.

      - Кнопка» и малая кнопка.
      Блок, при входящем сигнале дает кратковременный (0.5 сек) сигнал «включено», в остальное же время блок находится в состоянии «выключено». «Малая кнопка» отличается от обычной лишь тем, что является «полублоком» и не визуализируется «трубой» при линке с другими блоками, что делает ее удобной при использовании в дизайне (чтоб «труба» линка блоков не отображалась и не мешалась).

      - Модуль активации и малый модуль активации.
      Блок, «переключатель», который меняет состояние «включено» и «выключено» при его активации от входящего сигнала. Малая версия, аналогично малой кнопке, также не отображает «трубу» линка блоков.

      - Беспроводной логический модуль или WIFI.
      Модуль, работающий как модуль активации, но способен передавать сигнал между разными структурами. Просто соедините 2 WIFI модуля на разных структурах в режиме человечка (C-V). Их соединение не сохраняется в чертежах и после постройки надо будет снова линковать.

      - Модуль удаленного доступа.
      Модуль, работающий как модуль активации, но служащий для переключения изнутри кабины пилота. При его наличии будет отображаться в списке подсистем\вооружения (клавиша G), просто перетащите на хот-кеи панели управления судном. Также, нажав R, можно отредактировать описание, что очень полезно при нескольких таких блоках на судне и на панели быстрого доступа (хот-баре судна).

      2) Блоки Тьюринговой логики.

      - Сигнал «И».
      Блок, который включается (дает исходящий сигнал) тогда, когда все залинкованные блоки дают входящий сигнал.

      - Сигнал «НЕ».
      Блок, который включается (дает исходящий сигнал) тогда, когда залинкованные блоки не дают ни один входящий сигнал.

      - Сигнал «ИЛИ».
      Блок, который включается (дает исходящий сигнал) тогда, когда хотя бы один залинкованный блок дает входящий сигнал.

      - Модуль Флип-Флоп.
      Механика подобна модулю активации - «переключатель». Модуль переключается между состояниями «включено» и «выключено» при поступлении входящего сигнала.

      - Модуль задержки сигнала.
      Блок, который переходит в состояние «включено» при подаче входящего сигнала. Длительность действия — 0.5 сек, потом блок дает исходящий сигнал и выключается.

      3) Вспомогательные логические блоки и триггеры.

      - Рандомайзер.
      Название говорит само за себя. При поступлении входящего сигнала блок
      рандомно переключается или в состояние «включено», или в «выключено».

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

      - Сенсор (компаратор, «сравниватель»).
      Блок, который сравнивает состояния некоторых блоков и при их совпадении дает исходящий сигнал на блок активации, который гранью прилегает к нему, но само сравнение происходит тогда, когда дается входящий сигнал на сам сенсор. Например, можно сравнить содержимое дисплеев.

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

      - Триггер-зона.
      Вспомогательный блок для триггер-зона контроллера, невидим в обычном режиме и видим в режиме строительства.
       
      #1 SerMax, 9 Декабрь 2019
      Последнее редактирование: 9 Декабрь 2019
    2. SerMax

      SerMax Новый участник

      Регистрация:
      26 Октябрь 2018
      Сообщения:
      6
      4) Взаимодействующие с логикой блоки.

      - Фонари.
      Все фонари можно включать и выключать, достаточно залинковать модули логики с ними и сигнал от них будет их включать\выключать.

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

      - Гравиблок.
      Блок гравитации включает гравитацию на структуре. Подобно блоку активации, входящий сигнал меняет состояние. Важно: одновременно к одному блоку гравитации может быть подключен только один логический блок!

      - Рельсовый контроллер скорости.
      Необходим для регулирования движения структур по рельсам. Залинкованные с ним модули активации управляют скоростью движения, соотношение включенных с выключенными задает точную скорость. Сам факт подключения контроллера (с минимум 1 работающим блоком активации) к рельсам увеличивает скорость в два раза.

      3. Рельсовые механики. Рельсовая логика. Дисплеи как элементы логики.
      logic2.jpg

      1) Виды рельс.

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

      - Рельсовая стрела.
      Есть 2 вида — по часовой и против часовой стрелки. При прохождении структуры по ним, они разворачивают на 90 гр. ее и аналогично обычным рельсам, могут давать сигнал. Направление на них указывает, в какую сторону «поедет» структура после разворота.

      - Рельса Загрузки.
      Аналогична обычным рельсам. Имеет свойство загружать пристыкованную структуру
      ресурсами залинкованных с ней хранилищ.

      - Рельса Разгрузки.
      Аналогична рельсе загрузки, но действует противоположно — выгружает с залинкованных с док-модулем пристыкованной структуры хранилищ блоки и ресурсы и складирует их в залинкованные хранилища своей структуры.

      - Рельсовая ось турели.
      Рельса для свободного движения пристыкованной оси вращения турели. С логикой практически не используется.

      - Точка парковки.
      Невидимая рельса, необходима для автоматической парковки кораблей во флоте (через команду флота) к материнской структуре.

      - Рельса парковки.
      Невидимая рельса, аналогичная стандартной.

      - Рельса катапульты.
      Невидимая рельса, при движении по ней пристыкованной структуры отсоединяет док-модуль и многократно ускоряет, «катапультирует».

      - Док-модуль.
      Модуль, который дает возможность пристыковать структуру к рельсам другой (материнской) структуры. При стыковке направление на док-модуле будет совпадать с направлением рельсы.

      2) Рельсовые механики.

      - Механика «подмены».
      Если к грани кнопки\модуля активации поставить рельсу, а саму кнопку\модуль активации залинковать с другой(ими) рельсой(ами), входящий сигнал в кнопку\модуль активации меняет направления всех залинкованных рельс на то, которое имеется у прилегающей рельсы.

      - Механика регулирования скорости.
      Рельсовый контроллер рельс с залинкованными модулями активации соотношением включенных к выключенным задает скорость движения. К одному контроллеру можно соединить минимум 1 блок активации. Все выключенные блоки активации останавливают движение по залинкованным рельсам, все включенные — ускоряют в 2 раза.

      - Механика отстыковки.
      Если дать входящий сигнал в рельсу, она отстыковывает пристыкованную структуру.

      - Механика регулирования поворота стрел.
      Если рельсу стрелы залинковать с модулями активации, каждый включенный модуль дает + 45гр. К вращению структуры на стреле при прохождении пристыкованной структуры по ней или при подмене.

      - Механика Рельсовых Расширителей массы.
      На материнской структуре двигаться по рельсам (и крутиться на рельсовых стрелах и турельных осях) можно пристыкованным структурам в сумме не более 50 ед. массы. При превышении лимита массы пристыкованные структуры будут двигаться со скоростью 5% от первоначальной. Чтобы иметь возможность не терять скорость движения\вращения, необходимо разместить блоки Рельсовых Расширителей массы. Проверить лимит массы можно через список систем структуры (клавиша Delete).

      3) Дисплеи как элементы логики.

      1) Механика подмены текста.
      Аналогично механике подмена рельс, кнопка или модуль активации меняет текст залинкованного дисплея на текст дисплея, который гранью прилегает к нему.

      2) Теги.
      Теги дисплея, при наличии их в тексте дисплея, меняет их на текущие показатели структуры. Например, тег [speed] покажет реальную скорость структуры. Больше тегов можно узнать нажав «помощь» во время печати текста на дисплее.
       
      #2 SerMax, 9 Декабрь 2019
      Последнее редактирование: 9 Декабрь 2019
    3. SerMax

      SerMax Новый участник

      Регистрация:
      26 Октябрь 2018
      Сообщения:
      6
      4. Примеры логических схем и механизмов.

      1) Двери и шлюзы.
      Механизмы и схемы дверей\шлюзов достаточно просты, если понять концепцию используемых механик: такой механизм состоит из 3 частей: 1 ч. - переключатели (дают сигнал в логическую схему), 2 ч. - сама логика переключения состояний и 3ч. - собственно, блоки или структуры дверей. Переключатели могут быть реализованы как простыми кнопками\модулями активациями, так и более сложными схемами - детектор движения, входящий сигнал, например, от рельсы после стыковки 2 структур или вбивания пароля на дисплее. Логика переключения состояний (открыть\закрыть\т.д.) тоже может быть реализована по-разному: просто логическая развязка 2-3 лог. блоками, или таймер, или рельсовая логика для раздвижных дверей. И, наконец, сами двери могут быть просто блоками, например, из бронедверей или пристыкованными на рельсы структурами.

      - Простая дверь. (гифка будет позже)
      Ставим блоки плекс-дверей (стеклянных дверей, силовых полей или бронедверей). С каждой стороны двери ставим по блоку активации (или малые блоки активации). Линкуем первый блок активации со вторым на противоположной стороне двери, а второй с первым и массивом блоков дверей. Таким образом, при нажатии на первый блок активации с одной стороны он активирует второй, а второй уже закрывает\открывает массив дверей и, заодно, меняет состояние первого для синхронизации индикации вкл\выкл.
       
      #3 SerMax, 9 Декабрь 2019
      Последнее редактирование: 9 Декабрь 2019
    4. SerMax

      SerMax Новый участник

      Регистрация:
      26 Октябрь 2018
      Сообщения:
      6