# Свойства предметов

## Вид

### Тип иконки - `icon-type` и сама иконка - `icon`

В последней версии движка существуют следующие типы иконок предметов, определяющих то, как предмет будет отображаться в инвентаре:
- `none` - невидимый тип, используется только для `core:empty` (пустой предмет). Не влияет на появление предмета на панель доступа к контенту. Тип может быть удалён в будущем
- `sprite` - 2D изображение. Требуется указание свойства icon, состоящее из имени атласа и имени текстуры в этом атласе, разделённые `:`. Пример: `blocks:notfound`. На данный момент в движке существует два текстурных атласа:
  - blocks (генерируется из png файлов в `res/textures/blocks/`)
  - items (генерируется из png файлов в `res/textures/items/`)
- `block` - отображает предпросмотр блока. В icon указывается строковый id блока который нужно отображать. Пример `base:wood`

### Модель предмета - `model-name`

Имя модели предмета. Модель будет загружена автоматически.
Значение по-умолчанию - `packid:itemname.model`.
Если модель не указана, будет сгенерирована автоматическию

### Имя и Описание
`caption` - имя предмета в инвентаре
`description` - описание предмета в инвентаре

Можно использовать `md`

*см. [Text Styles](/doc/en/text-styles.md)*

## Поведение

### Устанавливаемый блок - `placing-block`

При указании строкового id блока предмет устанавливает его при нажатии ПКМ. Именно это свойство используется у всех сгенерированных для блоков предметов.

Пример: предмет ставит блоки базальта:

```json
"placing-block": "base:bazalt"
```

### Излучение - `emission`

Влияет на свет излучаемый предметом, когда он находится в руке игрока.

Массив из трех целых чисел - R, G, B освещения от 0 до 15.

Примеры:

- `[15, 15, 15]` - самый яркий белый свет
- `[7, 0, 0]` - слабый красный свет
- `[0, 0, 0]` - предмет не излучает свет (по-умолчанию)

### Размер стопки (стека) - `stack-size`

Определяет максимальное количество предмета в одном слоте. Значение по-умолчанию - 64.

### Число использований (прочность) - `uses`

Свойство, используемое через [inventory.use](scripting/builtins/libinventory.md).

Статус свойства отображается в интерфейсе инвентаря. Способ отображения определяется через `uses-display`.

### Отображение использований - `uses-display`

- `none` - отображение отключено
- `number` - число
- `relation` - отношение текущего значения к изначальному (x/y)
- `vbar` - вертикальная шкала (используется по-умолчанию)


## Теги - *tags*

Теги позволяют обозначать обобщённые свойства предметов. Названия следует формировать как `префикс:имя_тега`.
Префикс не является обязательным, но позволяет избегать нежелательных логических коллизий. Пример:

```json
{
    "tags": [
        "core:fuel",
        "base_survival:poison",
    ]
}
```

Теги предметам можно добавлять и из других паков, с помощью файла `ваш_пак:tags.toml`. Пример

```toml
"префикс:имя_тега" = [
    "рандомный_пак:предмет",
    "ещё_один_пак:какой_то_блок",
]
"другой_префикс:другое_имя_тега" = [
    # ...
]
```
