> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Данжоны

Данжоны — это процедурно генерируемые структуры, состоящие из шаблонов.

## Быстрый старт

Чтобы сгенерировать данжон:

1. Подготовьте карту, космическую или планетарную (через команду `planet`)
2. Выберите preset, затем выполните команду данжона. У неё есть автодополнение для помощи. `dungen <MapId> <preset> <position X> <position Y> [Опционально seed]`. Это запустит задачу генерации данжона.

Следует учитывать, что в данный момент планеты удерживают загруженными все посещённые области, поэтому если вы загрузите данжон в уже посещённой области, он смешается с сущностями биома. Чтобы этого избежать, загрузите его в другом месте (проще всего определить, отдалив камеру и посмотрев на загруженные тайлы).

## Как это работает

DungeonPresetPrototype

V

DungeonRoomPackPrototype

V

DungeonRoomPrototype

### Шаблоны данжонов

Комнаты данжонов определяют, какую карту использовать и смещение тайлов на этой карте. Это уменьшает количество карт, ускоряет загрузку и позволяет одновременно видеть все комнаты.

При создании нового шаблона убедитесь, что сохранили его как карту и что карта имеет gridcomponent.

### Preset данжона

Preset данжона содержит список областей, которые могут быть заняты через наборы комнат. Также в нём есть белый список используемых комнат.
Preset данжона фиксирован и не включает RNG.

### Набор комнат данжона

Они состоят из списка комнат в фиксированных границах. Эти границы сопоставляются с областями набора комнат, указанными в preset.
Они случайным образом выбираются для использования в preset, если области совпадают.

Обратите внимание, что комнаты внутри набора не должны касаться друг друга; генератор создаст между ними соединения.

### Комнаты данжона

Они определяют границы для области, которую они занимают внутри набора комнат.
Как указано выше, они также определяют карту и то, какая часть карты содержит их содержимое.

### Дополнительные примечания

Preset, наборы комнат и комнаты можно использовать в любой валидной ротации.

Генерация детерминирована только в той степени, в которой одна и та же конфигурация на одном и том же коммите даст одинаковый данжон между запусками. Если добавляются новые прототипы, это изменит выбор комнат.

## Создание нового контента

Настройка прототипов требует простых изменений в yaml. Создайте карту в игре и проверьте правильность координат и то, как будет выглядеть ваша планировка.

Создание новых комнат требует сохранённого файла карты и прототипов, указывающих смещение на карте для использования. Посмотрите на существующие DungeonRoomPrototypes, чтобы увидеть, как выглядит yaml.

Ниже приведён шаблон, который можно использовать. **Обратите внимание, что нет ограничений на размер или количество комнат.**

[dungeon\_template.yml](/images/misc/dungeon_template.yml)

## Советы по картографии

* На момент написания нет автоматической прокладки кабелей, поэтому если вы хотите, чтобы данжон питался, рекомендуется прикрепить провода в средних точках на каждом краю комнат (всё ещё в пределах границ).
