Добавлен , опубликован
kw представляет из себя консольную утилиту для проверки, модификации и компиляции карт.
С помощью нее вы можете редактировать карту в любом редакторе, подключать сторонние модули, использовать git, да и вообще это просто удобно.

Особенности

Преимущества:
  • Легкость использования
  • Открытый исходный код
  • Поддержка модулей
  • Автозагрузка необходимых компонентов (jasshelper, w3x2lni, etc...)
  • Создание карты с нуля без использования редактора
  • Кроссплатформенная разработка (Работает под Linux, нужен wine для запуска экзешников)
  • Распаковка уже сделанной вами карты в проект (нет нужды начинать с нуля)
  • Легкое манипулирование зависимостями
  • Работа в нормальных редакторах кода
  • Удобная система локализации и форматирования
Недостатки:
  • Не все карты получится распаковать (вероятно временно)
  • Не будет корректно работать с защищенными картами (скорее всего временно)
  • Не поддерживает Reforged (возможно временно? а надо ли вообще...)
  • Отсутствует поддержка MacOS (наверное, у меня его нет)
  • Мб чет еще, не знаю

Установка

Вам потребуется python-утилита uv и система контроля версий Git.
В конце ресурса вы можете скачать архив с проектом, распаковать его в отдельную папку, открыть в VSCode и приступить к сборке.
Версии на XGM обновляются не так оперативно, так что самую последнюю версию проекта вы можете получить либо по ссылке, либо используя продвинутую инструкцию.

Сборка проекта

После открытия папки вам необходимо будет собрать проект и установить его. Для этого в терминале запустите следующие команды:
$ uv build
$ uv tool install . -e
Дальше могут понадобится дополнительные настройки для вашей системы, но основной путь завершен и у вас в терминале уже может появится команда kw.
Важно: в систему устанавливается лишь ссылка на утилиту, так что перемещение или удаление папки может повлиять на работоспособность.

Как этим пользоваться?

Поскольку функционал достаточно обширный, да и XGM не основная моя площадка, я решил вынести документацию на отдельный сайт, сделанный при помощи mkdocs. Ознакомиться со всем этим вы нажав сюда.
Также важно отметить, что это еще далеко не финальная версия, утилита постепенно дорабатывается, могут встречаться ошибки и проблемы с некоторыми картами.
В первую очередь проект разрабатывался под Linux, однако на Windows тоже проводились различные тесты и утилита работала вполне нормально.
Все пожелания, баги, выпендрежь и тому подобное можно оставлять либо в коментариях, либо в разделе issues на странице проекта.

Видеогайды

Скриншоты

Зачем это ваще надо?

Я начал делать этот проект в начале месяца, поскольку хотел сделать удобный для себя инструмент создания карт на Линуксе. Да и в принципе, как-будто бы нехватает нормальных инструментов для варкрафта. Проект вдохновлен командой uv, которая часто используется для схожих процессов в Python.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
13
Выпущен видеогайд по основам использования утилиты
18
Звучит как то, что я давно хотел. Попробую - отпишусь.
13
Обновление:
  • Улучшено логгирование очистки файлов
  • Исправлена ошибка, возникающая при обновлении модулей
  • Добавлено отображение дублированных имен скриптов при компиляции (double imports)
  • Исправлена ошибка, из-за которой при kw script не обновлялся список скриптов
  • Исправлена ошибка, из-за которой не при очистке отсутствующая папка с импортами могла вызвать ошибку
  • Добавлена поддержка установки локальных модулей из файловой системы
  • Исправлена ошибка, из-за которой при компиляции скриптов на винде могли сохранятся некорректные пути файлов
13
Обновление:
  • Рефакторинг кода, ускорение работы
  • Добавлена поддержка модулей с ландшафтами (папка terrain в модуле)
  • Значительно улучшено логирование при использовании kw create map.w3x
  • Добавлено отображение информации о проекте при использовании команды kw в папке с проектом
  • Исправлен некорректный парсинг названий некоторых GUI триггеров
Загруженные файлы
13
Обновление:
  • Улучшено логирование в некоторых разделах
  • Расширен список стандартных ASCII артов
  • Добавлена команда kw pack позволяющая запаковывать ваши .vj и .zn файлы в триггеры проекта
  • Теперь русские названия триггеров автоматически транслитерируются
  • Добавлена поддержка улучшений в модулях
  • Исправлены мелкие ошибки
  • Добавлена поддержка простого форматирования текста в кастомных объектах при компиляции карты
  • Добавлена автоконвертация похожих русских символов в описаниях кастомных объектов в английские
  • Продолжается рефакторинг кода
Загруженные файлы
38
Крутота! Даешь интеграцию с IMP! :)
Я так то уже начинал некоторую экосистему для него. Может, у тебя получится как-то всё это совместить и развить. Дописать поддержку jass там можно и без пересборки (достаточно конфига).
По идее может получиться офигенный стек, где твоя тулза пересобирает варкрафт форматы, а imp гоняет их по сети/локально и строит деревья зависимостей.
38
kulebyaka, из интересного там есть beforeBuild и afterBuild например, чтобы можно было как раз дать команду той же kw на запаковку. И вотчер, чтобы наоборот, kw мог менять конфиг, а imp видит изменения своего конфига и сам делает пересборку/докачку пакетов. Ну и линукс версия присутствует.
13
Обновление:
  • Теперь утилиты (jasshelper, w3x2lni, etc...) закачиваются в глобальную директорию пользователя, так что их не нужно докачивать для каждого проекта
  • Обновлен парсер Ini файлов, теперь можно создавать много обьедков в одном файле
  • Добавлена команда kw tool которая реализует различные доп функции (в данный момент есть поиск нативок из common.j и Blizzard.j по аналогии с grep, а также поиск обьектов из шаблонов w3x2lni)
  • Исправлены мелкие баги
13
Обновление:
  • kw tool template теперь имеет флаг -s выводящий лишь названия и описания обьедков
  • Исправлены мелкие баги
  • Исправлена часть проблем с наследованием модулей
  • Добавлено наследование кастомным обьедкам (ворует неиспользованные поля у обьедка родителя)
  • Добавлен kw tool icons парсящий базу иконок с Wowpedia, позволяя находить сами картинки (Classic и Reforged) и их пути
  • Продолжение рефакторинга
  • Добавлена kw tool balance который генерирует статический сайт с обьектами, которые имеют поле _balanced = 1
  • Добавлена поддержка простой локализации полей в кастомных обьедках (.toml файлы в папке data/locale/)

Также только что обновил русскую документацию.
Загруженные файлы
13
Обновление:
  • Добавлена генерация lock файла, в котором хранится информация о зависимостях
  • Добавлена простая команда для загрузки 1.26 версии игры
  • Добавлена поддержка форматирования w3i.ini файла, теперь можно автоматически вставлять версию карты и переводить описание
  • Исправлены различные баги, встречающиеся на Windows
  • Теперь перед компиляцией и другими действиями производится бэкап всего проекта взамен бэкапа .w3x файла
  • В конфиг добавлено поле formatter_tools, через которое можно настроить автоформатирование строк
  • Команда kw update теперь обновляет саму утилиту, а обновление модулей перенесено в kw mod update
  • Обновлен парсер .ini файлов
  • Добавлена команда kw localegen, автоматически генерирующая файл с локализацией на основе объедков из вашей карты (не из папки data/)
13
Обновление
  • Добавлена поддержка кастомных утилит на Python, которые добавляются в папку tools (работает и с модулями)
  • Добавлены различные сигналы (начало компиляции, конец и тд), которые можно использовать в утилитах
  • Улучшен вывод информации о карте, добавлена поддержка модулей, а также подсчет строк на каждом из языков (vJASS, ZINC, AS)
  • Добавлен автопоиск корневой папки, так что теперь команды будут работать в любом месте проекта
  • Добавлена команда kw datagen, генерирующая отдельные файлы в папке data/ из файлов map/table/
  • Расширены поля, использующиеся в kw localegen
  • Исправлены различные баги
  • Добавлена команда kw tool iconslist {-c, -r} позволяющая запустить на localhost сайт со списком всех иконок, поддерживает поиск и копирование готового путя до иконки
  • Для kw localegen добавлен флаг -c который генерирует локализацию из файлов в папке data/
  • Проведена значительная оптимизация форматирования текста
  • Теперь можно проверить свои модули на ошибки при помощи команды kw mod check
  • Полностью переписана регистрация команд, теперь утилиты (tools) могут создавать свои команды (kw команда)
  • Добавлен флаг kw -l локаль, позволяющий указать какую локализацию использовать
  • Добавлен парсер .lml файлов, теперь отключенные триггеры из карты автоматически отключаются и при переносе в скрипты
  • Добавлен файл с автокомплитом для оболочки fish
  • Добавлен kw localegen -j, который может генерировать vJASS файл с полной локализацией проекта, который можно использовать для локализации триггеров
  • Добавлен kw datagen -j, который может генерировать vJASS файл со всеми полями кастомных обьектов, который можно использовать для вставки данных обьектов в триггерах.
  • Добавлен простой автодетект файла в котором произошла ошибка при компиляции карты через jasshelper
  • Добавлена поддержка вставки полей обьектов в текст: {f=A00E.damage}
Загруженные файлы
13
Обновление:
  • Исправлена ошибка, из-за которой команда зависала на винде
  • Добавлен прогресс бар при генерации через kw datagen -j
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.