LSF CabinAGS8

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

LSF_CabinAGS8 - Базовый класс для реализации кабины с установленным в неё блоком управления гребнесмазывателем АГС8. Входит в состав Locomotive Script Framework.

Для работы требуется чтобы локомотив предоставлял данные кабины унаследованные от класса LSF_CabinDataAGS8

Настройка

Для работы скрипта АГС8 необходимо выполнить настройку в файле конфигурации кабины, локомотива и актива со звуками

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

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

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

extensions{
  
  ags8-settings{
    control-powerswitch                ""
    control-controlspeedswitch         ""
    control-controlbutton              ""
    mesh-powerindicator                ""
    mesh-controlindicator              ""
  }

}
control-powerswitch
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является тумблером питания АГС8. Два состояния: 0 - выключено, 1 - включено
control-controlspeedswitch
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является тумблером выбора скорости срабатывания АГС8. Два состояния: 0 - 10 км/ч, 1 - 20 км/ч
control-controlbutton
Тип: Строка
Обязательный: Да
Описание: Наименование контрола кабины который является кнопкой контроля АГС8
mesh-powerindicator
Тип: Строка
Обязательный: Да
Описание: Наименование сетки кабины, которая представляет собой индикатор питания АГС8
mesh-controlindicator
Тип: Строка
Обязательный: Да
Описание: Наименование сетки кабины, которая представляет собой индикатор контроля АГС8

Настройка локомотива

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

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

extensions{
  
  ags8-settings{
    attsound-front                     "a.bog0"
    attsound-rear                      "a.bog1"
  }

}
attsound-front
Тип: Строка
Обязательный: Нет
Описание: Наименование точки в сетке локомотива, с которой будет проигрываться звук смазывания гребней для передней телеги
attsound-rear
Тип: Строка
Обязательный: Нет
Описание: Наименование точки в сетке локомотива, с которой будет проигрываться звук смазывания гребней для задней телеги

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

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

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

extensions{
  
  ags8-settings{
    sound                   ""
  }

}
sound
Тип: Строка
Обязательный: Да
Описание: Путь к файлу со звуком работы форсунок гребнесмазывателя

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

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

Пример

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

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

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

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

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

class mycabin isclass Cabin, LSF_CabinAGS8
{

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

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

  public void UserSetControl(CabinControl control, float value){
    me.userSetControlAGS8(control, value);
  }

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

};

Интерфейс

initCabinAGS8

Выполняет инициализацию скрипта АГС8

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

attachCabinAGS8

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

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

userSetControlAGS8

Обновляет состояние контролов

final void userSetControlAGS8(CabinControl control, float value)
Аргументы:
  • control - Контрол, который изменил своё состояние
  • value - Новое значение состояния контрола
Примечание: Эта функция обязательно должна вызываться в UserSetControl кабины

updateCabinAGS8

Выполняет обновление состояния скрипта АГС8

final void updateCabinAGS8(float brakeCylinderPressure, bool isCrustSandNow)
Аргументы:
  • brakeCylinderPressure - Давление в тормозных цилиндрах в кгс/см2
  • isCrustSandNow - Указатель, что в данный момент производиться подсыпка песка под колёсные пары. true - песок подсыпается; false - песок не подсыпается
Примечание: Эта функция обязательно должна вызываться в Update кабины

getAGS8PowerState

Получение состояния питания АГС8

public final bool getAGS8PowerState(void)
Возвращает: true - питание включено; false - питание отключено

getAGS8ControlState

Получение состояния, что АГС8 производит смазывание гребней

public final bool getAGS8ControlState(void)
Возвращает: true - гребни смазываются; false - гребни не смазываются
Примечание: Смазывание производиться периодически, а не всё время

getAGS8ControlSpeed

Получение скорости начала контроля смазывания АГС8

public final int getAGS8ControlSpeed(void)
Возвращает: Значение скорости контроля в км/ч