控制Flex x暴露度

控制Flex x暴露度

Control Flex与Exposure之间的兼容性桥接。

Control Flex × Exposure

一个兼容性桥接模组,当您通过Exposure相机取景器观察时,它会通知ControlFlex,以便在取景器中正确切换摇杆行为。


功能介绍

没有此模组,ControlFlex 不知道Exposure取景器已打开 — 即使两个模组都已安装。取景器是一个交互式覆盖层:它会接管视角控制并隐藏大部分原版HUD,但它不是屏幕,因此ControlFlex无法通过常规方式检测到它。

此桥接模组挂钩了取景器的打开/关闭路径,并通过其交互上下文API通知ControlFlex。

效果: 举起相机时切换到覆盖层摇杆行为;放下相机、按下ESC或退出登录时恢复正常摇杆行为。


特性

  • 📷 取景器感知摇杆切换 — 只要您通过相机取景器观察,ControlFlex就会将Exposure取景器视为交互式覆盖层。
  • 🔁 成对的打开/关闭 — 每个前景通知都有匹配的后景通知;没有活动取景器时的多余关闭通知会被忽略。
  • 🔄 相机切换 — 更换相机会按顺序发出后景然后前景通知,因此摇杆模式不会卡住。
  • 🚪 退出登录安全 — 如果取景器仍处于打开状态时断开连接,桥接模组会发送最终的后景通知并重置其状态。
  • ⌨️ 无ControlFlex时安全运行 — 如果ControlFlex缺失或未就绪,桥接模组将空操作而非崩溃。

依赖项(必需)

模组 版本
ControlFlex ≥ 0.8.7
Exposure Minecraft 1.21.1 上 ≥ 1.9.18;Minecraft 1.20.1 上 ≥ 1.9.20

兼容性

  • ✅ 支持单人游戏和多人游戏(仅客户端)。
  • 此桥接模组只做一件事:取景器前景/后景。它不添加按键配置、游戏内指南或额外的Exposure功能。

工作原理

玩家举起相机(Exposure)
                ↓
         cfx-compat-exposure(取景器打开/关闭)
                ↓
         ControlFlex 交互上下文 API
                ↓
         通过取景器观察时启用覆盖层摇杆行为

对Exposure的CameraClient.setupViewfinder / CameraClient.removeViewfinder(所有打开/关闭路径的两个关键节点)的Mixin,会使用取景器覆盖层类名通知ControlFlex。一个小的配对标志可防止重复或未匹配的后景通知。


备注

  • 此模组仅客户端 — 无需安装在服务器上。
  • 进入世界前,请确保ControlFlex已检测到您的控制器。
  • 安装与您的加载器和Minecraft版本匹配的JAR文件(Fabric / Forge / NeoForge)。