# Рекомендации по использованию движка

## Наименование контента

### ID контент-паков

Идентификатор контент-пака должен следовать следующим требованиям:
- название может состоять только из букв латиницы, цифр и символа подчёркивания '\_'
- название не может начинаться с цифры
- длина названия должна находиться в пределах от 2 до 24 включительно

### Блоки и предметы

- id блоков и предметов следуют тем же требованиям, что и ID контент-пака.
- окончание `.item` добавляется только для замены сгенерированного для блока предмета. Пример: `base:stone.item` - предмет сгенерированный для блока камня.
- поле **caption**, предназначенное для отображения названия в инвентаре, не указывается с заглавной буквы, без необходимости. Движок автоматически повышает регистр при отображении в интерфейсе.

## Хранение файлов

### Данные контент-паков

#### Данные в мире

Состояние, которое нужно сохранять в мире, должны находиться в `world:data/id_пака/`. Путь следует получать через специальную функцию: 
```lua
local path = pack.data_file(PACK_ID, "имя_файла")
file.write(path, данные)
-- запишет данные в файл world:data/PACK_ID/имя_файла
```
Здесь PACK_ID является доступной константой, т.е не нужно вписывать имя пака самостоятельно.

Папка `world:data/PACK_ID` будет создана при вызове `pack.data_file`.

#### Общие данные

Настройки и иные данные, что должны быть доступны из всех миров, где используется пак, должны находиться в 
`config:id_пака/`. Можно использовать специальную функцию:

```lua
local path = pack.shared_file(PACK_ID, "имя_файла")
file.write(path, данные)
-- запишет данные в файл config:PACK_ID/имя_файла
```
