Donate with PayPal button New New

+ Ответить в теме
Показано с 1 по 1 из 1

Тема: Инструменты и утилиты

  1. #1
    Пользователь Аватар для Эрендир
    Регистрация
    13.01.2010
    Страна
    Адрес
    Я Бот, живу в сети :)
    Возраст
    40
    Сообщений
    6,303

    Script Инструменты и утилиты

    При всей мощи скриптового движка Trainz, в нём часто не хватает различных простых функций. Так, например, напрочь отсутствует оператор возведения в степень. Или нет полезных функций работы со строками, которые позволяли бы откусывать от строки справа, слева или из середины. А ведь все эти инструменты вполне могут пригодиться при решении той или иной задачи.
    В своё время, я сделал для себя библиотеку, которая собрала небольшой набор инструментов, которые я часто использую в своих проектах. Их можно было бы включать в код каждого проекта, но на мой взгляд, гораздо правильнее вынести их в библиотеку, ибо используются они постоянно.
    Здесь бы я хотел поделиться описанием классов для всех желающих, ибо реализация скрыта от глаз под gse

    Библиотека находится на ДЛС <kuid2:151055:60038:3>
    Так же можно скачать здесь
    Библиотека по ссылке устанавливается как Original

    Для использования библиотеки её необходимо подключить через script-include-table.

    Файл: string.gs
    Содержит статический класс: String
    Предназначен для работы со строками. Пока содержит только одну функцию: Left

    public final void Left(string str, int length)

    Функция урезает переданную строку до указанного числа знаков слева.
    Аргументы:
    • str - Строка, которая должна быть урезана и её результат после отработки функции
    • length - Количество знаков сначала строки, которое необходимо оставить

    Файл: logic.gs
    Содержит статический класс: Logic
    Класс содержит функции для логических и бинарных операций
    Функция: SetStat

    public final int SetStat(int currStat, int stat, bool value)

    Позволяет изменять значения битовых ключей в группе
    Аргументы:
    • currStat - текущая группа ключей
    • stat - бинарная маска ключей которые необходимо изменить
    • value - устанавливаемое состояние
    Возвращает: Изменённую группу ключей

    Функция: GetStat

    public final bool GetStat(int сurrStat, int stat)

    Позволяет определить состояние ключей в группе по указанной маске. Функция вернёт true, если все ключи в маске будут присутствовать
    • currStat - текущая группа ключей
    • stat - бинарная маска ключей состояние которых необходимо получить
    Возвращает: true - если все ключи в маске установлены, иначе false

    Функция: ConvertHexToInt

    public final int ConvertHexToInt(string hex)

    Преобразует HEX значение в int
    Аргументы:
    • hex - строка с hex числом
    Возвращает: int значение числа

    Функция: XOR

    public final bool XOR(bool arg1, bool arg2)

    Функция исключающего ИЛИ, которая почему-то так же отсутствует среди стандартных операторов.
    Аргументы:
    • arg1 - первый логический аргумент
    • arg2 - второй логический аргумент
    Возвращает: true - если аргументы имеют разное значение, false - если они равны

    Файл: interfaceprovider.gs
    Содержит статический класс: InterfaceProvider
    Содержит функции для упрощения создание интерфейса настроек в браузере. Поскольку каждый автор создаёт свой интерфейс, не думаю что кому-то будет шипко интересно использовать мой, потому класс описывать не буду. Приведу только одну функцию, которая может быть полезна

    Функция: GetCleanFloatString

    public final string GetCleanFloatString(float val)

    Округляет число с плавающей точкой до 2х знаков с запятой, преобразуя его в строку в формате 0.00

    Аргументы:
    val - число с плавающей точкой, которое нужно преобразовать в строку
    Возвращает: строку с округлённым до 2х знаков после запятой числом в формате 0.00

    Файл: utilitylibrary.gs
    Содержит класс библиотеки: UtilityLibrary
    Содержит набор дополнительных инструментов. Для работы необходимо получить ссылку на библиотеку через TrainzScript.GetLibrary(KUID kuidlib)

    Функция: SetLocalStorageData

    public final void SetLocalStorageData(string key, Soup data)

    Позволяет сохранят данные в локальное хранилище Trainz, а не в сессию
    Аргументы:
    • key - уникальный ключ, под которым будут храниться данные
    • data - суп с данными

    Функция: GetLocalStorageData

    public final Soup GetLocalStorageData(string key)

    Восстанавливает данные из локального хранилища Trainz
    Аргументы:
    • key - уникальный ключ, под которым хранятся данные
    Возвращает: суп с данными, если они есть, или пустой суп, если данных нет

    Функция: RemoveLocalStorageData

    public final void RemoveLocalStorageData(string key)

    Удаляет данные из локального хранилища Trainz
    Аргументы:
    • key - уникальный ключ, под которым хранятся данные

    Функция: ContainsDataInLocalStorage

    public final bool ContainsDataInLocalStorage(string key)

    Проверяет наличие данных в локальном хранилище Trainz
    • key - уникальный ключ, под которым хранятся данные
    Возвращает: true - если данные есть, иначе false

    Функция: SetClipboardData

    public final void SetClipboardData(string key, Soup data)

    Записывает данные в буфер обмена. Данные хранятся пока запущен Trainz
    • key - уникальный ключ, под которым будут храниться данные
    • data - суп с данными

    Функция: GetClipboardData

    public final Soup GetClipboardData(string key)

    Получение данных из буфера обмена
    Аргументы:
    • key - уникальный ключ, под которым хранятся данные
    Возвращает: суп с данными, если они есть, или пустой суп, если данных нет

    Функция: ContainsDataInClipboard

    public final bool ContainsDataInClipboard(string key)

    Проверяет наличие данных в буфере обмена
    • key - уникальный ключ, под которым хранятся данные
    Возвращает: true - если данные есть, иначе false

    Функция: GetUsername

    public final string GetUsername(void)

    Возвращает имя пользователя, которое указано в настройках

    Функция: TrainControlOfCurrentUser

    public final bool TrainControlOfCurrentUser(Train train)

    Предназначена для мультиплеера. Позволяет определить, управляет ли текущий пользователь указанным поездом.
    Аргументы:
    • train - поезд, который надо проверить
    Возвращает: true - текущий пользователь управляет поездом, иначе false


    Надеюсь, что эти инструменты будут кому-нибудь полезны. В будущем библиотека будет пополняться новыми инструментами. Так же, с удовольствием выслушаю предложения, что можно добавить ещё.


  2. #Trainz
    Реклама
    Регистрация
    Постоянная
    Адрес
    Весь мир
    Возраст
    2010
    Сообщений
    Много

    Donate with PayPal button N3v New New

     

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения