SimplePathFinder

SimplePathFinder

编辑导航层并在世界中查找路径。

杂项

简易寻路器

一个适用于 Minecraft 26.1.2 的 NeoForge 模组,提供寻路导航功能。

本模组将游戏地图数据处理为与游戏无关的离线导航数据。然后你可以使用指令、物品和方块来基于这些导航数据执行寻路计算并显示路径。

物品

导航屏障

一个行为类似原版结构空位的方块:它可以被任何方块替换,并且不会阻挡玩家。在编辑导航数据时,它的位置会被视为一个实心完整方块。它以蓝色导航标记显示。

导航器

用于查看和编辑导航数据的主要物品。

  • 手持导航器时,附近的导航数据会被加载并可视化显示。
  • 当前导航层会显示在方块上,颜色会随层数变化而变化。
  • 方块之间显示的文字代表该连接边的权重。
  • 如果方块之间的间隙显示红色标记,则表示该连接不可通行。

默认模式

主要用于自动生成导航数据:

  • 从基准高度开始,生成器会向上和向下扫描。
  • 可通行点位必须至少有两个完整方块的净空(即玩家可以步行通过)。
  • 根据每个点位相对于基准高度的位置来分配层级:基准高度为层级 0,其上方的点位依次向上编号为 1, 2, 3, ...,下方的点位依次向下编号为 -1, -2, ...。

在该模式下右键点击任意区块内的位置,会清除该区块的所有导航层,然后以被点击的方块为原点构建导航层、可通行性数据和边权重。

其他模式(使用 Shift + 滚轮 切换):添加导航点、添加连接、移除导航点。Shift + 右键点击可打开设置界面。

定位器

一个可以对世界任意位置右键使用的物品。使用时,它会开始向该位置寻路。

  • Shift + 右键 将你自己的玩家数据写入定位器。将其交给其他玩家,他们就能导航到你的位置。

寻路方块

右键 该方块可向其绑定的位置寻路。

  • 手持带有数据的定位器对其右键:将该数据导入(写入)到方块中。
  • 手持空的定位器对其右键:将方块中的数据导出到定位器中。

寻路机制

寻路默认使用 Dijkstra 算法——路径是根据边权重计算出的最短路径。

默认配置下,权重如下:

方块类型 权重
普通方块 10
水 127
岩浆 12737

如果一条边的两个方块权重不同,则取较大的值。

权重可在游戏内通过方块距离配置界面进行配置(可自定义方块 ID 或标签的距离)。

服务端与客户端寻路模式

  • 服务端模式:客户端向服务端发送寻路请求,服务端计算路径后将结果发送回来。消耗服务端 CPU;请求有速率限制。
  • 客户端模式:服务端将完整导航数据同步到客户端,所有寻路在客户端本地执行。消耗客户端 CPU 和服务端带宽。

默认使用服务端模式。 在配置中将 serverSidePathfinding 设置为 false 即可启用客户端寻路。

指令

  • /nav <目标> — 向目标位置发起客户端寻路。
  • /navserver <目标> — 向服务端发送目标位置的寻路请求(无论配置的寻路模式为何均可生效)。
  • /nav clear — 清除当前显示的路径(同时停止寻路)。