LSF Cabin3sl2m

Библиотека Locomotive Script Framework
Файл скрипта lsf_cabin3sl2m.gs
Тип Базовый класс кабины
Класс данных кабины -- --
Базовые классы -- --

LSF_Cabin3sl2m - Базовый класс для реализации кабины с установленным в неё скоростимером 3СЛ2М. Входит в состав Locomotive Script Framework

Настройка

Для работы скрипта 3СЛ2М необходимо выполнить настройку в файле конфигурации кабины и актива со звуками

Настройка кабины

Настройки выполняются в контейнере "3sl2m-settings" расположенном в стандартном контейнере "extensions".

Пример части файла конфигурации. Теги содержат значения по умолчанию

extensions{
  
  3sl2m-settings{
    needle-hour             ""
    needle-minutes          ""
    needle-speed            ""
    mesh-spindel            ""
    attsound                ""
    volume-clock            1.0
    volume-move             1.0
    volume-scribe           1.0
  }

}
needle-hour
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является часовой стрелкой на часах скоростимера 3СЛ2М
needle-minutes
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является минутной стрелкой на часах скоростимера 3СЛ2М
needle-speed
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является стрелкой скоростимера 3СЛ2М
mesh-spindel
Тип: Строка
Обязательный: Нет
Описание: Наименование сетки которая представляет собой вал скоростимера с анимацией. При отсутствии анимированного вала тег указывать не нужно
attsound
Тип: Строка
Обязательный: Да
Описание: Наименование точки в сетке кабины, которая будет источником звука для скоростимера
volume-clock
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука тиканья часов (от 0.0 до 1.0)
volume-move
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука работы механизма скоростимера во время движения (от 0.0 до 1.0)
volume-scribe
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука падения часовых писцов (от 0.0 до 1.0)

Настройка актива со звуком

Настройки выполняются в контейнере "3sl2m-settings" расположенном в стандартном контейнере "extensions". Так же, требуется контейнер sound-length-base расположенный в стандартном контейнере "extensions", который представляет собой библиотеку длин звуков. В качестве библиотеки звуков может выступать как отдельный актив, так и актив с самой кабиной. Настройки должны выполняться в активе, в котором располагаются звуки.

Пример части файла конфигурации. Теги содержат значения по умолчанию

extensions{
  
  3sl2m-settings{
    sound-clock             ""
    sound-move              ""
    sound-scribe            ""
    volume-clock            1.0
    volume-move             1.0
    volume-scribe           1.0
  }

  sound-length-base {}

}
sound-clock
Тип: Строка
Обязательный: Да
Описание: Путь к файлу со звуком тиканья часов
sound-move
Тип: Строка
Обязательный: Да
Описание: Путь к файлу со звуком работы механизма скоростимера во время движения
sound-scribe
Тип: Строка
Обязательный: Нет
Описание: Путь к файлу со звуком падения часовых писцов
volume-clock
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука тиканья часов (от 0.0 до 1.0)
volume-move
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука работы механизма скоростимера во время движения (от 0.0 до 1.0)
volume-scribe
Тип: Число с плавающей точкой
Обязательный: Нет
Описание: Громкость звучания звука падения часовых писцов (от 0.0 до 1.0)
sound-length-base
Тип: sound-length-base container
Обязательный: Нет
Описание: Библиотека длин звуков. должна содержать все звуки используемые скриптом скоростимера

Подключение и инициализация

Для подключения необходимо добавить ссылку на Locomotive Script Framework в контейнер script-include-table конфигурационного файла актива со скриптом кабины (кабина или библиотека скриптов)

Пример

script-include-table{
  locomotivescriptframework   <kuid:151055:60067>   
}

Должен быть указан актуальный kuid номер

К скрипту кабины необходимо подключить файл базового скрипта "lsf_cabin3sl2m.gs", а так же унаследовать класс кабины от класса LSF_Cabin3sl2m множественным наследованием. Класс кабины должен обязательно наследоваться от класса Cabin игры или его потомков.

Пример типового скрипта

include "cabin.gs"
include "lsf_cabin3sl2m.gs"

class mycabin isclass Cabin, LSF_Cabin3sl2m
{

  public void Init(Asset myasset){
    me.initCabin3sl2m(myasset);
  }

  void Attach(GameObject obj){
    me.attachCabin3sl2m(cast<Locomotive>obj);
  }

  void Update(void){
    me.updateCabin3sl2m();
  }

};

Интерфейс

initCabin3sl2m

Выполняет инициализацию скрипта скоростимера

final void initCabin3sl2m(Asset soundLibrary)
Аргументы:
  • soundLibrary - актив содержащий звуки скоростимера. Если указано null, то используется актив кабины
Заметка: Эта функция обязательно должна быть вызвана 1 раз в Init скрипта кабины.

attachCabin3sl2m

Выполняет подключение локомотива к скрипту скоростимера

final void attachCabin3sl2m(Locomotive loco)
Аргументы:
  • loco - ссылка на локомотив к которому будет привязана кабина.
Заметка: Эта функция обязательно должна вызываться в Attach кабины

updateCabin3sl2m

Выполняет обновление состояния скрипта скоростимера

final void updateCabin3sl2m(void)
Заметка: Эта функция обязательно должна вызываться в Update кабины