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,客户端→服务端)。

这条链路与自由光标同属「让覆盖层与真实窗口状态保持一致」的机制。

相关条目