Библиотека позволяет генерировать исходники карт sudden-strike/rwg,
используя в качестве источника json-файл описанной ниже структуры.
Это в перспективе даст возможность писать автоматические генераторы карт для
sudden-strike/rwg.
Прежде чем устанавливать утилиту убедитесь, что в системе установлен Node.js.
Для этого запустите консоль и введите команду
node -v
В случае получения сообщения об ошибке, перейдите на сайт Node.js
в раздел downloads и выполните установку.
Далее, запустите команду установки утилиты:
npm i https://github.com/Separator/rwg-map.git -g
Если всё прошло успешно, запустите команду:
rwg -v
Вам должна вернуться текущая версия утилиты.
Утилита принимает следующие параметры:
- -action Действие (generate);
- -destination Путь к папке для сохранения результата работы;
- -source Путь к json-файлу источнику данных (обязательный);
- -v или -version Вывод текущей версии утилиты.
Пример:
rwg -source=my-map.json -destination=C:\Games\RWG3.45\Editor\Maps.src\map.000
json-файл состоит из следующих секций:
- airFields Аэродромы (необязательная);
- cells Ячейки карты (необязательная);
- embeddings Вставки (необязательная);
- flags Флаги (необязательная);
- meta Информация о карте;
- objects Объекты (необязательная).
Представляет из себя массив из максимум 16ти элементов.
Каждый элемент массива состоит из следующих полей:
- takeoffPoint Точка взлёта;
- landingPoint Точка посадки;
- hangarPoints Точки ангаров (массив точек из максимум 16ти элементов).
Каждый объект точки состоит из следующих полей:- x X-координата по горизонтали (0-511);
- y Y-координата по вертикали (0-511);
- direction Направление (
"east", "south", "west", "north").
Представляет из себя массив из максимум 512 на 512 элементов. Каждый элемент массива состоит из следующих полей:
- x X-координата по горизонтали (0-511);
- y Y-координата по вертикали (0-511);
- terrain Тип почвы (
"grass", "arable", "asphalt", "soil", "drySoil", "water", "sand"); - pieces Распределение почвы по ячейке. Представляет собой массив из 4х элементов вида:
[TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT]Каждый из элементов массива может быть числом от 0 до 1:
- 0 Почва не установлена;
- 1 Почва установлена.
Пример:
[1, 1, 1, 1]В этом случае вся ячейка будет заполнена почвой указанного типа.
- brightness Яркость (число от 0x00 до 0x1f0 с шагом изменения 0x10). Значение по умолчанию: 0x100.
Используется для внедрения в карту шаблонов поверх основного содержимого.
Каждый элемент массива состоит из следующих полей:
- x X-координата по горизонтали (0-511);
- y Y-координата по вертикали (0-511);
- path Путь к файлу карты (такого же формата, как и в указанном документе).
Пример шаблона:
{
"x": 100,
"y": 150,
"path": "soviet-city.json"
}Представляет из себя массив из максимум 512 на 512 элементов. Каждый элемент массива состоит из следующих полей:
- x X-координата по горизонтали (0-511);
- y Y-координата по вертикали (0-511);
- airFieldTerritory Территория аэродрома;
- withoutPontoons Без понтонов (
trueилиfalse); - withoutWaves Без волн (
trueилиfalse); - visibilityUp Увеличенная видимость (
trueилиfalse, либо 0 или 1); - visibilityDown Уменьшенная видимость (
trueилиfalse, либо 0 или 1); - obstruction Непроходимость. Представляет собой массив из 4х элементов вида:
[TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT]Каждый из элементов массива может быть числом от 0 до 1:
- 0 Проходимо;
- 1 Непроходимо.
Пример:
[1, 1, 1, 1]В этом случае вся ячейка будет полностью непроходимой.
- completeObstruction Полная непроходимость (
trueилиfalse, либо 0 или 1); - shallows Отмели. Представляет собой массив из 4х элементов вида:
[TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT]Каждый из элементов массива может быть числом от 0 до 1:
- 0 Отсутствие отмели;
- 1 Наличие отмели.
Пример:
[1, 0, 1, 0]В этом случае, левая половина ячейки будет проходима даже будучи заполненной водой.
Представляет из себя объект со следующими свойствами:
- author Автор (Строка от 1 до 255 символов);
- name Название карты (Строка от 1 до 255 символов);
- scheme Схема (
"summer", "winter", "jungle", "desert").
На данный момент поддерживается только схема"summer"; - size Размер (
128, 256, 384, 512); - version Версия (
major.minor.patch).
Представляет из себя объект со следующими свойствами:
- free Массив свободных объектов;
- horizontal Массив горизонтальных объектов;
- vertical Массив вертикальных объектов;
- trees Массив деревьев;
- roads Массив отрезков дорог;
- buildings Массив зданий;
- fences Массив заборов;
- cliff Массив обрывов;
- crates Массив воронок;
- bridges Мосты.
Каждое свойство представляет собой массив объектов.
Сумма длин всех массивов не может превышать 50000.
Длина массива buildings не может превышать 800 элементов.
Длина массива bridges не может превышать 32 элементов.
Каждый элемент массивов имеет следующие свойства:- x X-координата в пикселях по горизонтали (0-511*32);
- y Y-координата в пикселях по вертикали (0-511*32);
- damage Состояние объекта (число от 0 до 3);
- id id-объекта (Число).
32 - ширина ячейки в пикселах.