95 lines
4.7 KiB
Markdown
95 lines
4.7 KiB
Markdown
# Свойства предметов
|
||
|
||
## Вид
|
||
|
||
### Тип иконки - `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
|
||
"префикс:имя_тега" = [
|
||
"рандомный_пак:предмет",
|
||
"ещё_один_пак:какой_то_блок",
|
||
]
|
||
"другой_префикс:другое_имя_тега" = [
|
||
# ...
|
||
]
|
||
```
|