# ports.ludic - what the aim asks the game: the camera, whether a line is clear, and where the body # stands. Unbound, a camera 1.5 m up at the origin looks down -z at nothing in the way, over the body. export port AimView { x: fn() -> float = fn aim__zero y: fn() -> float = fn aim__eye z: fn() -> float = fn aim__zero fx: fn() -> float = fn aim__zero fy: fn() -> float = fn aim__zero fz: fn() -> float = fn aim__ahead fov: fn() -> float = fn aim__fov # vertical, radians clear: fn(float, float, float, float, float, float) -> bool = fn aim__clear # nothing between two points body_x: fn() -> float = fn aim__zero # distances and reach are the body's, not the camera's body_z: fn() -> float = fn aim__zero } function aim__zero() -> float { return 0.0 } function aim__eye() -> float { return 1.5 } function aim__ahead() -> float { return -1.0 } function aim__fov() -> float { return 1.0 } function aim__clear(ax: float, ay: float, az: float, bx: float, by: float, bz: float) -> bool { return true }