Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Кошачьи утилиты для плагинов (EvilCatUtils)

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 3 нед. назад #86425

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Кошачьи утилиты для плагинов

Информация:

Автор: 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
Последнее редактирование: 8 года 4 мес. назад от EvilCat.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, Ren310, strelokhalfer, Dprizrak1, Lucin, Демий, poca, Mur, Lith13

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 2 нед. назад #86724

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Обновлено до версии 1.1. Цветовая функциональность выделена в дочерний плагин (также приведён тут, так как просто расширяет утилиты). В качестве цветов принимается почти любая нотация, возможная в CSS, а также массив из трёх элементов. Появилась возможность проще добавлять новые типы данных.

Версия 1.1 обратно не совместима! Чтобы продолжать использовать цветовую функциональность, нужно установить дочерний плагин. Также методы в цветовом классе переименованы для соответствия принятом в движке MV стандарту (верблюжьиГорбы вместо змеиных_поползней).
Последнее редактирование: 9 года 2 нед. назад от EvilCat.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, poca, Mur, Lith13

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 1 нед. назад #86916

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Добавила принципы составления утилит.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, poca

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 1 нед. назад #86919

  • Lith13
  • Lith13 аватар
  • Вне сайта
  • Познающий
  • Witchy Woman
  • Сообщений: 16
  • Спасибо получено: 8
Не понимаю смысла mergeWithWhite,можно с mergeWithColor проделать тоже самое,получается,лишняя функция? :unsure:

А в общем достаточно полезно,спасибо,злая кошка!
Я НЕ твинк Винды!
Администратор запретил публиковать записи гостям.

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 1 нед. назад #86921

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
В PIXI (графический движок нового Мейкера) у спрайта можно указать tint - оттенок. По умолчанию он белый, что означает, что спрайт показывается в своём исходном, неизменном виде. Если поставить чёрный, спрайт станет полностью чёрным. Если красный - то цвет будет красным, но на нём будут видны контуры. Если смешать с розовым, то все цвета станут красноватыми, но не до конца. Получается, что белизна используется как альфа-канал, прозрачность.

Поэтому "соединение с белом", видимо, должно быть более частой операцией, потому что заменяет альфа-канал. Возможно, следует подобрать название получше, например, createTint(color, value)?
Последнее редактирование: 9 года 1 нед. назад от EvilCat.
Администратор запретил публиковать записи гостям.

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 1 нед. назад #86946

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Версия 1.2.

Добавлен адд-он Controls, чтобы интерпретировать обозначения клавиш в параметрах плагинов.

Добавлена регистрация адд-онов, чтобы объединять параметры плагина и его адд-онов.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, DeadElf79, poca

Кошачьи утилиты для плагинов (EvilCatUtils) 9 года 2 дн. назад #87238

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Версия 1.3.

Добавлено обновление меты ивентов при смене страницы. Дополнительная мета берётся из первых комментариев - они обрабатываются так же, как ожидается от заметок (note).

Добавлена возможность регистрировать синоним плагина (в частности, при регистрации его как адд-она) и учитывать, который из синонимов используется для обращения к плагину в команде ивента.

Ивентам добавлен метод для установки в них произвольных данных.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79, poca

Кошачьи утилиты для плагинов (EvilCatUtils) 8 года 11 мес. назад #87357

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Версия 1.4.

Добавлена команда плагина Calc, позволяющая присваивать переменным результат формулы, записывая $v(N) вместо $gameVariables.value(N), как это приходится делать без применения скрипта.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, DeadElf79, poca

Кошачьи утилиты для плагинов (EvilCatUtils) 8 года 9 мес. назад #89833

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Версия 1.4.1.

У общих событий (Common Event'ов) теперь тоже могут быть метаданные, задаваемые по старинке в первом комментарии. Появился отдельный тип параметра IntArray, принимающий целые числа через запятую.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan, DeadElf79, Ren310, Демий

Кошачьи утилиты для плагинов (EvilCatUtils) 8 года 6 мес. назад #91724

  • EvilCat
  • EvilCat аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 469
  • Спасибо получено: 850
  • 3 место ГотвУчитель2 место
Кошачьи утилиты и вообще все мои плагины, выложенные на данном форуме, обновлены ради обратной совместимости со "старыми" версиями браузеров (включая FireFox образца этой зимы). Кроме того, исправлены некоторые ошибки, и много где добавлено использование класса Map вместо обычных объектов для ассоциативных массивов.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Lekste, Kerotan, Демий, yuryol
Модераторы: NeKotZima
Время создания страницы: 0.236 секунд