Theseus 模组文档
API 参考 / 事件系统

MouseEvent


契约上表示场景级鼠标分发(点击 / 拖动 / 释放),继承 CancellableEvent。

方法速览

方法用途
type()事件类型(按下 / 拖动 / 释放)
x() / y()场景逻辑 1280×720 空间坐标
button()按键号

type()

java
public InputType type();

行为:返回鼠标事件类型(如 MOUSE_PRESSED / MOUSE_DRAGGED / MOUSE_RELEASED)。

x()

java
public int x();

行为:返回场景逻辑 1280×720 空间的横坐标。

y()

java
public int y();

行为:返回场景逻辑 1280×720 空间的纵坐标。

button()

java
public int button();

行为:返回按键号,与 InputEvent#mouseButton() 同口径(1 = 左键)。

示例

java
ctx.eventBus().subscribe(MouseEvent.class, EventPriority.HIGHEST, event -> {
    if (overlayBounds.contains(event.x(), event.y())) {
        event.setResult(EventResult.DENY);
    }
});

完整签名

java
public class MouseEvent extends CancellableEvent {
    public MouseEvent(InputType type, int x, int y, int button);
    public InputType type();
    public int x();
    public int y();
    public int button();
}

行为核验与注意:当前宿主源码中没有投递本事件的代码路径(仅验收壳直接 post 以验证短路语义)。因此不要依赖它接收鼠标;需要鼠标交互请实现模组场景的 Scene#handleInput(InputEvent)(鼠标事件的 mouseX() / mouseY() / mouseButton() 在其中可用,返回 true 表示已消费)。上面的示例只演示短路写法。

稳定性:2.0 起冻结,2.x 内只增不破。