Скачать A* Pathfinding — Minecraft Моды — MetaMods
A* Pathfinding

A* Pathfinding

Активный

Установок

0

Последнее обновление

1 месяц назад

Версии

24w21a — 1.21.9
Сервер
Fabric
Forge
Neoforge
Quilt
Библиотеки
Мобы
Оптимизация игры

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/damage 160 - зоны урона поблизости
  • #astar:penalty/danger 80 - опасные территории
  • #astar:penalty/disliked 80 - нежелательные зоны

Штрафы увеличивают стоимость прохождения участка, заставляя алгоритм выбирать альтернативные маршруты.

Расширенные возможности

Вы можете добавить собственную функцию в тег #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 # Прямое движение к цели если путь не найден
Участники проекта
CJDev

CJDev

Разработчик

Создан: 15 сен 2025

ID: 267533