Fly Data Processor

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 для удобства.
А также всем, благодаря кому стала доступной спецификация файлов из архива карты:


Views: 23 028

prog #2 - 10 years ago 0
Голосов: +1 / -1
В ближайшее время напишу руководство пользователя и подготовлю карту-пример - на самом деле все далеко не так сложно, как кажется.
ScorpioT1000 #4 - 10 years ago 1
Голосов: +3 / -2
Найс, запостил. Я думаю, файл можно запилить как отдельный ресурс и потом добавлять новые версии как отдельные ресурсы =)
prog #5 - 10 years ago 0
Голосов: +3 / -3
Да, я так и собирался сделать, но пока занимаюсь руководством по использованию. Если тебе видны скрытые неопубликованные ресурсы - там пока только структура страниц готова.
ScorpioT1000 #6 - 10 years ago 2
Голосов: +3 / -1
Да, отлично
Doc #7 - 10 years ago 3
Голосов: +4 / -1
Предлагаю перепилить .jar в .exe для пущего удобства.
prog #9 - 10 years ago 2
Голосов: +3 / -1
Doc, хорошая мысль, спасибо. Если это избавит от необходимости прописывать PATH, то следующую версию обязательно заверну в какой-нибудь загрузчик, ну а если нет, то это подождет т.к. особого удобства не принесет - не думаю что найдутся извращенцы, которые будут пользоваться этим в консольном режиме, а не через JNGP.
Doc #10 - 10 years ago 0
Голосов: +0 / -0
Вроде как избавляет. По крайней мере не наблюдал проблем с PATH. Юзаю jar2exe wizard. Можно извратиться и сделать вообще через Excelsior(тогда жава не нужна будет), но будет много весить.
ScorpioT1000 #11 - 10 years ago 0
Голосов: +0 / -0
Doc, может сделаете? Многим юзерам будет полезно, и сделать типа две версии.
prog:
Doc, хорошая мысль, спасибо. Если это избавит от необходимости прописывать PATH, то следующую версию обязательно заверну в какой-нибудь загрузчик, ну а если нет, то это подождет т.к. особого удобства не принесет - не думаю что найдутся извращенцы, которые будут пользоваться этим в консольном режиме, а не через JNGP.
я бы заюзал, для кампаний то =)
prog #12 - 10 years ago 0
Голосов: +0 / -0
ScorpioT1000, дались тебе эти кампании) для них всеравно надо допиливать чтобы данные из двух файлов брались - из файла данных кампании и из файла данных карты. А завернуть в загрузчик не проблема.
Doc, я пользовался в последний раз launch4j, там дофига всяких настроек, включая загрузку джавы с сайта, если нет нужной версии, но мне не до того было чтобы проверять требует ли он записи пути к java в PATH.
В общем, следующую версию буду выкладывать завернутую в exe.
Пришло время перепилить утилиту так чтобы она состояла из нескольких плагинов и центрального ядра. Так будет удобнее.