# Добро пожаловать в `millenaire-custom/`

Эта папка — **ВАША**. Millénaire никогда не перезаписывает и не удаляет
ничего, что вы сюда поместите, даже при обновлении мода. Используйте её
для добавления новых зданий, жителей, культур, языков, квестов или
любого другого контента.

Соседняя папка `millenaire/` принадлежит моду и переразвёртывается при
каждой смене версии. Читайте её для справки; не редактируйте напрямую.

## Модель суб-модов

Пользовательский контент поставляется в виде **суб-модов**: каждый
прямой подкаталог `millenaire-custom/` является одним суб-модом со
своим собственным деревом `cultures/`, `languages/`, `gathering_type/`
и/или `quests/`. Несколько суб-модов могут сосуществовать; их вклады
накладываются детерминированно (для файлов REPLACE побеждает первый
суб-мод по алфавиту, остальные вносят аддитивный вклад).

Имена каталогов суб-модов должны соответствовать `[A-Za-z0-9_-]+`.
Имена `cultures`, `languages`, `gathering_type`, `quests` и `exports`
зарезервированы на верхнем уровне — **не** размещайте контент
непосредственно под `millenaire-custom/cultures/...`. Мод откажется
загружать такие файлы и запишет WARN при запуске.

## Быстрый старт 1 — Добавить здание в нормандскую культуру

```
millenaire-custom/
└── my-norman-tweaks/             # любое имя [A-Za-z0-9_-]+ — ваш суб-мод
    └── cultures/
        └── norman/
            └── buildings/
                └── houses/
                    ├── my_house.json    # метаданные плана (скопировано из _templates/)
                    └── my_house.nbt     # шаблон структуры (экспорт из игры)
```

`.nbt` создаётся в игре блоком **Import Table**. `.json` копируется
из `millenaire/_templates/_template_building.json` и редактируется.

## Быстрый старт 2 — Создать совершенно новую культуру

```
millenaire-custom/
└── viking-pack/                          # ваш суб-мод
    ├── cultures/
    │   └── viking/                       # id культуры (должно соответствовать [a-z0-9]+)
    │       ├── culture.json              # обязательно: name, language, biomes
    │       ├── namelists/
    │       │   ├── men_names.txt         # обязательно: хотя бы один namelist
    │       │   ├── women_names.txt
    │       │   └── family_names.txt
    │       ├── villagers/
    │       │   └── leaders/
    │       │       └── leader.json       # обязательно: хотя бы один тип жителя
    │       ├── villages/
    │       │   └── basic_village.json    # обязательно: хотя бы один тип деревни
    │       ├── buildings/
    │       │   └── townhalls/
    │       │       ├── townhall.json     # обязательно: хотя бы одна ратуша
    │       │       └── townhall_a_0.nbt
    │       └── shops/
    │           └── townhall.json         # обязательно: магазин для ратуши
    └── languages/
        └── en_us/
            └── viking_sentences.txt      # обязательно, минимум en_us
```

## Горячая перезагрузка не поддерживается

Контент загружается один раз, при запуске сервера. После редактирования
любого файла в `millenaire-custom/` **перезапустите сервер**, чтобы
изменения вступили в силу.

## Импорт аддона Millénaire 1.12

Поместите устаревший пак как подпапку `millenaire-custom/` (например,
`millenaire-custom/MyOldPack/`). При следующей загрузке Millénaire
автоматически преобразует его в `MyOldPack_converted/`. Соседний
`_converted/` становится рантайм-суб-модом; оригинал сохраняется
как исходник.

## Указатели

- **Полное руководство**: `millenaire/_docs/content-guide.en.md`
  (развёртывается при каждой загрузке мода)
- **Шаблоны** (скелеты для копирования): `millenaire/_templates/`
- **Справочные каталоги** (ID целей, специальные точки, ...):
  `millenaire/_reference/`
- **Репозиторий GitHub**: <https://github.com/Kinniken/Millenaire>
