Free Cursor
基本信息
| 属性 | 值 |
|---|---|
| 按键数 | 2 |
| 源码类 | ClientKeyboardEvents(event/ClientKeyboardEvents.java) |
| 客户端专属 | 是(ClientRegistry.registerKeyBinding) |
2 个按键绑定
event/ClientKeyboardEvents.java:20-32:
public static KeyBinding interactGUIKey = new KeyBinding(...);
public static KeyBinding interactGUIKeyToggle = new KeyBinding(...);
ClientRegistry.registerKeyBinding(interactGUIKey);
ClientRegistry.registerKeyBinding(interactGUIKeyToggle);
| 字段 | lang 键 | 显示名 |
|---|---|---|
interactGUIKey |
key.openglasses.interact |
Free Cursor (Hold) |
interactGUIKeyToggle |
key.openglasses.interactToggle |
Free Cursor (Toggle) |
按键分类:key.categories.openGlasses=OC Glasses。
lang 文件为小写代码
key.openglasses.*与key.categories.openGlasses(驼峰 G)——同一文件内命名风格不统一,改动时需精确匹配。
两种触发方式
| 按键 | 模式 | 行为 |
|---|---|---|
interactGUIKey |
按住(Hold) | 按住期间启用自由光标 |
interactGUIKeyToggle |
切换(Toggle) | 按一次切换状态,再按一次关闭 |
两者是并存的独立按键,不是同一按键的两种绑定方式。
作用
自由光标让玩家在 AR 覆盖层中用鼠标指针与覆盖层控件交互——因为眼镜里的终端界面是渲染在 3D 空间中的,默认情况下鼠标无法直接定位到屏幕内的控件。
配套网络封包 KeyboardInteractOverlayPacket(ID 4,客户端→服务端)与 InteractOverlayPacket(ID 3,客户端→服务端)。
与窗口缩放的关系
OCGlasses 通过 早期 Mixin MinecraftResizeMixin(目标 net.minecraft.client.Minecraft,Phase.EARLY)在窗口缩放时同步覆盖层尺寸,对应网络封包 ScreenResizePacket(ID 9,客户端→服务端)。
这条链路与自由光标同属「让覆盖层与真实窗口状态保持一致」的机制。
相关条目
- AR Glasses - 使用覆盖层的物品
- Widget System - 覆盖层内容
- Config