Документация
/
Docs/ru/reference/map-format/syntax.md
Синтаксис файла карты
Сгенерированный справочник. Не редактируйте напрямую. Обновите BuildTools/MapFormatInterface.json или владеющие метаданные движка, затем запустите python BuildTools/docs_map_format.py --write.
Контейнер карт является настроенным файлом прототипов с одним или несколькими якорями [ProtoMap]. Каждый якорь владеет вложенными секциями [$Name/Critter] и [$Name/Item]; вместо $Name можно использовать явный ID карты.
Формы секций
| Стабильный ID |
Синтаксис |
Получатель |
Кардинальность |
Значение |
map-format.section.proto-map |
[ProtoMap] |
Map |
одна или несколько на контейнер |
Объявляет свойства уровня карты и начинает контекст для следующих секций [$Name/Critter] и [$Name/Item]. |
map-format.section.critter |
[$Name/Critter] or [<MapId>/Critter] |
Critter |
ноль или больше на объявленную карту |
Размещает прототип криттера и применяет переопределения свойств Critter для размещения. |
map-format.section.item |
[$Name/Item] or [<MapId>/Item] |
Item |
ноль или больше на объявленную карту |
Размещает предмет карты, инвентаря или контейнера и применяет переопределения свойств Item для размещения. |
Управляющие директивы
| Директива |
Секции |
Синтаксис |
Обязательна |
По умолчанию |
Значение |
$Name |
ProtoMap |
$Name = <MapId> |
нет |
базовое имя исходного файла |
Выбирает ID прототипа Map и базовые имена обоих запечённых ресурсов. Без $Name якорь разрешается в базовое имя исходника; в контейнере с несколькими картами каждый якорь следует именовать явно. |
$Parent |
ProtoMap |
$Parent = <ParentMapId> [<ParentMapId> ...] |
нет |
без родителей |
Использует обычное наследование прототипов Map при запекании прототипов. Сохранение в Mapper выпускает развёрнутый результат и не сохраняет эту директиву. |
$Text <language> |
ProtoMap |
$Text <language> = <localized text> |
нет |
без текста карты |
Добавляет локализованный текст прототипа и сохраняется циклом загрузки и сохранения Mapper как дополнительное поле ProtoMap. |
$Id |
Critter, Item |
$Id = <positive integer> |
нет |
следующий свободный положительный ID |
Задаёт общую идентичность размещения для ссылок владения. Отсутствующие, неположительные и повторяющиеся ID исправляются при загрузке; авторские карты не должны полагаться на исправление. |
$Proto |
Critter, Item |
$Proto = <PrototypeId> |
да |
отсутствует |
Разрешает базовый прототип Critter или Item до применения переопределений размещения. |
Минимальная карта
[ProtoMap]
$Name = SmallRoom
Size = 80 80
WorkHex = 40 40
[$Name/Critter]
$Id = 1
$Proto = Guard
Hex = 38 40
Dir = 3
[$Name/Item]
$Id = 2
$Proto = MetalDoor
Hex = 42 40
В пределах одной выбранной карты порядок размещений не имеет семантики: загрузчик обрабатывает всех криттеров, затем все предметы. Используйте явные уникальные ID для стабильных ссылок владения и понятных diff.