ParcoolXSable

ParcoolXSable

来自ParCool的跑酷动作,应用于Sable物理飞船,这是Create: Aeronautics背后的引擎。

允许在整合包中免费使用。

ParcoolXSable 来自机械动力:航空学(Create: Aeronautics)的飞艇是游戏中最棒的跑酷表面,但实际却无法使用。在船体上奔跑时,ParCool 完全无效。不能蹬墙跑、不能抓边缘、不能翻越。飞船就像不存在一样。

现在它可以工作了。可以沿着船体装甲板蹬墙跑、跳离墙壁、沿墙壁滑下、抓住甲板边缘拉起自己、翻越栏杆、悬挂在索具上。

为什么之前无法工作

Sable 并不会将飞船的方块直接移动到世界中。它将它们作为普通的区块停放在地图远端的一个隐藏区域,并在飞船位置进行渲染和碰撞计算。ParCool 会直接询问世界你旁边的空间是否被占用,因此对于船体旁边的空间,世界会诚实地回答“空” — 那里确实没有方块。没有墙壁可跑,也没有东西可抓。

这个模组将玩家投影到飞船的坐标空间中,在那里运行完全相同的检查,然后将结果旋转回来。

功能特性

水平与垂直蹬墙跑、蹬墙跳、墙壁滑行、攀附悬崖、向上攀爬、翻越、悬挂下落、潜水。摩擦力和粒子效果也会从飞船方块中读取,因此船体上的冰面很滑,扬起的尘土与所站甲板的材质相匹配。

倾斜和弯曲的船体装甲板同样适用,可以从任何接近角度,并且适用于正在倾斜或俯仰的船体。ParCool 需要一面平坦的墙壁—一块齐胸高的方块表面,上方有清晰的空气—而船体很少满足这一点。当 ParCool 自身的检查失败时,该模组会围绕你采样十六个方向,在每个方向上扫过你身前的一薄片区域,并抓取固体转为空气的位置。所有检查仍然基于真实的碰撞箱,因此不会凭空创造出不存在的抓握点。

与其它模组的兼容性

附近没有飞船时,该模组完全无作为,因此在地面上 ParCool 的行为与未安装时完全一致。真实世界的墙壁总是优先于飞船的墙壁。

Hook 使用 MixinExtras,可与其他模组的处理器协同工作而不是冲突。ParCool+ / Compatibility Addon 完全不使用 mixin,因此也不会与其产生任何冲突。

机械动力的强力胶和蜂蜜方块不受影响 — 该模组只读取方块,并且唯一会写入的是玩家在攀附时的自身速度。

如果未来 ParCool 重命名了某些内容,此模组将变为惰性状态,而不会导致游戏崩溃。

配置

以下所有内容都位于 config/parcoolxsable-common.toml 文件中。

  • enabled (true) — 总开关
  • searchMargin (1.5) — 在玩家周围寻找飞船的距离(以方块为单位)
  • fixBlockLookups (true) — 从飞船方块读取摩擦力和粒子效果
  • carryWhileAttached (true) — 在攀附或悬挂时随飞船移动
  • carryWhileOnWall (false) — 在蹬墙跑时随飞船移动,若跟不上快速飞行的飞船可开启
  • gripAssist (true) — 抓取倾斜和弯曲的船体,而不仅仅是平坦的墙壁
  • gripReach (0.8) — 向前寻找边缘的距离
  • slopeTolerance (0.45) — 在倾斜装甲板上身体一侧的额外触达距离

已知问题

  • 在急剧倾斜的船体上,探测箱会有几厘米的偏差。航向完全没有影响。
  • ParCool 的杆上悬挂只识别世界 X 和 Z 坐标,因此在以 45° 角度旋转的飞船上的杆,会吸附到较近的坐标轴上。

致谢

这个模组是连接两位作者作品的粘合剂:

两位作者均与本项目无关联,也未对其表示认可。请不要向他们发送关于此模组的错误报告 — 请使用下方的 Issue 跟踪器。

前置要求

需要 ParCool 和 Sable。如果缺少其中任何一个,此模组会静默禁用自身。

源代码、问题和俄语说明文档:https://github.com/Argorice/ParcoolXSable

允许在整合包中免费使用。