阡陌交通
阡陌交通(RoadWeaver)会在结构之间自动生成道路。装了它,问道会把这些路读进来、 画在世界地图上、参与寻路,它连接的村落与小屋则成为可导航的目的地—— 等于你什么都不用画,地图上就先有了一张能用的路网。 读进来的路是只读的:几何属于阡陌交通,问道不写回、不进编辑器、也不随地图导出。
装了它之后,地图上多出什么
- 道路:它生成的道路被画在世界地图上,按道路等级取色、按层叠放, 和手画的路一起参与寻路。没装它时整层为空,其它功能照旧。
- 结构:目的地面板里多一栏「阡陌交通的结构」,地图上也有地点标记与名字。 名字取结构的别名(它在自己的地图里给结构起过名字时),其次是翻译名、 可读的 id;其它模组的结构显示原始 id,认不出的结构显示「结构 x, z」。别名一秒内跟上。
- 缺口补线:它故意把路修到结构外(默认村庄 60 格、其它 15 格,可配置得更大), 在它自己的地图上「路通到村口」,对寻路却是两段互不相连的路。问道会为每条已完成连接 补一条同等级的直线连接段,把道路端点与结构点接起来;连接段画在地图上、参与寻路、 随整层替换,不写回。超过 256 格(它可配置的最大退让距离)就对不上,宁可不连也不乱接。
路一律按「小路」读
阡陌交通铺的是土、砂砾、木板、按生物群系选材的路;它的路宽是「铺了几格」,
不是「能不能开车」。以前按路宽把 3 格当公路、5 格以上当高速,于是地图上多出两种并不存在的等级,
小路还会被判成能开车的路。现在读进来的一律是小路。
如果你确实想在上面开车,可以在配置里用 roadweaver_road_class 强制一个等级。
路口就是它自己说过的路口
两条路只有在同一个点上才算连通——阡陌交通的道路吸附正是把端点移到对方的点上。 交叉而过、没有共享点位的不算路口:那可能是立交桥,平面地图分不出来,所以问道不猜。 问道自己的近距节点合并(3 格内、高差像坡而不像桥)同样对它生效。
编辑时可以吸附到它的路与结构
在自己的路上、或它的道路与结构点上点击,会精确落在那里。只吸位置: 不拆分、不连接、不移动它的几何——这是把自己的路接到它路网上的入口。 画完之后那条连接仍然是你自己的路,它照样属于你的路网文件、可以改名改等级。
整张路网,与「自己开图」
单人 / 局域网时,问道直接读阡陌交通在进程内保存的整个路网
(roadweaver_full_map,默认开),全部道路与结构一次拿到,
不用先打开它自己的路网地图(H)。读取在游戏自己的服务端线程上发起、
转换在问道自己的线程上完成。
联机在别人的服务器上时,客户端只能读到阡陌交通发给自己的那一份,
所以这一局要先按一次它的路网地图(H),之后它广播的局部更新
会让图层自己更新。这是阡陌交通自己的同步方式决定的,不是问道的限制。
参与寻路,也出现在导航里
roadweaver_routing(默认开)打开时,步行、驾车(被强制成可开等级时)
与公共交通的步行接驳段都能走这些路;导航面板的小地图也画这一层,走在这上面时
脚下的路按小路报(速度、路面播报、逆行判断都看得到它)。
关掉后道路照旧画在地图上,只是不参与规划。
这些道路、连接段与结构从不写进你的路网文件、不进编辑器、不随地图导出—— 几何属于阡陌交通,下一次读取整层替换。它们也不出现在浏览器地图的「玩家画的路」里, 而是作为只读图层单独标出来源(页面上写「自动识别」)。
配置项一览
| 配置项 | 默认值 | 作用 |
|---|---|---|
roadweaver_roads |
true |
读取它自动生成的道路,作为只读图层画在地图上。关掉整层为空。 |
roadweaver_road_class |
auto |
读进来的路按什么等级。默认 auto 一律按小路;
填高速 / 公路 / 小路 / 铁路 / 水路 / 冰道可以强制一个等级(想在上面开车时用)。 |
roadweaver_full_map |
true |
单人 / 局域网时直接读它进程内的整个路网;关掉则只读它发给客户端的那一份。 |
roadweaver_structures |
true |
把结构作为目的地与地图地点标记。关掉后道路照旧,只是不再有那一栏目的地。 |
roadweaver_routing |
true |
让这些道路参与寻路。关掉后照旧画在地图上,只是不参与规划。 |
限制与排错
- 只读:它的道路不能改名、改等级、改层、标单行,也不能删除。 你画的路与它共用空间,但它们始终是两份数据。
- 没装也不崩:读取全靠反射,构建脚本里没有它的依赖; 没装、改名、换版本,对应图层为空,其它功能照旧。
- 联机看不到全部:在别人的服务器上,只有按过一次它自己的路网地图(
H) 之后,客户端才拿到那一份数据;之后靠它广播的局部更新补齐。 - 结构别名:它自己的地图里没给结构起过名字时,目的地显示翻译名或可读 id, 两者都没有就显示「结构 x, z」——这不是读失败,是那一份数据里确实没有名字。