minecraft:behavior.move_to_block за тебя одним переключателем.Get GodCraftОбзор
minecraft:behavior.move_to_block - компонент сущности: он пишется в объект components своего моба или в одну из его групп компонентов. Задача ИИ, при которой моб идёт к блоку выбранного вида и может запускать события, когда дошёл или пробыл там какое-то время. Подходит для мобов, которые ищут цветы, кровати и тому подобное.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
speed_multiplier | number | 1 | Множитель скорости при движении к блоку. |
search_range | integer | 0 | На сколько блоков в стороны моб ищет нужный блок. |
search_height | integer | 1 | На сколько блоков вверх и вниз моб ищет нужный блок. |
tick_interval | integer | 20 | Примерно сколько тиков проходит между попытками начать задачу. |
stay_duration | number | 0 | Сколько тиков моб должен пробыть у блока, чтобы визит завершился. |
goal_radius | number | 0.5 | Насколько близко моб должен подойти, чтобы считать, что он пришёл. Это не даёт ему дёргаться вокруг точки. |
start_chance | number | 1 | Шанс начать задачу каждый раз, когда проходит интервал тиков. |
target_selection_method | Target Selection Method | "nearest" | Как выбирается блок: "random" или "nearest". |
target_offset | vec3 | [0,0,0] | Смещение по X, Y и Z, добавляемое к позиции выбранного блока. |
on_reach | ActorDefinitionTrigger[] | нет | События, которые срабатывают, когда моб дошёл до блока. |
on_stay_completed | ActorDefinitionTrigger[] | нет | События, которые срабатывают после того, как моб пробыл у блока stay_duration. |
target_blocks | Item Descriptor[] | нет | Типы блоков, к которым идёт моб. |
target_block_filters | Filter Group | {"AND":null,"NOT":null,"OR":null,"all":null,"all_of":null,"any":null,"any_of":null,"none_of":null} | Условия, которым должен соответствовать блок, чтобы его выбрали. |
priority | integer | 0 | Чем меньше число, тем раньше выполняется задача: из двух конкурирующих задач побеждает та, у которой priority меньше.Диапазон: от 0 до … |
control_flags | Goal's control flags[] | нет | Какие части тела занимает эта задача (движение, взгляд, прыжок), чтобы задачи с теми же частями не выполнялись одновременно. |
Пример
Внутри объекта components в BP/entities/<name>.json (значения - по умолчанию или примерные):
BP/entities/<name>.json
{
"minecraft:behavior.move_to_block": {
"speed_multiplier": 1,
"search_range": 0,
"search_height": 1,
"tick_interval": 20,
"stay_duration": 0,
"goal_radius": 0.5,
"start_chance": 1,
"target_selection_method": "nearest"
}
}