Overview
Это руководство поможет тем, кто только начинает играть в Stormworks, а так же поможет всем, кто еще не разобрался со всеми хитросплетениями местной логики и механики.
Основы логики
Для работы с логическими элементами нам понадобится три вещи: непосредственно логические элементы, о которых будет рассказано ниже; и два инструмента:
Logic tool(Инструмент логики)
и Select tool (Инструмент выбора)
При выборе Logic tool мы видим разные кружочки. Они могут быть трех цветов(красный, зеленый и оранжевый) и двух видов (точка и кольцо). Все это входы и выходы различных сигналов. При наведении курсора на них видны подписи, серые надписи – название элемента, оранжевые – название входа. Соединение осуществляется перетаскиванием мышкой “провода” с одного кружочка на другой.
Подробнее о каждом из них:
Точка – выход сигнала. Сигнал может идти от нее к одному или нескольким входам.
Кольцо – вход сигнала. Может принимать сигнал только с одного выхода.
Нужно сказать, что порядок, в котором вы перетягиваете связи для сигналов, неважен, то есть можно тянуть сигнал от кольца (входа) к точке(выходу), но сигнал все равно пойдет от выхода к входу. Об этом не стоит забывать, если вы хотите, чтобы ваша система работала.
Далее о цветах:
Красный – непосредственно логические сигналы. Логических сигналов всего два это TRUE и FALSE, иначе говоря ВКЛ и ВЫКЛ.
Зеленый – сигналы, передающие число.
Оранжевый – сигналы, передающие мощность, пока что имеют всего два логических элемента, но практически в любой постройке они будут использоваться как связь между двигателем и движителем.
Select tool. При переключении на него становятся видны только те элементы, в которых можно что-то изменять. Это, например, кресла, где можно добавлять подписи к кнопкам и действиям; это, собственно, сами кнопки, им тоже можно добавлять подписи; также некоторые логические элементы имеют изменяемые значения.
На этом переходим к следующему разделу.
Логические элементы
Логические элементы это блоки, которые каким-либо образом меняют сигналы, описанные выше. Находятся они в разделе Logic.
Подробнее о каждом из них:
Abs(Математический модуль) получая на вход отрицательное число, делает его положительным, положительные числа и 0 пропускаются без изменений.
Add(Сложение) принимает на вход два числа, на выход дает их сумму.
And(Логическое И) принимает на вход два логических сигнала, дает на выход ВКЛ тогда и только тогда, когда оба сигнала на входе ВКЛ, во всех остальных случаях на выход дает ВЫКЛ.
Blinker(Мигалка) принимает на вход логический сигнал, если на входе ВЫКЛ, то и на выходе ВЫКЛ, если на входе ВКЛ, то на выход дает попеременно ВКЛ и ВЫКЛ. Может настраиваться Select tool, Blink On duration – время, в течение которого дается ВКЛ, Blink Off Duration – время, в течение которого дается ВЫКЛ.
Capacitor(Конденсатор) – принимает на вход логический сигнал, через определенное время поступления сигнала дает на выход ВКЛ, при прекращении поступления сигнала на выходе так же ВКЛ, но лишь определенную продолжительность. Продолжительность настраивается Select tool: Charge time(время зарядки) – продолжительность сигнала, необходимая для поступления ВКЛ на выход. Discharge time (время разрядки) – продолжительность поступления ВКЛ на выход после прекращения сигнала на входе.
Если на вход подается ВЫКЛ или время поступления ВКЛ меньше настроенного, то на выход подается ВЫКЛ.
Clamp(Огрганичитель) принимает на вход число, если число входит в границы, указанные в модуле, то на выход оно подается без изменений. Если число больше верхней границы, то на выход подается число, равное верхней границе, если меньше нижней, то подается нижняя. Границы – это числа, настраиваются с помощью Select too: min value – нижняя граница, max value – верхняя. Пример: соединяем кресло пилота и руль через Clamp, устанавливаем нижнюю и верхнюю границу соответственно -0,5 и 0,5. Кресло может подавать сигнал от -1 до 1, но руль при этом сможет получать число лишь в пределах от -0,5 до 0,5.
Counter(Счетчик) на вход подается число, задающее скорость увеличения счетчика, на выход подается постоянно увеличивающееся число. Если на вход подано отрицательное число, на выход подается постоянно уменьшающееся число.
Counter(Ping-pong) (Счетчик Туда-сюда) работает аналогично счетчику, но число на выходе меняется с установленной скоростью в пределах от -1 до 1, по достижении границы счет идет в обратную сторону.
Delay(Задержка) на вход подается логический сигнал, на выход с установленной задержкой подается он же без изменений. Задержка настраивается с помощью Select tool. Если подача сигнала на входе прекращена до появления сигнала на выходе, то сигнал на выходе не появляется (прим. авт. По мне, работает через задницу).
Divide(Деление) на входы подается два числа, на числовой выход подается результат деления, на логический подается ВКЛ, если произошла ошибка деления(например делили на 0)
Exponent(Возведение в степень) – собственно возведение в степень, степень выбирается select tool, возводим в степень 0,5 – получаем квадратный корень. На данный момент не имеет особого смысла как отдельный модуль, потому что у нас есть
Function(1,3 input)(Функция) – блок, рассчитывающий значение по функции, заданной с помощью select tool. Имеет, соответсвенно, один или три входа. Список доступных функций и операций приведен в самом блоке.
Greater than(Больше чем) на входы подается два числа, если число А больше числа Б, то на логический выход подается ВКЛ, иначе ВЫКЛ.
JK FlipFlop см. SR Latch.
Less than(Меньше чем) на входы подается два числа, если число А меньше числа Б, то на логический выход подается ВКЛ, иначе ВЫКЛ.
Memory register(Ячейка памяти) на числовой вход подается число, которое требуется запомнить, если на логический вход Set подается ВКЛ, в таком случае на выход будет подано записанное число. Важно! Если на Set постоянно подается ВКЛ, то записанное число будет постоянно обновляться, нужно за этим следить. Обычно для работы этого модуля на вход Set подается кратковременный сигнал, например от Push button. Если на вход Reset подается сигнал ВКЛ, то записанное число сбрасывается на число по умолчанию. Значение по умолчанию (reset value) настраивается с помощью Select tool.
Modulo(Остаток от деления) на входы подаются два числа, на выход дается остаток от их деления.
Multiply(Умножение) на вход подаются два числа, на выход результат их умножения. Всегда важно помнить, что умножение на 0 в результате дает 0, и если что-то не работает там, где есть умножение, то начать проверку следует именно с него.
Not(Логическое НЕТ) на вход подается логически сигнал, на выход подается обратный сигнал, то есть на входе ВКЛ, на выходе ВЫКЛ и наоборот.
Number(Число) на выход постоянно подает число, указанное с помощью Select tool.
Numerical Inverter(Числовой инвертер) на выход получает число, на выход дает число с обратным знаком, то есть + меняет на -, а – на +. Если, например, рули вертятся в обратную сторону, то это можно исправить с помощью этого элемента.
Numerical junction(Числовая стрелка) на числовой вход подается число, если на логическом входе ВКЛ то на число без изменений подается на On path, если на логическом входе ВЫКЛ, то число подается на выход Off path.
Numerical switchbox(Числовой переключатель) на числовые выходы подаются два числа.
Если на логическом входе подан ВКЛ, то на выход подается число со вход First value(On), если ВЫКЛ, то со входа Second value (Off). Это один из самых часто используемых модулей, он позволяет с помощью кнопок, которые используют логические сигналы, управлять числовыми.
On Signal(Сигнал) постоянно подает на выход значение ВКЛ.
Or(Логическое ИЛИ) на входы подаются два логических сигнала. если хотя бы один из сигналов – ВКЛ, то на выход подается ВКЛ. Иначе говоря сигнал ВЫКЛ на выход подается только в том случае, если на оба входа подан ВЫКЛ.
PID Controller(Пропорционально-интегрально-дифференцирующий регулятор) позволяет плавно с необходимой точностью вывести объект на заданный параметр.
Подробнее: [link]
Push-to-toggle – модуль, принимающий на вход логический сигнал. При подаче на вход сигнала ВКЛ, сигнал на выходе сменит свое состояние.
Subtract(Вычитание) на вход подается два числа, на выход – результат их вычитания.
SR Latch, JK Flip-Flop SR Latch – простой переключатель в системе из пары Пуш кнопок и пары сигнальных ламп. нажали на первую кнопку – работает первая лампа (set-output), нажали на вторую кнопку – работает вторая лампа (reset-notoutput). защелка переводит импульс в постоянное значение. возможное использование: 1. простой двухкнопочный переключатель 2. автоматическое включение устройства по заданному условию с ручным сбросом.
JK Flip-Flop работает аналогично, разница в том, что при одновременной подаче сигнала на оба входа на выходах SR Latch пропадает сигнал, а на JK FF остается без изменений.
Treshhold gate(Порог) на вход подается число, если число входит в установленные границы, то на выход подается сигнал ВКЛ, иначе ВЫКЛ. Границы устанавливаются с помощью Select tool
Trigonometry(Тригонометрия) – синусы, косинусы и. т. д. Как и возведение в степень, полностью заменяется Функцией.
Up/Down(Вверх/вниз) на входы подаются два логических сигнала. Если сигнал UP ВКЛ, то число на выходе увеличивается, если сигнал Down ВКЛ, то уменьшается. Число меняется в пределах от -1 до 1. С помощью Select tool можно настроить скорость изменения.
Xor(Логическое исключающее ИЛИ) на выход даются два логических сигнала. На выход подается ВКЛ, если один из сигналов на входе ВКЛ. Если оба ВЫКЛ или оба ВКЛ то сигнал на выходе ВЫКЛ.
Дисплеи и датчики
Дисплеи и датчики (Displays and sensors) также работают с логической системой. Датчики это блоки которые собирают информацию и отдают ее; дисплеи, соответственно, принимают ее и показывают.
Начнем с датчиков:
Altimeter(Высотомер) – на выход дает число, равное высоте над уровнем моря, если мы утонули, или в подводной лодке, то высота, соответственно отрицательная.
Clock(Часы) – одновременно и датчик и дисплей. Как дисплей имеет логический вход Backlight(Подсветка) и отображает текущее время в формате стрелочных часов, как датчик имеет числовой выход. На выход подается число от 0 до 1 в зависимости от текущего времени, стоит помнить об этом. 0 это полночь. Для себя, если есть достаточно места, я обычно использую следующую схему: часы – умножение на 24 – числовой дисплей. В этом случае имеется некий суррогатный 24-х часовой формат времени, но в нем 100 минут. Из-за отсутствия целочисленного деления создать понятный нам формат времени крайне сложно.
Compass sensor(Компасный датчик) – одновременно и датчик и дисплей, логический вход аналогично часам. На выход подает число от -0,5 до 0,5, равное отклонению сенсора от заданного направления. Внимание, направление, от которого считается отклонение, устанавливается в редакторе, направление синей стрелки после установки блока должно совпадать с направлением белой стрелки, изображенной на самом блоке. В таком случае компас будет указывать на север. Схема: датчик – +0,5 – *360 – дисплей переведет показания датчика в градусы.
Distance Sensor(Датчик расстояния) – имеет числовой выход, на который подается расстояние от “считывающей головки” блока до ближайшего препятствия. Максимальная дальность действия – 250, если расстояние до препятствия больше, то блок все равно выдает 250. Неплохо подойдет в качестве глубиномера на надводных кораблях.
Fluid meter(Датчик уровня жидкости) – устанавливается в закрытый отсек, имеет два выхода: Fluid level (уровень жидкости(выхлопные газы и воздух здесь тоже жидкость)) выдает число, равное текущему количеству жидкости в литрах; и Fluid capacity – полный объем отсека, тоже в литрах.
GPS Sensor – имеет два числовых выхода, на которые подаются координаты сенсора Х и У. Числа могут быть достаточно большими, поэтому для отображения координат на числовых дисплеях нужно будет правильно их настроить, о чем будет рассказано ниже.
Humidity sensor(Датчик влажности) – на выход подает число от 0 до 1, соответствующее текущему уровню тумана.
Linear speed sensor(Датчик линейной скорости, спидометр) – в зависимости от настройки режима работы (настраивается select tool) может выдавать на выход числа, соответсвующие следующим скоростям:
Absolute – абсолютная скорость, скорость любого движения.
Directional – скорость по направлению датчика
Horizontal – горизонтальная
Vertical – вертикальная
Rain sensor(Датчик дождя) – на выход подает число от 0 до 1, соответствующее текущему уровню дождя.
Tilt sensor(Датчик наклона) – на выход подает число от -0,5 до 0,5 равное отклонению относительно оси, указанной синей стрелкой.
Wind sensor(Датчик ветра) – выдает на выход два числа: направление ветра и скорость ветра. Если датчик находится в движении, то безбожно врет, гуглите в воркшопе absolute wind sensor.
Дисплеи. Все дисплеи кроме звуковых, имеют логический вход Backlight(Подсветка) и поле для ввода имени дисплея. Не забывайте всегда писать имена, так и сами не запутаетесь и другие люди смогут разобраться что за что отвечает.
Artificial horizon(Искусственный горизонт) – nuff said
Buzzer(Пищалка) – имеет логический вход, если на вход подан ВКЛ, то издает звук. Звук настраивается с помощью Select tool.
Compass Ball(Компас) – nuff said again
Dial(Циферблат) – имеет числовой вход, стрелка вращается в указанных границах, границы настраиваются через Select tool.
Digital display(Числовой дисплей) – имеет числовой вход, с помощью select tool настраивается разрядность: от 0,0001 до decimal disabled(только целые числа, для GPS рекомендую использовать его)
Foghorn(Гудок) – имеет логический вход, при ВКЛ – гудит.
Gauge Display(Калибровочный дисплей) – имеет два числовых входа, primary disply value – определяет позицию белой полоски, secondary display value – позицию красной. С помощью select tool настройка аналогична циферблату.
Indicator light(Индикатор) – при подаче на логический вход ВКЛ загорается.
Paintable sign(Раскрашиваемый индикатор) – имеет сетку 9 на 9. Может быть раскрашен с помощью paint tool и additive paint tool. При подаче на логический вход ВКЛ загорается часть, раскрашенная additive paint tool. Может использоваться как индикатор, либо просто для декорации.
Системы управления
Системы управления это все, что помогает самолетам не падать, а лодкам плыть туда, куда нужно, а не прямо. Элементы приведены не по алфавиту, а по группам.
Control surfaces(управляющие плоскости) -работают в воздухе, из них строятся элероны, воздушные рули и т. п.
Имеют числовой вход, принимают значения от -1 до 1 и соответственно поворачиваются,.
Fin rudder(Задний руль), Rudder (нижний руль) – работают в воде. Имеют числовой вход, принимают значения от -1 до 1 и соответственно поворачиваются.
Gyro(Гирокомпас) – принимает 4 числовых сигнала обозначающих желаемые величины: Pitch(Тангаж), Roll(Крен), Yaw(Рыскание) Up/Down(Вертикальная скорость). Числовые выходы разносятся соответствующим элементам, на них подается стабилизированные сигналы. Имеется логический вход Autohover On/Off, при подаче на него сигнала гирокомпас препятствует сторонним силам, изменяющим его положение.
Pilot seat(Кресло пилота), Helm(Место рулевого) – посты управления, имеют различные логические и числовые входы и выходы. С помощью select tool производится настройка поста управления в том числе:
Изменение названия поста управления
Изменение названия управляющих сигналов
Изменение чувствительности реакции на нажатия кнопок на клавиатуре
Изменение режима возврата в начальное положение (Reset- возврат, Sticky -невозврат)
Изменение режима переключатель/кнопка(toggle/push)
Настройка триммирования.
Landing wheel(Посадочные колеса) – имеют только логический вход, если сигнал на него подан, колесо тормозит
Small Wheel(маленькое колесо), Medium wheel(Среднее колесо) – управляемые колеса, имеют логический вход, если сигнал на него подан, колесо тормозит, имеют числовой вход, принимают значения от -1 до 1 и соответственно поворачиваются, имеют мощностной вход, если сигнал на него подан, колесо разгоняется
Механические элементы и свет
Механические элементы. По моему субъективному мнению, это самое вкусное что есть в этой игре. С их помощью можно строить краны, лифты, шагоходы и вообще все, что подскажет фантазия.
Compact linear track base (Маленька тележка) – элемент, который может передвигаться по маленьким рельсам с заданной скоростью, скорость задается через числовой вход. С помощью select tool можно настроить максимальную мощность и передаточное число (gear ratio).
Compact linear track extension (Маленькие рельсы) – устанавливаются рядом с маленькой тележкой.
Compact robotic pivot(Маленькая механизированная ось) – может вращаться на 90 градусов в каждую сторону относительно начального положения. Угол вращения задается через числовой вход числом от -1 до 1. Настраивается скорость вращения, мощность и передаточное число
Compact velocity pivot(Маленькая ось с заданной скоростью) – может вращаться неограниченно с заданной скоростью, скорость задается через числовой вход. С помощью select tool можно настроить максимальную мощность и передаточное число(gear ratio).
Door(Дверь), Hatch(Люк) – имеют логические входы, при подаче сигнала открываются.
Hinge connector(Плоский соединитель) – магнитный соединитель, может прикрепляться только к себе подобному, если на логический вход подан сигнал. Имеет логический выход, который дает сигнал если соединение установлено.
Hose(Шланг) – по всей видимости, на данный момент не работает.
Key button(Ключ) – кнопка, которая подает логический сигнал на выход когда она включена. Включение производится нажатием на нее в течении определенного времени, которое настраивается с помощью Select tool. При нажатии на включенную кнопку тут же отключается. Имеет логический вход External input, при подаче на него сигнала в соостветствии с указанными выше условиям ключ включается.
Large conector(большой соединитель) – магнитный соединитель, может прикрепляться только к себе подобному, если на логический вход подан сигнал. Имеет логический выход, который дает сигнал если соединение установлено.
Large water pump(Большой водяной насос) – элемент водной системы, имеет водный вход, водный выход и логический вход, если на него подан сигнал ВКЛ, водный вход подключен к Water inlet, а водный выход к Water outlet, то насос начнет перекачивать воду из объема, где находится Water inlet, в объем, где находится Water outlet. Объемом считается любое помещение, полностью окруженное блоками (в том числе Door или Hatch).
Linear track base (Большая тележка) элемент, который может передвигаться по большим рельсам. Имеет два логических входа: Up – вперед(вверх) и Down – назад(вниз) С помощью select tool можно настроить максимальную мощность, скорость и передаточное число(gear ratio). Имеет числовой выход, на которы подается число блоков относительно начального положения тележки.
Linear track extension(Большие рельсы) – устанавливаются рядом с большой тележкой.
Lockable button(Блокируемая кнопка) – изначально заблокированная кнопка, на нее нельзя нажать. Имеет логический вход, при подаче на него сигнала крышка открывается, и кнопка становится доступна. При прекращении сигнала на входе крышка блокирует кнопку независимо от ее состояния. При нажатии кнопка активируется и не выключается до следующего нажатия, в активированном состоянии подает сигнал на логический выход.
Mag All(Магнит) – магнитный соединитель, при подаче сигнала на логический вход включается и в таком состоянии может примагнититься почти ко всему, включая блоки землю и. т. д. Имеет логический выход, который дает сигнал если соединение установлено. Имеет числовой выход, показывающий силу разрыва. Если сила становится больше 200, соединение разрывается.
Pivot(Петля) – свободно вращается на 90 градусов в обе стороны от начального положения, входов/выходов не имеет.
Pneumatic Piston(Поршень) – имеет числовой вход, указывающий поршню его место от -1 до 1. Имеет числовой выход на который подается место поршня. Устанавливается в полувыдвиннутом состоянии, имеет очень маленькие ходы, для меня бесполезен.
Push Button(Кнопка) – Включена лишь до тех пор, пока нажата, во включенном состоянии подает сигнал на логический выход. Имеет логический вход External input, при подаче на него сигнала включается.
Robotic hinge(механизированная петля) – может вращаться на 90 градусов в каждую сторону относительно начального положения. Угол вращения задается через числовой вход числом от -1 до 1. Настраивается скорость вращения, мощность и передаточное число
Robotic Pivot(Механизированная ось) – может вращаться на 90 градусов в каждую сторону относительно начального положения. Угол вращения задается через числовой вход числом от -1 до 1. Настраивается скорость вращения, мощность и передаточное число. Имеет числовой выход, показывающий текущий угол вращения.
Small Connector(Маленький соединитель) – магнитный соединитель, может прикрепляться только к себе подобному, если на логический вход подан сигнал. Имеет логический выход, который дает сигнал если соединение установлено.
Suspension(Подвеска) – собственно, подвеска.
Throttle lever(Рычаг управления) – элемент, позволяющий нажатиями на него, плавно управлять числовыми сигналами. С помощью select tool настраивается чувствительность(скорость перемещения рычага), низшая граница, верхняя граница и начальное значение.
Toggle button(Кнопка-переключатель) – При нажатии кнопка активируется и не выключается до следующего нажатия, в активированном состоянии подает сигнал на логический выход. Имеет логический вход External input, при подаче на него сигнала включается.
Velocity Pivot(Ось с заданной скоростью) – может вращаться неограниченно с заданной скоростью, скорость задается через числовой вход. С помощью select tool можно настроить максимальную мощность и передаточное число(gear ratio). имеет числовой выход, показывающий текущий угол вращения.
Water connector(Водный соединитель) – магнитный соединитель, может прикрепляться только к себе подобному, если на логический вход подан сигнал. Имеет логический выход, который дает сигнал если соединение установлено.
Water inlet(Впуск) см. Большой водяной насос
Water Outlet(Выпуск) см. Большой водяной насос
Water pump(Водный насос) см. Большой водяной насос
Хочу заметить, что все кнопки имеют настройку имени “Display name”, крайне рекомендую всегда ее заполнять, особенно когда кнопок много и разобраться что к чему и куда очень сложно.
И наконец я рассмотрю еще 4 элемента из раздела specialist equipment(специальное оборудование)
Winch(Лебедка), Large winch(Большая лебедка) – собственно, лебедки. имеют два логических входа Up(Вверх) и Dоwn(Вниз), при подаче на один из них сигнала, лебедка соответственно выпускает или поднимает трос. Имеет числовой выход, дающий длину выпущенного троса, для маленькой максимум 16, для большой – 100.
Searchlight(Прожектор) – сильный фонарь с направленным лучом света, имеет логический вход для включения света и числовой вход для указания угла вращения прожектора, так как он может вращаться в одной плоскости на 90 градусов в каждую сторону.
Light(Лампочка) – имеет логический вход, при подаче сигнала – горит.
Если что-то непонятно, можно посмотреть еще вот здесь [link].