Skip to content

Latest commit

 

History

History
119 lines (86 loc) · 23.5 KB

INTRODUCE-ru.md

File metadata and controls

119 lines (86 loc) · 23.5 KB

Представляем... Inner Core Mod Toolchain

Приветствую и добро пожаловать в ченджлог обновлений этого тулчейна, здесь рассказано о самых сочных функциях обновления и собран список изменений.

Полная поддержка Linux

Теперь, вы можете использовать один и тот же тулчейн на разных платформах. Скрипты работают с относительными путями, таски расширены для обратной поддержки любых платформ, а файлы для сборки были добавлены специально для Unix или обновлены в соотвествии с требованиями обоих платформ. Поддерживаются те же Visual Studio Code, IntelliJ IDEA и прямая работа с консолью.

Мультипроект

Каждый проект стал отдельной составляющей и отделился от основных настроек тучлейна. Теперь make.json содержит лишь информацию, которая действительно нужна для сборки, его удобнее публиковать в открытые репозитории. Создавайте, импортируйте и удаляйте столько, сколько вам позволит ваше дисковое пространство. Настройки, заданные в основной конфигурации toolchain.json могут быть использованы как стандартные значения для всех проектов.

Новые проекты по шаблону

Хотите создать новый проект или импортировать существующий? Используйте соответствующие таски New Project и Import Project, с ними создание проектов станет как никогда проще. Введите имя, опционально измените версию или описание и все готово! Благодаря шаблонам вы можете напрямую использовать разные конфигурации или создать свой идеальный начальный мод. Шаблоны неподвластны обновлениям, выбираются из консоли и могут быть распространены через открытые репозитории. Просто переименуйте make.json в template.json и ваш проектный шаблон уже может быть использован.

Создали базовый шаблон для новых модов? Задайте свойство defaultTemplate в глобальной конфигурации или даже вашем текущем моде для отделения особых шаблонов друг от друга. Даже если указано свойство базового шаблона, вы все равно можете выбирать другой шаблон напрямую из консоли во время создания нового проекта.

Рабочее пространство

Раз уж весь тулчейн стал мультипроектным, для Visual Studio Code добавлена полная интеграция с файлом формата *.code-workspace, в нем теперь будут находиться все ваши открытые проекты. Открывайте рабочее пространство через редактор со встроенным шаблоном toolchain.code-workspace и начинайте свой путь без сложных настроек. Или измените свойство workspaceFile для полного отключения интеграции или изменения пути к файлу пространства.

Вы все также можете открывать папку тулчейна в вашем редакторе, пользуясь таском Select Project. Остальные папки проектов скрываются, так что вы можете сосредоточиться исключительно на выбранном моде. Хотите собирать проект по текущему открытому файлу? Тогда, на помощь приходят те же таски с окончанием * by Active File. Так, будет собран проект файл которого сейчас открыт.

Подключение за пару секунд

Собрали проект, а что дальше? Если устройство уже подключено, оно просто будет сохранено в списке для последующих подключений. В противном случае будет вызван мастер настройки моста, в котором вы сможете настроить автоматическое подключение по проводу, удаленно или с автоматическим определением удаленных соединений. После этого подключение будет выполняться само по себе с предпочтением к проводному, либо пользователю будет предложено выбрать одно устройство из списка. Используйте таск Configure ADB для настройки новых устройств если вам требуется таковое.

Для каждого мода вы все также можете настраивать pushTo, на этапе первой сборки предлагается выбрать глобальный модпак для отправки на устройство. Он будет использован для каждого мода по умолчанию, свойство в make.json указывает на полный путь до мода, а глобальное значение определяет лишь путь до модпака.

Ускорение сборки

На этапе разработки нам всегда нужен минимум времени между началом компиляции и запуском игры. Скрипты, жаба и натив компилируются вновь лишь при изменениях, а в случае чего, если что-либо не настроено, каждая опция доступна напрямую из открытой консоли сборки. Вынесены конфигурации для компиляции на этапе разработки, так, например скрипты компилируются с частично исключенными декларациями.

Используйте композитную сборку для единовременной сборки всех скриптов проекта при их изменении, так сборка ускорится еще сильнее, или просто воспользуйтесь таском Watch Scripts для отслеживания изменений. Рассмотрите свойство tsconfig и прочие из development для продвинутой настройки компилятора или просто добавьте нужные свойства в комментарии сборочных файлов. Больше интерактива, меньше времени на компиляцию. Вот два основных шага к идеальному тулчейну. Ну а интуитивности помогут иконки, добавленные к таскам.

Сборка жабы с компилятором R8/D8

Проекты отныне официально поддерживают использование Java 8 со всеми сахарными прелестями и компиляцией для поддержки на старых версиях Android. Скомпилированые классы кешируются чтобы сэкономить время на последующую компиляцию, а неизменные библиотеки так и вовсе будут скомпилированы лишь один раз. В ближайшее время также планируется и реализация использования Kotlin в качестве языка для компиляции, но это уже совсем другая история.

Не менее важно и то, что теперь установка компонента с класспатчем для компиляции занимает считанные секунды. Так, здесь осталась лишь пара библиотек, которая быстрее компилируется, обновляется автоматически с обновлениями лаунчера и весит в пару раз меньше. Что может быть лучше?

Обновления как никогда проще

Запустите таск Check for Updates и все готово! Устанавливаются обновления для скриптов тулчейна, конфигураций тасков, если это не отключено, и семпла мода если он есть. Проекты ни коим образом не могут быть затронуты. Однако не одним тулчейном теперь богат тулчейн. Этот же таск проверит обновления для всех установленных компонентов.

Что такое компоненты? Android Debug Bridge, TypeScript декларации, жабный компилятор, класспатч с автоматическими обновлениями под последние версии Inner Core, нативный компилятор и хедеры, включая еще и GNU STL. Каждый компонент обновляется лишь тогда, когда в него удаленно внесены изменения. Вы сможете установить компоненты используя установочный скрипт или впоследствии таском Reinstall Components, если такая необходимость появится.

Работайте не отходя от терминала

Не достаточно встроенных конфигураций, а создание новых остается проблемой для работы на разных устройствах? Или может быть вы хотите работать лишь в консоли, либо используя удаленный сервер? Отныне и впредь тулчейн работает как независимая библиотека для Python, используйте его в своих программах или вызывайте его из вашего PATH без каких-либо проблем. Хорошим стартом будет вызов python -m icmtoolchain --list в вашем терминале, конечно, после того как тулчейн станет частью PYTHONPATH.

Поддержка на высоте

Мы исправляем или помогаем с решением возникающих проблем в ближайшее время. С момента первого обновления были внесены коррективы, исправляющие существующие проблемы; работа тестового запуска консоли больше не является таковой, новые возможности не затрагивают работу старых, процесс моддинга становится интуитивнее, а переход на мультиплатформенную поддержку полностью завершен. Нашли проблему или неточность? Опубликуйте новую проблему в репозитории, чтобы мы могли узнать о ней.

Настроек становится больше, возможности расширяются, а время сборки наоборот уменьшается. Но это все еще не все, запланированные идеи будут реализованы по мере возможностей. И поверьте, они еще смогут вас удивить и сделать процесс моддинга более приятным и простым. А чтобы не теряться в проекте, документация содержит всю необходимую информацию о доступных тасках и всех конфигурациях тулчейна.

Прочие изменения

То что по каким либо причинам не вошло в остальной список, но возможно будет для вас не менее интересным.

  • Компиляция легаси жабаскрипта и отдельных файлов с тайпскриптом осуществляется тулчейном
  • Сборка папок с помощью легаси жабаскрипта со стандартным, Inner Core подобным, видом
  • Добавлен автопинг еще и локальных портов найденных адресов, можете заварить себе чаю пока процесс будет завершен
  • Отдельные таски сборки больше не перезаписывают список изменененных файлов, он заменяется при чистке или релизе
  • Выборки модов и некоторые из функций консоли теперь состоят из имен модов, а не хаотичного названия папок
  • Сборка производится корректно, если выходного пути не существует или файл становится папкой
  • Скрипт установщика исправно работает на Windows, просим прощения за возникшую проблему
  • Несколько стратегий сравнения файлов позволят ускорить сборку или сделать поиск изменений точнее
  • Ввод текста из консоли на Windows работает исправно, включая флажки и прочие элементы CLI
  • Индикаторы перехода между страницами помогут чувствовать себя в консоли еще более уверенно
  • Доступно опциональное указание целового файла или папки для дополнительных ресурсов
  • Если папка для импорта не задана, используются стандарты именования как при создании проекта
  • Неотносительные пути в измененных папках сборки более не очищаются
  • Стандартные папки и шаблоны включают исключения отслеживания для папок кеширования
  • Сборочные папки не влияют на формат выходных файлов, формат меняется только для файлов
  • Атрибуты файлов в архивах корректно извлекаются, в некоторых случаях установка быстрее
  • Доработана документация, чтобы упростить ваш старт в этом обновлении тулчейна
  • Отсутствие необязательных свойств в манифесте жабных и нативных папок не вызывает ошибку
  • Выходная папка по умолчанию не очищается для ускорения сборки, конфигурация изменяет это
  • Необходима установка TypeScript 3 и выше для компиляции композитных проектов
  • Изменение tsconfig.json в следствии сборки не вызывает сборку в следующий раз
  • Отмена загрузки нативного компилятора останавливает сборку, а не продолжает ее
  • Жабе больше не нужно каждый раз пересобирать дексы если они были очищены в output/
  • Если выходного источника скрипта не существует будет выведено лишь предупреждение
  • Небольшой прирост скорости хеширования на новых версиях Python, примерно на 20-40%
  • Исправлены некоторые графические или эстетические ошибки в консоли

  • Скрипт установки расширен для использования стартовых операций импорта, установки компонентов и интерактивной консоли с настройками; он также может быть использован для переустановки поврежденного тулчейна
  • Поддержка сборки custom скриптов с настройками sourceName, optimizationLevel и поддержкой мультиинклюдов свойством includes
  • Добавлены таски для исключительной сборки, в таких случаях отправка на устройство выполнена не будет
  • Обновлены нативные хедеры, в класспатч добавлены пропущенные библиотеки и генерация новых библиотек для обновлений, декларации разделены для поддержки контекста прелоадера (зарузчика ресурсов) модов
  • Архив релиза собирается в подпапку эквивалентной названию папки проекта, в корне архива сборки теперь лежит папка а не весь проект
  • Отдельный таск для ребилда конфига деклараций
  • Немалая часть известных ошибок сопровождается соответствующими сообщениями и кодами выхода вместо прямого возникновения
  • По умолчанию на устройство отправляются все файлы, а не только измененные, так как существует несколько человек у которых есть проблемы с этим; измените свойство adb.pushUnchangedFiles чтобы вернуть эту опцию в старое русло
  • Частичная поддержка 'голового' жабаскрипта, компилятор tsc требуется если вы планируете использовать декларации или тайпскрипт
  • toolchain-mod -> toolchain, toolchain-mod/src -> toolchain-sample-mod, toolchain-mod теперь это шаблон построенный на базовых необходимостях моддеров
  • Рекомендуется убрать префикс src из своих проектов, папки лучше расположить прямо в корне проекта перед глазами
  • Из воркспейса скрыты только действительно ненужные папки, основные скрипты, декларации, хедеры и класспатч к ним не относятся
  • Исправлены сборка базового шаблона для мода и пример с использованием всех доступных возможностей
  • Установка NDK не выкидывает пользователя с ошибкой если установка отменяется
  • В проекте вместо пробелов используется табуляция; это касается как тулчейна, так и собранных им модов; ну и неиспользованные импорты удалены просто как есть
  • Удалено стандартное создание модов с прилегающими к нему архивами
  • Свойство ndkPath может использовать относительные пути от тучлейна
  • Android Debug Bridge не будет загружен по умолчанию если он уже установлен в систему
  • Нативный и жабный компиляторы больше не пытаются компилировать пустые папки или файлы с неподдерживаемым расширением
  • Шорткуты {datestamp} и {timestamp} для свойств mod.info (info в make.json) превращаются в дату и время компиляции соответственно
  • Библиотека distutils признана устаревшей и больше не требуется для работы тулчейна
  • Исключение тулчейна из результатов поиска
  • Базовые конфиги в случае чего наследуются от основного конфига тулчейна, что и позволяет использовать овверайды в проектах
  • Для некоторых свойств добавлены относительные или абсолютные пути, изучите настройки конфигураций для получения подробностей
  • Скрипт импорта расширен для поддержки новых типов скриптов, жабного и нативного кода, а также сжатия нескольких make.json в один; дополнительно копируются папки репозиториев для упрощения перехода на новый тулчейн
  • Обновлены прогрессы в тасках, в целом все консольные элементы претерпели изменения
  • Сниппеты для калбеков еще быстрее помогут вставлять новые в код
  • Еще несколько новых свойств в конфиге, нет смысла расписывать их здесь