LSF LocoBrowser — различия между версиями

(Новая страница: «{| class="wikitable" style="float:right; margin-left: 10px;" |- | Библиотека || Locomotive Script Framework |- | Имя класса || LSF_LocoBrow…»)
 
(нет различий)

Текущая версия на 11:56, 7 марта 2018

Библиотека Locomotive Script Framework
Имя класса LSF_LocoBrowser
Файл скрипта lsf_locobrowser.gs
Тип Класс-реализация
Базовые классы GameObject

LSF_LocoBrowser - основной класс универсального браузера. Входит в состав Locomotive Script Framework.

Предоставляет возможность добавления к подвижной еденице расширяемого универсального браузера в режим машиниста.

Класс не предусматривает создание наследников.

Прототип

final class LSF_LocoBrowser isclass GameObject
{

  public define int TYPE_NONE               = 0;   
  public define int TYPE_DIESEL             = 1;  

  public define int ENGINESTATUS_AUTO       = 0; 
  public define int ENGINESTATUS_OFF        = 1; 
  public define int ENGINESTATUS_STARTS     = 2; 
  public define int ENGINESTATUS_RUNNING    = 3; 
  public define int ENGINESTATUS_SHUTDOWN   = 4; 

  public define int BATTERY_NONE            = 0; 
  public define int BATTERY_AUTO            = 1; 
  public define int BATTERY_MANUAL          = 2; 

  public define int BOTMODE_NONE            = 0; 
  public define int BOTMODE_AUTO            = 1; 
  public define int BOTMODE_OFF             = 2; 
  public define int BOTMODE_ON              = 3; 

  public final void updateBrowser(void);

  public final int getEngineStatus(void);

  public final void setEngineStatus(int status);

  public final int getBatteryMode(void);

  public final void setBatteryMode(int mode);

  public final float getBatteryCharge(void);

  public final void setBatteryCharge(float charge);

  public final int getBotMode(void);

  public final void setBotMode(int mode);

  public final bool getEngineControlEnabledState(void);

  public final void setEngineControlEnabledState(bool state);

  public final bool getAutoMileageState(void);

  public final void setAutoMileageState(bool state);

  public final int getMileage(void);

  public final void setMileage(int mileage);

  public final StringTable getStringTable(void);

  public final Vehicle getVehicle(void);

  public final Asset getLocalization(void)

  public final void setLocalization(Asset localization);

  public final int getGroupCount(void);

  public final LSF_LocoBrowserGroup getGroup(int index);

  public final bool getGroupContains(LSF_LocoBrowserGroup group);

  public final void addGroup(LSF_LocoBrowserGroup group);

  public final void removeGroup(int index);

  public final LSF_LocoBrowserSystemGroup getSystemInfoGroup(void);

  public final LSF_LocoBrowserSystemGroup getSystemControlGroup(void);

  public final void restoreWindow(void);

  public final void dispose(void);

  public LSF_LocoBrowser Init(Vehicle veh, Asset localization, int type, int width, int height);

  public LSF_LocoBrowser Init(Vehicle veh, Asset localization, int type);

};

Интерфейс

updateBrowser

Вызывает обновление браузера (перерисовывает содержимое)

public final void updateBrowser(void)

getEngineStatus

Извлечение текущего состояния двигателя

public final int getEngineStatus(void)
Возвращает: Значение одной из констант ENGINESTATUS, описывающее текущее состояние двигателя

setEngineStatus

Установка текущего состояния двигателя

public final void setEngineStatus(int status)
Аргументы:
  • status - Значение одной из констант ENGINESTATUS, описывающее текущее состояние двигателя

getBatteryMode

Извлечение режима отображения аккумулятора

public final int getBatteryMode(void)
Возвращает: Значение одной из констант BATTERY, описывающее режим отображения аккумулятора

setBatteryMode

Установка режима отображения аккумулятора

public final void setBatteryMode(int mode)
Аргументы:
  • mode - Значение одной из констант BATTERY, описывающее режим отображения аккумулятора

getBatteryCharge

Извлечение заряда аккумулятора

public final float getBatteryCharge(void)
Возвращает: Значение 0.0...1.0, где 0.0 - аккумулятор полностью разряжен; 1.0 - аккумулятор полностью заряжен
Примечание: Только для режима отображения аккумулятора BATTERY_MANUAL

setBatteryCharge

Установка ткущего заряда аккумулятора

public final void setBatteryCharge(float charge)
Аргументы:
  • charge - Значение 0.0...1.0, где 0.0 - аккумулятор полностью разряжен; 1.0 - аккумулятор полностью заряжен
Примечание: Только для режима отображения аккумулятора BATTERY_MANUAL

getBotMode

Извлечение указателя режима бота

public final int getBotMode(void)
Возвращает: Значение одной из констант BOTMODE, описывающее режим бота

setBotMode

Установка указателя режима бота

public final void setBotMode(int mode)
Аргументы:
  • mode - Значение одной из констант BOTMODE, описывающее режим бота

getEngineControlEnabledState

Извлечение указателя возможности управления двигателем

public final bool getEngineControlEnabledState(void)
Возвращает: true - можно управлять двигателем; false - нельзя управлять двигателем

setEngineControlEnabledState

Установка указателя возможности управления двигателем

public final void setEngineControlEnabledState(bool state)
Аргументы:
  • state - true - можно управлять двигателем; false - нельзя управлять двигателем

getAutoMileageState

Извлечение указателя что необходимо автоматически определять пробег

public final bool getAutoMileageState(void)
Возвращает: true - пробег определяется автоматически; false - пробег определяется вручную.

setAutoMileageState

Установка указателя что необходимо автоматически определять пробег

public final void setAutoMileageState(bool state)
Аргументы:
  • state - true - пробег определяется автоматически; false - пробег определяется вручную.

getMileage

Извлечение заданного пробега

public final int getMileage(void)
Возвращает: Значение заданного пробега в км
Примечание: Только для ручной задачи пробега

setMileage

Установка заданного пробега

public final void setMileage(int mileage)
Аргументы:
  • mileage - Значение заданного пробега в км
Примечание: Только для ручной задачи пробега

getStringTable

Извлечение заданного пробега

public final StringTable getStringTable(void)
Возвращает: Объект StringTable, описывающий локализованную таблицу строк

getVehicle

Извлечение подвижной единицы, к которой привязан барузер

public final Vehicle getVehicle(void)
Возвращает: Объект Vehicle, описывающий подвижную единицу, к которой привязан браузер

getLocalization

Извлечение актива локализации

public final Asset getLocalization(void)
Возвращает: Объект Asset, описывающий актив, который содержит локализованную таблицу строк

setLocalization

Установка актива локализации

public final void setLocalization(Asset localization)
Аргументы:
  • localization - Объект Asset, описывающий актив, который содержит локализованную таблицу строк

getGroupCount

Извлечение количества групп свойств браузера

public final int getGroupCount(void)
Возвращает: Значение количества групп свойств браузера

getGroup

Извлечение пользовательского свойства

public final LSF_LocoBrowserGroup getGroup(int index)
Аргументы:
  • index - Индекс группы свойств в браузере
Возвращает: Объект LSF_LocoBrowserGroup, который описывает группу свойств

getGroupContains

Проверка наличия группы свойств в браузере

final bool getGroupContains(LSF_LocoBrowserGroup group)
Аргументы:
  • group - Объект LSF_LocoBrowserGroup, который описывает группу свойств
Возвращает: true - группа свойств присутствует в браузере; false - группа свойств отсутствует в браузере

addGroup

Добавление группы свойств в браузер

public final void addGroup(LSF_LocoBrowserGroup group)
Аргументы:
  • group - Объект LSF_LocoBrowserGroup, который описывает группу свойств
Примечание: Группа свойств не может быть унаследована от LSF_LocoBrowserSystemGroup

removeGroup

Удаление пользовательского свойства

public final void removeGroup(int index)
Аргументы:
  • index - Индекс группы свойств в браузере

getSystemInfoGroup

Извлечение системной группы свойств описывающих информацию о подвижной единице

public final LSF_LocoBrowserSystemGroup getSystemInfoGroup(void)
Возвращает: Объект LSF_LocoBrowserSystemGroup, описывающий группу свойств информации о подвижной единице

getSystemControlGroup

Извлечение системной группы свойств c контролем подвижной единицы

public final LSF_LocoBrowserSystemGroup getSystemControlGroup(void)
Возвращает: Объект LSF_LocoBrowserSystemGroup, c контролем подвижной единицы

restoreWindow

Восстанавливает свёрнутое в кнопку окно браузера

public final void restoreWindow(void)

dispose

Закрывает браузер и освобождает все занятые им ресурсы

public final void dispose(void)
Примечание: При закрытие браузера через кнопку "Закрыть" вызывается автоматически.

Init

Выполняет инициализацию, начальные настройки и отображение браузера

public final LSF_LocoBrowser Init(Vehicle veh, Asset localization, int type, int width, int height)
Аргументы:
  • veh - Объект Vehicle, описывающий подвижную единицу, к которой привязан браузер
  • localization - Объект Asset, описывающий актив, который содержит локализованную таблицу строк
  • type - Тип браузера. Значение одной из констант TYPE
  • width - Ширина браузера в пикселях
  • height - Ширина браузера в пикселях
Примечание: Функция должна вызываться 1 раз при инициализации браузера до вызова всех остальных функций

Init

Выполняет инициализацию, начальные настройки и отображение браузера

public final LSF_LocoBrowser Init(Vehicle veh, Asset localization, int type)
Аргументы:
  • veh - Объект Vehicle, описывающий подвижную единицу, к которой привязан браузер
  • localization - Объект Asset, описывающий актив, который содержит локализованную таблицу строк
  • type - Тип браузера. Значение одной из констант TYPE
Примечание: Функция должна вызываться 1 раз при инициализации браузера до вызова всех остальных функций

Константы

Константы TYPE описывают тип браузера

Константа Значение Описание
TYPE_NONE 0 Нет стандартных групп
TYPE_DIESEL 1 Дизельный локомотив


Константы ENGINESTATUS описывают состояние работы двигателя

Константа Значение Описание
ENGINESTATUS_AUTO 0 Автоматическое определение состояния
двигателя (только для объектов
фреймворка)
ENGINESTATUS_OFF 1 Двигатель не запущен
ENGINESTATUS_STARTS 2 Двигатель запускается
ENGINESTATUS_RUNNING 3 Двигатель запущен
ENGINESTATUS_SHUTDOWN 4 Двигатель отключается


Константы BATTERY описывают режим батареии

Константа Значение Описание
BATTERY_NONE 0 Информация об аккумуляторе не выводится
BATTERY_AUTO 1 Автоматическое определение заряда
аккумулятора (только для объектов
фреймворка)
BATTERY_MANUAL 2 Ручное указание заряда аккумулятора
через функцию setBatteryCharge


Константы BOTMODE описывают режим бота

Константа Значение Описание
BOTMODE_NONE 0 Информация о режиме бота не выводится
BOTMODE_AUTO 1 Автоматическое Режим бота определяется
автоматически (только для объектов
фреймворка)
BOTMODE_OFF 2 Режим бота отключён
BOTMODE_ON 2 Режим бота включён

Сообщения

Браузер отсылает следующие сообщения

Источник Получатель major minor Описание
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser StartEngineCommand Использована стандартная команда запуска двигателя
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser ShutdownEngineCommand Использована стандартная команда остановка двигателя
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser BotModeTurnOnCommand Использована стандартная команда включения режима бота
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser BotModeTurnOffCommand Использована стандартная команда отключения режима бота
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser UserCommand:<commandname> Использована пользовательская команда. <commandname> - имя команды заданное в command для действия
Объект LSF_LocoBrowser Объект Vehicle LSFLocoBrowser Disposed Браузер был закрыт, все ресурсы освобождены

В качестве источника выступает объект браузера LSF_LocoBrowser который отсылает сообщение.
В качестве получателя выступает объект Vehicle для которого определён браузер

Локализация

Браузер требует таблицу строк. Таблица строк может быть локализована. В качестве объекта локализации выступает актив содержащий в файле конфигурации string-table со строками на нужном языке. Стандартные активы с локализацией:

  • <KUID2:151055:60032:2> - Русский интерфейс браузера
  • <KUID2:151055:60034:2> - Английский интерфейс браузера
  • <KUID:151055:60074> - Украинский интерфейс браузера

Пример использования

include "locomotive.gs"
include "lsf_locobrowser.gs"

class MyDieselLoco isclass Locomotive
{
  LSF_LocoBrowser browser;

  void Init(Asset myAsset){
    me.AddHandler(me, "LSFLocoBrowser", null, "BrowserCommand");
    me.AddHandler(me, "MapObject", "View-Details", "ViewDetails");
  }

  final void ViewDetails(Message msg){
    if(!browser){
      Asset browserinterface = me.GetAsset().FindAsset("browser-default-localization");
      browser = new LSF_LocoBrowser().Init(me, browserinterface, LSF_LocoBrowser.TYPE_DIESEL);

      //Тут стоит вписать определение состояния свойств браузера

      browser.updateBrowser(); //Необходимо вызывать после каждого изменения состояния свойств браузера
    }else lbrowser.restoreWindow();
  }

  final void BrowserCommand(Message msg){
    if(msg.minor == "Disposed"){
      browser = null;
      return;
    }
    //Тут обработка команд браузера
  }
};