привязка к обязательному нормальному сохранению карты из редактора это автоматическая потеря всех плюшек, которые дает возможность обрабатывать карту внешним сборщиком и компилятором
Если нужно открытие карты редактором из-за совместной работы, а плюшки не нужны, то привязка будет в самый раз.
Это адов ад, тогда либо придется эти списки компиляции вручную писать постоянно либо после каждого добавления файла кода лезть в редактор, двигать его там, сохранять карту, парсить wct и wtg и формировать новый список сборки. Очень "удобное" решение.
А шаблоны зачем? Нужно пихать всё подряд, указываешь **/*.lua и не мучаешься, если нужен особый порядок, то это так же можно указать. wct и wtg не нужно парсить, их нужно генерировать в IDE, формировать war3map.lua и засовывать в карту. Чтоб в последстивии карту можно было открыть и изменить поля в РО.
Чтоб в редакторе нормально открывалось и сохранялось.
Как я уже говорил - с этим будут нюансы - привязка к обязательному нормальному сохранению карты из редактора это автоматическая потеря всех плюшек, которые дает возможность обрабатывать карту внешним сборщиком и компилятором.
Поэтому мой выбор - забить на валидность сохранения карты редактором если была открыта не исходная карта, а собранная через IDE.
При этом исходная карта не содержит внешнего кода и исправно сохраняется редактором, а потом используется IDE в процессе сборки.
Это адов ад, тогда либо придется эти списки компиляции вручную писать постоянно либо после каждого добавления файла кода лезть в редактор, двигать его там, сохранять карту, парсить wct и wtg и формировать новый список сборки. Очень "удобное" решение.
Опять же, мой выбор - автоматическое определение порядка сборки кода с возможностью вручную влиять на него при необходимости. В конце концов, мы не страницу собираем, а код карты - нам порядок важен только когда одна часть кода использует другую специфичным образом, для всех остальных ситуаций полностью подходит алфавитное расположение.
NazarPunk, зачем тебе тогда wct и wtg руками трогать?
А с синхронизацией структуры папок между IDE и варом есть еще одна проблема, которая не сразу бросается в глаза - в IDE строго алфавитный порядок, а в варе их можно свободно менять местами.
NazarPunk, что даст раскуривание формата, если внешние изменения в этих двух файлах не подхватываются редактором без перезагрузки карты? А вставлять код в war3map.lua вобще не имеет смысла при работе в редакторе, ведь он полностью заново генерируется редактором при сохранении карты.
Если раскусить формат war3map.wtg и war3map.wct то остаётся только вставить код в war3map.lua. Если бы не косяк со слэшами в режиме папки, то карту можно было смело заливать на git и очень комфортно работать.
NazarPunk, технически это реально, я об этом тоже думал сначала, нужно только формат файла триггеров раскурить, но есть нюанс - после редактирования в IDE придется редактором переоткрывать карту каждый раз т.к. редактор не подтянет эти изменения сам до открытия карты и перезатрет их старыми данными если сохранить карту из редактора. В общем - идея хорошая, а реализация слишком сложна и неудобна чтобы это того стоило.
Можно теоретически запилить модуль экспорта в такой формат, для желающих передать карту кому-то у кого ничего кроме обычного редактора нет, но даже так есть нюансы т.к. не все что можно реализовать во внешних файлах можно исправно перенести в редактор так чтобы оно выдавало тот-же результат при сохранении.
В итоге - за коммент спасибо, но добавить эту фичу даже в список рассматриваемых я не могу.
Комментарии проекта Эксперименты в Пустоте
Ломаем Warcraft3 1.31 полностью: Кастомный компилятор Lua
Ред. prog
При этом исходная карта не содержит внешнего кода и исправно сохраняется редактором, а потом используется IDE в процессе сборки.
Ред. prog
Ломаем PTR 1.31 полностью: Lua+JassHelper+костыли
Ред. ScorpioT1000