mcsow

mcsow

mcsow 是一个Minecraft模组,尽可能忠实且简洁地在Minecraft中实现Warsow/Warfork的移动方式。

杂项

mcsow

mcsow 是一款 Minecraft 模组,旨在尽可能忠实且简洁地将 Warsow/Warfork 的移动机制移植到 Minecraft 中。

该模组完全替换了原版的玩家移动——通过 mixin 取消 travel() 方法,并直接运行 Warsow 中 gs_pmove.c 物理引擎的直接移植版本——因此你可以在 Minecraft 中体验到真正的空中转向、兔子跳、冲刺和墙跳。

关于数值的说明

物理公式忠实地移植自 Warsow,但部分常量为了更好地适配 Minecraft 的比例和方块网格,进行了有意的调整,而非 1:1 复制:

  • 冲刺比 Warfork 中稍强,调整后一次冲刺大约能越过半个方块——足以在 Minecraft 的地形中提供合适的操作感。
  • 增加了蹲跳(并非 Warsow 的机制),用于牺牲水平速度换取高度,使你能够精确跳上方块并应对复杂地形。
  • 重力/跳跃基准值故意不采用 Warsow 的设定(按 Minecraft 手感缩放),并且空中转向增益进行了细分步长处理,以弥补 Minecraft 20 TPS 的限制。
  • 移动机制尊重 Minecraft 的修饰符——速度、深海探索者、跳跃提升、迅捷潜行、疾跑和移动速度属性均会影响物理效果。

以上大部分数值可在游戏内调整(参见“配置”)。

依赖项

  • Fabric Loader ≥ 0.16.0
  • Fabric API
  • Minecraft 1.21.11
  • Mod Menu (可选)——用于游戏内配置界面

操作控制

  • 移动 / 跳跃 / 潜行——使用你正常的 Minecraft 按键
  • 冲刺 / 特殊——默认为 R 键(可在“控制”中重新绑定)。用于在地面冲刺和在空中墙跳。

移动技巧

  • Quake 转向——按住前进键 + 一个平移键,同时转动鼠标使准星与你的速度方向成约 80° 角,从而加速。
  • Source 转向——按住单个平移键,并向该方向转动鼠标以加速。
  • 空中操控——按住前进键并转动鼠标,在不损失速度的情况下弯曲你的运动轨迹(急转弯会略微损失速度)。
  • 兔子跳——连续跳跃以保持并积累动量;地面摩擦力仅在你实际接触地面时生效。
  • 冲刺——在地面上轻按特殊键进行冲刺;方向跟随你的移动键,若未按任何移动键则跟随准星方向。
  • 冲刺转向——在空中松开所有移动键,并在落地时按住特殊键:你的速度向量将旋转至准星所指方向(将你的动量重定向至新方向)。
  • 墙跳——在空中贴近墙面,按下特殊键从墙上弹开(同时也算作一次冲刺)。
  • 蹲跳——在潜行时跳跃,将大部分水平速度转换为高度(非常适合处理复杂地形;在高速时会将你向上弹射)。
  • 动量保留——你的真实速度在创造飞行和鞘翅滑翔过程中都会被追踪,因此当你停止飞行或结束滑翔落地时,不会立即损失所有速度。

配置

  • config/mcsow.json——{"enabled": true} 用于开关模组的移动系统。
  • 安装 Mod Menu 后,可从模组列表中打开配置界面,调整移动常量(空中加速度、冲刺高度、墙跳高度、蹲跳比率、重力、细分步数……)。每个数值均有悬停文字说明其作用及对移动的影响。

构建

./gradlew build          # jar -> build/libs/
./buildvio.sh            # 构建并将 jar 复制到 PrismLauncher 的 "Mod Testing" 实例
  • 工具链: Loom 1.14.10,Gradle 9.6.1,JDK 21 运行时,Java 17 模组目标,yarn 映射 1.21.11+build.6。

许可证

LGPL-3.0-or-later —— 参见 LICENSE(LGPLv3)和 COPYING(LGPLv3 拓展所基于的 GPLv3)。