A* Pathfinding
Minecraft Pathfinder для сущностей
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 2,7 тыс.
- Подписчиков на Modrinth
- 17
- версии
- 32
- Обновлён
- 1 сентября 20261 сент.
- Опубликован
- в 2025
Коротко о моде
Нужен на сервере; в игре — по желанию
Пожалуйста, также внесите свой вклад в этот проект. У меня не бесконечное время 🥺
✅ Возможности
- Функция для поиска пути к пункту назначения
📖 Использование
Вызовите функцию astar:_ и используйте оставшиеся маркеры с тегом astar, чтобы направлять что угодно
Начальная позиция пути будет у текущей сущности, а конечная — текущая позиция в контексте
Например: execute as @s at @p[distance=1..] run function astar:_
Учтите, что парящие пункты назначения и недостижимые цели приведут к неудаче
Рекомендую выставить игровое правило maxCommandChainLength достаточно высоким для вашего рельефа или ограничить путь максимумом в ~10 блоков — иначе временные маркеры могут остаться, как только будет достигнут лимит
Конфигурация
Конфигурация хранится в объекте таблицы очков astar.config.
`scoreboard players set maxDistance astar.config — **по умолчанию: 100 (10 блоков)** — максимальное расстояние, которое поиск пути может пройти до финализации пути.\
scoreboard players set maxStepHeight astar.config — **по умолчанию: 1** — на сколько блоков он может подняться за раз.\
scoreboard players set maxFallDistance astar.config -— **по умолчанию: -3** — **отрицательное значение**, на сколько блоков он может упасть за каждый шаг.\
Чтобы избежать конфликтов с чужим использованием, запуститеfunction astar:default_configилиscoreboard players reset * astar.config` перед своей логикой
Теги блоков
#astar:climbable — можно взобраться#astar:obstructs_floor — проходимо, без спуска#astar:impassable_floor — непроходимый пол#astar:impassable_wall — непроходимая стена
Теги блоков штрафа
#astar:penalty/damage 160 — поблизости#astar:penalty/danger 80 — поблизости#astar:penalty/disliked 80
Вы можете добавить функцию в тег #astar:eval_node, чтобы изменить стоимость — `return приводит к тому, что действует толькоimpassable\
— непроходимо через kill @s— добавьте/уберите стоимость черезscoreboard players add/remove @s astar.f `
Штрафы увеличивают стоимость сегмента пути, поэтому алгоритм предпочитает другие маршруты.
Пример кода
#code:loop.mcfunction:
data modify storage code:pathfinding points append from entity @s Pos
kill @s
execute as @n[type=marker,tag=astar] at @s run function code:loop
#code:main.mcfunction:
execute store success score found my_score at @n[tag=target] if function astar:_ as @n[type=marker,tag=astar,sort=furthest] at @s run function code:loop
execute unless score found my_score matches 1 run function code:set_direct_target # Идти напрямую к цели, если путь не найденЧастые вопросы
Как установить A* Pathfinding?
Установите Fabric под свою версию Minecraft, скачайте A* Pathfinding под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть A* Pathfinding?
У A* Pathfinding есть сборки для Minecraft 1.21–26.3.
Нужен ли A* Pathfinding на сервере?
Нужен на сервере; в игре — по желанию