API 参考 / 能力接口(capability 包)
CursorState
光标本帧状态快照,由宿主构造后传给 CursorRenderer。不可变,勿长期持有。
方法速览
| 字段 | 用途 |
|---|---|
x / y | 光标逻辑坐标(0..1280 / 0..720) |
scaleX / scaleY | 逻辑坐标 → 帧缓冲的缩放比 |
leftHeld / rightHeld | 左 / 右键是否按住 |
indent | 引擎默认内凹深度(虚拟像素) |
rotationDeg | 引擎默认视觉旋转角(度,[0,90)) |
scrollOffset | 引擎默认滚轮准星垂直偏移 |
完整签名
java
public final class CursorState { // UiCustomization 的嵌套值类型
public final int x;
public final int y;
public final float scaleX;
public final float scaleY;
public final boolean leftHeld;
public final boolean rightHeld;
public final double indent;
public final double rotationDeg;
public final double scrollOffset;
public CursorState(int x, int y, float scaleX, float scaleY,
boolean leftHeld, boolean rightHeld,
double indent, double rotationDeg, double scrollOffset) {
// 字段逐一赋值
}
}CursorState(...)
签名:
java
public CursorState(int x, int y, float scaleX, float scaleY,
boolean leftHeld, boolean rightHeld,
double indent, double rotationDeg, double scrollOffset);行为:宿主每帧构造一份快照并传给接管渲染器;模组不应自行构造(字段语义见上表)。
x/y是 1280×720 虚拟光标坐标,绘制时直接用canvas的逻辑坐标即可。scaleX/scaleY是从虚拟坐标到实际帧缓冲的缩放比,需要与帧缓冲像素对齐时可使用。leftHeld/rightHeld/indent/rotationDeg/scrollOffset是引擎默认光标动画的输入,接管方可参考它们复刻手感。- 对象不可变;一次回调结束后即应丢弃。
示例:
java
(canvas, state) -> {
int size = state.leftHeld ? 6 : 3; // 按住时放大,复刻默认手感
canvas.fillRect(state.x - size, state.y - size, size * 2, size * 2);
}线程:渲染线程构造 / 读取。
稳定性:2.0 起冻结:2.x 内只增不破。