Портирование мода на Android с помощью ESTool
Необходимо наличие установленного Python и, для использования полного функционала, установленного модуля Pillow (PIL).
Благодаря утилите ESTool можно облегчить портирование своего мода в несколько раз, т. к. она позволяет автоматически урезать размеры изображений/кнопок/стилей и т. п. до тех, что поддерживает мобильная версия Бесконечного Лета, экономя огромное количество времени. Создана группой "Загрузчик модов для Бесконечного Лета", за что им большое спасибо. Программа всё ещё в разработке, так что ошибки не исключены.
В нашем примере используется версия 1.001.
Установка
Выбираем версию, скачиваем, распаковываем архив в любую папку.
Настройка
Открываем config.py, смотрим.
dry_run— делает прогон кода, если значение переменной равноTrue. Ничего не меняет и не создаёт никаких файлов (кроме лога), но выявляет большую часть ошибок. Настоятельно рекомендуется сначала запустить сTrue, посмотреть лог, а уже затем ставить наFalseи запускать скрипт.in_place— еслиFalse, то портированный мод кладётся в отдельную папку рядом. ЕслиTrue, то он кладётся вместо исходных файлов.backup_style— создание бэкапа скриптов. Еслиin_placeравноTrue, то создаются резервные копии rpy-скриптов (и только скриптов!).- При значении
separateбэкапы создаются в отдельной папке. - Если
nearby, то бэкап кладётся рядом с исходными файлами (с расширением._rpy). - Если
None, то бэкапы не создаются. Еслиin_placeравноFalse, то настройка игнорируется (в бэкапах нет необходимости, поскольку исходные файлы остаются в целости и сохранности).
- При значении
backup_location— приbackup_styleсо значениемseparateзадаёт путь к папке с бэкапами.src_path— путь к папке с модом, который требуется портировать.dest_path— путь, куда класть результат. Приin_placeсо значениемTrueзаменяет путь вsrc_pathнаdest_path.rename_non_ascii— при значенииTrueпереименовывает файлы в латиницу, транслитерируя кириллицу при наличии.rescale_coordinates— при значенииTrueумножает координаты в коде на 2/3, подгоняя под размеры для Android.comments_style— дописывание комментария к изменённым строкам в коде.- Если равно
long, то в комментарий пишется исходная строка целиком. - Если равно
short, то делается пометка, что строка была изменена. - Если равно
none, то комментарий не пишется.
- Если равно
Если при in_place со значением True запустить скрипт дважды с comments_style со значением none, то координаты будут изменены дважды!
resize_images— еслиTrue, сжимает изображения в полтора раза.
Требуется наличие модуля Pillow.
Если при in_place со значением True запустить скрипт дважды, то картинки будут сжаты дважды!
-
old_virtual_root— если в коде скриптов для доступа к файлам используется какой-то префикс, не отражённый в структуре каталогов (например,"mods/"), следует вписать его сюда. Иначе не будет работать замена путей. -
new_virtual_root— если в ходе портирования требуется добавить постфикс, он указывается здесь. -
exclude_patterns— шаблоны файлов, которые следует исключить из мода.?— любой одиночный символ.*— любое количество любых символов.**— любые подпапки.
Примеры исключений:
**.rpyc— скомпилированные в байт-код скрипты.**/Thumbs.db— свойства папки (Windows).**/.DS_Store— свойства папки (macOS).**._rpy- наши бэкапы приbackup_style, равномnearby(старые удаляются, новые создаются).
-
path_rewrite_rules— правила по перемещению файлов. Синтаксис:префикс, шаблон, новый_префикс.Если путь к файлу начинается с указанного префикса и удовлетворяет шаблону, то этот префикс срезается и заменяется новым. Файл копируется/перемещается (в зависимости от
in_place) в новое место; также переписываются пути в скриптах.
Правила применяются последовательно, так что порядок объявления важен.
Обязательно наличие одного правила: ("/мод/", "**", "/мод/"). Под это правило попадают все загружаемые в скриптах файлы, но оно ничего не меняет. Необходимо для корректного переписывания путей в коде.
extra_files— дополнительные файлы, которые требуется добавить в мод.
Обязательно наличие одного правила: ("sprites_lol.rpy", "/"). Добавляет rpy с мобильными версиями оригинальных спрайтов.
Запуск
Запускаем командную строку, перемещаемся в папку с ESTool с помощью cd, запускаем скрипт: python estool-1.001.py. Прогресс портирования также отображается. По окончании нажмите Enter и закройте командную строку.
Заключение
Как уже упоминалось ранее, скрипт неполноценен и некоторые места в коде может не обработать, поэтому на всякий случай открываем и внимательно просматриваем свои rpy-файлы на наличие изменений и правим.