minecraft:behavior.take_block за тебя одним переключателем.Get GodCraftОбзор
minecraft:behavior.take_block - компонент сущности: он пишется в объект components своего моба или в одну из его групп компонентов. Позволяет сущности поднять блок из мира и носить его, как эндермен. Сочетайте с place_block, чтобы она могла поставить блок обратно.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
blocks | Block Descriptor[] | нет | Какие блоки можно поднимать. Оставьте пустым, чтобы разрешить любой блок. |
can_take | Filter Group | {"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null} | Условия, которые должны выполняться, чтобы сущность попыталась взять блок. |
on_take | ActorDefinitionTrigger | {"event":"","filters":{"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null},"target":"self"} | Событие, которое запускается после того, как блок взят. |
xz_range | IntRange | {"max":2,"min":-2} | Горизонтальный радиус вокруг сущности, где можно брать блоки. |
y_range | IntRange | {"max":3,"min":0} | Радиус вверх и вниз вокруг сущности, где можно брать блоки. |
chance | number | 1 | Шанс каждый тик, что сущность попытается взять блок.Диапазон: от 0 до 1 |
affected_by_griefing_rule | boolean | true | Если true, цель перестаёт работать, когда правило игры mobGriefing выключено. |
requires_line_of_sight | boolean | true | Если true, сущность должна видеть блок, чтобы его взять. |
priority | integer | 0 | Решает, какая цель победит, если запуститься хотят несколько: меньшие числа выполняются первыми.Диапазон: от 0 до … |
control_flags | Goal's control flags[] | нет | Перечисляет части тела, которыми управляет эта цель (например, движение, взгляд или прыжок), чтобы цели, которым нужна одна и та же часть, не работали одновременно. |
Пример
Внутри объекта components в BP/entities/<name>.json (значения - по умолчанию или примерные):
BP/entities/<name>.json
{
"minecraft:behavior.take_block": {
"blocks": [],
"can_take": {
"AND": null,
"NOT": null,
"OR": null,
"all": null,
"all_of": null,
"any": null,
"any_of": null,
"none_of": null
},
"on_take": {
"event": "",
"filters": {
"AND": null,
"NOT": null,
"OR": null,
"all": null,
"all_of": null,
"any": null,
"any_of": null,
"none_of": null
},
"target": "self"
},
"xz_range": {
"max": 2,
"min": -2
},
"y_range": {
"max": 3,
"min": 0
},
"chance": 1,
"affected_by_griefing_rule": true,
"requires_line_of_sight": true
}
}