控制弯曲 x 创建

控制弯曲 x 创建

Control Flex 与 Create 之间的兼容性桥梁

一个兼容桥接模组,让你用控制器驾驶 Create 的火车,使用的是移动角色的同一根左摇杆。


这个模组做什么

没有这个模组时,Create 的火车控制台完全看不到控制器输入。

Create 的火车控制台不像大多数模组那样询问“W 键是否被按下?”。它直接轮询原始按键状态:

ControlsHandler.tick() -> ControlsUtil.isActuallyPressed(kb)
                       -> AllKeys.isKeyDown(code) -> InputConstants.isKeyDown(window, code)

ControlFlex 的模拟移动接管了移动摇杆,并完全停止为它发布按键状态——摇杆数值直接进入玩家的移动中。你的角色正常行走,但控制台看不到按键按下,所以火车永远收不到油门输入。

结果:键盘 W 可以驾驶火车,左摇杆不行。

这个桥接模组将 ControlFlex 的控制器输入合并到 Create 控制台所做的那唯一一次检查中。

结果:向前推左摇杆,火车就会启动;用同一根摇杆转向;用你绑定的按键刹车和鸣笛。


功能

  • 🚂 左摇杆油门 — 向前推加速,向后拉倒车。
  • ↔️ 左摇杆转向 — 同一根摇杆左右转向,斜向也可以。
  • 🛑 刹车 — ControlFlex 的潜行动作映射到 Create 的刹车键。
  • 📯 鸣笛 — ControlFlex 的跳跃动作映射到 Create 的鸣笛键。
  • ⌨️ 键盘仍然优先 — 如果你已经按住了真实按键,模组不会干预。
  • 🎛️ 尊重你的设置 — 摇杆遵循 ControlFlex 的模拟移动开关和响应曲线,并且在你重新绑定 Create 控制台按键后仍能正常工作。
  • 🧩 无副作用 — 它不写入全局按键状态,因此其他模组的输入处理不会改变。
  • 🛡️ 没有 ControlFlex 也安全 — 如果 ControlFlex 缺失或未就绪,桥接模组会空操作而不是崩溃。

依赖(必需)

模组 版本
ControlFlex ≥ 0.8.7
Create Minecraft 1.20.1(Forge)上 ≥ 6.0.7;Minecraft 1.21.1(NeoForge)上 ≥ 6.0.9
Create Fabric Minecraft 1.20.1(Fabric)上 ≥ 6.0.7

兼容性

  • ✅ 适用于单人游戏和多人游戏(仅客户端)。
  • 需要启用 ControlFlex 的模拟移动——这正是此桥接模组存在以修复的模式。
  • 这个桥接模组只做一件事:火车控制台。它不添加按键配置、游戏内指南或额外的 Create 功能。它不影响 Create 的其他控制。

工作原理

Create 的火车控制台询问“这个键是否被按住?”
                ↓
        cfx-compat-create(对那一次检查的 mixin)
                ↓
   ControlFlex 已经计算好的移动输入
                ↓
        控制台看到油门 / 转向输入

该模组将控制器输入合并到 ControlsUtil.isActuallyPressed——Create 控制台用来询问该问题的唯一方法。移动来自玩家自身的移动值,因此“你在移动”和“控制台看到按键”永远不会不一致。刹车和鸣笛来自 ControlFlex 的动作状态。

不写入任何全局内容:没有合成按键状态,没有按键映射更改。其他所有模组继续看到与之前完全相同的输入。


注意事项

  • 此模组仅客户端——不需要安装在服务器上。
  • 如果火车仍然不动,请检查 ControlFlex 是否检测到你的控制器,以及模拟移动是否已启用。
  • 安装与你的加载器和 Minecraft 版本匹配的 JAR(Forge / Fabric / NeoForge)。