Кошачьи утилиты для плагинов
Информация:
Автор: EvilCat
Версия скрипта:
- 1.6: Добавлен функционал учёта айди ивентов для отслеживания следующего свободного.
- 1.5 (обратно несовместима): Улучшена совместимость с браузерами, исправлено несколько ошибок.
- 1.4.1: У общих событий (Common Events) теперь тоже могут быть метаданные, задаваемые по старинке в первом комментарии.
- 1.4: Добавлена команда "Calc" для вычисления переменных по формуле.
- 1.3: Обновление меты при смене страницы ивента.
- 1.2.2: Добавлен тип Id (натуральные числа) и универсальное получение данных объекта.
- 1.2: Добавлен плагин клавиатурного ввода, объединение параметров плагина и адд-она.
- 1.1 (обратно несовместима): цветовая функциональность выделена в дочерний плагин.
- 1.0: Релиз.
Версия мейкера: MV
Тип: Ядро
Условия использования/Лицензия: Creative Commons 4.0 Attribution
Описание:
Содержит некоторые классы, функции и модификации, которые должны быть удобны при написании других плагинов, во всяком случае мне.
Особенности:
Добавляет команду
Calc для вычисления значения переменных. Записывается так:
- Calc $v(1) = 2+2/$v(2)
Что записывает в переменную № 1 результат вычисления "2 + 2/(переменная № 2)". В формуле может быть всё, что доступно в Яваскрипте. Однако, к сожалению, в $v(1) в качестве индекса переменной следует вписывать только числа.
Отчасти это доступно и без всяких плагинов, однако данная команда позволяет писать $v(1) вместо $gameVariables.value(1).
Также содержит три основных приспособления.
Класс
EvilCat.Plugin, предназначенный быть родительским классом для объектов-
синглтонов, обозначающих плагины. У такого синглтона будут следующие полезные методы:
- registerAddOn - регистрирует имя адд-она. Адд-он отличается тем, что не имеет собственного объекта плагина, а пользуется родительским (возможно, расширяя его). Регистрация с помощью этого метода позволяет объединить пользовательские параметры плагинов.
- parameters - возвращает массив с необработанными пользовательскими параметрами.
- paramBool, paramInt, paramFloat, paramString - возвращает пользовательский параметр, приведённый к нужному типу. Сигнатура: (имя_параметра [, значение_по_умолчанию])
- Статический extendType - подключает к классу плагина дополнительные парсеры типов. Сигнатура: (название_типа, парсер_типа).
- parameter - возвращает пользовательский параметр, приведённый к нужному типу. Сигнатура: (имя_параметра [, тип [, значение_по_умолчанию]]). Тип - это либо метод, приводящий значение к нужному типу, либо строковое обозначение типа - 'Bool', 'Int', 'Float', 'String'. Можно добавлять собственные типы, объявив в классе новые статические методы parse<Тип>.
- makeCommandsList - возвращает массив строковых имён методов, которые внутри плагина могут вызываться через Plugin Command (это команда при редактировании ивента). Следует перегрузить этот метод, чтобы сделать доступными нужные методы.
При подключении дочернего плагина
EvilCatUtils Colors:
Класс
EvilCat.Color для представления цвета, содержащий некоторые самые простые методы работы с цветом.
- конструктор - принимает компоненты R, G и B.
- статическая фабрика createFromHex - создаёт экземпляр объекта, основываясь на числовом шестнадцатиричном представлении.
- статическая фабрика parse - создаёт экземпляр объекта, основываясь на пользовательском параметре (почти все формулировки цвета, которые принимает CSS).
- toHex - возвращает числовое представление цвета.
- mergeWithColor - возвращает новый экземпляр объекта, имеющий промежуточный цвет между данным и другим. Сигнатура: (другой_цвет, выраженность от 0 до 1). Цвет принимается как экземпляр данного класса.
- mergeWithWhite - возвращает новый экземпляр объекта, промежуточный между данным цветом и белым. Сигнатура: (выраженность от 0 до 1).
При подключении дочернего плагина
EvilCatUtils Controls:
Класс
EvilCat.Key для представления разных способов ввода. Имеет следующие методы:
- recognize - разбирает яваскриптовое событие (не путать с мейкерским событием!), чтобы определить, сообщает ли оно о срабатывании искомого способа управления.
Класс
EvilCat.Keys (потомок Key) для представления ввода любой из перечисленных клавиш.
Класс
EvilCat.KeyCode (потомок Key) для представления ввода с клавиатуры в стандартной интерпретации Яваскрипта (Ctrl слева и справа одно и то же, значение клавиш цифровой клавиатуры зависит от Num Lock'а...)
Можно зарегистрировать типы параметров Key и Keys, чтобы вводить параметры, обозначающие клавиши. Добавлена интерпретация многих стандартных названий клавиш, например, PgUp, Page Up, Page_up...
Также добавлены методы для получения мета-данных, которые движок изымает из заметок различных объектов (Note).
- getMeta - получает метаданное объекта. Сигнатура: (имя_параметра, тип, значение_по_умолчанию). Всё так же, как в параметрах плагина, выше. Пример использования: if (obj.getMeta && obj.getMeta('Is Shadowed', 'Bool', true) { ... }
Этот метод добавлен ивентам, персонажу игрока на карте, партийцам на карте, собственно картам, действующим лицам (Actor).
Пример плагина, использующего эти утилиты.
Принципы составления утилит
Утилиты составляются по мере появления нужд, общих для разных плагинов, разрабатываемых мной (EvilCat). Утилиты не расширяют функционал стандартных (нативных) классов и не оставляют лишнего в глобальном пространстве, кроме переменной "EvilCat", в параметры которой и записываются все новые классы, методы и прочее. В утилиты не добавляются действия, которые можно
понятно и
коротко записать без подключения дополнительных плагинов, то есть не производится попытка подменить стандартный функционал Яваскрипта.
Базовые утилиты содержат только функционал, который с наибольшей вероятностью понадобится во всех дочерних плагинах: получение пользовательских параметров, реагирование на команды, считывание меты; а также сглаживание углов Явасприпта, при условии понятности, краткости и востребованности большинством плагинов. Остальное функционал распределяется по дочерним плагинам (адд-онам), чтобы подключать их лишь по необходимости. Адд-оны компонуются по смыслу: если функции скорее всего применяются совместно, то они составляют тематический адд-он. Понимание о необходимости адд-она возникает во время написания того или иного плагина, так что их функционал может сначала зародиться в конкретном плагине, а потом перекочевать в адд-он.
Используется шестой стандарт Яваскрипта.
Установка:
Скопировать файл в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют.
Если требуется функциональность цвета, скопировать EvilCatColors.js в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют. Если требуется функциональность ввода, проделать то же с EvilCatControls.js.
Скачать:
В репозитории на BitBucket (нажмите Raw в углу и скачайте).
Дочерние плагины (адд-оны):
EvilCatUtils Colors
EvilCatUtils Controls