A* Pathfinding
Активный0.0
Установок
Последнее обновление
Версии
A Pathfinding - Интеллектуальная навигация для существ
Этот мод реализует продвинутый алгоритм поиска пути A прямо в Minecraft, позволяя мобам и другим сущностям находить оптимальные маршруты к целям в сложной местности.
Основные возможности
Система предоставляет функцию вычисления маршрута от текущего положения сущности до указанной точки назначения. Алгоритм учитывает различные типы препятствий и сложный рельеф.
Как использовать
Для запуска поиска пути вызовите функцию 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)
Перед использованием рекомендуется сбросить настройки: scoreboard players reset * astar.config
Теги блоков
Система поддерживает различные категории блоков для точного управления навигацией:
#astar:climbable- блоки для лазания#astar:obstructs_floor- проходимые блоки без спуска#astar:impassable_floor- непроходимые поверхности#astar:impassable_wall- непроходимые стены
Штрафные зоны
Система учитывает опасные и нежелательные области через штрафные теги:
#astar:penalty/damage160 - зоны урона поблизости#astar:penalty/danger80 - опасные территории#astar:penalty/disliked80 - нежелательные зоны
Штрафы увеличивают стоимость прохождения участка, заставляя алгоритм выбирать альтернативные маршруты.
Расширенные возможности
Вы можете добавить собственную функцию в тег #astar:eval_node для модификации стоимости пути. Используйте 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 myscore 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 # Прямое движение к цели если путь не найден