GRB TitleChanger

Матеріал з РПГ.укр
Перейти до: навігація, пошук

GRB_TitleChanger — це плагін для RPG Maker MV та MZ, який дозволяє змінити титульний екран після певних сюжетних моментів в грі.

Завантажити плагін: GRB_TitleChanger.js. Файл з плагіном мусить називатися GRB_TitleChanger.js (це важливо).

Код можна побачити нижче, в розділі код.

Подібний скрипт також є для інших версій RPG Maker: GRB_TitleChanger_XP (для RPG Maker XP), GRB_TitleChanger_VX (для VX), GRB_TitleChanger_Ace (для VX Ace).

Використання в RPG Maker MV[ ]

Щоб змінити фонове зображення на титульному екрані, використовуйте команду подій Команда плагіну з наступним текстом:

фони_титульн_екр Title1 Title2

Замініть Title1 та Title2 на назви файлів або в директоріях img/titles1 та img/titles2, або в директорії pictures (в залежності від налаштування плагіну «[MV] Графіка з pictures»).

Якщо якись з файлів Title1 або Title2 не потрібен, замініть його на знак _ або -.

Так, команда плагіну з наступним текстом забере фонові зображення і зробить титульний екран чорним:

фони_титульн_екр _ _

Щоб повернути стандартний титульний екран, просто використовуйте такий код:

фони_титульн_екр

Взаємодія з опцією «Вилучити невикористані файли»[ ]

Якщо ви використовуватимете опцію «Вилучити невикористані файли» від час експорту проєкту, графіку титульного екрану, яка вибирається через команди плагіну, буде видалена.

Є два способи це обійти:

1. Не використовувати опцію «Вилучити невикористані файли». Можна видалити невикористані файли вручну.

2. Увімкнути опцію «[MV] Графіка з pictures» і створити десь в грі подію, яка ніколи не буде виконана. В цій події додати команди подій Показати малюнок і вибрати там свої малюнки з графікою титульного екрану. В такому випадку RPG Maker MV не видалятиме малюнок, коли використана опція «Вилучити невикористані файли».

Використання в RPG Maker MZ[ ]

Щоб змінити фонові зображення на титульному екрані, використовуйте команду подій Команда плагіну і виберіть команду «Змінити фони». В налаштуваннях команди виберіть два файли з директорій img/titles1 і img/titles2. Можна вказати лише один з двух файлів, або не вказувати жодного.

Щоб відновити оригінальні налаштування титульного екрана, вказані в базі даних, використовуйте команду подій Команда плагіну з командою «Відновити фони».

Принцип роботи[ ]

Імена файлів зберегаються в глобальній конфігурації гри, і новий титульний екран буде доступний зразу після виконання команди плагіну. Записувати гру не обов'язково.

Ліцензія[ ]

Плагін розповсюджується згідно з ліцензією Creative Commons Zero, тобто автори відмовляються від авторських прав (настільки, наскільки це взагалі можливо зробити згідно з законодавством).

Код[ ]

Показати код скрипту

//====================
// GRB_TitleChanger.js
//====================
/*:
 * @plugindesc Allows changing title graphics during the game
 * @author Garbata team
 * @url https://rpgukr.one/GRB_TitleChanger
 * @target MV MZ
 *
 * @command set_title_imgs
 * @text Set title images
 * @desc Changes title screen graphics
 *
 * @arg title1
 * @text Title 1
 * @type file
 * @dir img/titles1/
 * @desc File that will be used as the lower layer of title screen graphics, if any.
 *
 * @arg title2
 * @text Title 2
 * @type file
 * @dir img/titles2/
 * @desc File that will be used as the upper layer of title screen graphics, if any.
 *
 * @command restore_title_imgs
 * @text Restore title images
 * @desc Restores the initial title graphics from the Database
 *
 * @help
 * Allows to change the title screen background after some plot moments
 * during the gameplay.
 *
 * The usage is slightly different for RPG Maker MV and MZ.
 *
 *
 * Usage in RPG Maker MV
 * ---------------------
 * 
 * To change the title screen background images, use the Plugin command event
 * command with the following text:
 * 
 * set_title_imgs Title1 Title2
 * 
 * In this code, you need to replace:
 * - Title1 with the name of the file in either the img/titles1 or img/pictures
 * directory (without extension) or _, or - (underscore or hyphen signs mean
 * "no picture"),
 * - Title2 with the name of the file in either the img/titles2 or img/pictures
 * directory (without extension) or _, or - (underscore or hyphen signs mean
 * "no picture"),
 * 
 * If you don't want to use Title1 or Title2, just replace them
 * with underscore (_) or hyphen (-).
 *
 * Filenames with spaces in them are not supported. Neither are filenames _.png
 * or -.png, as those will be interpreted as "no picture".
 *
 * The directory from which titles are read depends on the "[MV] Use pictures
 * folder". If this option is enabled, the files are read from img/pictures
 * directory. Otherwise, the files will be read from the img/titles1 and
 * img/titles2 directories.
 *
 *
 * To revert to the standard title screen, just use Plugin command
 * event command with the following text:
 *
 * set_title_imgs
 *
 *
 * Instead of set_title_imgs, you can also input the plugin command's text
 * in other languges: фони_титульн_екр, фоны_титульн_экр or фоны_тытульн_экр 
 *
 *
 * The filenames are stored in the global game configuration, and the new
 * title screen can be seen immediately after executing the plugin command.
 * Saving the game is not required.
 * 
 *
 * NOTE! If you use the "Exclude unused files" option when deploying
 * your project, the title screen graphics will be REMOVED!
 * 
 * There are two ways to counter this:
 * 1. Don't use the "Exclude unused files". You can remove the unused files
 * from your project manually.
 * 2. Enable the "[MV] Use pictures folder" option, and create an event
 * somewhere that will never be executed. In this event, use the "Show picture"
 * event command and choose the title pictures there. This way, RPG Maker MV
 * will retain the picture when using the "Exclude unused files" command.
 *
 *
 * Usage in RPG Maker MZ
 * ---------------------
 *
 * To change the title screen background images, use the Plugin command event
 * command with the "Set title images" command. In the command settings, you
 * can choose the two files from img/titles1 and img/titles2 directories.
 * Either file is optional.
 *
 * To restore the original title screen that was chosen in the Database,
 * use the "Restore title images" event command.
 *
 * 
 * Versions for other RPG Maker engines
 * ------------------------------------
 *
 * This is the version of the plugin for RPG Maker MV and MZ. There are
 * versions for other RPG Maker versions, too:
 * RPG Maker XP: https://rpgukr.one/GRB_TitleChanger_XP
 * RPG Maker VX: https://rpgukr.one/GRB_TitleChanger_VX
 * RPG Maker Ace: https://rpgukr.one/GRB_TitleChanger_Ace
 *
 * Note there are some differences between versions. Since RPG Maker XP, VX and
 * VX Ace don't have global config, the changed title graphics are saved in
 * savegames. So, in these RPG Maker engines you need to save the game before
 * seeing the result. RPG Maker MV and MZ, in contrast, have global
 * configuration settings, so the changes are visible immediately
 * after calling the plugin command.
 * 
 *
 * Public domain dedication
 * ------------------------
 *
 * This plugin is placed into public domain according to the CC0 public domain
 * dedication. See https://creativecommons.org/publicdomain/zero/1.0/ for more
 * information.
 *
 * @param use_pictures_dir
 * @text [MV] Use pictures folder
 * @desc For RPG Maker MV only. Load graphics not from titles1 and titles2, but from pictures folder.
 * @type boolean
 * @on Yes (pictures)
 * @off No (titles1/titles2)
 * @default false
 */
/*:uk
 * @plugindesc Зміна графіки титульного екрана під час гри
 * @author Команда Гарбата
 * @url https://rpgukr.one/GRB_TitleChanger
 * @target MV MZ
 *
 * @command set_title_imgs
 * @text Змінити фони
 * @desc Міняє графіку титульного екрана
 *
 * @arg title1
 * @text Зображення 1
 * @type file
 * @dir img/titles1/
 * @desc Файл, який буде використовуватися як нижній шар графіки титульного екрана (може бути пустим).
 *
 * @arg title2
 * @text Зображення 2
 * @type file
 * @dir img/titles2/
 * @desc Файл, який буде використовуватися як верхній шар графіки титульного екрана (може бути пустим).
 *
 * @command restore_title_imgs
 * @text  
 * @desc Відновлює графіку титульного екрану, вказану в Базі даних
 *
 * @help
 * Дозволяє змінити фон титульного екрану після певних сюжетних моментів
 * під час гри.
 *
 * Використання трошкі відрізняється в RPG Maker MV та MZ.
 *
 * Використання в RPG Maker MV
 * ---------------------------
 * 
 * Щоб змінити фонові зображення титульного екрану, використовуйте команду
 * подій Команда плагіну (Plugin command) з таким текстом:
 * 
 * фони_титульн_екр Title1 Title2
 * 
 * В цьому коді потрібно замінити:
 * - Title1 на назву файла або в директорії img/titles1, або в директорії
 * img/pictures (без розширення); чи _ або - (знак підкреслення або дефісу
 * значить «не використовувати зображення»),
 * - Title2 на назву файла або в директорії img/titles2, або в директорії
 * img/pictures (без розширення); чи _ або - (знак підкреслення або дефісу
 * значить «не використовувати зображення»).
 * 
 * Якщо ви не хочете використовувати файли Title1 або Title2, просто замініть
 * відповідні назви на підкреслення (_) або дефіс (-).
 *
 * Імена файлів з пробілами не підтримуються. Також не можна використовувати
 * імена файлів _.png або -.png, бо _ або - позначають відсутність
 * зображення.
 *
 * Те, з якої директорії будуть братися зображення, залежить від налаштування
 * «[MV] Графіка з pictures». Якщо це налаштування увімкнено, файли будуть
 * братися з директорії img/pictures. Якщо вимкнено — з директорії img/titles1
 * та img/titles2.
 *
 * Щоб повернути налаштування титульного екрану з Бази даних, виконайте
 * команду подій Команда плагіну (Plugin command) з таким текстом:
 *
 * фони_титульн_екр
 *
 *
 * Замість фони_титульн_екр можна також використовувати текст команди
 * плагіну іншими мовами: set_title_imgs, фоны_тытульн_экр чи фоны_титульн_экр 
 *
 *
 * Імена файліd зберегаються в глобальній конфігурації гри, і новий титульний
 * екран буде доступний зразу після виконання команди плагіну. Записувати
 * гру не обов'язково.
 * 
 *
 * УВАГА! Якщо ви використовуватимете опцію «Вилучити невикористані
 * файли» від час експорту проєкту, графіка титульного екрану буде
 * ВИДАЛЕНА!
 *
 * Є два способи це обійти:
 * 1. Не використовувати опцію «Вилучити невикористані файли». Можна
 * видалити невикористані файли вручну.
 * 2. Увімкнути опцію «[MV] Графіка з pictures» і створити десь в грі
 * подію, яка ніколи не буде виконана. В цій події додати команди подій
 * «Показати малюнок» і вибрати там свої малюнки з графікою титульного
 * екрану. В такому випадку RPG Maker MV не видалятиме малюнок, коли
 * використана опція «Вилучити невикористані файли».
 *
 *
 * Використання в RPG Maker MZ
 * ---------------------------
 *
 * Щоб змінити фонові зображення на титульному екрані, використовуйте команду
 * подій Команда плагіну і виберіть команду «Змінити фони». В налаштуваннях
 * команди виберіть два файли з директорій img/titles1 і img/titles2.
 * Можна вказати лише один з двух файлів, або не вказувати жодного.
 *
 * Щоб відновити оригінальні налаштування титульного екрана, вказані
 * в базі даних, використовуйте команду подій «Відновити фони».
 *
 * 
 * Версії для інших рушіїв RPG Maker
 * ---------------------------------
 *
 * Це версія плагіна для RPG Maker MV та MZ. Також доступні версії для
 * інших рушіїв RPG Maker:
 * RPG Maker XP: https://rpgukr.one/GRB_TitleChanger_XP
 * RPG Maker VX: https://rpgukr.one/GRB_TitleChanger_VX
 * RPG Maker Ace: https://rpgukr.one/GRB_TitleChanger_Ace
 *
 * Зверніть увагу, що поміж цими версіями є невелика різница. Через те, що
 * в RPG Maker XP, VX і VX Ace не має глобальної конфігурації, зміни графіки
 * титульного екрана записуються в файлах записаних ігор. Тому в тих версіях
 * RPG Maker потрібно записати гру, щоб титульний екран змінився. В RPG Maker
 * MV та MZ ж є глобальні налаштування, тому зміни видні одразу після виклику
 * команди плагіну.
 * 
 *
 * Дозвіл використання
 * -------------------
 *
 * Цей плагін передано до суспільного надбання згідно з CC0. Детальніше див.
 * на сторінці https://creativecommons.org/publicdomain/zero/1.0/deed.uk
 *
 * @param use_pictures_dir
 * @text [MV] Графіка з pictures
 * @desc Тільки для RPG Maker MV. Зображення будуть братися не з директорій titles1 та titles2, а з pictures.
 * @type boolean
 * @on Так (pictures)
 * @off Ні (titles1/titles2)
 * @default false
 */
/*:be
 * @plugindesc Змена графікі тытульнага экрана падчас гульні
 * @author Каманда Гарбата
 * @url https://rpgukr.one/GRB_TitleChanger
 * @target MV MZ
 *
 * @command set_title_imgs
 * @text Змяніць фоны
 * @desc Мяняе графіку тытульнага экрана
 *
 * @arg title1
 * @text Выява 1
 * @type file
 * @dir img/titles1/
 * @desc Файл, які будзе выкарыстоўвацца як ніжні слой графікі тытульнага экрана (можа быць пустым).
 *
 * @arg title2
 * @text Выява 2
 * @type file
 * @dir img/titles2/
 * @desc Файл, які будзе выкарыстоўвацца як верхні слой графікі тытульнага экрана (можа быць пустым).
 *
 * @command restore_title_imgs
 * @text Аднавіць фоны
 * @desc Аднаўляе графіку тытульнага экрана, заданую ў Базе даных
 *
 * @help
 * Дазваляе змяніць фон тытульнага экрана пасля некаторых сюжэтных
 * маментаў падчас гульні.
 *
 * Выкарыстанне крыху адрозніваецца ў RPG Maker MV та MZ.
 *
 * Выкарыстанне ў RPG Maker MV
 * ---------------------------
 * 
 * Каб змяніць фонавыя выявы тытульнага экрана, выкарыстоўвайце каманду
 * падзей Каманда плагіна (Plugin command) з такім тэкстам:
 * 
 * фоны_тытульн_экр Title1 Title2
 * 
 * У гэтым кодзе трэба замяніць:
 * - Title1 на назву файла або ў дырэкторыі img/titles1, або ў дырэкторыі
 * img/pictures (без расшырэння); ці _ або - (знак падкрэслення і злучок
 * значаць «не выкарыстоўваць выяву»),
 * - Title2 на назву файла або ў дырэкторыі img/titles2, або ў дырэкторыі
 * img/pictures (без расшырэння); ці _ або - (знак падкрэслення і злучок
 * значаць «не выкарыстоўваць выяву»).
 * 
 * Калі вы не хочаце выкарыстоўваць файлы Title1 ці Title2, проста замяніце
 * патрэбныя назвы на падрэксленне (_) або злучок (-).
 *
 * Імёны файлаў з прабеламі не падтрымліваюцца. Таксама нельга выкарыстоўваць
 * імёны файлаў _.png або -.png, бо _ ці - пазначаць адсутнаць выявы.
 *
 * Тое, з якой дырэкторыі будуць брацца выявы, залежыць ад налады
 * «[MV] Графіка з pictures». Калі яна ўключаная, файлы будуць брацца
 * з дырэкторыі img/pictures. Калі выключаная — з дырэкторыі img/titles1
 * і img/titles2.
 *
 * Каб павярнуць налады тытульнага экрана з Базы даных, выканайце
 * каманду падзей Каманда плагіна (Plugin command) з такім тэкстам:
 *
 * фоны_тытульн_экр
 *
 *
 * Замест фоны_тытульн_экр можна таксама выкарыстоўваць тэкст каманды
 * плагіна на іншых мовах: set_title_imgs, фоны_титульн_экр ці
 * фони_титульн_екр
 *
 *
 * Імёны файлаў зберагаюцца ў глабальнай канфігурацыі гульні, і новы тытульны
 * экран будзе даступны адразу пасля выканання каманды плагіна. Запісаваць
 * гульню не абавязкова.
 * 
 *
 * УВАГА! Калі вы будзеце выкарыстоўваць опцыю «Выключыць невыкарыстаныя
 * файлы» падчас экспарту гульні, графіка тытульнага экрана будзе
 * ВЫДАЛЕНАЯ!
 *
 * Ёсць два спосабы гэта абысці:
 * 1. Не выкарыстоўваць опцыю «Выключыць невыкарыстаныя файлы». Можна
 * выдаліць невыкарыстаныя файлы ўручную.
 * 2. Уключыць опцыю «[MV] Графіка з pictures» і стварыць недзе ў гульне
 * падзею, якая ніколі не будзе выкананая. У гэтай падзеі дадаць каманды
 * падзей «Паказаць малюнак» і выбраць там свае выявы з графікай тытульнага
 * экрану. У такім выпадку RPG Maker MV не будзе выдаляць малюнак, калі
 * выкарыстаная опцыя «Выключыць невыкарыстаныя файлы».
 *
 *
 * Выкарыстанне ў RPG Maker MZ
 * ---------------------------
 *
 * Каб змяніць фонавыя выявы на тытульным экране, выкарыстоўвайце каманду
 * падзей Каманда плагіна і выберыце каманду «Змяніць фоны». У наладах
 * каманды выберыце два файлы з дырэкторыі img/titles1 і img/titles2.
 * Можна выбраць толькі адзін з двух файлаў, або не выбіраць ніводнага.
 *
 * Каб аднавіць арыгінальныя налады тытульнага экрана, выбраныя ў Базе
 * даных, выкарыстоўвайце каманду падзей «Аднавіць фоны».
 *
 * 
 * Версіі для іншых рухавікоў RPG Maker
 * -------------------------------------
 *
 * Гэта версія плагіна для RPG Maker MV ды MZ. Таксама даступныя версіі
 * для іншых рухавікоў RPG Maker:
 * RPG Maker XP: https://rpgukr.one/GRB_TitleChanger_XP
 * RPG Maker VX: https://rpgukr.one/GRB_TitleChanger_VX
 * RPG Maker Ace: https://rpgukr.one/GRB_TitleChanger_Ace
 *
 * Звярніце ўвагу, што паміж гэтымі версіямі ёсць невялікая розніца. Праз тое,
 * што ў RPG Maker XP, VX і VX Ace няма глабальнай канфігурацыі, змены графікі
 * тытульнага экрана запісваюцца ў файлах запісаных гульняў. Таму ў гэтых
 * версіях RPG Maker патрэбна запісаць гульню, каб тытульны экран змяніўся.
 * У RPG Maker MV ды MZ ж ёсць глабальныя налады, таму змены бачныя адразу
 * пасля выкліку каманді плагіну.
 * 
 *
 * Дазвол выкарыстання
 * -------------------
 *
 * Гэты плагін перададзены ў грамадскі набытак згодна з CC0. Падрабязней гл.
 * на старонцы https://creativecommons.org/publicdomain/zero/1.0/deed.be
 *
 * @param usePicturesDir
 * @text [MV] Графіка з pictures
 * @desc Толькі для RPG Maker MV. Выявы будуць брацца не з дырэкторый titles1 ды titles2, а з pictures.
 * @type boolean
 * @on Так (pictures)
 * @off Не (titles1/titles2)
 * @default false
 */
/*:ru
 * @plugindesc Смена графики титульного экрана во время игры
 * @author Команда Гарбата
 * @url https://rpgukr.one/GRB_TitleChanger
 * @target MV MZ
 *
 * @command set_title_imgs
 * @text Изменить фоны
 * @desc Меняет графику титульного экрана
 *
 * @arg title1
 * @text Изображение 1
 * @type file
 * @dir img/titles1/
 * @desc Файл, который будет использоваться как нижний слой графики титульного экрана (может быть пустым).
 *
 * @arg title2
 * @text Изображение 2
 * @type file
 * @dir img/titles2/
 * @desc Файл, который будет использоваться как верхний слой графики титульного экрана (может быть пустым).
 *
 * @command restore_title_imgs
 * @text Восстановить фоны
 * @desc Восстанавливает графику титульного экрана, заданную в Базе данных
 *
 * @help
 * Позволяет изменить фон титульного экрана после некоторых сюжетных
 * моментов во время игры.
 *
 * Использование немного отличается в RPG Maker MZ и MZ.
 *
 *
 * Использование в RPG Maker MV
 * ----------------------------
 * Чтобы изменить фоновые изображения титульного экрана, используйте команду
 * событий Команда плагина с таким текстом:
 *
 * фоны_титульн_экр Title1 Title2
 *
 * В этом коде нужно заменить:
 * - Title1 на название файла или в директории img/titles1, или в директории
 * img/pictures (без расширения); или _ или - (знак подчёркивания и дефис
 * значат «не использовать изображение»),
 * - Title2 на название файла или в директории img/titles2, или в директории
 * img/pictures (без расширения); или _ или - (знак подчёркивания и дефис
 * значат «не использовать изображение»).
 *
 * Если вы не хотите использовать файлы Title1 или Title2, просто замените
 * нужные названия на подчёркивание (_) или дефис (-).
 * 
 * Имена файлов с пробелами не поддерживаются. Также нельзя использовать
 * имена файлов _.png или -.png, т. к. _ или - обозначают отсутствующие
 * изображения.
 *
 * То, из какой директории будут браться изображения, зависит от настройки
 * «[MV] Графика из pictures"» Если она включена, файлы будут браться
 * из директории img/pictures. Если выключена — из директорий img/titles1
 * и img/titles2.
 *
 * Чтобы вернуть настройки титульного экрана из Базы данных, выполните
 * команду событий Команда плагина с таким текстом:
 *
 * фоны_титульн_экр
 *
 *
 * Вместо фоны_титульн_экр можно также использовать текст команды на других
 * языках: set_title_imgs, фоны_тытульн_экр или фони_титульн_екр
 *
 *
 * Имена файлов хранятсяв глобальной конфигурации игры, и новый титульный
 * экран будет доступен сразу после выполнения команды плагина. Сохранять
 * игру не обязательно.
 *
 *
 * Внимание! Если вы будете использовать опцию «Искючить неиспользуемые
 * файлы» во время экспорта игры, графика титульного экрана будет
 * УДАЛЕНА!
 *
 * Есть два способа это обойти:
 * 1. Не использовать опцию «Исключить неиспользуемые файлы». Можно
 * удалить неиспользованные файлы вручную.
 * 2. Включить опцию «[MV] Графика из pictures» и создать где-то в игре
 * событие, которое никогда не будет выполнено. В этом событии добавить команды
 * событий «Показать изображение» и выбрать там свои изображения с графикой
 * титульного экрана. В таком случае RPG Maker MV не будет удалять изображение,
 * если использовать опцию «Исключить неиспользуемые файлы».
 *
 *
 * Использование в RPG Maker MZ
 * ----------------------------
 *
 * Чтобы изменить фоновые изображения на титульном экране, используйте команду
 * событий Команда плагина и выберите команду «Изменить фоны». В настройках
 * команды выберите два файла из директорий img/titles1 и img/titles2.
 * Можно выбрать только один из двух файлов, или не выбирать ни одного.
 *
 * Чтобы восстановить оригинальные настройки титульного экрана, выбранные
 * в Базе данных, используйте команду событий «Восстановить фоны».
 *
 * 
 * Версии для других движков RPG Maker
 * -------------------------------------
 *
 * Это версия плагина для RPG Maker MV ды MZ. Также доступны версии
 * для других движков RPG Maker:
 * RPG Maker XP: https://rpgukr.one/GRB_TitleChanger_XP
 * RPG Maker VX: https://rpgukr.one/GRB_TitleChanger_VX
 * RPG Maker Ace: https://rpgukr.one/GRB_TitleChanger_Ace
 *
 * Обратите внимание, что между этими версиями есть незначительное различие.
 * Из-за того, что в RPG Maker XP, VX и VX Ace нет глобальной конфигурации,
 * изменения графики титульного экрана записываются в файлах сохранений игры.
 * Поэтому в этих версиях RPG Maker нужно записать игру, чтобы титульный экран
 * поменялся. В RPG Maker MV и MZ же есть глобальные настройки, поэтому
 * изменения видны сразу после вызова команды плагина.
 * 
 *
 * Разрешение использования
 * ------------------------
 *
 * Этот плагин передан в общественное достояние согласно CC0. Подробнее см. на
 * странице https://creativecommons.org/publicdomain/zero/1.0/deed.ru
 *
 * @param usePicturesDir
 * @text [MV] Графика из pictures
 * @desc Только для RPG Maker MV. Изображения будут браться не из директорий titles1 и titles2, а из pictures.
 * @type boolean
 * @on Да (pictures)
 * @off Нет (titles1/titles2)
 * @default false
 */

(function () {

var pluginName = 'GRB_TitleChanger';

var mvPluginCommands = [
  'set_title_imgs',
  'фони_титульн_екр',
  'фоны_титульн_экр',
  'фоны_тытульн_экр'
];

var mzSetCommand = 'set_title_imgs';
var mzRestoreCommand = 'restore_title_imgs';

var parameters = PluginManager.parameters(pluginName);


ConfigManager_makeData = ConfigManager.makeData;
ConfigManager.makeData = function() {
  var config = ConfigManager_makeData.call(this);
  return this.addChangedTitleImagesToData(config);
};

ConfigManager.addChangedTitleImagesToData = function(config) {
  if (this.changedTitleImages) {
    config.changedTitleImages = this.changedTitleImages;
  }
  if (this.loadTitleFromPictures) {
    config.loadTitleFromPictures = this.loadTitleFromPictures;
  }
  return config;
};

var ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function(config) {
  this.changedTitleImages = config.changedTitleImages || null;
  this.loadTitleFromPictures = config.loadTitleFromPictures || false;
};

ConfigManager.grbTitleChanger_getChangedTitle = function (typeIndex) {
  if (!this.changedTitleImages || typeIndex >= this.changedTitleImages.length) {
    return null;
  }

  filename = this.changedTitleImages[typeIndex];
  if (filename === '-' || filename === '_') {
    return "";
  }

  return filename;
}

var ImageManager_loadTitle1 = ImageManager.loadTitle1;
ImageManager.loadTitle1 = function(filename, hue) {
  changedFilename = this.grbTitleChanger_postprocessTitle1Filename(filename);

  if (ConfigManager.loadTitleFromPictures && changedFilename !== filename) {
    return ImageManager.loadPicture.call(this, changedFilename, hue);
  } else {
    return ImageManager_loadTitle1.call(this, changedFilename, hue);
  }
}

ImageManager.grbTitleChanger_postprocessTitle1Filename = function (filename) {
  if (filename !== $dataSystem.title1Name) {
    return filename;
  }

  filename = ConfigManager.grbTitleChanger_getChangedTitle(0);

  return filename !== null ? filename : $dataSystem.title1Name;
}

var ImageManager_loadTitle2 = ImageManager.loadTitle2;
ImageManager.loadTitle2 = function(filename, hue) {
  changedFilename = this.grbTitleChanger_postprocessTitle2Filename(filename);

  if (ConfigManager.loadTitleFromPictures && changedFilename !== filename) {
    return ImageManager.loadPicture.call(this, changedFilename, hue);
  } else {
    return ImageManager_loadTitle2.call(this, changedFilename, hue);
  }
}

ImageManager.grbTitleChanger_postprocessTitle2Filename = function (filename) {
  if (filename !== $dataSystem.title2Name) {
    return filename;
  }

  filename = ConfigManager.grbTitleChanger_getChangedTitle(1);

  return filename !== null ? filename : $dataSystem.title2Name;
}

// for MV
function getLoadTitleFromPictures() {
  try {
    return JSON.parse(parameters.usePicturesDir);
  } catch (e) {
    return false;
  }
}

var Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
  if (mvPluginCommands.includes(command)) {
    if (args.length > 0) {
      ConfigManager.changedTitleImages = args;
      ConfigManager.loadTitleFromPictures = getLoadTitleFromPictures();
    } else {
      ConfigManager.changedTitleImages = null;
      ConfigManager.loadTitleFromPictures = false;
    }

    ConfigManager.save();
  } else {
    Game_Interpreter_pluginCommand.apply(this, arguments);
  }
}

// for MZ
if (PluginManager.registerCommand) {
  PluginManager.registerCommand(pluginName, mzSetCommand, function (args) {
    ConfigManager.changedTitleImages = [args.title1 || '', args.title2 || ''];
    ConfigManager.loadTitleFromPictures = false;
    ConfigManager.save();
  });

  PluginManager.registerCommand(pluginName, mzRestoreCommand, function (args) {
    ConfigManager.changedTitleImages = null;
    ConfigManager.loadTitleFromPictures = false;
    ConfigManager.save();
  });
}

})();