// Скрипт реализует следующую функциональность.
//
// 1. Управление триммерами
//
// Задаются три виртуальные оси для триммеров:
// - элеронов
// - рулей высоты
// - рулей направления
//
// Задаются кнопки для управления значениями осей триммеров:
// - задается кнопка Shift (js_shift)
// - вверх/вниз триммер руля высоты
// - влево/вправо триммер руля направления
// - влево/вправо триммер элеронов (те же что и для направления, но с Shift)
// - сброс всех триммеров (то же что и триммер вверх, но с Shift)
//
// Изменение значений триммеров производится с заданными шагом (TRIMMER_STEP).
// Для быстрого доступа, кнопки расположены под большим пальцем на файтерстике.
// В целях исключения повторов срабатывания кнопок, кнопки реализованны как PULSE
// устройство (т.е. для изменения значения триммера на 8, необходимо нажать
// соответсвующую кнопку 2 раза).
// Дополнительно, для осуществеления "читарского" управления
// ось Y на министике на ProThrottle используется как управление осью триммеров
// рулей высоты.
//
// 2. Управление колесным тормозом с помощью любой из педалей.(by aeropunk)
//
// Задается виртуальная ось колесного тормоза. В эту ось отображается
// большее из текущих значений двух физических осей педалей.
//
// Для реализации этой функциональности очень важна правильная калибровка
// виртуальной оси колесного тормоза. Калибровочное значение минимума
// виртуальной оси должно быть равно большему из соответствующих значений
// физических осей. Калибровочное значение максимума виртуальной оси должно
// быть равно меньшему из соответствующих значений физических осей.
//
// Пример.
// Левая педаль : min = 1, max = 254.
// Правая педаль : min = 14, max = 255.
// Колесный тормоз : min = 14, max = 254.
//
// 3. Выбор оружия в зависимости от цветового режима. (by aeropunk)
//
// Задаются виртуальные кнопки:
// - три кнопки управления стрелково-пушечным вооружением:
// - кнопка одновременной стрельбы из пушек и пулеметов, (зеленый режим)
// - кнопка стрельбы из пушек, (красный режим)
// - кнопка стрельбы из пулеметов, (желтый режим)
// - две кнопки управления ракетно-бомбовым вооружением:
// - кнопка сброса бомб, (красный режим)
// - кнопка выпуска ракет пушек. (желтый режим)
//
// При зеленом режиме, ракетно-бомбовое вооружение заблокированно, т.е. работает
// как предохранитель

.
//
// 4. Ручное и автоматическое управление шасси одной физической кнопкой.(by aeropunk)
//
// Задаются три виртуальные кнопки:
// - кнопку уборки/выпуска шасси,
// - кнопка ручной уборки шасси,
// - кнопка ручного выпуска шасси.
//
// Задаются две последовательности:
// - последовательность ручной уборки шасси, которая приводит к заданному
// количеству нажатий и отпусканий виртуальной кнопки ручной уборки шасси
// с заданным интервалом,
// - последовательность ручного выпуска шасси, которая приводит к заданному
// количеству нажатий и отпусканий виртуальной кнопки ручного выпуска
// шасси с заданным интервалом.
//
// При каждом нажатии физической кнопки происходит следующее:
// - срабатывает виртуальная кнопка автоматического управления шасси,
// - прерывается предыдущая последовательность, если она еще не закончилась.
// - запускается последовательность, противоположная той, что выполнялась на
// предыдущем срабатывании физической кнопки.
// Нужно понимать, что данный скрипт ничего не знает о текущем положении шасси
// в игре. Шасси могло выпускаться вручную с клавиатуры, физическая кнопка
// могла быть нажата неизвестное количество раз до запуска игры. Поэтому может
// оказаться так, что шасси уже выпущено, а следующей последовательностью
// является выпуск, или что шасси уже убрано, а следующей последовательностью
// является уборка. Для игрока это будет выглядеть так, что он нажал кнопку,
// а действие не выполняется. Ничего страшного в этом нет. Просто нужно еще
// раз нажать кнопку, и требуемое действие сразу начнет выполняться.
//
// 5. Управление шагом винта.
//
// Задаются две виртуальные оси:
// - ось газа
// - ось шага винта
//
// Задается кнопка переключения режима работы РУД.
//
// При активизации режима управления шагом винта, положение газа автоматически
// берется из положения газа на файтерстике (колесико слева). Это сделано для
// упрощения управлением шагом винта, когда не нужно заботится о тяге при
// переключении на управление шагом. Тягу можно спокойно изменять, не переключаясь
// с шага винта (актуально для синих и других крафтов, чувствительных к шагу винта,
// т.к. можно не успеть переключиться с управления тягой и спалить двигатель в
// сложном маневре).
//
//