Files
EVEngine/test/mouse.nut
T
西风逍遥游andCursor eb39d162b7 fix(runtime,voxel,graphics): script stacks, voxel pick, 3D present hitch
Surface throw-site file:line on caught Squirrel errors, skip empty deferred graphs that hitch orbit, and drive voxel place/break from a single Camera3D.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 01:23:32 +08:00

44 lines
1.2 KiB
Plaintext

function basic() {
if (eve.Mouse == null) {
print("can not find Mouse");
return false;
}
local p = eve.Mouse();
if (p.getName() != "Mouse") {
print("Mouse name is not right: ");
print(p.getName());
return false;
}
return true;
}
function relativeMode() {
if (eve.Mouse == null) return false;
local m = eve.Mouse();
if (m.setRelativeMode == null || m.getRelativeMode == null) return false;
if (m.getMovementX == null || m.getMovementY == null) return false;
m.getMovementX();
local my = m.getMovementY();
if (typeof my != "float" && typeof my != "integer") return false;
// SDL may reject relative mode without a focused window; only verify the
// round trip when the backend accepts the request.
if (!m.setRelativeMode(true)) return true;
if (!m.getRelativeMode()) return false;
m.setRelativeMode(false);
if (m.getRelativeMode()) return false;
return true;
}
function visibility() {
local m = eve.Mouse();
if (m.setVisible == null || m.isVisible == null) return false;
m.setVisible(true);
local visible = m.isVisible();
m.setVisible(false);
local hidden = m.isVisible();
m.setVisible(true);
return visible && !hidden;
}