В связи с запланированным обновлением Fly Data Processor, возникла необходимость обновить и сборщик карты, чтобы было кому автоматически запускать Fly Data Processor.
А чтобы обновить сборщик карты не рискуя нарваться на еще одну полную его переделку - полезно сперва определиться со спецификацией. О чем, собственно, этот пост.
Было бы шикарно, если бы его собрать в составе lua, как например в luadist.org, собрали кучу полезных вещей. Тогда он бы был отвязан от IDE, и каждый смог бы сам выбирать, что ему от сборщика нужно: совместимость со стандартным редактором (как например мне) или полный контроль над всем процессом сборки карты (как например тому же мне при создании релизных версий).
Так же круто будет засунуть функции сборки в SDK, чтоб справка была доступна прям в IDE.
NazarPunk, я пока не планирую включать в состав сборщика какие бы то ни было инструменты для скачивания - это выходит за скоп задач которые должен решать сборщик - как по мне, это задача для внешних подключаемых модулей. А вот по поводу упрощенного импорта надо подумать - какой-нибудь merge-скрипт в состав FlyData вполне может зайти. Да и генерация объектов в РО из кода - тоже потенциальная работа для FlyData, заявленая в возможных фичах для новой версии.
На всякий случай уточню, у меня сейчас в планах и разработке три отдельных составляющих
менеджер сборки, то что я в этом посте называю сборщиком, он сам по себе не делает почти ничего кроме выполнения Lua файлов в правильном месте и порядке
парсер-компилятор для кода, переработка предыдущей версии компилятора, он может делать много разных вещей с кодом, но в отличии от старой версии ожидает что ему будут отдаваться команды из Lua скрипта, сам принимает решения только в "экспресс" режиме, рассчитаном на максимально быструю сборку по захардкоженным в сборщике правилам. Интегрирован в сборщик для расширения доступного функционала.
FlyDataProcessor, новое его поколение, содержит инструменты для работы с данными помимо кода, возможно в итоге будет интегрирован в сборщик, как и модуль для работы с кодом, но пока планируется как внешняя консольная утилита с несколькими режимами работы.
Хорошо бы выглядела работа со скачиванием файлов, например как я делал здесь, только в более расширенном варианте. Ибо на данный момент импорт чужих наработок выглядит довольно убого и долго по времени, хорошо бы это упростить - указал ссылку на наработку и сразу все нужные объекты в РО создались.
Фича, которая будет возможна за счет интеграции с FlyData или другими инструментами парсинга данных в карте
автоматическая генерация списка переменных для всех юнитов стоящих на карте
добавление этого списка в автоподстановку в IDE
регенерация участка кода, отвечающего за создание юнитов и запись их в переменные чтобы гарантировать что все используемые юниты с карты были занесены в соответствующие переменные
отсутствие необходимости явно указать через Гуи на юнита прежде чем его переменную можно будет использовать
Также, эта фича может быть расширена на разрушаемые объекты, но тут нужно осторожно, чтобы все не упало из-за деревьев.
NazarPunk, в первом релизе, да еще и в моей реализации - нет, точно не буду тратить на это время. Но взять тот способ которым ты пользовался у себя и адаптировать его к этому сборщику - дело пяти минут, причем без перекомпиляции самого сборщика, только поправить Lua скрипты.
NazarPunk, смотря что подразумевается под этой совместимостью. Если запись кода обратно в карту, то модуля для этого в стандартной поставке не планируется. Но, модульность подразумевает возможность с минимумом действий прикрутить любую тулзу и утилиту к проекту. Если будет спрос, а лучше - готовый код обертки над внешней утилитой запихивающей код в карту, то этот функционал вполне может быть включен в стандартную поставку.
А если просто речь об одновременной работе в IDE и WE, то тут все на том-же уровне, что и в предыдущем компиляторе Lua - пока не нужно модифицировать файлы в исходной карте, можно одновременно работать и там и там, но если нужно применить какие-то изменения которые должен увидеть редактор, то редактор придется закрыть, применить изменения и открыть заново.
Комментарии проекта Эксперименты в Пустоте
[Lua] Спецификация модульного сборщика карты
Ред. nazarpunk
Ред. prog
Ред. prog
Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
Глядишь, в рефорджу будет хорошая утилита.