26 mar
2012

Fly Data Processor

Added by , published

Краткие сведения

Для игры: Warcraft 3
Тип: Утилита
Сфера применения: работа с данными РО, базы данных
Требования: JNGP, Java 7, руки, мозг
Статус: в разработке
Автор: prog
Данная утилита интегрируется в JNGP экспериментальной сборки и затем при каждом сохранении карты автоматически делает свое грязное дело, а именно собирает данные по всем объектам в РО и использует их для заполнения шаблонов в текстовых описаниях и коде карты.
В частности, эта утилита может быть использована как мощный препроцессор описаний в Редакторе Объектов. А также, как инструмент для автоматической генерации баз данных по объектам в jass-коде.

Общая информация

Принцип работы

Работу утилиты можно условно разделить на четыре этапа:
  • подготовка данных
  • считывание и анализ данных
  • подстановка данных
  • упаковка результатов
Первый и последний пункты возложены на плечи других составляющих JNGP и представляют из себя всего-навсего извлечение из архива карты нужных файлов и помещение измененных файлов обратно в архив карты.
Считывание и анализ данных это расшифровка формата данных об объектах Warcraft 3 и размещение этих данных в памяти утилиты. На этом этапе также происходит категоризация объектов.
А вот подстановка данных представляет из себя достаточно занятный процесс - ранее извлеченные файлы с кодом и строками карты передаются в качестве шаблонов библиотеке FreeMarker, которая и отвечает за всю эту магию.

Ограничения

  • Утилита рассчитана на предоставление ей всех нужных файлов в готовом виде и не занимается их извлечением или обратной упаковкой, поэтому использование ее вне JNGP требует написания обертки, выполняющей все операции с архивом карты.
  • Утилита разрабатывалась без учета возможности работы с кампаниями и не может должным образом функционировать в такой среде.
  • На данный момент утилита адекватно работает только с шаблонами в коде карты, шаблоны в текстовых строках теряются при сохранении, поэтому импорт обработанного файла строк был временно отключен, но его можно импортировать вручную или снять комментарий со строк импорта файла строк в Fly.lua и перезапустить WE.
  • На данный момент отсутствует визуализация процесса обработки данных утилитой.
  • На данный момент нет никакой возможности настроить либо отключить утилиту через меню.
  • На данный момент не гарантируется сохранность данных при использовании утилиты.
  • На данный момент утилите доступны только значения полей, которые отличаются от стандартных.
  • Множество других недоработок

Установка

Подробное описание процедуры установки содержится в руководстве пользователя в соответствующем разделе.

Ссылки

Скачать Java 7
Для нужд обычного пользователя, не занимающегося разработкой на Java с головой хватит JRE.

Благодарности

ScorpioT1000 - за активное участие в обсуждении и помощь с извлечением файлов из архива карты.
Doc - за идею завернуть .jar в .exe для удобства.
А также всем, благодаря кому стала доступной спецификация файлов из архива карты:

Shown only a small set of comments around the pointed one. Go to actual.
The comment is deleted
1
Голосов: 1
prog - 11 years ago
1
Голосов: 1
В ближайшее время напишу руководство пользователя и подготовлю карту-пример - на самом деле все далеко не так сложно, как кажется.
3
Голосов: 3
ScorpioT1000 - 11 years ago
3
Голосов: 3
Найс, запостил. Я думаю, файл можно запилить как отдельный ресурс и потом добавлять новые версии как отдельные ресурсы =)
3
Голосов: 3
prog - 11 years ago
3
Голосов: 3
Да, я так и собирался сделать, но пока занимаюсь руководством по использованию. Если тебе видны скрытые неопубликованные ресурсы - там пока только структура страниц готова.
4
Голосов: 4
Doc - 11 years ago
4
Голосов: 4
Предлагаю перепилить .jar в .exe для пущего удобства.
3
Голосов: 3
prog - 11 years ago
3
Голосов: 3
Doc, хорошая мысль, спасибо. Если это избавит от необходимости прописывать PATH, то следующую версию обязательно заверну в какой-нибудь загрузчик, ну а если нет, то это подождет т.к. особого удобства не принесет - не думаю что найдутся извращенцы, которые будут пользоваться этим в консольном режиме, а не через JNGP.
0
Голосов: 0
Doc - 11 years ago
0
Голосов: 0
Вроде как избавляет. По крайней мере не наблюдал проблем с PATH. Юзаю jar2exe wizard. Можно извратиться и сделать вообще через Excelsior(тогда жава не нужна будет), но будет много весить.
0
Голосов: 0
ScorpioT1000 - 11 years ago
0
Голосов: 0
Doc, может сделаете? Многим юзерам будет полезно, и сделать типа две версии.
prog:
Doc, хорошая мысль, спасибо. Если это избавит от необходимости прописывать PATH, то следующую версию обязательно заверну в какой-нибудь загрузчик, ну а если нет, то это подождет т.к. особого удобства не принесет - не думаю что найдутся извращенцы, которые будут пользоваться этим в консольном режиме, а не через JNGP.
я бы заюзал, для кампаний то =)
Shown only a small set of comments around the pointed one. Go to actual.
To leave a comment please sign in to the site.