d8d77231108536c950e100886b434c59739f0894
AutoRail — 自动铺铁轨(Fabric 1.21.4,内置寻路)
按住 R+T 打开菜单,输入起始点、目标点和必经的途径点,模组用内置 A* 寻路 规划一条可铺轨的路线,然后控制玩家边走边铺,直到目标点。不依赖 Baritone,寻路与行走全部内置。
使用
- 安装 Fabric Loader ≥0.16.9 与 Fabric API,把
autorail-<version>.jar放进mods/。 - 进世界后按住 R+T 打开菜单(先按 T 弹出聊天栏也会被菜单替换掉,正常现象)。
- 起始点留空 = 当前坐标;目标点必填;途径点可添加多个(按顺序经过)。
坐标格式支持:
100 64 -200(x y z)、100 -200(x z,自动找地面)、~、~ 10 ~、~-5等相对写法。 - 点“开始铺轨”:先分片寻路(菜单/聊天栏显示进度,不卡游戏),完成后自动开始铺设(菜单自动关闭)。
- 快捷栏需要铁轨;遇到悬空/水面会自动用圆石垫脚,没有则提示并停止。
- 铺轨过程中不要打开聊天/背包等界面(行走会暂停);再按 R+T 可查看进度或点“停止”。
内置寻路(A*)
- 专为铁轨设计:4 向移动、允许 ±1 格坡度、禁止掉头、禁止“转弯+坡度”同格(原版没有斜弯轨)。
- 每个节点校验:上方两格可通行(玩家沿线行走)、下方有实心支撑或可用圆石垫补、避开水面/岩浆。
- 转弯有额外代价(尽量走直线);已有铁轨可复用且有折扣,优先延伸既有线路。
- 分片执行(每 tick 限额展开 4096 节点);搜索范围限制在检查点包围盒外扩 48 格,总展开上限 40 万节点。
铺设(合法交互)
- 切换快捷栏 +
processRightClickBlock右键放置,全程合法交互,绝不world.setBlockState,多人服务器可信任。 - 放置节奏 200ms 一次;放置前自动看向目标方块;上坡自动跳跃;卡住自动检测并停止报错。
- 行走只用客户端输入(前进/跳跃键 + 平滑转向),路径按“已铺设节点”推进,不会踩空。
代码结构
com.autorail
├─ AutoRailClient # 入口:R+T 组合键 + 每 tick 驱动服务
├─ gui/AutoRailScreen # 菜单:起点/终点/途径点输入与状态显示
├─ service/AutoRailService # 状态机:PLANNING → LAYING → DONE/FAILED
├─ service/RailExecutor # 执行器:行走控制 + 合法放置铁轨/圆石
└─ pathing/ # 内置寻路:RailPathfinder(A*)、RailStep、CoordParser
开发
gradlew build # 产物在 build/libs/autorail-<version>.jar
已知限制
- 只铺普通铁轨(
minecraft:rail),不铺动力铁轨/探测铁轨。 - 不破坏、不放置除铁轨/圆石外的方块:遇到障碍会绕路而不是挖穿。
- 起始点必须在玩家附近(水平 6 格、垂直 8 格以内)——本模组不含到远处的自由行走导航。
- 遇水会垫圆石架桥,但岩浆列直接视为不可通行。
- 基于客户端世界状态判定;服务器延迟时个别放置会失败,会自动重试。
语言
Java
100%