- Сообщений: 469
- Спасибо получено: 850
Кошачьи утилиты для плагинов (EvilCatUtils)
10 года 6 мес. назад - 9 года 9 мес. назад #86425
от EvilCat
Информация:
Автор: EvilCat
Версия скрипта:
Тип: Ядро
Условия использования/Лицензия: Creative Commons 4.0 Attribution
Описание:
Содержит некоторые классы, функции и модификации, которые должны быть удобны при написании других плагинов, во всяком случае мне.
Особенности:
Добавляет команду Calc для вычисления значения переменных. Записывается так:
Также содержит три основных приспособления.
Класс EvilCat.Plugin, предназначенный быть родительским классом для объектов- синглтонов , обозначающих плагины. У такого синглтона будут следующие полезные методы:
При подключении дочернего плагина EvilCatUtils Colors:
Класс EvilCat.Color для представления цвета, содержащий некоторые самые простые методы работы с цветом.
При подключении дочернего плагина EvilCatUtils Controls:
Класс EvilCat.Key для представления разных способов ввода. Имеет следующие методы:
Класс EvilCat.KeyCode (потомок Key) для представления ввода с клавиатуры в стандартной интерпретации Яваскрипта (Ctrl слева и справа одно и то же, значение клавиш цифровой клавиатуры зависит от Num Lock'а...)
Можно зарегистрировать типы параметров Key и Keys, чтобы вводить параметры, обозначающие клавиши. Добавлена интерпретация многих стандартных названий клавиш, например, PgUp, Page Up, Page_up...
Также добавлены методы для получения мета-данных, которые движок изымает из заметок различных объектов (Note).
Этот метод добавлен ивентам, персонажу игрока на карте, партийцам на карте, собственно картам, действующим лицам (Actor).
Пример плагина , использующего эти утилиты.
[hr]
Принципы составления утилит
Утилиты составляются по мере появления нужд, общих для разных плагинов, разрабатываемых мной (EvilCat). Утилиты не расширяют функционал стандартных (нативных) классов и не оставляют лишнего в глобальном пространстве, кроме переменной "EvilCat", в параметры которой и записываются все новые классы, методы и прочее. В утилиты не добавляются действия, которые можно понятно и коротко записать без подключения дополнительных плагинов, то есть не производится попытка подменить стандартный функционал Яваскрипта.
Базовые утилиты содержат только функционал, который с наибольшей вероятностью понадобится во всех дочерних плагинах: получение пользовательских параметров, реагирование на команды, считывание меты; а также сглаживание углов Явасприпта, при условии понятности, краткости и востребованности большинством плагинов. Остальное функционал распределяется по дочерним плагинам (адд-онам), чтобы подключать их лишь по необходимости. Адд-оны компонуются по смыслу: если функции скорее всего применяются совместно, то они составляют тематический адд-он. Понимание о необходимости адд-она возникает во время написания того или иного плагина, так что их функционал может сначала зародиться в конкретном плагине, а потом перекочевать в адд-он.
Используется шестой стандарт Яваскрипта.
Установка:
Скопировать файл в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют.
Если требуется функциональность цвета, скопировать EvilCatColors.js в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют. Если требуется функциональность ввода, проделать то же с EvilCatControls.js.
Скачать:
В репозитории на BitBucket (нажмите Raw в углу и скачайте).
Дочерние плагины (адд-оны):
EvilCatUtils Colors
EvilCatUtils Controls
EvilCat создал тему: Кошачьи утилиты для плагинов (EvilCatUtils)
Кошачьи утилиты для плагинов
Информация:
Автор: 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: Релиз.
Тип: Ядро
Условия использования/Лицензия: Creative Commons 4.0 Attribution
Описание:
Содержит некоторые классы, функции и модификации, которые должны быть удобны при написании других плагинов, во всяком случае мне.
Особенности:
Добавляет команду Calc для вычисления значения переменных. Записывается так:
- Calc $v(1) = 2+2/$v(2)
Что записывает в переменную № 1 результат вычисления "2 + 2/(переменная № 2)". В формуле может быть всё, что доступно в Яваскрипте. Однако, к сожалению, в $v(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.KeyCode (потомок Key) для представления ввода с клавиатуры в стандартной интерпретации Яваскрипта (Ctrl слева и справа одно и то же, значение клавиш цифровой клавиатуры зависит от Num Lock'а...)
Можно зарегистрировать типы параметров Key и Keys, чтобы вводить параметры, обозначающие клавиши. Добавлена интерпретация многих стандартных названий клавиш, например, PgUp, Page Up, Page_up...
Также добавлены методы для получения мета-данных, которые движок изымает из заметок различных объектов (Note).
- getMeta - получает метаданное объекта. Сигнатура: (имя_параметра, тип, значение_по_умолчанию). Всё так же, как в параметрах плагина, выше. Пример использования: if (obj.getMeta && obj.getMeta('Is Shadowed', 'Bool', true) { ... }
Этот метод добавлен ивентам, персонажу игрока на карте, партийцам на карте, собственно картам, действующим лицам (Actor).
Пример плагина , использующего эти утилиты.
[hr]
Принципы составления утилит
Утилиты составляются по мере появления нужд, общих для разных плагинов, разрабатываемых мной (EvilCat). Утилиты не расширяют функционал стандартных (нативных) классов и не оставляют лишнего в глобальном пространстве, кроме переменной "EvilCat", в параметры которой и записываются все новые классы, методы и прочее. В утилиты не добавляются действия, которые можно понятно и коротко записать без подключения дополнительных плагинов, то есть не производится попытка подменить стандартный функционал Яваскрипта.
Базовые утилиты содержат только функционал, который с наибольшей вероятностью понадобится во всех дочерних плагинах: получение пользовательских параметров, реагирование на команды, считывание меты; а также сглаживание углов Явасприпта, при условии понятности, краткости и востребованности большинством плагинов. Остальное функционал распределяется по дочерним плагинам (адд-онам), чтобы подключать их лишь по необходимости. Адд-оны компонуются по смыслу: если функции скорее всего применяются совместно, то они составляют тематический адд-он. Понимание о необходимости адд-она возникает во время написания того или иного плагина, так что их функционал может сначала зародиться в конкретном плагине, а потом перекочевать в адд-он.
Используется шестой стандарт Яваскрипта.
Установка:
Скопировать файл в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют.
Если требуется функциональность цвета, скопировать EvilCatColors.js в папку js/plugins проекта и добавить в проекте в список плагинов выше других плагинов, которые его используют. Если требуется функциональность ввода, проделать то же с EvilCatControls.js.
Скачать:
В репозитории на BitBucket (нажмите Raw в углу и скачайте).
Дочерние плагины (адд-оны):
EvilCatUtils Colors
EvilCatUtils Controls
Последнее редактирование: 9 года 9 мес. назад пользователем EvilCat.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 6 мес. назад - 10 года 6 мес. назад #86724
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Обновлено до версии 1.1. Цветовая функциональность выделена в дочерний плагин (также приведён тут, так как просто расширяет утилиты). В качестве цветов принимается почти любая нотация, возможная в CSS, а также массив из трёх элементов. Появилась возможность проще добавлять новые типы данных.
Версия 1.1 обратно не совместима! Чтобы продолжать использовать цветовую функциональность, нужно установить дочерний плагин. Также методы в цветовом классе переименованы для соответствия принятом в движке MV стандарту (верблюжьиГорбы вместо змеиных_поползней).
Версия 1.1 обратно не совместима! Чтобы продолжать использовать цветовую функциональность, нужно установить дочерний плагин. Также методы в цветовом классе переименованы для соответствия принятом в движке MV стандарту (верблюжьиГорбы вместо змеиных_поползней).
Последнее редактирование: 10 года 6 мес. назад пользователем EvilCat.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 6 мес. назад #86916
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Добавила принципы составления утилит.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 6 мес. назад #86919
от Lith13
Я НЕ твинк Винды!
Lith13 ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Не понимаю смысла mergeWithWhite,можно с mergeWithColor проделать тоже самое,получается,лишняя функция? 
А в общем достаточно полезно,спасибо,злая кошка!
А в общем достаточно полезно,спасибо,злая кошка!
Я НЕ твинк Винды!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 6 мес. назад - 10 года 6 мес. назад #86921
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
В PIXI (графический движок нового Мейкера) у спрайта можно указать tint - оттенок. По умолчанию он белый, что означает, что спрайт показывается в своём исходном, неизменном виде. Если поставить чёрный, спрайт станет полностью чёрным. Если красный - то цвет будет красным, но на нём будут видны контуры. Если смешать с розовым, то все цвета станут красноватыми, но не до конца. Получается, что белизна используется как альфа-канал, прозрачность.
Поэтому "соединение с белом", видимо, должно быть более частой операцией, потому что заменяет альфа-канал. Возможно, следует подобрать название получше, например, createTint(color, value)?
Поэтому "соединение с белом", видимо, должно быть более частой операцией, потому что заменяет альфа-канал. Возможно, следует подобрать название получше, например, createTint(color, value)?
Последнее редактирование: 10 года 6 мес. назад пользователем EvilCat.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 6 мес. назад #86946
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Версия 1.2.
Добавлен адд-он Controls, чтобы интерпретировать обозначения клавиш в параметрах плагинов.
Добавлена регистрация адд-онов, чтобы объединять параметры плагина и его адд-онов.
Добавлен адд-он Controls, чтобы интерпретировать обозначения клавиш в параметрах плагинов.
Добавлена регистрация адд-онов, чтобы объединять параметры плагина и его адд-онов.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87238
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Версия 1.3.
Добавлено обновление меты ивентов при смене страницы. Дополнительная мета берётся из первых комментариев - они обрабатываются так же, как ожидается от заметок (note).
Добавлена возможность регистрировать синоним плагина (в частности, при регистрации его как адд-она) и учитывать, который из синонимов используется для обращения к плагину в команде ивента.
Ивентам добавлен метод для установки в них произвольных данных.
Добавлено обновление меты ивентов при смене страницы. Дополнительная мета берётся из первых комментариев - они обрабатываются так же, как ожидается от заметок (note).
Добавлена возможность регистрировать синоним плагина (в частности, при регистрации его как адд-она) и учитывать, который из синонимов используется для обращения к плагину в команде ивента.
Ивентам добавлен метод для установки в них произвольных данных.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 5 мес. назад #87357
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Версия 1.4.
Добавлена команда плагина Calc, позволяющая присваивать переменным результат формулы, записывая $v(N) вместо $gameVariables.value(N), как это приходится делать без применения скрипта.
Добавлена команда плагина Calc, позволяющая присваивать переменным результат формулы, записывая $v(N) вместо $gameVariables.value(N), как это приходится делать без применения скрипта.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89833
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Версия 1.4.1.
У общих событий (Common Event'ов) теперь тоже могут быть метаданные, задаваемые по старинке в первом комментарии. Появился отдельный тип параметра IntArray, принимающий целые числа через запятую.
У общих событий (Common Event'ов) теперь тоже могут быть метаданные, задаваемые по старинке в первом комментарии. Появился отдельный тип параметра IntArray, принимающий целые числа через запятую.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 1 день назад #91724
от EvilCat
EvilCat ответил в теме Кошачьи утилиты для плагинов (EvilCatUtils)
Кошачьи утилиты и вообще все мои плагины, выложенные на данном форуме, обновлены ради обратной совместимости со "старыми" версиями браузеров (включая FireFox образца этой зимы). Кроме того, исправлены некоторые ошибки, и много где добавлено использование класса Map вместо обычных объектов для ассоциативных массивов.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.123 секунд
