Мод для Майнкрафт с функцией поиска маршрута A*. Он строит путь от текущей сущности к целевой позиции и оставляет маркеры, по которым можно направлять сущности или выполнять собственную логику.
Возможности
Вызов function astar:_ ищет маршрут, а оставшиеся маркеры с тегом astar отмечают точки пути. Если цель находится в воздухе или до неё нельзя добраться, поиск завершается неудачей.
Теги блоков определяют проходимость маршрута:
#astar:climbable— блоки для лазания;#astar:obstructs_floor— проходимые блоки без спуска;#astar:impassable_floor— непроходимый пол;#astar:impassable_wall— непроходимые стены.
Штрафные теги #astar:penalty/damage, #astar:penalty/danger и #astar:penalty/disliked повышают стоимость опасных участков, поэтому поиск старается их обходить.
Как пользоваться
Начальная точка пути берётся из позиции текущей сущности, а конечная — из позиции контекста команды. Например:
execute as @s at @p[distance=1..] run function astar:_
Для обработки найденных точек используйте маркеры @n[type=marker,tag=astar]. Перед собственной логикой можно сбросить настройки командой function astar:default_config или scoreboard players reset * astar.config.
Настройки
Параметры хранятся в цели счётчика astar.config:
scoreboard players set maxDistance astar.config <maxDistance>— максимальная дальность поиска;scoreboard players set maxStepHeight astar.config <maxStepHeight>— высота шага в блоках;scoreboard players set maxFallDistance astar.config -<maxFallDistance>— максимальная высота падения за шаг; значение указывается отрицательным.
Для протяжённых маршрутов увеличьте игровое правило maxCommandChainLength; иначе временные маркеры могут остаться после достижения лимита.
