minecraft:looked_at за тебя одним переключателем.Get GodCraftОбзор
minecraft:looked_at - компонент сущности: он пишется в объект components своего моба или в одну из его групп компонентов. Запускает события, когда другая сущность, обычно игрок, смотрит прямо на эту. Так эндермены злятся, если на них пристально смотреть.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
field_of_view | Decimal | "26" | Ширина конуса обзора в градусах, по которому решается, смотрит ли кто-то. |
filters | Minecraft Filter | нет | Какие сущности проверяются как возможные наблюдатели. |
find_players_only | Boolean | "false" | Проверять только ближайшего игрока, прошедшего фильтры. |
line_of_sight_obstruction_type | String | "collision" | Какая форма блока перекрывает обзор: "outline", "collision" или "collision_for_camera". |
look_at_locations | List | нет | Точки на сущности для проверки; хотя бы одна должна быть видна. |
looked_at_cooldown | Range [a, b] | "[0, 0]" | Случайная пауза в секундах перед следующей проверкой после того, как на сущность посмотрели. |
looked_at_event | String | нет | Событие, когда кто-то смотрит на сущность. |
min_looked_at_duration | Decimal | "0" | Сколько секунд нужно смотреть, чтобы это засчиталось. |
not_looked_at_event | String | нет | Событие, когда на сущность никто не смотрит. |
scale_fov_by_distance | Boolean | "true" | Сужает конус обзора с расстоянием, чтобы у сущности он оставался примерно одной ширины. |
search_radius | Decimal | "10" | Радиус поиска наблюдателей в блоках. |
set_target | Boolean | "once_and_stop_scanning" | Становится ли наблюдатель целью атаки: "never", "once_and_stop_scanning" или "once_and_keep_scanning". |
Пример
Внутри объекта components в BP/entities/<name>.json (значения - по умолчанию или примерные):
BP/entities/<name>.json
{
"minecraft:looked_at": {
"field_of_view": "26",
"filters": {},
"find_players_only": "false",
"line_of_sight_obstruction_type": "collision",
"look_at_locations": {},
"looked_at_cooldown": "[0, 0]",
"looked_at_event": "",
"min_looked_at_duration": "0"
}
}