From f100a331f1eacd9d45d88f8fbb94237520ca5250 Mon Sep 17 00:00:00 2001 From: Masonlet Date: Fri, 17 Jul 2026 14:14:55 -0400 Subject: [PATCH 1/2] feat: add PointerState type and getPointer function hoisted from games --- src/input/pointer.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/input/pointer.ts b/src/input/pointer.ts index d9222c4..3658a2f 100644 --- a/src/input/pointer.ts +++ b/src/input/pointer.ts @@ -90,6 +90,27 @@ export function pointerX(): number { return posX; } /** Returns the pointer's current Y position in canvas pixel coordinates. */ export function pointerY(): number { return posY; } +export interface PointerState { + /** Canvas-relative X coordinate. */ + x: number; + /** Canvas-relative Y coordinate. */ + y: number; + /** Whether the primary button was clicked during the current frame. */ + clicked: boolean; + /** Whether the primary button is currently held. */ + down: boolean; +} + +/** Returns the pointer state and canvas-relative position. */ +export function getPointer(): PointerState { + return { + x: pointerX(), + y: pointerY(), + clicked: wasPointerClicked(), + down: isPointerDown(), + }; +} + /** Advances the per-frame click and release state. Called once per frame by {@link startLoop}. */ export function clearFramePointer(): void { clickedFrame = [...clicked]; From 7411ce0cc31e9c21f3a2feb53156f71b6a726de0 Mon Sep 17 00:00:00 2001 From: Masonlet Date: Fri, 17 Jul 2026 14:14:59 -0400 Subject: [PATCH 2/2] 0.0.7 --- package-lock.json | 4 ++-- package.json | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 114691d..54dbce7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@starweb-libs/engine", - "version": "0.0.6", + "version": "0.0.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@starweb-libs/engine", - "version": "0.0.6", + "version": "0.0.7", "license": "MIT", "devDependencies": { "tsdown": "^0.22.0", diff --git a/package.json b/package.json index 1901fe0..8a75f5f 100644 --- a/package.json +++ b/package.json @@ -2,15 +2,24 @@ "name": "@starweb-libs/engine", "description": "A lightweight 2D game engine for the browser", "author": "Mason L'Etoile", - "version": "0.0.6", + "version": "0.0.7", "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/starweb-libs/engine.git" }, "homepage": "https://github.com/starweb-libs/engine#readme", - "bugs": { "url": "https://github.com/starweb-libs/engine/issues" }, - "keywords": ["game-engine", "canvas", "2d", "typescript", "browser", "starweb"], + "bugs": { + "url": "https://github.com/starweb-libs/engine/issues" + }, + "keywords": [ + "game-engine", + "canvas", + "2d", + "typescript", + "browser", + "starweb" + ], "type": "module", "devDependencies": { "typescript": "~6.0.2", @@ -20,7 +29,9 @@ "build": "tsdown", "prepare": "npm run build" }, - "files": ["dist"], + "files": [ + "dist" + ], "exports": { "./assets.js": { "types": "./dist/assets.d.mts",